From: Tom Pantelis Date: Thu, 14 Jun 2018 21:47:11 +0000 (-0400) Subject: Advertise ClassLoadingStrategy service X-Git-Tag: release/fluorine~170 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=ef1f1651ca571d57080ee33db3bed0062d346595;p=mdsal.git Advertise ClassLoadingStrategy service The ConfigManagerActivator advertises its ModuleInfoBackedContext as the ClassLoadingStrategy service but the CSS features are being removed. Therefore advertise mdsal's ModuleInfoBackedContext instance. Change-Id: Ie03a25db940d3ae17ae5250cafe9fcc32a5baac7 Signed-off-by: Tom Pantelis Signed-off-by: Robert Varga --- diff --git a/binding/mdsal-binding-dom-codec-osgi/pom.xml b/binding/mdsal-binding-dom-codec-osgi/pom.xml index 0645049cd0..357a0b48f8 100644 --- a/binding/mdsal-binding-dom-codec-osgi/pom.xml +++ b/binding/mdsal-binding-dom-codec-osgi/pom.xml @@ -75,7 +75,7 @@ ${project.groupId}.${project.artifactId} - org.opendaylight.mdsal.binding.dom.codec.osgi.impl.Activator + org.opendaylight.mdsal.binding.dom.codec.osgi.impl.Activator diff --git a/binding/mdsal-binding-dom-codec-osgi/src/main/java/org/opendaylight/mdsal/binding/dom/codec/osgi/impl/Activator.java b/binding/mdsal-binding-dom-codec-osgi/src/main/java/org/opendaylight/mdsal/binding/dom/codec/osgi/impl/Activator.java index dd51b15919..994a88d815 100644 --- a/binding/mdsal-binding-dom-codec-osgi/src/main/java/org/opendaylight/mdsal/binding/dom/codec/osgi/impl/Activator.java +++ b/binding/mdsal-binding-dom-codec-osgi/src/main/java/org/opendaylight/mdsal/binding/dom/codec/osgi/impl/Activator.java @@ -7,8 +7,11 @@ */ package org.opendaylight.mdsal.binding.dom.codec.osgi.impl; +import java.util.ArrayList; import java.util.Collection; +import java.util.List; import org.opendaylight.mdsal.binding.dom.codec.osgi.BindingRuntimeContextService; +import org.opendaylight.mdsal.binding.generator.api.ClassLoadingStrategy; import org.opendaylight.mdsal.binding.generator.impl.ModuleInfoBackedContext; import org.opendaylight.yangtools.concepts.ObjectRegistration; import org.opendaylight.yangtools.yang.binding.YangModuleInfo; @@ -19,9 +22,10 @@ import org.osgi.framework.ServiceRegistration; import org.osgi.util.tracker.BundleTracker; public final class Activator implements BundleActivator { + private final List> registrations = new ArrayList<>(2); + private BundleTracker>> moduleInfoResolvedBundleTracker; private SimpleBindingRuntimeContextService service; - private ServiceRegistration registration; @Override public void start(final BundleContext context) { @@ -31,7 +35,7 @@ public final class Activator implements BundleActivator { service = new SimpleBindingRuntimeContextService(context, moduleInfoBackedContext, moduleInfoBackedContext); final OsgiModuleInfoRegistry registry = new OsgiModuleInfoRegistry(moduleInfoBackedContext, - moduleInfoBackedContext, service); + moduleInfoBackedContext, service); final ModuleInfoBundleTracker moduleInfoTracker = new ModuleInfoBundleTracker(registry); moduleInfoResolvedBundleTracker = new BundleTracker<>(context, Bundle.RESOLVED | Bundle.STARTING @@ -40,13 +44,15 @@ public final class Activator implements BundleActivator { moduleInfoTracker.finishStart(); service.open(); - registration = context.registerService(BindingRuntimeContextService.class, service, null); + registrations.add(context.registerService(BindingRuntimeContextService.class, service, null)); + registrations.add(context.registerService(ClassLoadingStrategy.class, moduleInfoBackedContext, null)); } @Override public void stop(final BundleContext context) { moduleInfoResolvedBundleTracker.close(); service.close(); - registration.unregister(); + registrations.forEach(ServiceRegistration::unregister); + registrations.clear(); } }