Turn PceServiceRPCImpl into a Component 81/108081/2
authorGilles Thouenon <gilles.thouenon@orange.com>
Sun, 1 Oct 2023 07:33:58 +0000 (09:33 +0200)
committerguillaume.lambert <guillaume.lambert@orange.com>
Wed, 11 Oct 2023 11:38:14 +0000 (13:38 +0200)
Instead of instanciating this implementation from PceProvider,
convert it into a simple component.

TRNSPRTPCE-762
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
Change-Id: I46bf06b7ee4d185907558b8c205077f823ff0b8e

lighty/src/main/java/io/lighty/controllers/tpce/module/TransportPCEImpl.java
pce/src/main/java/org/opendaylight/transportpce/pce/impl/PceProvider.java
pce/src/main/java/org/opendaylight/transportpce/pce/impl/PceServiceRPCImpl.java
pce/src/test/java/org/opendaylight/transportpce/pce/impl/PceProviderTest.java

index cb137f6ebd1dc36ce7ef18a18b3018625a44b77c..739c34014afcbbdb98b52417e2902b8f6a1057b6 100644 (file)
@@ -44,6 +44,7 @@ import org.opendaylight.transportpce.olm.power.PowerMgmtImpl;
 import org.opendaylight.transportpce.olm.service.OlmPowerServiceImpl;
 import org.opendaylight.transportpce.pce.gnpy.consumer.GnpyConsumerImpl;
 import org.opendaylight.transportpce.pce.impl.PceProvider;
+import org.opendaylight.transportpce.pce.impl.PceServiceRPCImpl;
 import org.opendaylight.transportpce.pce.service.PathComputationService;
 import org.opendaylight.transportpce.pce.service.PathComputationServiceImpl;
 import org.opendaylight.transportpce.renderer.openroadminterface.OpenRoadmInterfaceFactory;
@@ -137,7 +138,7 @@ public class TransportPCEImpl extends AbstractLightyModule implements TransportP
                 new GnpyConsumerImpl(
                     "http://127.0.0.1:8008", "gnpy", "gnpy", lightyServices.getAdapterContext().currentSerializer()),
                 portMapping);
-        pceProvider = new PceProvider(lgServRPS, pathComputationService);
+        pceProvider = new PceProvider(lgServRPS, pathComputationService, new PceServiceRPCImpl(pathComputationService));
 
         LOG.info("Creating OLM beans ...");
         MappingUtils mappingUtils = new MappingUtilsImpl(lgServBDB);
index bab1554114ad7fe1e80d1f2f4e90311a3a6464d6..273c68179b78af974d92255f2295489e2dcaa75f 100644 (file)
@@ -28,15 +28,15 @@ public class PceProvider {
     private static final Logger LOG = LoggerFactory.getLogger(PceProvider.class);
 
     private final RpcProviderService rpcService;
-    private ObjectRegistration<PceServiceRPCImpl> rpcRegistration;
+    private ObjectRegistration<TransportpcePceService> rpcRegistration;
 
     @Activate
     public PceProvider(@Reference RpcProviderService rpcProviderService,
-            @Reference PathComputationService pathComputationService) {
+            @Reference PathComputationService pathComputationService,
+            @Reference TransportpcePceService pceServiceRPCImpl) {
         this.rpcService = rpcProviderService;
+        rpcRegistration = rpcService.registerRpcImplementation(TransportpcePceService.class, pceServiceRPCImpl);
         LOG.info("PceProvider Session Initiated");
-        final PceServiceRPCImpl consumer = new PceServiceRPCImpl(pathComputationService);
-        rpcRegistration = rpcService.registerRpcImplementation(TransportpcePceService.class, consumer);
     }
 
     /*
index 13fd7684d842a0e27c2f85f5122c19eb31690fa7..b108b169a0be6f76c2b6e53eba075842c202bcc8 100644 (file)
@@ -19,20 +19,26 @@ import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev22
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220808.TransportpcePceService;
 import org.opendaylight.yangtools.yang.common.RpcResult;
 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
  * PceService implementation.
  */
+@Component
 public class PceServiceRPCImpl implements TransportpcePceService {
 
     private static final Logger LOG = LoggerFactory.getLogger(PceServiceRPCImpl.class);
 
     private final PathComputationService pathComputationService;
 
-    public PceServiceRPCImpl(PathComputationService pathComputationService) {
+    @Activate
+    public PceServiceRPCImpl(@Reference PathComputationService pathComputationService) {
         this.pathComputationService = pathComputationService;
+        LOG.info("PceServiceRPCImpl instantiated");
     }
 
     @Override
index 0245310d087b0cdd48c24d830f6cdaa38782af1b..7d393b370ab999bc76d23232cd3b75b839683b16 100644 (file)
@@ -28,10 +28,12 @@ public class PceProviderTest extends AbstractTest {
     private RpcProviderService rpcService;
     @Mock
     private PathComputationService pathComputationService;
+    @Mock
+    private TransportpcePceService pceServiceRPCImpl;
 
     @Test
     void testInit() {
-        new PceProvider(rpcService, pathComputationService);
+        new PceProvider(rpcService, pathComputationService, pceServiceRPCImpl);
         verify(rpcService, times(1)).registerRpcImplementation(any(), any(TransportpcePceService.class));
     }
 }