Migrate to Al and reactivate some Junit tests 39/92439/12
authormanuedelf <emmanuelle.delfour@gmail.com>
Tue, 15 Sep 2020 14:31:11 +0000 (16:31 +0200)
committerguillaume.lambert <guillaume.lambert@orange.com>
Fri, 25 Sep 2020 13:44:32 +0000 (15:44 +0200)
  - Use of BindingDOMCodecServices in DataStoreContext
  - remove @Ignore decorator and fix unit tests when needed

This commit reintroduces the import of mdsal.binding.dom.codec.impl
.BindingCodecContext in common/src/main/[..]/DataStoreContextImpl.java.
This dependency was preventing karaf from starting up correctly and was
removed previously in commit 243c08d8b7ad90b0cbaec76a33a639d6fa96f5c8

Since DataStoreContext is no more used outside of the test scope,
common/src/main/[..]/DataStoreContext.java and friends have been moved
into test-common before reintroducing this import.
They are now only used in test scope / build time.
This way, the karaf start-up problem is avoided.

JIRA: TRNSPRTPCE-305
Change-Id: I246a9d58879be047c470f8a683993bc81d3a54a3
Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
20 files changed:
common/pom.xml
common/src/test/java/org/opendaylight/transportpce/common/crossconnect/CrossConnectImpl121Test.java
common/src/test/java/org/opendaylight/transportpce/common/mapping/MappingUtilsImplTest.java
common/src/test/java/org/opendaylight/transportpce/common/mapping/PortMappingImplTest.java
common/src/test/java/org/opendaylight/transportpce/common/mapping/PortMappingVersion121Test.java
common/src/test/java/org/opendaylight/transportpce/common/test/TransportPCETest.java
olm/src/test/java/org/opendaylight/transportpce/olm/service/OlmPowerServiceImplTest.java
pce/src/test/java/org/opendaylight/transportpce/pce/PceSendingPceRPCsTest.java
pce/src/test/java/org/opendaylight/transportpce/pce/constraints/PceConstraintsCalcTest.java
pce/src/test/java/org/opendaylight/transportpce/pce/gnpy/GnpyUtilitiesImplTest.java
pce/src/test/java/org/opendaylight/transportpce/pce/gnpy/ServiceDataStoreOperationsImplTest.java
pce/src/test/java/org/opendaylight/transportpce/pce/graph/PceGraphEdgeTest.java
pce/src/test/java/org/opendaylight/transportpce/pce/graph/PceGraphTest.java
pce/src/test/java/org/opendaylight/transportpce/pce/utils/JsonUtil.java
servicehandler/src/test/java/org/opendaylight/transportpce/servicehandler/service/RendererServiceWrapperTest.java
tapi/pom.xml
tapi/src/test/java/org/opendaylight/transportpce/tapi/topology/TapiTopologyImplTest.java
tapi/src/test/java/org/opendaylight/transportpce/tapi/utils/TopologyDataUtils.java
test-common/src/main/java/org/opendaylight/transportpce/test/DataStoreContextImpl.java
test-common/src/main/java/org/opendaylight/transportpce/test/DeviceWrapper.java

index c40b83ea8da019c079ebf7b64ce295a69436f4ad..5bf506c6b8f1004b19fa8c7e4e42b30b0ec7a594 100644 (file)
@@ -80,5 +80,4 @@
             <scope>test</scope>
         </dependency>
     </dependencies>
-
 </project>
index 6aefb288b4dbab48a7e51277d1b689ff284a1e8f..ceed112662c65145106aa399bbe19d5fa805f5e1 100644 (file)
@@ -76,7 +76,7 @@ public class CrossConnectImpl121Test {
         Mockito.when(rwTransactionMock.commit()).thenReturn(FluentFutures.immediateNullFluentFuture());
         deviceTransactionManager = new DeviceTransactionManagerImpl(mountPointServiceMock, 3000);
         crossConnectImpl121 = new CrossConnectImpl121(deviceTransactionManager);
-        Optional res = crossConnectImpl121.postCrossConnect("deviceId", 100L, "srcTp", "destTp");
+        Optional<String> res = crossConnectImpl121.postCrossConnect("deviceId", 100L, "srcTp", "destTp");
         Assert.assertEquals(res.get(), "srcTp-destTp-100");
     }
 
index 878b5c93e1275a83ecb340da7ec3e708c7a7773f..398575c1bbafb57e5c827ef0b4f130bbb34e99da 100644 (file)
@@ -13,7 +13,6 @@ import static org.junit.Assert.assertNull;
 
 import java.util.concurrent.ExecutionException;
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.opendaylight.mdsal.binding.api.DataBroker;
 import org.opendaylight.mdsal.binding.api.WriteTransaction;
@@ -29,13 +28,12 @@ import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmappi
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev200827.network.nodes.NodeInfoBuilder;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 
-@Ignore
 public class MappingUtilsImplTest {
 
     private DataBroker dataBroker = null;
 
     @Before
-    public void setUp() throws Exception {
+    public void setUp() {
         DataStoreContext dataStoreContext = new DataStoreContextImpl();
         dataBroker = dataStoreContext.getDataBroker();
     }
index 0853b6b935d07ea199f1bd2b2617c8ee5539ff98..f6c4bce5b958d0f8db8d9e292c4475b3cec46e43 100644 (file)
@@ -20,7 +20,6 @@ import static org.opendaylight.transportpce.common.StringConstants.OPENROADM_DEV
 
 import java.util.concurrent.ExecutionException;
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.opendaylight.mdsal.binding.api.DataBroker;
 import org.opendaylight.mdsal.binding.api.WriteTransaction;
@@ -38,7 +37,6 @@ import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmappi
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev200827.network.nodes.NodeInfoBuilder;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 
-@Ignore
 public class PortMappingImplTest {
 
     DataBroker dataBroker = null;
index cba2e6ef2a3f85381a128e85a1e24b81d6f9022d..865e49a50bd73611935afb8241e4e0b4e31c9bc0 100644 (file)
@@ -27,7 +27,6 @@ import java.util.Random;
 import java.util.concurrent.ExecutionException;
 import org.eclipse.jdt.annotation.NonNull;
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.opendaylight.mdsal.binding.api.DataBroker;
 import org.opendaylight.mdsal.binding.api.ReadTransaction;
@@ -97,7 +96,6 @@ import org.opendaylight.yangtools.yang.common.Uint32;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-@Ignore
 public class PortMappingVersion121Test {
 
     private static final Logger LOG = LoggerFactory.getLogger(PortMappingVersion121Test.class);
index ee2f9e7a8bbfabe8546e664cc2a25365135647a2..b6b837a4d4371bd17abe7de0ffa7c1ed8db764ae 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.transportpce.common.test;
 
-import org.junit.Ignore;
 import org.junit.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -16,7 +15,6 @@ public class TransportPCETest {
 
     private static final Logger LOG = LoggerFactory.getLogger(TransportPCETest.class);
 
-    @Ignore
     @Test
     public void test() {
         LOG.info("test");
index c4b7c254a59a01b4c652d865bc0b3ae519e64d72..73842a31c688a3848fd68b5af9bd2526c4817304 100644 (file)
@@ -195,7 +195,6 @@ public class OlmPowerServiceImplTest  extends AbstractTest {
         Assert.assertEquals("Failed", output.getResult());
     }
 
-    @Ignore
     @Test
     public void testCalculateSpanlossBase3() {
         NetworkKey overlayTopologyKey = new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID));
@@ -220,7 +219,6 @@ public class OlmPowerServiceImplTest  extends AbstractTest {
     }
 
 
-    @Ignore
     @Test
     public void testCalculateSpanlossBase4() {
         NetworkKey overlayTopologyKey = new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID));
@@ -241,7 +239,6 @@ public class OlmPowerServiceImplTest  extends AbstractTest {
 
     }
 
-    @Ignore
     @Test
     public void testCalculateSpanlossBase5() {
         NetworkKey overlayTopologyKey = new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID));
@@ -288,7 +285,6 @@ public class OlmPowerServiceImplTest  extends AbstractTest {
         Assert.assertEquals(null, output);
     }
 
-    @Ignore
     @Test
     public void testServicePowerReset() {
         ServicePowerResetInput input = OlmPowerServiceRpcImplUtil.getServicePowerResetInput();
@@ -296,7 +292,6 @@ public class OlmPowerServiceImplTest  extends AbstractTest {
         Assert.assertEquals(null, output);
     }
 
-    @Ignore
     @Test
     public void testServicePowerTurndownSuccessResult() {
         ServicePowerTurndownInput servicePowerTurndownInput = OlmPowerServiceRpcImplUtil.getServicePowerTurndownInput();
index 82afbdb13988d882f4df8554a1dd61d5c8ae94a6..35356fee8a55676712b22a30fb36e62efc2446e2 100644 (file)
@@ -12,7 +12,10 @@ import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Ignore;
 import org.junit.Test;
-import org.opendaylight.mdsal.binding.api.DataBroker;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnitRunner;
+import org.opendaylight.mdsal.binding.dom.codec.spi.BindingDOMCodecServices;
 import org.opendaylight.transportpce.common.network.NetworkTransactionImpl;
 import org.opendaylight.transportpce.common.network.RequestProcessor;
 import org.opendaylight.transportpce.pce.gnpy.ConnectToGnpyServer;
@@ -20,16 +23,18 @@ import org.opendaylight.transportpce.pce.gnpy.JerseyServer;
 import org.opendaylight.transportpce.pce.utils.PceTestData;
 import org.opendaylight.transportpce.pce.utils.PceTestUtils;
 import org.opendaylight.transportpce.test.AbstractTest;
-import org.opendaylight.transportpce.test.DataStoreContext;
+import org.opendaylight.yangtools.yang.model.parser.api.YangParserFactory;
 
 @Ignore
-//@RunWith(MockitoJUnitRunner.class)
+@RunWith(MockitoJUnitRunner.class)
 public class PceSendingPceRPCsTest extends AbstractTest {
 
     private PceSendingPceRPCs pceSendingPceRPCs;
     private NetworkTransactionImpl networkTransaction;
-    private DataStoreContext dataStoreContext = this.getDataStoreContextUtil();
-    private DataBroker dataBroker = this.getDataBroker();
+    @Mock
+    private YangParserFactory yangParserFactory;
+    @Mock
+    private BindingDOMCodecServices bindingDOMCodecServices;
     private JerseyServer jerseyServer = new JerseyServer();
 
 
@@ -37,8 +42,8 @@ public class PceSendingPceRPCsTest extends AbstractTest {
     public void setUp() {
         networkTransaction = new NetworkTransactionImpl(new RequestProcessor(this.getDataBroker()));
         PceTestUtils.writeNetworkInDataStore(this.getDataBroker());
-        pceSendingPceRPCs =
-                new PceSendingPceRPCs(PceTestData.getPCE_test1_request_54(), networkTransaction, null);
+        pceSendingPceRPCs = new PceSendingPceRPCs(PceTestData.getPCE_test1_request_54(),
+                        networkTransaction, bindingDOMCodecServices);
     }
 
     @Test
index 44b2716047ca733cb41d362ad539525e97a02674..8adffb2cee7f6eab709c3d1cc9d2ba6c11dc55e6 100644 (file)
@@ -19,13 +19,11 @@ import org.opendaylight.transportpce.pce.utils.PceTestData;
 import org.opendaylight.transportpce.pce.utils.PceTestUtils;
 import org.opendaylight.transportpce.pce.utils.TransactionUtils;
 import org.opendaylight.transportpce.test.AbstractTest;
-import org.opendaylight.transportpce.test.DataStoreContext;
 
 @Ignore
 public class PceConstraintsCalcTest extends AbstractTest {
-    private static PceConstraintsCalc pceConstraintsCalc = null;
+    private static PceConstraintsCalc pceConstraintsCalc;
     private static NetworkTransactionService networkTransactionService = null;
-    private DataStoreContext dataStoreContext = this.getDataStoreContextUtil();
     private DataBroker dataBroker = this.getDataBroker();
 
     @Before
index bab81ffd37b7cf95de5cea3ac78bd4e8b66ace41..1fa9b66646812745a2006cbc8e93427a7540bb47 100644 (file)
@@ -42,6 +42,9 @@ import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdes
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev200629.path.description.atoz.direction.AToZ;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev200629.path.description.atoz.direction.AToZBuilder;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev200629.path.description.atoz.direction.AToZKey;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev200629.path.description.ztoa.direction.ZToA;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev200629.path.description.ztoa.direction.ZToABuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev200629.path.description.ztoa.direction.ZToAKey;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev200629.pce.resource.Resource;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev200629.pce.resource.ResourceBuilder;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev200629.pce.resource.resource.resource.TerminationPoint;
@@ -76,13 +79,13 @@ public class GnpyUtilitiesImplTest extends AbstractTest {
             networkReader = new JsonReader(gnpyNetwork);
             Networks networks = (Networks) JsonUtil.getInstance().getDataObjectFromJson(networkReader,
                     QName.create("urn:ietf:params:xml:ns:yang:ietf-network", "2018-02-26", "networks"));
-            saveOpenRoadmNetwork(networks.getNetwork().get(0), NetworkUtils.UNDERLAY_NETWORK_ID);
+            saveOpenRoadmNetwork(networks.getNetwork().values().iterator().next(), NetworkUtils.UNDERLAY_NETWORK_ID);
             // load openroadm-topology
             Reader gnpyTopo = new FileReader("src/test/resources/gnpy/gnpy_topology.json");
             topoReader = new JsonReader(gnpyTopo);
             networks = (Networks) JsonUtil.getInstance().getDataObjectFromJson(topoReader,
                     QName.create("urn:ietf:params:xml:ns:yang:ietf-network", "2018-02-26", "networks"));
-            saveOpenRoadmNetwork(networks.getNetwork().get(0), NetworkUtils.OVERLAY_NETWORK_ID);
+            saveOpenRoadmNetwork(networks.getNetwork().values().iterator().next(), NetworkUtils.OVERLAY_NETWORK_ID);
         } catch (FileNotFoundException | InterruptedException | ExecutionException e) {
             LOG.error("Cannot init test ", e);
             fail("Cannot init test ");
@@ -126,7 +129,8 @@ public class GnpyUtilitiesImplTest extends AbstractTest {
     @Test
     public void askNewPathFromGnpyNullResultTest() throws Exception {
         gnpyUtilitiesImpl = new GnpyUtilitiesImpl(networkTransaction,
-                PceTestData.getGnpyPCERequest("XPONDER-1", "XPONDER-2"), null);
+                PceTestData.getGnpyPCERequest("XPONDER-1", "XPONDER-2"),
+                JsonUtil.getInstance().getBindingDOMCodecServices());
         assertNull("No hard constraints should be available", gnpyUtilitiesImpl.askNewPathFromGnpy(null));
 
     }
@@ -134,7 +138,8 @@ public class GnpyUtilitiesImplTest extends AbstractTest {
     @Test
     public void askNewPathFromGnpyTest() throws Exception {
         gnpyUtilitiesImpl = new GnpyUtilitiesImpl(networkTransaction,
-                PceTestData.getGnpyPCERequest("XPONDER-3", "XPONDER-4"), null);
+                PceTestData.getGnpyPCERequest("XPONDER-3", "XPONDER-4"),
+                JsonUtil.getInstance().getBindingDOMCodecServices());
         PceConstraintsCalc constraints = new PceConstraintsCalc(PceTestData.getPCE_simpletopology_test1_request(),
                 networkTransaction);
         PceConstraints pceHardConstraints = constraints.getPceHardConstraints();
@@ -151,7 +156,8 @@ public class GnpyUtilitiesImplTest extends AbstractTest {
         ZToADirectionBuilder ztoADirectionBldr = buildZtoA();
 
         gnpyUtilitiesImpl = new GnpyUtilitiesImpl(networkTransaction,
-                PceTestData.getGnpyPCERequest("XPONDER-1", "XPONDER-2"), null);
+                PceTestData.getGnpyPCERequest("XPONDER-1", "XPONDER-2"),
+                JsonUtil.getInstance().getBindingDOMCodecServices());
         PceConstraintsCalc constraints = new PceConstraintsCalc(PceTestData.getPCE_simpletopology_test1_request(),
                 networkTransaction);
         PceConstraints pceHardConstraints = constraints.getPceHardConstraints();
@@ -177,9 +183,15 @@ public class GnpyUtilitiesImplTest extends AbstractTest {
     }
 
     private ZToADirectionBuilder buildZtoA() {
+        ZToAKey clientKey = new ZToAKey("key");
+        TerminationPoint stp = new TerminationPointBuilder()
+                .setTpId("tpName").setTpNodeId("xname")
+                .build();
+        Resource clientResource = new ResourceBuilder().setResource(stp).build();
+        ZToA firstResource = new ZToABuilder().setId("tpName").withKey(clientKey).setResource(clientResource).build();
         return new ZToADirectionBuilder()
                 .setRate(Uint32.valueOf(100))
-                .setZToA(Map.of())
+                .setZToA(Map.of(firstResource.key(),firstResource))
                 .setZToAWavelengthNumber(Uint32.valueOf(0));
 
     }
index 64a5c728337bca146d7a9286f9549ddaff57d8bd..2275bba0fad866baa10e1d73e20dc1bd7cdc596e 100644 (file)
@@ -12,20 +12,18 @@ import org.junit.Before;
 import org.junit.Ignore;
 import org.junit.Test;
 import org.mockito.Mockito;
-import org.opendaylight.transportpce.common.network.NetworkTransactionImpl;
+import org.opendaylight.mdsal.binding.dom.codec.spi.BindingDOMCodecServices;
 import org.opendaylight.transportpce.test.AbstractTest;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.org.openroadm.device.container.OrgOpenroadmDevice;
 
 @Ignore
 public class ServiceDataStoreOperationsImplTest extends AbstractTest {
 
-    ServiceDataStoreOperationsImpl serviceDataStoreOperations;
-    NetworkTransactionImpl networkTransaction = Mockito.mock(NetworkTransactionImpl.class);
-    OrgOpenroadmDevice orgOpenroadmDevice = Mockito.mock(OrgOpenroadmDevice.class);
+    private ServiceDataStoreOperationsImpl serviceDataStoreOperations;
+    private BindingDOMCodecServices bindingDOMCodecServices = Mockito.mock(BindingDOMCodecServices.class);
 
     @Before
     public void setUp() throws GnpyException {
-        serviceDataStoreOperations = new ServiceDataStoreOperationsImpl(null);
+        serviceDataStoreOperations = new ServiceDataStoreOperationsImpl(bindingDOMCodecServices);
     }
 
     @Test
index cf82d0ae0e739e8188fca35a6d0050e5c0563e38..097644acd7f78b47196e2fbb9172defa2ee14287 100644 (file)
@@ -10,7 +10,6 @@ package org.opendaylight.transportpce.pce.graph;
 
 import org.junit.Assert;
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.opendaylight.transportpce.pce.networkanalyzer.PceLink;
 import org.opendaylight.transportpce.pce.networkanalyzer.PceOpticalNode;
@@ -21,7 +20,6 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.Node;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.Link;
 
-@Ignore
 public class PceGraphEdgeTest {
 
     private Link link = null;
index ea8cb4a4ff3a22056868ab1069f7d91f6f8d6db5..3776e404f7c2eb595b2c8b54a66fc190c709872a 100644 (file)
@@ -12,7 +12,6 @@ import java.util.Map;
 import java.util.Optional;
 import org.junit.Assert;
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.opendaylight.transportpce.pce.constraints.PceConstraints;
 import org.opendaylight.transportpce.pce.networkanalyzer.PceLink;
@@ -31,7 +30,6 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.Node;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.Link;
 
-@Ignore
 public class PceGraphTest {
 
     private Link link = null;
index 9ac12d85b47d90c40f430f7a690da36753d73b1f..f53a3ad970bde86deed7242695ffcfcea23e803b 100644 (file)
@@ -14,8 +14,8 @@ import java.util.List;
 import java.util.ServiceLoader;
 import org.opendaylight.binding.runtime.api.BindingRuntimeContext;
 import org.opendaylight.binding.runtime.spi.BindingRuntimeHelpers;
-import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer;
 import org.opendaylight.mdsal.binding.dom.codec.impl.BindingCodecContext;
+import org.opendaylight.mdsal.binding.dom.codec.spi.BindingDOMCodecServices;
 import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.binding.YangModelBindingProvider;
 import org.opendaylight.yangtools.yang.binding.YangModuleInfo;
@@ -26,7 +26,7 @@ import org.opendaylight.yangtools.yang.data.codec.gson.JSONCodecFactorySupplier;
 import org.opendaylight.yangtools.yang.data.codec.gson.JsonParserStream;
 import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNormalizedNodeStreamWriter;
 import org.opendaylight.yangtools.yang.data.impl.schema.NormalizedNodeResult;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -36,9 +36,8 @@ public final class JsonUtil {
     private static final Logger LOG = LoggerFactory.getLogger(JsonUtil.class);
     private static JsonUtil instance;
 
-    private SchemaContext schemaCtx;
-
-    private BindingNormalizedNodeSerializer codecRegistry;
+    private EffectiveModelContext schemaCtx;
+    private BindingDOMCodecServices bindingDOMCodecServices;
 
     private JsonUtil() {
         List<YangModuleInfo> moduleInfos = new LinkedList<>();
@@ -48,13 +47,8 @@ public final class JsonUtil {
         }
         /* Create the schema context for loaded models */
         this.schemaCtx = BindingRuntimeHelpers.createEffectiveModel(moduleInfos);
-        if (schemaCtx == null) {
-            throw new IllegalStateException("Failed to load schema context");
-        }
-        // Create the binding binding normalized node codec registry
-        BindingRuntimeContext bindingContext =
-                BindingRuntimeHelpers.createRuntimeContext();
-        this.codecRegistry = new BindingCodecContext(bindingContext);
+        BindingRuntimeContext bindingContext = BindingRuntimeHelpers.createRuntimeContext();
+        bindingDOMCodecServices = new BindingCodecContext(bindingContext);
     }
 
     public static JsonUtil getInstance() {
@@ -71,8 +65,8 @@ public final class JsonUtil {
                         JSONCodecFactorySupplier.RFC7951.getShared(schemaCtx), schemaCtx);) {
             jsonParser.parse(reader);
             YangInstanceIdentifier yangId = YangInstanceIdentifier.of(pathQname);
-            if (codecRegistry.fromNormalizedNode(yangId, result.getResult()) != null) {
-                return codecRegistry.fromNormalizedNode(yangId, result.getResult()).getValue();
+            if (bindingDOMCodecServices.fromNormalizedNode(yangId, result.getResult()) != null) {
+                return bindingDOMCodecServices.fromNormalizedNode(yangId, result.getResult()).getValue();
             } else {
                 return null;
             }
@@ -82,4 +76,8 @@ public final class JsonUtil {
         }
 
     }
+
+    public BindingDOMCodecServices getBindingDOMCodecServices() {
+        return bindingDOMCodecServices;
+    }
 }
index bf7b952e2955181c5963149faf96305e757a5fcb..0debec86f0d0c91343ce25e1beca5b79f47b216e 100644 (file)
@@ -37,13 +37,13 @@ import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.Service
 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.TempServiceDeleteInput;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.TempServiceDeleteInputBuilder;
 
+@Ignore
 /**
  * Test RendererServiceWrapper class.
  *
  * @author Martial Coulibaly ( martial.coulibaly@gfi.com ) on behalf of Orange
  *
  */
-@Ignore
 public class RendererServiceWrapperTest extends AbstractTest {
     @Mock
     private RendererServiceOperations rendererServiceOperationsMock;
index 611fa86e87b3cd523d3465f51c1948c192ef27c7..704cd185d6a82aec5d4878e3da2f147033c9820d 100644 (file)
@@ -107,7 +107,12 @@ Author: Martial Coulibaly <martial.coulibaly@gfi.com> on behalf of Orange
       <artifactId>mockito-core</artifactId>
       <scope>test</scope>
     </dependency>
-
+    <dependency>
+      <groupId>com.google.code.findbugs</groupId>
+      <artifactId>jsr305</artifactId>
+      <version>3.0.2</version>
+      <scope>test</scope>
+    </dependency>
   </dependencies>
 
 </project>
index 3fdad4da75b1fc47f53232f387216a0a7610c50f..42255eb68a0d739477d99265ae2847c41a14197f 100644 (file)
@@ -19,6 +19,7 @@ import com.google.common.util.concurrent.ListenableFuture;
 import com.google.common.util.concurrent.ListeningExecutorService;
 import com.google.common.util.concurrent.MoreExecutors;
 import java.nio.charset.Charset;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.UUID;
 import java.util.concurrent.CountDownLatch;
@@ -26,15 +27,13 @@ import java.util.concurrent.ExecutionException;
 import java.util.concurrent.Executors;
 import java.util.stream.Collectors;
 import org.eclipse.jdt.annotation.Nullable;
-import org.junit.BeforeClass;
+import org.junit.Before;
 import org.junit.Ignore;
 import org.junit.Test;
 import org.opendaylight.transportpce.common.InstanceIdentifiers;
 import org.opendaylight.transportpce.common.NetworkUtils;
 import org.opendaylight.transportpce.tapi.utils.TopologyDataUtils;
 import org.opendaylight.transportpce.test.AbstractTest;
-import org.opendaylight.transportpce.test.DataStoreContext;
-import org.opendaylight.transportpce.test.DataStoreContextImpl;
 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.AdministrativeState;
 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.CapacityUnit;
 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.ForwardingDirection;
@@ -46,6 +45,7 @@ import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.Port
 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.TerminationDirection;
 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.TerminationState;
 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.Uuid;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.global._class.Name;
 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.dsr.rev181210.DIGITALSIGNALTYPE100GigE;
 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.dsr.rev181210.DIGITALSIGNALTYPE10GigELAN;
 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.odu.rev181210.ODUTYPEODU2E;
@@ -60,6 +60,7 @@ import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.ge
 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.node.NodeRuleGroup;
 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.node.OwnedNodeEdgePoint;
 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.node.rule.group.NodeEdgePoint;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.node.rule.group.Rule;
 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.Link;
 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.Node;
 import org.opendaylight.yangtools.yang.common.RpcResult;
@@ -74,25 +75,23 @@ public class TapiTopologyImplTest extends AbstractTest {
     private static ListeningExecutorService executorService;
     private static CountDownLatch endSignal;
     private static final int NUM_THREADS = 3;
-    private static DataStoreContext dataStoreContextUtil;
 
-    @BeforeClass
-    public static void setUp() throws InterruptedException {
+    @Before
+    public void setUp() throws InterruptedException {
         executorService = MoreExecutors.listeningDecorator(Executors.newFixedThreadPool(NUM_THREADS));
         endSignal = new CountDownLatch(1);
-        dataStoreContextUtil = new DataStoreContextImpl();
-        TopologyDataUtils.writeTopologyFromFileToDatastore(dataStoreContextUtil,
+        TopologyDataUtils.writeTopologyFromFileToDatastore(getDataStoreContextUtil(),
             TopologyDataUtils.OPENROADM_TOPOLOGY_FILE, InstanceIdentifiers.OVERLAY_NETWORK_II);
-        TopologyDataUtils.writeTopologyFromFileToDatastore(dataStoreContextUtil,
+        TopologyDataUtils.writeTopologyFromFileToDatastore(getDataStoreContextUtil(),
             TopologyDataUtils.OTN_TOPOLOGY_FILE, InstanceIdentifiers.OTN_NETWORK_II);
-        TopologyDataUtils.writePortmappingFromFileToDatastore(dataStoreContextUtil);
+        TopologyDataUtils.writePortmappingFromFileToDatastore(getDataStoreContextUtil());
         LOG.info("setup done");
     }
 
     @Test
     public void getTopologyDetailsForOpenroadmTopologyWhenSuccessful() throws ExecutionException, InterruptedException {
         GetTopologyDetailsInput input = TopologyDataUtils.buildGetTopologyDetailsInput(NetworkUtils.OVERLAY_NETWORK_ID);
-        TapiTopologyImpl tapiTopoImpl = new TapiTopologyImpl(dataStoreContextUtil.getDataBroker());
+        TapiTopologyImpl tapiTopoImpl = new TapiTopologyImpl(getDataBroker());
         ListenableFuture<RpcResult<GetTopologyDetailsOutput>> result = tapiTopoImpl.getTopologyDetails(input);
         result.addListener(new Runnable() {
             @Override
@@ -106,24 +105,29 @@ public class TapiTopologyImplTest extends AbstractTest {
         Topology topology = rpcResult.getResult().getTopology();
         assertNotNull("Topology should not be null", topology);
         assertEquals("Nodes list size should be 1", 1, topology.getNode().size());
+        List<Node> topologyNodeList = new ArrayList<>(topology.nonnullNode().values());
+        List<Node> nodeList = new ArrayList<>(topologyNodeList);
+        List<Name> nameList = new ArrayList<>(nodeList.get(0).nonnullName().values());
         assertEquals("Node name should be TAPI Ethernet Node",
-            "TAPI Ethernet Node", topology.getNode().get(0).getName().get(0).getValue());
+            "TAPI Ethernet Node", nameList.get(0).getValue());
         Uuid topoUuid = new Uuid(UUID.nameUUIDFromBytes("Ethernet Topology".getBytes()).toString());
         Uuid nodeUuid = new Uuid(UUID.nameUUIDFromBytes("TAPI Ethernet Node".getBytes()).toString());
         assertEquals("incorrect topology uuid", topoUuid, topology.getUuid());
-        assertEquals("incorrect node uuid", nodeUuid, topology.getNode().get(0).getUuid());
+        assertEquals("incorrect node uuid", nodeUuid, topologyNodeList.get(0).getUuid());
         Uuid onep1Uuid = new Uuid(UUID.nameUUIDFromBytes("OwnedNodeEdgePoint 0".getBytes()).toString());
         Uuid onep2Uuid = new Uuid(UUID.nameUUIDFromBytes("OwnedNodeEdgePoint 1".getBytes()).toString());
+        List<OwnedNodeEdgePoint> edgePointList = new ArrayList<>(topologyNodeList.get(0)
+                .nonnullOwnedNodeEdgePoint().values());
         assertEquals("incorrect uuid for nep1",
-            onep1Uuid, topology.getNode().get(0).getOwnedNodeEdgePoint().get(1).getUuid());
+            onep1Uuid, edgePointList.get(1).getUuid());
         assertEquals("incorrect uuid for nep1",
-            onep2Uuid, topology.getNode().get(0).getOwnedNodeEdgePoint().get(0).getUuid());
+            onep2Uuid, edgePointList.get(0).getUuid());
     }
 
     @Test
     public void getTopologyDetailsForOtnTopologyWhenSuccessful() throws ExecutionException, InterruptedException {
         GetTopologyDetailsInput input = TopologyDataUtils.buildGetTopologyDetailsInput(NetworkUtils.OTN_NETWORK_ID);
-        TapiTopologyImpl tapiTopoImpl = new TapiTopologyImpl(dataStoreContextUtil.getDataBroker());
+        TapiTopologyImpl tapiTopoImpl = new TapiTopologyImpl(getDataBroker());
         ListenableFuture<RpcResult<GetTopologyDetailsOutput>> result = tapiTopoImpl.getTopologyDetails(input);
         result.addListener(new Runnable() {
             @Override
@@ -142,9 +146,9 @@ public class TapiTopologyImplTest extends AbstractTest {
         assertEquals("incorrect topology uuid", topoUuid, topology.getUuid());
         assertEquals("topology name should be T0 - Multi-layer topology",
             "T0 - Multi-layer topology",
-            topology.getName().get(0).getValue());
+            topology.nonnullName().values().stream().findFirst().get().getValue());
 
-        List<Node> nodes = topology.getNode().values().stream()
+        List<Node> nodes = topology.nonnullNode().values().stream()
             .sorted((n1,n2) -> n1.getUuid().getValue().compareTo(n2.getUuid().getValue()))
             .collect(Collectors.toList());
         Uuid node1Uuid = new Uuid(UUID.nameUUIDFromBytes("SPDR-SA1-XPDR1+DSR".getBytes(Charset.forName("UTF-8")))
@@ -160,7 +164,7 @@ public class TapiTopologyImplTest extends AbstractTest {
             .toString());
         checkOtsiNode(nodes.get(3), node4Uuid, true);
 
-        List<Link> links = topology.getLink().values().stream()
+        List<Link> links = topology.nonnullLink().values().stream()
             .sorted((l1, l2) -> l1.getUuid().getValue().compareTo(l2.getUuid().getValue()))
             .collect(Collectors.toList());
         checkTransitionalLink(links.get(0), topoUuid, node1Uuid, node3Uuid, "DSR+XPDR1-NETWORK1",
@@ -176,12 +180,12 @@ public class TapiTopologyImplTest extends AbstractTest {
         assertEquals("life-cycle state should be INSTALLED", LifecycleState.INSTALLED, node.getLifecycleState());
         assertEquals("operational state should be ENABLED", OperationalState.ENABLED, node.getOperationalState());
         assertEquals("value-name should be 'dsr/odu node name'",
-             "dsr/odu node name", node.getName().get(0).getValueName());
+             "dsr/odu node name", node.nonnullName().values().stream().findFirst().get().getValueName());
         assertEquals("dsr node should manage 2 protocol layers : dsr and odu",
             2, node.getLayerProtocolName().size());
         assertThat("dsr node should manage 2 protocol layers : dsr and odu",
             node.getLayerProtocolName(), hasItems(LayerProtocolName.DSR, LayerProtocolName.ODU));
-        List<OwnedNodeEdgePoint> neps = node.getOwnedNodeEdgePoint().values().stream()
+        List<OwnedNodeEdgePoint> neps = node.nonnullOwnedNodeEdgePoint().values().stream()
             .sorted((nep1, nep2) -> nep1.getUuid().getValue().compareTo(nep2.getUuid().getValue()))
             .collect(Collectors.toList());
         if (isSwitch) {
@@ -194,7 +198,7 @@ public class TapiTopologyImplTest extends AbstractTest {
             Uuid networkNepUuid = new Uuid(
                     UUID.nameUUIDFromBytes("DSR+XPDR2-NETWORK1".getBytes(Charset.forName("UTF-8"))).toString());
             checkNepNetworkODU4(nep2, networkNepUuid, "XPDR2-NETWORK1", "NodeEdgePoint_N1");
-            List<NodeRuleGroup> nrgList = node.getNodeRuleGroup().values().stream()
+            List<NodeRuleGroup> nrgList = node.nonnullNodeRuleGroup().values().stream()
                 .sorted((nrg1, nrg2) -> nrg1.getUuid().getValue().compareTo(nrg2.getUuid().getValue()))
                 .collect(Collectors.toList());
             checkNodeRuleGroupForSwitchDSR(nrgList, client4NepUuid, networkNepUuid, nodeUuid);
@@ -209,7 +213,7 @@ public class TapiTopologyImplTest extends AbstractTest {
             Uuid networkNepUuid = new Uuid(
                     UUID.nameUUIDFromBytes("DSR+XPDR1-NETWORK1".getBytes(Charset.forName("UTF-8"))).toString());
             checkNepNetworkODU4(nep2, networkNepUuid, "XPDR1-NETWORK1", "NodeEdgePoint_N1");
-            List<NodeRuleGroup> nrgList = node.getNodeRuleGroup().values().stream()
+            List<NodeRuleGroup> nrgList = node.nonnullNodeRuleGroup().values().stream()
                 .sorted((nrg1, nrg2) -> nrg1.getUuid().getValue().compareTo(nrg2.getUuid().getValue()))
                 .collect(Collectors.toList());
             checkNodeRuleGroupForMuxDSR(nrgList, client4NepUuid, networkNepUuid, nodeUuid);
@@ -223,12 +227,12 @@ public class TapiTopologyImplTest extends AbstractTest {
         assertEquals("life-cycle state should be INSTALLED", LifecycleState.INSTALLED, node.getLifecycleState());
         assertEquals("operational state should be ENABLED", OperationalState.ENABLED, node.getOperationalState());
         assertEquals("value-name should be 'dsr/odu node name'",
-             "otsi node name", node.getName().get(0).getValueName());
+             "otsi node name", node.nonnullName().values().stream().findFirst().get().getValueName());
         assertEquals("otsi node should manage a single protocol layer : PHOTONIC_MEDIA",
             1, node.getLayerProtocolName().size());
         assertEquals("otsi node should manage a single protocol layer : PHOTONIC_MEDIA",
             LayerProtocolName.PHOTONICMEDIA, node.getLayerProtocolName().get(0));
-        List<OwnedNodeEdgePoint> neps = node.getOwnedNodeEdgePoint().values().stream()
+        List<OwnedNodeEdgePoint> neps = node.nonnullOwnedNodeEdgePoint().values().stream()
             .sorted((nep1, nep2) -> nep1.getUuid().getValue().compareTo(nep2.getUuid().getValue()))
             .collect(Collectors.toList());
         if (isSwitch) {
@@ -241,7 +245,7 @@ public class TapiTopologyImplTest extends AbstractTest {
             Uuid enepUuid = new Uuid(
                     UUID.nameUUIDFromBytes("eOTSi+XPDR2-NETWORK2".getBytes(Charset.forName("UTF-8"))).toString());
             checkNepOtsiNode(nep2, enepUuid, "XPDR2-NETWORK2", "eNodeEdgePoint_2");
-            List<NodeRuleGroup> nrgList = node.getNodeRuleGroup().values().stream()
+            List<NodeRuleGroup> nrgList = node.nonnullNodeRuleGroup().values().stream()
                 .sorted((nrg1, nrg2) -> nrg1.getUuid().getValue().compareTo(nrg2.getUuid().getValue()))
                 .collect(Collectors.toList());
             checkNodeRuleGroupForSwitchOTSi(nrgList, enepUuid, inepUuid, nodeUuid);
@@ -255,7 +259,7 @@ public class TapiTopologyImplTest extends AbstractTest {
             Uuid inepUuid = new Uuid(
                     UUID.nameUUIDFromBytes("iOTSi+XPDR1-NETWORK1".getBytes(Charset.forName("UTF-8"))).toString());
             checkNepOtsiNode(nep2, inepUuid, "XPDR1-NETWORK1", "iNodeEdgePoint_1");
-            List<NodeRuleGroup> nrgList = node.getNodeRuleGroup().values().stream()
+            List<NodeRuleGroup> nrgList = node.nonnullNodeRuleGroup().values().stream()
                 .sorted((nrg1, nrg2) -> nrg1.getUuid().getValue().compareTo(nrg2.getUuid().getValue()))
                 .collect(Collectors.toList());
             checkNodeRuleGroupForMuxOTSi(nrgList, enepUuid, inepUuid, nodeUuid);
@@ -264,10 +268,12 @@ public class TapiTopologyImplTest extends AbstractTest {
 
     private void checkNepClient10G(OwnedNodeEdgePoint nep, Uuid nepUuid, String portName, String nepName) {
         assertEquals("bad uuid for " + portName, nepUuid, nep.getUuid());
+        List<Name> nameList = new ArrayList<>(nep.nonnullName().values());
+        Name name = nameList.get(0);
         assertEquals("value of client nep should be '" + portName + "'",
-            portName, nep.getName().get(0).getValue());
+            portName, name.getValue());
         assertEquals("value-name of client nep for '" + portName + "' should be '" + nepName + "'",
-            nepName, nep.getName().get(0).getValueName());
+            nepName, name.getValueName());
         assertEquals("Client nep should support 2 kind of cep",
             2, nep.getSupportedCepLayerProtocolQualifier().size());
         assertThat("client nep should support 2 kind of cep",
@@ -279,10 +285,12 @@ public class TapiTopologyImplTest extends AbstractTest {
 
     private void checkNepNetworkODU4(OwnedNodeEdgePoint nep, Uuid nepUuid, String portName, String nepName) {
         assertEquals("bad uuid for " + portName, nepUuid, nep.getUuid());
+        List<Name> nameList = new ArrayList<>(nep.nonnullName().values());
+        Name name = nameList.get(0);
         assertEquals("value of network nep should be '" + portName + "'",
-            portName, nep.getName().get(0).getValue());
+            portName, name.getValue());
         assertEquals("value-name of client nep for '" + portName + "' should be '" + nepName + "'",
-            nepName, nep.getName().get(0).getValueName());
+            nepName, name.getValueName());
         assertEquals("Network nep should support 1 kind of cep",
             1, nep.getSupportedCepLayerProtocolQualifier().size());
         assertThat("network nep should support 1 kind of cep",
@@ -299,30 +307,32 @@ public class TapiTopologyImplTest extends AbstractTest {
             assertEquals("each node-rule-group should contain 2 NEP for muxponder DSR",
                 2, nodeRuleGroup.getNodeEdgePoint().size());
         }
+        List<NodeEdgePoint> nodeEdgePointList = new ArrayList<>(nrgList.get(0).nonnullNodeEdgePoint().values());
         assertThat("node-rule-group nb 2 should be between nep-client4 and nep-network1",
-            nrgList.get(1).getNodeEdgePoint().get(0).getNodeEdgePointUuid().getValue(),
+            nodeEdgePointList.get(0).getNodeEdgePointUuid().getValue(),
             either(containsString(networkNepUuid.getValue())).or(containsString(clientNepUuid.getValue())));
         assertThat("node-rule-group nb 2 should be between nep-client4 and nep-network1",
-            nrgList.get(1).getNodeEdgePoint().get(1).getNodeEdgePointUuid().getValue(),
+            nodeEdgePointList.get(1).getNodeEdgePointUuid().getValue(),
             either(containsString(networkNepUuid.getValue())).or(containsString(clientNepUuid.getValue())));
         assertEquals("node-rule-group nb 2 should be between nep-client4 and nep-network1 of the same node",
-            nrgList.get(1).getNodeEdgePoint().get(0).getNodeUuid(), nodeUuid);
+            nodeEdgePointList.get(0).getNodeUuid(), nodeUuid);
         assertEquals("node-rule-group nb 2 should be between nep-client4 and nep-network1 of the same node",
-            nrgList.get(1).getNodeEdgePoint().get(1).getNodeUuid(), nodeUuid);
-        assertEquals("node-rule-group nb 2 should contain a single rule", 1, nrgList.get(1).getRule().size());
+            nodeEdgePointList.get(1).getNodeUuid(), nodeUuid);
+        List<Rule> rule = new ArrayList<>(nrgList.get(1).nonnullRule().values());
+        assertEquals("node-rule-group nb 2 should contain a single rule", 1, rule.size());
         assertEquals("local-id of the rule should be 'forward'",
-            "forward", nrgList.get(1).getRule().get(0).getLocalId());
+            "forward", rule.get(0).getLocalId());
         assertEquals("the forwarding rule should be 'MAYFORWARDACROSSGROUP'",
-            ForwardingRule.MAYFORWARDACROSSGROUP, nrgList.get(1).getRule().get(0).getForwardingRule());
+            ForwardingRule.MAYFORWARDACROSSGROUP, rule.get(0).getForwardingRule());
         assertEquals("the rule type should be 'FORWARDING'",
-            RuleType.FORWARDING, nrgList.get(1).getRule().get(0).getRuleType());
+            RuleType.FORWARDING, rule.get(0).getRuleType());
     }
 
     private void checkNodeRuleGroupForSwitchDSR(List<NodeRuleGroup> nrgList, Uuid clientNepUuid, Uuid networkNepUuid,
         Uuid nodeUuid) {
         assertEquals("Switch-DSR should contain a single node rule group", 1, nrgList.size());
         assertEquals("Switch-DSR node-rule-group should contain 8 NEP", 8, nrgList.get(0).getNodeEdgePoint().size());
-        List<NodeEdgePoint> nrg = nrgList.get(0).getNodeEdgePoint().values().stream()
+        List<NodeEdgePoint> nrg = nrgList.get(0).nonnullNodeEdgePoint().values().stream()
             .sorted((nrg1, nrg2) -> nrg1.getNodeEdgePointUuid().getValue()
                 .compareTo(nrg2.getNodeEdgePointUuid().getValue()))
             .collect(Collectors.toList());
@@ -334,36 +344,40 @@ public class TapiTopologyImplTest extends AbstractTest {
             nodeUuid, nrg.get(1).getNodeUuid());
         assertEquals("any item of the node-rule-group should have the same nodeUuid",
             nodeUuid, nrg.get(5).getNodeUuid());
-        assertEquals("node-rule-group should contain a single rule", 1, nrgList.get(0).getRule().size());
+        @Nullable
+        List<Rule> ruleList = new ArrayList<>(nrgList.get(0).nonnullRule().values());
+        assertEquals("node-rule-group should contain a single rule", 1, ruleList.size());
         assertEquals("local-id of the rule should be 'forward'",
-            "forward", nrgList.get(0).getRule().get(0).getLocalId());
+            "forward", ruleList.get(0).getLocalId());
         assertEquals("the forwarding rule should be 'MAYFORWARDACROSSGROUP'",
-            ForwardingRule.MAYFORWARDACROSSGROUP, nrgList.get(0).getRule().get(0).getForwardingRule());
+            ForwardingRule.MAYFORWARDACROSSGROUP, ruleList.get(0).getForwardingRule());
         assertEquals("the rule type should be 'FORWARDING'",
-            RuleType.FORWARDING, nrgList.get(0).getRule().get(0).getRuleType());
+            RuleType.FORWARDING, ruleList.get(0).getRuleType());
     }
 
     private void checkNodeRuleGroupForMuxOTSi(List<NodeRuleGroup> nrgList, Uuid enepUuid, Uuid inepUuid,
         Uuid nodeUuid) {
         assertEquals("Mux-OTSi should contain a single node rule group", 1, nrgList.size());
-        assertEquals("Mux-OTSi node-rule-group should contain 2 NEP", 2, nrgList.get(0).getNodeEdgePoint().size());
+        List<NodeEdgePoint> nodeEdgePointList = new ArrayList<>(nrgList.get(0).getNodeEdgePoint().values());
+        assertEquals("Mux-OTSi node-rule-group should contain 2 NEP", 2, nodeEdgePointList.size());
         assertThat("Mux-OTSi node-rule-group should be between eNEP and iNEP of XPDR1-NETWORK1",
-            nrgList.get(0).getNodeEdgePoint().get(0).getNodeEdgePointUuid().getValue(),
+            nodeEdgePointList.get(0).getNodeEdgePointUuid().getValue(),
             either(containsString(enepUuid.getValue())).or(containsString(inepUuid.getValue())));
         assertThat("Mux-OTSi node-rule-group should be between eNEP and iNEP of XPDR1-NETWORK1",
-            nrgList.get(0).getNodeEdgePoint().get(1).getNodeEdgePointUuid().getValue(),
+            nodeEdgePointList.get(1).getNodeEdgePointUuid().getValue(),
             either(containsString(enepUuid.getValue())).or(containsString(inepUuid.getValue())));
         assertEquals("any item of the node-rule-group should have the same nodeUuid",
-            nodeUuid, nrgList.get(0).getNodeEdgePoint().get(0).getNodeUuid());
+            nodeUuid, nodeEdgePointList.get(0).getNodeUuid());
         assertEquals("any item of the node-rule-group should have the same nodeUuid",
-            nodeUuid, nrgList.get(0).getNodeEdgePoint().get(1).getNodeUuid());
-        assertEquals("node-rule-group should contain a single rule", 1, nrgList.get(0).getRule().size());
+            nodeUuid, nodeEdgePointList.get(1).getNodeUuid());
+        List<Rule> ruleList = new ArrayList<>(nrgList.get(0).nonnullRule().values());
+        assertEquals("node-rule-group should contain a single rule", 1, ruleList.size());
         assertEquals("local-id of the rule should be 'forward'",
-            "forward", nrgList.get(0).getRule().get(0).getLocalId());
+            "forward", ruleList.get(0).getLocalId());
         assertEquals("the forwarding rule should be 'MAYFORWARDACROSSGROUP'",
-            ForwardingRule.MAYFORWARDACROSSGROUP, nrgList.get(0).getRule().get(0).getForwardingRule());
+            ForwardingRule.MAYFORWARDACROSSGROUP, ruleList.get(0).getForwardingRule());
         assertEquals("the rule type should be 'FORWARDING'",
-            RuleType.FORWARDING, nrgList.get(0).getRule().get(0).getRuleType());
+            RuleType.FORWARDING, ruleList.get(0).getRuleType());
     }
 
     private void checkNodeRuleGroupForSwitchOTSi(List<NodeRuleGroup> nrgList, Uuid enepUuid, Uuid inepUuid,
@@ -373,31 +387,35 @@ public class TapiTopologyImplTest extends AbstractTest {
             assertEquals("each node-rule-group should contain 2 NEP for Switch-OTSi",
                 2, nodeRuleGroup.getNodeEdgePoint().size());
         }
+        List<NodeEdgePoint> nodeEdgePointList1 = new ArrayList<>(nrgList.get(3).nonnullNodeEdgePoint().values());
         assertThat("Switch-OTSi node-rule-group nb 4 should be between eNEP and iNEP of XPDR2-NETWORK2",
-            nrgList.get(1).getNodeEdgePoint().get(0).getNodeEdgePointUuid().getValue(),
+            nodeEdgePointList1.get(0).getNodeEdgePointUuid().getValue(),
             either(containsString(enepUuid.getValue())).or(containsString(inepUuid.getValue())));
         assertThat("Switch-OTSi node-rule-group nb 4 should be between eNEP and iNEP of XPDR2-NETWORK2",
-            nrgList.get(1).getNodeEdgePoint().get(1).getNodeEdgePointUuid().getValue(),
+            nodeEdgePointList1.get(1).getNodeEdgePointUuid().getValue(),
             either(containsString(enepUuid.getValue())).or(containsString(inepUuid.getValue())));
+        List<NodeEdgePoint> nodeEdgePointList0 = new ArrayList<>(nrgList.get(0).getNodeEdgePoint().values());
         assertEquals("any item of the node-rule-group should have the same nodeUuid",
-            nodeUuid, nrgList.get(0).getNodeEdgePoint().get(0).getNodeUuid());
+            nodeUuid, nodeEdgePointList0.get(0).getNodeUuid());
         assertEquals("any item of the node-rule-group should have the same nodeUuid",
-            nodeUuid, nrgList.get(0).getNodeEdgePoint().get(1).getNodeUuid());
-        assertEquals("node-rule-group should contain a single rule", 1, nrgList.get(0).getRule().size());
+            nodeUuid, nodeEdgePointList0.get(1).getNodeUuid());
+        List<Rule> ruleList0 = new ArrayList<>(nrgList.get(0).nonnullRule().values());
+        assertEquals("node-rule-group should contain a single rule", 1, ruleList0.size());
         assertEquals("local-id of the rule should be 'forward'",
-            "forward", nrgList.get(0).getRule().get(0).getLocalId());
+            "forward", ruleList0.get(0).getLocalId());
         assertEquals("the forwarding rule should be 'MAYFORWARDACROSSGROUP'",
-            ForwardingRule.MAYFORWARDACROSSGROUP, nrgList.get(0).getRule().get(0).getForwardingRule());
+            ForwardingRule.MAYFORWARDACROSSGROUP, ruleList0.get(0).getForwardingRule());
         assertEquals("the rule type should be 'FORWARDING'",
-            RuleType.FORWARDING, nrgList.get(0).getRule().get(0).getRuleType());
+            RuleType.FORWARDING, ruleList0.get(0).getRuleType());
     }
 
     private void checkNepClient100G(OwnedNodeEdgePoint nep, Uuid nepUuid, String portName, String nepName) {
         assertEquals("bad uuid for " + portName, nepUuid, nep.getUuid());
+        List<Name> nameList = new ArrayList<>(nep.nonnullName().values());
         assertEquals("value of client nep should be '" + portName + "'",
-            portName, nep.getName().get(0).getValue());
+            portName, nameList.get(0).getValue());
         assertEquals("value-name of client nep for '" + portName + "' should be '" + nepName + "'",
-            nepName, nep.getName().get(0).getValueName());
+            nepName, nameList.get(0).getValueName());
         assertEquals("Client nep should support 2 kind of cep",
             2, nep.getSupportedCepLayerProtocolQualifier().size());
         assertThat("client nep should support 2 kind of cep",
@@ -409,10 +427,11 @@ public class TapiTopologyImplTest extends AbstractTest {
 
     private void checkNepOtsiNode(OwnedNodeEdgePoint nep, Uuid nepUuid, String portName, String nepName) {
         assertEquals("bad uuid for " + portName, nepUuid, nep.getUuid());
+        List<Name> nameList = new ArrayList<>(nep.nonnullName().values());
         assertEquals("value of OTSi nep should be '" + portName + "'",
-            portName, nep.getName().get(0).getValue());
+            portName, nameList.get(0).getValue());
         assertEquals("value-name of OTSi nep should be '" + nepName + "'",
-            nepName, nep.getName().get(0).getValueName());
+            nepName, nameList.get(0).getValueName());
         assertEquals("OTSi nep should support 2 kind of cep",
             2, nep.getSupportedCepLayerProtocolQualifier().size());
         assertThat("OTSi nep should support 2 kind of cep",
@@ -457,23 +476,25 @@ public class TapiTopologyImplTest extends AbstractTest {
             hasItems(LayerProtocolName.ODU.getName(), LayerProtocolName.PHOTONICMEDIA.getName()));
         assertEquals("transitional link should be BIDIRECTIONAL",
             ForwardingDirection.BIDIRECTIONAL, link.getDirection());
+        List<org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210
+            .link.NodeEdgePoint> nodeEdgePointList = new ArrayList<>(link.nonnullNodeEdgePoint().values());
         assertEquals("topology uuid should be the same for the two termination point of the link",
-            topoUuid, link.getNodeEdgePoint().get(0).getTopologyUuid());
+            topoUuid, nodeEdgePointList.get(0).getTopologyUuid());
         assertEquals("topology uuid should be the same for the two termination point of the link",
-            topoUuid, link.getNodeEdgePoint().get(1).getTopologyUuid());
+            topoUuid, nodeEdgePointList.get(1).getTopologyUuid());
         assertThat("transitional links should terminate on DSR node and Photonic node",
-            link.getNodeEdgePoint().get(0).getNodeUuid().getValue(),
+            nodeEdgePointList.get(0).getNodeUuid().getValue(),
             either(containsString(node1Uuid.getValue())).or(containsString(node2Uuid.getValue())));
         assertThat("transitional links should terminate on DSR node and Photonic node",
-            link.getNodeEdgePoint().get(1).getNodeUuid().getValue(),
+            nodeEdgePointList.get(1).getNodeUuid().getValue(),
             either(containsString(node1Uuid.getValue())).or(containsString(node2Uuid.getValue())));
         Uuid nep1Uuid = new Uuid(UUID.nameUUIDFromBytes(tp1.getBytes(Charset.forName("UTF-8"))).toString());
         Uuid nep2Uuid = new Uuid(UUID.nameUUIDFromBytes(tp2.getBytes(Charset.forName("UTF-8"))).toString());
         assertThat("transitional links should terminate on " + tp1 + " and " + tp2 + " neps",
-            link.getNodeEdgePoint().get(0).getNodeEdgePointUuid().getValue(),
+            nodeEdgePointList.get(0).getNodeEdgePointUuid().getValue(),
             either(containsString(nep1Uuid.getValue())).or(containsString(nep2Uuid.getValue())));
         assertThat("transitional links should terminate on DSR node and Photonic node",
-            link.getNodeEdgePoint().get(1).getNodeEdgePointUuid().getValue(),
+            nodeEdgePointList.get(1).getNodeEdgePointUuid().getValue(),
             either(containsString(nep1Uuid.getValue())).or(containsString(nep2Uuid.getValue())));
     }
 }
index dbc82005c03b57d5dc951d0681852c1bdb7bb386..fac97ffd99c8ce82c37a03c6399b28c0df4fd46b 100644 (file)
@@ -70,7 +70,8 @@ public final class TopologyDataUtils {
         } else {
             LOG.error("xml file {} not found at {}", topoFile.getName(), topoFile.getAbsolutePath());
         }
-        writeTransaction(dataStoreContextUtil.getDataBroker(), ii, networks.getNetwork().get(0));
+        writeTransaction(dataStoreContextUtil.getDataBroker(), ii,
+                networks.nonnullNetwork().values().stream().findFirst().get());
         LOG.info("extraction from {} stored with success in datastore", topoFile.getName());
     }
 
index 0ae99c5ebd1361c1235a110a00d8be768c9f30e0..42719c8b30c1d0cc01998298d4ad193f1e3d15f1 100644 (file)
  */
 package org.opendaylight.transportpce.test;
 
-import com.google.common.collect.ClassToInstanceMap;
-import com.google.common.collect.ImmutableClassToInstanceMap;
 import com.google.common.collect.ImmutableMap;
-import com.google.common.util.concurrent.ListeningExecutorService;
 import com.google.common.util.concurrent.MoreExecutors;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.ServiceLoader;
 import java.util.concurrent.Executors;
-import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.binding.runtime.spi.BindingRuntimeHelpers;
 import org.opendaylight.mdsal.binding.api.DataBroker;
 import org.opendaylight.mdsal.binding.api.NotificationPublishService;
 import org.opendaylight.mdsal.binding.api.NotificationService;
-import org.opendaylight.mdsal.binding.dom.adapter.AdapterContext;
-import org.opendaylight.mdsal.binding.dom.adapter.BindingDOMDataBrokerAdapter;
-import org.opendaylight.mdsal.binding.dom.adapter.BindingDOMNotificationPublishServiceAdapter;
-import org.opendaylight.mdsal.binding.dom.adapter.BindingDOMNotificationServiceAdapter;
+import org.opendaylight.mdsal.binding.dom.adapter.BindingAdapterFactory;
 import org.opendaylight.mdsal.binding.dom.adapter.ConstantAdapterContext;
 import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer;
+import org.opendaylight.mdsal.binding.dom.codec.impl.BindingCodecContext;
+import org.opendaylight.mdsal.binding.dom.codec.spi.BindingDOMCodecServices;
 import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
 import org.opendaylight.mdsal.dom.api.DOMDataBroker;
-import org.opendaylight.mdsal.dom.api.DOMSchemaService;
-import org.opendaylight.mdsal.dom.api.DOMSchemaServiceExtension;
 import org.opendaylight.mdsal.dom.broker.DOMNotificationRouter;
 import org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker;
+import org.opendaylight.mdsal.dom.spi.FixedDOMSchemaService;
 import org.opendaylight.mdsal.dom.spi.store.DOMStore;
-import org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore;
-import org.opendaylight.yangtools.concepts.ListenerRegistration;
-import org.opendaylight.yangtools.util.ListenerRegistry;
+import org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStoreFactory;
 import org.opendaylight.yangtools.yang.binding.YangModelBindingProvider;
 import org.opendaylight.yangtools.yang.binding.YangModuleInfo;
 import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
-import org.opendaylight.yangtools.yang.model.api.EffectiveModelContextListener;
-import org.opendaylight.yangtools.yang.model.api.EffectiveModelContextProvider;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 public class DataStoreContextImpl implements DataStoreContext {
 
-    private static final Logger LOG = LoggerFactory.getLogger(DataStoreContextImpl.class);
-
     private final Map<LogicalDatastoreType, DOMStore> datastores;
-    private final SchemaContextHolder mockedSchemaContext;
     private final DOMNotificationRouter domNotificationRouter;
     private final DOMDataBroker domDataBroker;
     private final DataBroker dataBroker;
     private final NotificationService notificationService;
     private final NotificationPublishService notificationPublishService;
+    private EffectiveModelContext schemaCtx;
+    private BindingDOMCodecServices bindingDOMCodecServices;
+    private BindingAdapterFactory adapterFactory ;
 
 
     public DataStoreContextImpl() {
-        this.mockedSchemaContext = new SchemaContextHolder();
-        this.datastores = createDatastores();
-        this.domNotificationRouter = DOMNotificationRouter.create(16);
-        this.domDataBroker = createDOMDataBroker();
-        this.dataBroker = createDataBroker();
-        this.notificationService = createNotificationService();
-        this.notificationPublishService = createNotificationPublishService();
-        this.mockedSchemaContext.listeners.streamListeners()
-            .forEach(l -> l.onModelContextUpdated(this.mockedSchemaContext.schemaContext));
+        List<YangModuleInfo> moduleInfos = new LinkedList<>();
+        ServiceLoader<YangModelBindingProvider> yangProviderLoader = ServiceLoader.load(YangModelBindingProvider.class);
+        for (YangModelBindingProvider yangModelBindingProvider : yangProviderLoader) {
+            moduleInfos.add(yangModelBindingProvider.getModuleInfo());
+        }
+        schemaCtx = BindingRuntimeHelpers.createEffectiveModel(moduleInfos);
+        bindingDOMCodecServices = new BindingCodecContext(BindingRuntimeHelpers.createRuntimeContext());
+        adapterFactory = new BindingAdapterFactory(new ConstantAdapterContext(bindingDOMCodecServices));
+        domNotificationRouter = DOMNotificationRouter.create(16);
+        datastores = createDatastores();
+        domDataBroker = createDOMDataBroker();
+        dataBroker = createDataBroker();
+        notificationService = createNotificationService();
+        notificationPublishService = createNotificationPublishService();
     }
 
     @Override
     public DataBroker getDataBroker() {
-        return this.dataBroker;
+        return dataBroker;
     }
 
     @Override
     public DOMDataBroker getDOMDataBroker() {
-        return this.domDataBroker;
+        return domDataBroker;
     }
 
     @Override
     public NotificationService createNotificationService() {
-        return new BindingDOMNotificationServiceAdapter(this.mockedSchemaContext.adapterContext,
-                this.domNotificationRouter);
+        return adapterFactory.createNotificationService(domNotificationRouter);
     }
 
     @Override
     public NotificationPublishService createNotificationPublishService() {
-        return new BindingDOMNotificationPublishServiceAdapter(this.mockedSchemaContext.adapterContext,
-                this.domNotificationRouter);
+        return adapterFactory.createNotificationPublishService(domNotificationRouter);
     }
 
     @Override
     public EffectiveModelContext getSchemaContext() {
-        return this.mockedSchemaContext.schemaContext;
+        return schemaCtx;
     }
 
     @Override
     public BindingNormalizedNodeSerializer getBindingToNormalizedNodeCodec() {
-        return this.mockedSchemaContext.adapterContext.currentSerializer();
+        return bindingDOMCodecServices;
     }
 
     @Override
     public NotificationService getNotificationService() {
-        return this.notificationService;
+        return notificationService;
     }
 
     @Override
     public NotificationPublishService getNotificationPublishService() {
-        return this.notificationPublishService;
+        return notificationPublishService;
     }
 
     private DOMDataBroker createDOMDataBroker() {
-        return new SerializedDOMDataBroker(this.datastores,
+        return new SerializedDOMDataBroker(datastores,
                 MoreExecutors.listeningDecorator(Executors.newSingleThreadExecutor()));
     }
 
-    private ListeningExecutorService getDataTreeChangeListenerExecutor() {
-        return MoreExecutors.newDirectExecutorService();
-    }
-
     private DataBroker createDataBroker() {
-        return new BindingDOMDataBrokerAdapter(this.mockedSchemaContext.adapterContext, getDOMDataBroker());
+        return adapterFactory.createDataBroker(getDOMDataBroker());
     }
 
     private Map<LogicalDatastoreType, DOMStore> createDatastores() {
@@ -133,68 +120,14 @@ public class DataStoreContextImpl implements DataStoreContext {
     }
 
     private DOMStore createConfigurationDatastore() {
-        final InMemoryDOMDataStore store = new InMemoryDOMDataStore("CFG", getDataTreeChangeListenerExecutor());
-        this.mockedSchemaContext.registerSchemaContextListener(store);
-        return store;
+        return InMemoryDOMDataStoreFactory.create("CFG",
+                FixedDOMSchemaService.of(bindingDOMCodecServices.getRuntimeContext()));
     }
 
     private DOMStore createOperationalDatastore() {
-        final InMemoryDOMDataStore store = new InMemoryDOMDataStore("OPER", getDataTreeChangeListenerExecutor());
-        this.mockedSchemaContext.registerSchemaContextListener(store);
-        return store;
+        return InMemoryDOMDataStoreFactory.create("OPER",
+                FixedDOMSchemaService.of(bindingDOMCodecServices.getRuntimeContext()));
     }
 
-    private static final class SchemaContextHolder implements DOMSchemaService, EffectiveModelContextProvider {
-
-        private final EffectiveModelContext schemaContext;
-        private final ListenerRegistry<EffectiveModelContextListener> listeners;
-        private final AdapterContext adapterContext;
-
-        private SchemaContextHolder() {
-            List<YangModuleInfo> moduleInfos = loadModuleInfos();
-            this.schemaContext = BindingRuntimeHelpers.createEffectiveModel(moduleInfos);
-            this.listeners = ListenerRegistry.create();
-            this.adapterContext = new ConstantAdapterContext();
-        }
-
-        @Override
-        public EffectiveModelContext getGlobalContext() {
-            return this.schemaContext;
-        }
-
 
-        /**
-         * Loads all {@link YangModelBindingProvider} on the classpath.
-         *
-         * @return list of known {@link YangModuleInfo}
-         */
-        private List<YangModuleInfo> loadModuleInfos() {
-            List<YangModuleInfo> moduleInfos = new LinkedList<>();
-            ServiceLoader<YangModelBindingProvider> yangProviderLoader =
-                    ServiceLoader.load(YangModelBindingProvider.class);
-            for (YangModelBindingProvider yangModelBindingProvider : yangProviderLoader) {
-                moduleInfos.add(yangModelBindingProvider.getModuleInfo());
-                LOG.debug("Adding [{}] module into known modules", yangModelBindingProvider.getModuleInfo());
-            }
-            return moduleInfos;
-        }
-
-        @Override
-        public ListenerRegistration<EffectiveModelContextListener> registerSchemaContextListener(
-                EffectiveModelContextListener listener) {
-            return this.listeners.register(listener);
-        }
-
-        @Override
-        public @NonNull EffectiveModelContext getEffectiveModelContext() {
-            return this.schemaContext;
-        }
-
-        @Override
-        public @NonNull ClassToInstanceMap<DOMSchemaServiceExtension> getExtensions() {
-            return ImmutableClassToInstanceMap.of();
-        }
-
-
-    }
 }
index b7c8081bd62b554dd4f939e7f0d739176c4c4c5c..3cfd96a59f7b43913af72302ae54ff69431753ab 100644 (file)
@@ -23,7 +23,6 @@ import org.opendaylight.mdsal.binding.api.DataBroker;
 import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
 import org.opendaylight.mdsal.dom.api.DOMDataBroker;
 import org.opendaylight.mdsal.dom.api.DOMDataTreeWriteTransaction;
-import org.opendaylight.transportpce.test.converter.DataObjectConverter;
 import org.opendaylight.transportpce.test.converter.XMLDataObjectConverter;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
@@ -117,14 +116,14 @@ public final class DeviceWrapper {
         Preconditions.checkArgument(initialData != null && !initialData.isEmpty(),
                 "Initial data cannot be null or empty");
         DataStoreContext dsContext = new DataStoreContextImpl();
-        DataObjectConverter xmlConverter = XMLDataObjectConverter.createWithDataStoreUtil(dsContext);
+        XMLDataObjectConverter xmlConverter = XMLDataObjectConverter.createWithDataStoreUtil(dsContext);
         for (Entry<QName, InputStream> entryData : initialData) {
             insertDataIntoDS(xmlConverter, entryData.getValue(), entryData.getKey(), dsContext.getDOMDataBroker());
         }
         return new DeviceWrapper(key, dsContext.getDataBroker(), dsContext.getDOMDataBroker());
     }
 
-    private static void insertDataIntoDS(DataObjectConverter xmlConverter, InputStream xmlDataInputStream,
+    private static void insertDataIntoDS(XMLDataObjectConverter xmlConverter, InputStream xmlDataInputStream,
             QName dataQName, DOMDataBroker domDataBroker) {
         Optional<NormalizedNode<? extends PathArgument, ?>> initialDataNormalizedNodes =
                 xmlConverter.transformIntoNormalizedNode(xmlDataInputStream);