X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=netconf%2Ftools%2Fnetconf-testtool%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fnetconf%2Ftest%2Ftool%2FMdsalOperationProvider.java;h=11c009c34f41cfb276fc0471adcb2e90d2bda75e;hb=1d91e1bbe29d0da6ea427a5d0837064c8a3d5134;hp=fd5c68946953740224500ec75278b7aa2fcf70f0;hpb=45cfee1861924b4a8086d38079ce8cbd320386d6;p=netconf.git diff --git a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/MdsalOperationProvider.java b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/MdsalOperationProvider.java index fd5c689469..11c009c34f 100644 --- a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/MdsalOperationProvider.java +++ b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/MdsalOperationProvider.java @@ -5,9 +5,10 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - package org.opendaylight.netconf.test.tool; +import com.google.common.collect.ClassToInstanceMap; +import com.google.common.collect.ImmutableClassToInstanceMap; import com.google.common.collect.Maps; import com.google.common.collect.Sets; import com.google.common.util.concurrent.MoreExecutors; @@ -15,16 +16,17 @@ import java.util.Collections; import java.util.EnumMap; import java.util.Map; import java.util.Set; +import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; -import org.opendaylight.controller.config.util.capability.Capability; -import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; -import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException; -import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker; -import org.opendaylight.controller.md.sal.dom.api.DOMDataWriteTransaction; -import org.opendaylight.controller.md.sal.dom.broker.impl.SerializedDOMDataBroker; -import org.opendaylight.controller.md.sal.dom.store.impl.InMemoryDOMDataStoreFactory; -import org.opendaylight.controller.sal.core.api.model.SchemaService; -import org.opendaylight.controller.sal.core.spi.data.DOMStore; +import org.opendaylight.mdsal.common.api.LogicalDatastoreType; +import org.opendaylight.mdsal.dom.api.DOMDataBroker; +import org.opendaylight.mdsal.dom.api.DOMDataTreeWriteTransaction; +import org.opendaylight.mdsal.dom.api.DOMSchemaService; +import org.opendaylight.mdsal.dom.api.DOMSchemaServiceExtension; +import org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker; +import org.opendaylight.mdsal.dom.spi.store.DOMStore; +import org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStoreFactory; +import org.opendaylight.netconf.api.capability.Capability; import org.opendaylight.netconf.api.monitoring.CapabilityListener; import org.opendaylight.netconf.impl.SessionIdProvider; import org.opendaylight.netconf.mapping.api.NetconfOperation; @@ -43,6 +45,7 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.mon import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.Yang; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.Schemas; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.schemas.Schema; +import org.opendaylight.yangtools.concepts.AbstractListenerRegistration; import org.opendaylight.yangtools.concepts.ListenerRegistration; import org.opendaylight.yangtools.util.concurrent.SpecialExecutors; import org.opendaylight.yangtools.yang.common.QName; @@ -54,7 +57,6 @@ import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode; import org.opendaylight.yangtools.yang.data.api.schema.MapNode; import org.opendaylight.yangtools.yang.data.impl.schema.Builders; import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.CollectionNodeBuilder; -import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.api.SchemaContextListener; import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource; @@ -88,7 +90,7 @@ class MdsalOperationProvider implements NetconfOperationServiceFactory { @Override public AutoCloseable registerCapabilityListener( final CapabilityListener listener) { - listener.onCapabilitiesChanged(caps, Collections.emptySet()); + listener.onCapabilitiesChanged(caps, Collections.emptySet()); return () -> { }; } @@ -103,7 +105,7 @@ class MdsalOperationProvider implements NetconfOperationServiceFactory { private final long currentSessionId; private final SchemaContext schemaContext; private final Set caps; - private final SchemaService schemaService; + private final DOMSchemaService schemaService; private final DOMDataBroker dataBroker; private final SchemaSourceProvider sourceProvider; @@ -132,13 +134,13 @@ class MdsalOperationProvider implements NetconfOperationServiceFactory { YangInstanceIdentifier yangInstanceIdentifier = YangInstanceIdentifier.builder().node(NetconfState.QNAME) .build(); - final DOMDataWriteTransaction tx = dataBroker.newWriteOnlyTransaction(); + final DOMDataTreeWriteTransaction tx = dataBroker.newWriteOnlyTransaction(); tx.put(LogicalDatastoreType.OPERATIONAL, yangInstanceIdentifier, netconf); try { - tx.submit().checkedGet(); + tx.commit().get(); LOG.debug("Netconf state updated successfully"); - } catch (TransactionCommitFailedException e) { + } catch (InterruptedException | ExecutionException e) { LOG.warn("Unable to update netconf state", e); } @@ -153,7 +155,7 @@ class MdsalOperationProvider implements NetconfOperationServiceFactory { final DiscardChanges discardChanges = new DiscardChanges( String.valueOf(currentSessionId), transactionProvider); - return Sets.newHashSet(get, getConfig, + return Sets.newHashSet(get, getConfig, editConfig, commit, lock, unLock, discardChanges); } @@ -208,12 +210,10 @@ class MdsalOperationProvider implements NetconfOperationServiceFactory { new YangInstanceIdentifier.NodeIdentifier(NetconfState.QNAME)).withChild(schemasContainer).build(); } - private static DOMDataBroker createDataStore(final SchemaService schemaService, final long sessionId) { + private static DOMDataBroker createDataStore(final DOMSchemaService schemaService, final long sessionId) { LOG.debug("Session {}: Creating data stores for simulated device", sessionId); - final DOMStore operStore = InMemoryDOMDataStoreFactory - .create("DOM-OPER", schemaService); - final DOMStore configStore = InMemoryDOMDataStoreFactory - .create("DOM-CFG", schemaService); + final DOMStore operStore = InMemoryDOMDataStoreFactory.create("DOM-OPER", schemaService); + final DOMStore configStore = InMemoryDOMDataStoreFactory.create("DOM-CFG", schemaService); ExecutorService listenableFutureExecutor = SpecialExecutors.newBlockingBoundedCachedThreadPool( 16, 16, "CommitFutures", MdsalOperationProvider.class); @@ -225,17 +225,8 @@ class MdsalOperationProvider implements NetconfOperationServiceFactory { return new SerializedDOMDataBroker(datastores, MoreExecutors.listeningDecorator(listenableFutureExecutor)); } - private SchemaService createSchemaService() { - return new SchemaService() { - - @Override - public void addModule(final Module module) { - } - - @Override - public void removeModule(final Module module) { - - } + private DOMSchemaService createSchemaService() { + return new DOMSchemaService() { @Override public SchemaContext getSessionContext() { @@ -251,18 +242,19 @@ class MdsalOperationProvider implements NetconfOperationServiceFactory { public ListenerRegistration registerSchemaContextListener( final SchemaContextListener listener) { listener.onGlobalContextUpdated(getGlobalContext()); - return new ListenerRegistration() { - @Override - public void close() { - - } + return new AbstractListenerRegistration(listener) { @Override - public SchemaContextListener getInstance() { - return listener; + protected void removeRegistration() { + // No-op } }; } + + @Override + public ClassToInstanceMap getExtensions() { + return ImmutableClassToInstanceMap.of(); + } }; } }