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
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;
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;
@Override
public BindingNormalizedNodeSerializer getBindingToNormalizedNodeCodec() {
- return this.mockedSchemaContext.bindingStreamCodecs;
+ return this.mockedSchemaContext.adapterContext.currentSerializer();
}
@Override
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
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;
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();
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");
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;
@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(), -