Convert PCEPTopologySessionListenerFactory to OSGi DS 67/98567/1
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 16 Nov 2021 08:08:40 +0000 (09:08 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Tue, 16 Nov 2021 08:09:25 +0000 (09:09 +0100)
This is an utterly simplistic component, break it out of blueprint.

JIRA: BGPCEP-960
Change-Id: I28f2af2b15eb5e7a6ab917220eb090060f46ae9d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
pcep/topology/topology-provider/pom.xml
pcep/topology/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/PCEPTopologySessionListenerFactory.java
pcep/topology/topology-provider/src/main/resources/OSGI-INF/blueprint/pcep-topology.xml

index 789b60ae452282b14031842c142549ae4296a5ca..2282bf5ec4b29a6da7821540b6e3c1cec48e1bd6 100644 (file)
             <groupId>org.osgi</groupId>
             <artifactId>osgi.core</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.guicedee.services</groupId>
+            <artifactId>javax.inject</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>org.kohsuke.metainf-services</groupId>
+            <artifactId>metainf-services</artifactId>
+        </dependency>
         <dependency>
             <groupId>org.osgi</groupId>
             <artifactId>osgi.cmpn</artifactId>
         </dependency>
+
         <!-- Test dependencies -->
         <dependency>
             <groupId>${project.groupId}</groupId>
index e28a46fffeb5876a998d7c3f49728a0744b35531..8d9ae106e59add5803ff70c89adb518c5fe049ae 100644 (file)
@@ -7,7 +7,20 @@
  */
 package org.opendaylight.bgpcep.pcep.topology.provider;
 
+import javax.inject.Inject;
+import javax.inject.Singleton;
+import org.kohsuke.MetaInfServices;
+import org.osgi.service.component.annotations.Component;
+
+@Singleton
+@Component(immediate = true)
+@MetaInfServices
 public final class PCEPTopologySessionListenerFactory implements TopologySessionListenerFactory {
+    @Inject
+    public PCEPTopologySessionListenerFactory() {
+        // Visible for DI
+    }
+
     @Override
     public TopologySessionListener createTopologySessionListener(final ServerSessionManager manager) {
         return new PCEPTopologySessionListener(manager);
index 62863435057f4df6de9612a7ff6263d19c88fbaf..fcf8c2579bb01ada4a9cf624eb3f1864d10f4e2b 100644 (file)
@@ -7,18 +7,14 @@
   and is available at http://www.eclipse.org/legal/epl-v10.html
 -->
 <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
-
-    <bean id="PCEPTopologySessionListenerFactory"
-          class="org.opendaylight.bgpcep.pcep.topology.provider.PCEPTopologySessionListenerFactory"/>
-    <service ref="PCEPTopologySessionListenerFactory"
-             interface="org.opendaylight.bgpcep.pcep.topology.provider.TopologySessionListenerFactory"/>
-
     <reference id="dataBroker" interface="org.opendaylight.mdsal.binding.api.DataBroker"/>
     <reference id="rpcProviderService" interface="org.opendaylight.mdsal.binding.api.RpcProviderService"/>
     <reference id="pcepDispatcher" interface="org.opendaylight.protocol.pcep.PCEPDispatcher"/>
     <reference id="clusterSingletonServiceProvider"
                interface="org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider"/>
     <reference id="intructionFactory" interface="org.opendaylight.bgpcep.programming.spi.InstructionSchedulerFactory"/>
+    <reference id="topologySessionListenerFactory"
+               interface="org.opendaylight.bgpcep.pcep.topology.provider.TopologySessionListenerFactory"/>
     <reference id="topologySessionStatsRegistry"
                interface="org.opendaylight.bgpcep.pcep.topology.spi.stats.TopologySessionStatsRegistry"/>
     <reference id="pceServerProvider" interface="org.opendaylight.bgpcep.pcep.server.PceServerProvider"/>
@@ -31,7 +27,7 @@
         <argument ref="clusterSingletonServiceProvider"/>
         <argument ref="rpcProviderService"/>
         <argument ref="pcepDispatcher"/>
-        <argument ref="PCEPTopologySessionListenerFactory"/>
+        <argument ref="topologySessionListenerFactory"/>
         <argument ref="intructionFactory"/>
         <argument ref="topologySessionStatsRegistry"/>
         <argument ref="pceServerProvider"/>