Remove DefaultTopologyReference service entry 71/98671/8
authormarekzatko <Marek.Zatko@pantheon.tech>
Wed, 24 Nov 2021 16:21:04 +0000 (17:21 +0100)
committerOlivier Dugeon <olivier.dugeon@orange.com>
Mon, 29 Nov 2021 14:29:44 +0000 (14:29 +0000)
Another case of service being registered, but
never accessed, remove it, making
pcep-topology-provider viable to non OSGi users.

JIRA: BGPCEP-960
Change-Id: I3f69f176891c845c1f399430ffb0a7c20fdb2cc6
Signed-off-by: marekzatko <Marek.Zatko@pantheon.tech>
pcep/topology/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/PCEPTopologyInstance.java
pcep/topology/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/PCEPTopologySingleton.java
pcep/topology/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/PCEPTopologyTracker.java
pcep/topology/topology-provider/src/main/resources/OSGI-INF/blueprint/pcep-topology.xml

index 25f3915efb3e06d269d9581284095f1e37667a48..9eceeb352e3a040dc4ff8454c317989d4dce3f56 100644 (file)
@@ -13,13 +13,9 @@ import static java.util.Objects.requireNonNull;
 import com.google.common.collect.Iterables;
 import com.google.common.util.concurrent.ListenableFuture;
 import java.util.Collection;
-import java.util.Dictionary;
-import java.util.Hashtable;
 import org.checkerframework.checker.lock.qual.GuardedBy;
 import org.eclipse.jdt.annotation.NonNull;
-import org.gaul.modernizer_maven_annotations.SuppressModernizer;
 import org.opendaylight.bgpcep.programming.spi.InstructionScheduler;
-import org.opendaylight.bgpcep.topology.DefaultTopologyReference;
 import org.opendaylight.mdsal.binding.api.ClusteredDataTreeChangeListener;
 import org.opendaylight.mdsal.binding.api.DataTreeIdentifier;
 import org.opendaylight.mdsal.binding.api.DataTreeModification;
@@ -29,8 +25,6 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.TopologyKey;
 import org.opendaylight.yangtools.concepts.Registration;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceRegistration;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -47,20 +41,15 @@ final class PCEPTopologyInstance implements ClusteredDataTreeChangeListener<Topo
     private PCEPTopologyProvider provider;
     @GuardedBy("this")
     private Registration reg;
-    @GuardedBy("this")
-    private ServiceRegistration<?> osgiReg;
 
     PCEPTopologyInstance(final TopologyKey topology, final PCEPTopologyProviderDependencies dependencies,
-            final InstructionScheduler scheduler, final BundleContext bundleContext) {
+            final InstructionScheduler scheduler) {
         this.topology = requireNonNull(topology);
 
         final var instanceIdentifier = InstanceIdentifier.create(NetworkTopology.class).child(Topology.class, topology);
 
         provider = new PCEPTopologyProvider(instanceIdentifier, dependencies, scheduler);
 
-        // FIXME: BGPCEP-960: this should not be necessary
-        osgiReg = bundleContext.registerService(DefaultTopologyReference.class.getName(), provider, props());
-
         reg = dependencies.getDataBroker().registerDataTreeChangeListener(
             DataTreeIdentifier.create(LogicalDatastoreType.CONFIGURATION, instanceIdentifier), this);
         LOG.info("Topology instance for {} initialized", topologyId());
@@ -71,9 +60,6 @@ final class PCEPTopologyInstance implements ClusteredDataTreeChangeListener<Topo
         reg.close();
         reg = null;
 
-        osgiReg.unregister();
-        osgiReg = null;
-
         final var ret = provider.stop();
         provider = null;
         return ret;
@@ -100,11 +86,4 @@ final class PCEPTopologyInstance implements ClusteredDataTreeChangeListener<Topo
     private String topologyId() {
         return TopologyUtils.friendlyId(topology);
     }
-
-    @SuppressModernizer
-    private Dictionary<String, String> props() {
-        final Dictionary<String, String> properties = new Hashtable<>(2);
-        properties.put(PCEPTopologyProvider.class.getName(), topologyId());
-        return properties;
-    }
 }
index 4f50c8b47297022b1f3ca5d06e0329888f27368f..afd246cac241db12bf31810a4316fe92fd948ad1 100644 (file)
@@ -68,7 +68,7 @@ final class PCEPTopologySingleton {
             }
 
             LOG.trace("Topology {} instance {} instantiating", topologyId(), PCEPTopologySingleton.this);
-            instance = new PCEPTopologyInstance(topology, tracker, scheduler, tracker.bundleContext);
+            instance = new PCEPTopologyInstance(topology, tracker, scheduler);
         }
 
         @Override
index 7bd8fc52da758ea37d7bf3ecd81624ad2f2b5fee..ce82b3cfcee02314e13a52a49e804820634f7968 100644 (file)
@@ -35,7 +35,6 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.TopologyTypes;
 import org.opendaylight.yangtools.concepts.Registration;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.osgi.framework.BundleContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -51,8 +50,6 @@ public final class PCEPTopologyTracker
     // Services we are using
     final @NonNull InstructionSchedulerFactory instructionSchedulerFactory;
     final @NonNull ClusterSingletonServiceProvider singletonService;
-    // FIXME: BGPCEP-960: this should not be needed
-    final @NonNull BundleContext bundleContext;
     private final @NonNull TopologySessionStatsRegistry stateRegistry;
     private final @NonNull RpcProviderService rpcProviderRegistry;
     private final @NonNull PceServerProvider pceServerProvider;
@@ -83,9 +80,7 @@ public final class PCEPTopologyTracker
     public PCEPTopologyTracker(final DataBroker dataBroker, final ClusterSingletonServiceProvider singletonService,
             final RpcProviderService rpcProviderRegistry, final PCEPDispatcher pcepDispatcher,
             final InstructionSchedulerFactory instructionSchedulerFactory,
-            final TopologySessionStatsRegistry stateRegistry, final PceServerProvider pceServerProvider,
-            // FIXME: we should not be needing this OSGi dependency
-            final BundleContext bundleContext) {
+            final TopologySessionStatsRegistry stateRegistry, final PceServerProvider pceServerProvider) {
         this.dataBroker = requireNonNull(dataBroker);
         this.singletonService = requireNonNull(singletonService);
         this.rpcProviderRegistry = requireNonNull(rpcProviderRegistry);
@@ -93,7 +88,6 @@ public final class PCEPTopologyTracker
         this.instructionSchedulerFactory = requireNonNull(instructionSchedulerFactory);
         this.stateRegistry = requireNonNull(stateRegistry);
         this.pceServerProvider = requireNonNull(pceServerProvider);
-        this.bundleContext = requireNonNull(bundleContext);
 
         reg = dataBroker.registerDataTreeChangeListener(DataTreeIdentifier.create(LogicalDatastoreType.CONFIGURATION,
             InstanceIdentifier.builder(NetworkTopology.class).child(Topology.class).child(TopologyTypes.class)
index 789f14ed4528117442c3c8541e485f3451556422..c3524976f861e8d00fb17a413906a0d43a458590 100644 (file)
@@ -27,6 +27,5 @@
         <argument ref="intructionFactory"/>
         <argument ref="topologySessionStatsRegistry"/>
         <argument ref="pceServerProvider"/>
-        <argument ref="blueprintBundleContext"/>
     </bean>
 </blueprint>