get rid of mdsal.binding.dom.codec.impl 94/92194/13
authorguillaume.lambert <guillaume.lambert@orange.com>
Wed, 19 Aug 2020 15:23:07 +0000 (17:23 +0200)
committerguillaume.lambert <guillaume.lambert@orange.com>
Thu, 17 Sep 2020 08:28:01 +0000 (10:28 +0200)
to fix karaf startup issue.

Starting from Aluminium, this package can no more be consumed directly
outside of MDSAL by OSGi bundles- cf mdsal change 89040
https://git.opendaylight.org/gerrit/c/mdsal/+/89040
As a result, the code still builds but hangs at runtime.

Also since schemacontext is being retired, the best option for getting
rid of it is to migrate to EffectiveModelContext ConstantAdapterContext.

https://docs.opendaylight.org/en/latest/release-notes/upgrade-process.html#schemacontext-is-being-retired

JIRA: TRNSPRTPCE-292 TRNSPRTPCE-295
Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Change-Id: Id01b032411100c82dbf41b361a9c85d06aeb98d9

common/src/main/java/org/opendaylight/transportpce/common/DataStoreContextImpl.java
pce/src/main/java/org/opendaylight/transportpce/pce/gnpy/GnpyResult.java
pce/src/main/java/org/opendaylight/transportpce/pce/gnpy/ServiceDataStoreOperationsImpl.java

index c5f5aa00672b13d00a7716d68afb341d9119cd24..983d52729eaa78706b3ff4debcbd05e66fb843f5 100644 (file)
@@ -18,7 +18,6 @@ import java.util.Map;
 import java.util.ServiceLoader;
 import java.util.concurrent.Executors;
 import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.binding.runtime.api.BindingRuntimeContext;
 import org.opendaylight.binding.runtime.spi.BindingRuntimeHelpers;
 import org.opendaylight.mdsal.binding.api.DataBroker;
 import org.opendaylight.mdsal.binding.api.NotificationPublishService;
@@ -28,9 +27,7 @@ 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.ConstantAdapterContext;
-import org.opendaylight.mdsal.binding.dom.adapter.CurrentAdapterSerializer;
 import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer;
-import org.opendaylight.mdsal.binding.dom.codec.impl.BindingCodecContext;
 import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
 import org.opendaylight.mdsal.dom.api.DOMDataBroker;
 import org.opendaylight.mdsal.dom.api.DOMSchemaService;
@@ -103,7 +100,7 @@ public class DataStoreContextImpl implements DataStoreContext {
 
     @Override
     public BindingNormalizedNodeSerializer getBindingToNormalizedNodeCodec() {
-        return this.mockedSchemaContext.bindingStreamCodecs;
+        return this.mockedSchemaContext.adapterContext.currentSerializer();
     }
 
     @Override
@@ -151,19 +148,13 @@ public class DataStoreContextImpl implements DataStoreContext {
 
         private final EffectiveModelContext schemaContext;
         private final ListenerRegistry<EffectiveModelContextListener> listeners;
-        private final BindingNormalizedNodeSerializer bindingStreamCodecs;
-        private final CurrentAdapterSerializer bindingToNormalized;
         private final AdapterContext adapterContext;
 
         private SchemaContextHolder() {
             List<YangModuleInfo> moduleInfos = loadModuleInfos();
             this.schemaContext = BindingRuntimeHelpers.createEffectiveModel(moduleInfos);
             this.listeners = ListenerRegistry.create();
-            BindingRuntimeContext bindingContext =
-                    BindingRuntimeHelpers.createRuntimeContext();
-            this.bindingStreamCodecs = new BindingCodecContext(bindingContext);
-            this.bindingToNormalized = new CurrentAdapterSerializer(new BindingCodecContext(bindingContext));
-            adapterContext = new ConstantAdapterContext(this.bindingToNormalized);
+            this.adapterContext = new ConstantAdapterContext();
         }
 
         @Override
index dd483c6ba37a83b7c6a7440a66be3dd1e320239a..e0775608113b20291ad534e8a621db20eebcafed 100644 (file)
@@ -25,10 +25,10 @@ import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Optional;
 import javax.annotation.Nonnull;
-import org.opendaylight.binding.runtime.api.BindingRuntimeContext;
 import org.opendaylight.binding.runtime.spi.BindingRuntimeHelpers;
+import org.opendaylight.mdsal.binding.dom.adapter.AdapterContext;
+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.spec.reflect.BindingReflections;
 import org.opendaylight.yang.gen.v1.gnpy.path.rev200202.Result;
 import org.opendaylight.yang.gen.v1.gnpy.path.rev200202.explicit.route.hop.type.NumUnnumHop;
@@ -80,6 +80,7 @@ public class GnpyResult {
     private static final Logger LOG = LoggerFactory.getLogger(GnpyResult.class);
     private Response response = null;
     private Map<String, IpAddress> mapNodeRefIp = new HashMap<>();
+    private final AdapterContext adapterContext = new ConstantAdapterContext();
 
     public GnpyResult(String gnpyResponseString, GnpyTopoImpl gnpyTopo) throws GnpyException, Exception {
         this.mapNodeRefIp = gnpyTopo.getMapNodeRefIp();
@@ -89,9 +90,7 @@ public class GnpyResult {
         BindingRuntimeHelpers.createEffectiveModel(moduleInfos);
 
         // Create the binding binding normalized node codec registry
-        BindingRuntimeContext bindingContext =
-                BindingRuntimeHelpers.createRuntimeContext();
-        final BindingNormalizedNodeSerializer codecRegistry = new BindingCodecContext(bindingContext);
+        final BindingNormalizedNodeSerializer codecRegistry = adapterContext.currentSerializer();
 
         // Create the data object
         QName pathQname = QName.create("gnpy:path", "2020-02-02", "result");
index e1a243c0ba47aac77e31c6e5581693a1a931df3b..5b6ccaf685b041faa1bd47f64d03d1dbca75b2b1 100644 (file)
@@ -19,10 +19,7 @@ import java.util.Collection;
 import java.util.Collections;
 import java.util.Optional;
 import org.eclipse.jdt.annotation.NonNull;
-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.spec.reflect.BindingReflections;
 import org.opendaylight.transportpce.common.DataStoreContext;
 import org.opendaylight.transportpce.common.converter.XMLDataObjectConverter;
@@ -92,11 +89,6 @@ public class ServiceDataStoreOperationsImpl implements ServiceDataStoreOperation
         @NonNull
         EffectiveModelContext schemaContext = BindingRuntimeHelpers.createEffectiveModel(moduleInfos);
 
-        // Create the binding binding normalized node codec registry
-        BindingRuntimeContext bindingContext =
-                BindingRuntimeHelpers.createRuntimeContext();
-        final BindingNormalizedNodeSerializer codecRegistry = new BindingCodecContext(bindingContext);
-
         /*
          * This function needs : - context - scPath.getParent() -
          * scPath.getLastComponent().getNamespace(), -