From: guillaume.lambert Date: Wed, 19 Aug 2020 15:23:07 +0000 (+0200) Subject: get rid of mdsal.binding.dom.codec.impl X-Git-Tag: 2.0.0~5 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=transportpce.git;a=commitdiff_plain;h=243c08d8b7ad90b0cbaec76a33a639d6fa96f5c8 get rid of mdsal.binding.dom.codec.impl 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 Change-Id: Id01b032411100c82dbf41b361a9c85d06aeb98d9 --- diff --git a/common/src/main/java/org/opendaylight/transportpce/common/DataStoreContextImpl.java b/common/src/main/java/org/opendaylight/transportpce/common/DataStoreContextImpl.java index c5f5aa006..983d52729 100644 --- a/common/src/main/java/org/opendaylight/transportpce/common/DataStoreContextImpl.java +++ b/common/src/main/java/org/opendaylight/transportpce/common/DataStoreContextImpl.java @@ -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 listeners; - private final BindingNormalizedNodeSerializer bindingStreamCodecs; - private final CurrentAdapterSerializer bindingToNormalized; private final AdapterContext adapterContext; private SchemaContextHolder() { List 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 diff --git a/pce/src/main/java/org/opendaylight/transportpce/pce/gnpy/GnpyResult.java b/pce/src/main/java/org/opendaylight/transportpce/pce/gnpy/GnpyResult.java index dd483c6ba..e07756081 100644 --- a/pce/src/main/java/org/opendaylight/transportpce/pce/gnpy/GnpyResult.java +++ b/pce/src/main/java/org/opendaylight/transportpce/pce/gnpy/GnpyResult.java @@ -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 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"); diff --git a/pce/src/main/java/org/opendaylight/transportpce/pce/gnpy/ServiceDataStoreOperationsImpl.java b/pce/src/main/java/org/opendaylight/transportpce/pce/gnpy/ServiceDataStoreOperationsImpl.java index e1a243c0b..5b6ccaf68 100644 --- a/pce/src/main/java/org/opendaylight/transportpce/pce/gnpy/ServiceDataStoreOperationsImpl.java +++ b/pce/src/main/java/org/opendaylight/transportpce/pce/gnpy/ServiceDataStoreOperationsImpl.java @@ -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(), -