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;
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;
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());
reg.close();
reg = null;
- osgiReg.unregister();
- osgiReg = null;
-
final var ret = provider.stop();
provider = null;
return ret;
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;
- }
}
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;
// 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;
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);
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)