From f4b565fa5729237f88466358fb32bc558009a77a Mon Sep 17 00:00:00 2001 From: Tom Pantelis Date: Mon, 12 Mar 2018 18:55:08 -0400 Subject: [PATCH 1/1] Fix compile errors in UTs This was caused by a recent controller patch which converted CDS to implement the msdal APIs. Modified the affected UTs to use the SerializedDOMDataBroker so as not to depend in CDS implementation. Change-Id: I1317310fe601387c03892a1ddd53ac79f1704f71 Signed-off-by: Tom Pantelis --- netconf/mdsal-netconf-connector/pom.xml | 2 +- .../ops/NetconfMDSalMappingTest.java | 8 ++++--- netconf/netconf-console/pom.xml | 10 ++++---- .../console/impl/NetconfCommandsImplTest.java | 15 +++++------- netconf/sal-netconf-connector/pom.xml | 10 ++++---- .../sal/NetconfDeviceTopologyAdapterTest.java | 23 ++++++++----------- 6 files changed, 32 insertions(+), 36 deletions(-) diff --git a/netconf/mdsal-netconf-connector/pom.xml b/netconf/mdsal-netconf-connector/pom.xml index d5c9a78122..2a8961d599 100644 --- a/netconf/mdsal-netconf-connector/pom.xml +++ b/netconf/mdsal-netconf-connector/pom.xml @@ -101,7 +101,7 @@ org.opendaylight.controller - sal-distributed-datastore + sal-broker-impl test diff --git a/netconf/mdsal-netconf-connector/src/test/java/org/opendaylight/netconf/mdsal/connector/ops/NetconfMDSalMappingTest.java b/netconf/mdsal-netconf-connector/src/test/java/org/opendaylight/netconf/mdsal/connector/ops/NetconfMDSalMappingTest.java index ad35b0dfa5..a514ca46dd 100644 --- a/netconf/mdsal-netconf-connector/src/test/java/org/opendaylight/netconf/mdsal/connector/ops/NetconfMDSalMappingTest.java +++ b/netconf/mdsal-netconf-connector/src/test/java/org/opendaylight/netconf/mdsal/connector/ops/NetconfMDSalMappingTest.java @@ -17,6 +17,7 @@ import static org.mockito.Mockito.doAnswer; import com.google.common.io.ByteSource; import com.google.common.util.concurrent.Futures; +import com.google.common.util.concurrent.MoreExecutors; import java.io.StringWriter; import java.util.EnumMap; import java.util.concurrent.ExecutorService; @@ -34,7 +35,6 @@ import org.junit.Test; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; -import org.opendaylight.controller.cluster.databroker.ConcurrentDOMDataBroker; import org.opendaylight.controller.config.util.xml.DocumentedException; import org.opendaylight.controller.config.util.xml.DocumentedException.ErrorSeverity; import org.opendaylight.controller.config.util.xml.DocumentedException.ErrorTag; @@ -42,6 +42,7 @@ import org.opendaylight.controller.config.util.xml.DocumentedException.ErrorType import org.opendaylight.controller.config.util.xml.XmlElement; import org.opendaylight.controller.config.util.xml.XmlUtil; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; +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; @@ -144,8 +145,9 @@ public class NetconfMDSalMappingTest { final ExecutorService listenableFutureExecutor = SpecialExecutors.newBlockingBoundedCachedThreadPool( 16, 16, "CommitFutures", NetconfMDSalMappingTest.class); - final ConcurrentDOMDataBroker cdb = new ConcurrentDOMDataBroker(datastores, listenableFutureExecutor); - this.transactionProvider = new TransactionProvider(cdb, SESSION_ID_FOR_REPORTING); + final SerializedDOMDataBroker sdb = new SerializedDOMDataBroker(datastores, + MoreExecutors.listeningDecorator(listenableFutureExecutor)); + this.transactionProvider = new TransactionProvider(sdb, SESSION_ID_FOR_REPORTING); doAnswer(invocationOnMock -> { final SourceIdentifier sId = (SourceIdentifier) invocationOnMock.getArguments()[0]; diff --git a/netconf/netconf-console/pom.xml b/netconf/netconf-console/pom.xml index c6bec65007..034881267a 100644 --- a/netconf/netconf-console/pom.xml +++ b/netconf/netconf-console/pom.xml @@ -72,11 +72,6 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL mockito-core test - - org.opendaylight.controller - sal-distributed-datastore - test - org.powermock powermock-module-junit4 @@ -95,6 +90,11 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL org.opendaylight.yangtools yang-test-util + + org.opendaylight.controller + sal-binding-broker-impl + test + diff --git a/netconf/netconf-console/src/test/java/org/opendaylight/netconf/console/impl/NetconfCommandsImplTest.java b/netconf/netconf-console/src/test/java/org/opendaylight/netconf/console/impl/NetconfCommandsImplTest.java index 8301b0fe00..576408b371 100644 --- a/netconf/netconf-console/src/test/java/org/opendaylight/netconf/console/impl/NetconfCommandsImplTest.java +++ b/netconf/netconf-console/src/test/java/org/opendaylight/netconf/console/impl/NetconfCommandsImplTest.java @@ -15,25 +15,26 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import com.google.common.collect.ImmutableList; +import com.google.common.util.concurrent.MoreExecutors; import java.util.ArrayList; import java.util.EnumMap; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Optional; -import java.util.concurrent.ExecutorService; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; import javassist.ClassPool; import org.junit.Before; import org.junit.Test; -import org.opendaylight.controller.cluster.databroker.ConcurrentDOMDataBroker; import org.opendaylight.controller.md.sal.binding.api.DataBroker; import org.opendaylight.controller.md.sal.binding.api.WriteTransaction; import org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataBrokerAdapter; import org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec; 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.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; @@ -67,7 +68,6 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeBuilder; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey; import org.opendaylight.yangtools.concepts.ListenerRegistration; -import org.opendaylight.yangtools.util.concurrent.SpecialExecutors; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.api.SchemaContextListener; @@ -101,11 +101,8 @@ public class NetconfCommandsImplTest { datastores.put(LogicalDatastoreType.CONFIGURATION, configStore); datastores.put(LogicalDatastoreType.OPERATIONAL, operStore); - final ExecutorService listenableFutureExecutor = SpecialExecutors.newBlockingBoundedCachedThreadPool( - 16, 16, "CommitFutures", NetconfCommandsImplTest.class); - - final ConcurrentDOMDataBroker cDOMDataBroker = - new ConcurrentDOMDataBroker(datastores, listenableFutureExecutor); + final DOMDataBroker domDataBroker = + new SerializedDOMDataBroker(datastores, MoreExecutors.newDirectExecutorService()); final ClassPool pool = ClassPool.getDefault(); final DataObjectSerializerGenerator generator = StreamWriterGenerator.create(JavassistUtils.forClassPool(pool)); @@ -118,7 +115,7 @@ public class NetconfCommandsImplTest { final BindingToNormalizedNodeCodec bindingToNormalized = new BindingToNormalizedNodeCodec(loading, codecRegistry); bindingToNormalized.onGlobalContextUpdated(schemaContext); - dataBroker = new BindingDOMDataBrokerAdapter(cDOMDataBroker, bindingToNormalized); + dataBroker = new BindingDOMDataBrokerAdapter(domDataBroker, bindingToNormalized); netconfCommands = new NetconfCommandsImpl(dataBroker); } diff --git a/netconf/sal-netconf-connector/pom.xml b/netconf/sal-netconf-connector/pom.xml index 2483272caa..52cfacbb2d 100644 --- a/netconf/sal-netconf-connector/pom.xml +++ b/netconf/sal-netconf-connector/pom.xml @@ -147,6 +147,11 @@ test-jar test + + org.opendaylight.controller + sal-binding-broker-impl + test + org.opendaylight.controller sal-binding-broker-impl @@ -166,11 +171,6 @@ com.google.code.gson gson - - org.opendaylight.controller - sal-distributed-datastore - test - org.powermock powermock-module-junit4 diff --git a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceTopologyAdapterTest.java b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceTopologyAdapterTest.java index bd416339a9..3b878edda2 100644 --- a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceTopologyAdapterTest.java +++ b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceTopologyAdapterTest.java @@ -17,16 +17,15 @@ import static org.mockito.Mockito.verify; import com.google.common.base.Optional; import com.google.common.util.concurrent.Futures; +import com.google.common.util.concurrent.MoreExecutors; import java.net.InetSocketAddress; import java.util.EnumMap; -import java.util.concurrent.ExecutorService; import java.util.concurrent.TimeUnit; import javassist.ClassPool; import org.junit.Before; import org.junit.Test; import org.mockito.Mock; import org.mockito.MockitoAnnotations; -import org.opendaylight.controller.cluster.databroker.ConcurrentDOMDataBroker; import org.opendaylight.controller.md.sal.binding.api.BindingTransactionChain; import org.opendaylight.controller.md.sal.binding.api.DataBroker; import org.opendaylight.controller.md.sal.binding.api.WriteTransaction; @@ -36,7 +35,9 @@ import org.opendaylight.controller.md.sal.common.api.data.AsyncTransaction; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.controller.md.sal.common.api.data.TransactionChain; import org.opendaylight.controller.md.sal.common.api.data.TransactionChainListener; +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; @@ -55,7 +56,6 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yangtools.concepts.ListenerRegistration; -import org.opendaylight.yangtools.util.concurrent.SpecialExecutors; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; @@ -88,7 +88,7 @@ public class NetconfDeviceTopologyAdapterTest { private DataBroker dataBroker; - private ConcurrentDOMDataBroker concurrentDOMDataBroker; + private DOMDataBroker domDataBroker; @Before public void setUp() throws Exception { @@ -116,10 +116,7 @@ public class NetconfDeviceTopologyAdapterTest { datastores.put(LogicalDatastoreType.CONFIGURATION, configStore); datastores.put(LogicalDatastoreType.OPERATIONAL, operStore); - ExecutorService listenableFutureExecutor = SpecialExecutors.newBlockingBoundedCachedThreadPool( - 16, 16, "CommitFutures", NetconfDeviceTopologyAdapterTest.class); - - concurrentDOMDataBroker = new ConcurrentDOMDataBroker(datastores, listenableFutureExecutor); + domDataBroker = new SerializedDOMDataBroker(datastores, MoreExecutors.newDirectExecutorService()); final ClassPool pool = ClassPool.getDefault(); final DataObjectSerializerGenerator generator = StreamWriterGenerator.create(JavassistUtils.forClassPool(pool)); @@ -132,7 +129,7 @@ public class NetconfDeviceTopologyAdapterTest { final BindingToNormalizedNodeCodec bindingToNormalized = new BindingToNormalizedNodeCodec(loading, codecRegistry); bindingToNormalized.onGlobalContextUpdated(schemaContext); - dataBroker = new BindingDOMDataBrokerAdapter(concurrentDOMDataBroker, bindingToNormalized); + dataBroker = new BindingDOMDataBrokerAdapter(domDataBroker, bindingToNormalized); transactionChain = dataBroker.createTransactionChain(new TransactionChainListener() { @Override @@ -208,19 +205,19 @@ public class NetconfDeviceTopologyAdapterTest { NormalizedNode augmentNode = ImmutableLeafNodeBuilder.create().withValue(dataTestId) .withNodeIdentifier(new YangInstanceIdentifier.NodeIdentifier(netconfTestLeafQname)).build(); - DOMDataWriteTransaction wtx = concurrentDOMDataBroker.newWriteOnlyTransaction(); + DOMDataWriteTransaction wtx = domDataBroker.newWriteOnlyTransaction(); wtx.put(LogicalDatastoreType.OPERATIONAL, pathToAugmentedLeaf, augmentNode); - wtx.submit(); + wtx.submit().get(5, TimeUnit.SECONDS); adapter.updateDeviceData(true, new NetconfDeviceCapabilities()); - Optional> testNode = concurrentDOMDataBroker.newReadOnlyTransaction() + Optional> testNode = domDataBroker.newReadOnlyTransaction() .read(LogicalDatastoreType.OPERATIONAL, pathToAugmentedLeaf).checkedGet(2, TimeUnit.SECONDS); assertEquals("Augmented node data should be still present after device update.", true, testNode.isPresent()); assertEquals("Augmented data should be the same as before update node.", dataTestId, testNode.get().getValue()); adapter.setDeviceAsFailed(null); - testNode = concurrentDOMDataBroker.newReadOnlyTransaction() + testNode = domDataBroker.newReadOnlyTransaction() .read(LogicalDatastoreType.OPERATIONAL, pathToAugmentedLeaf).checkedGet(2, TimeUnit.SECONDS); assertEquals("Augmented node data should be still present after device failed.", true, testNode.isPresent()); -- 2.36.6