From a87bf5ed9be8d1a05b8c0064821c226bc1d646da Mon Sep 17 00:00:00 2001 From: Gilles Thouenon Date: Tue, 14 Mar 2023 10:02:53 +0100 Subject: [PATCH] Remove renderer-blueprint Convert RendererProvier into a Component. Instantiate manually DeviceRendererRPCImpl and TransportPCEServicePathRPCImpl since OSGI does not start them directly when they are also converted to Components. JIRA: TRNSPRTPCE-736 Signed-off-by: Gilles Thouenon Change-Id: Ia5f19169edbd2b8ea1fd8006379128f84695293e --- .../tpce/module/TransportPCEImpl.java | 7 ++-- .../renderer/RendererProvider.java | 32 ++++++++++--------- .../renderer/rpcs/DeviceRendererRPCImpl.java | 1 + .../rpcs/TransportPCEServicePathRPCImpl.java | 3 +- .../OSGI-INF/blueprint/renderer-blueprint.xml | 29 ----------------- .../renderer/RendererProviderTest.java | 12 ++++--- 6 files changed, 29 insertions(+), 55 deletions(-) delete mode 100644 renderer/src/main/resources/OSGI-INF/blueprint/renderer-blueprint.xml diff --git a/lighty/src/main/java/io/lighty/controllers/tpce/module/TransportPCEImpl.java b/lighty/src/main/java/io/lighty/controllers/tpce/module/TransportPCEImpl.java index 2fcca728e..87008451b 100644 --- a/lighty/src/main/java/io/lighty/controllers/tpce/module/TransportPCEImpl.java +++ b/lighty/src/main/java/io/lighty/controllers/tpce/module/TransportPCEImpl.java @@ -87,6 +87,7 @@ import org.opendaylight.transportpce.tapi.topology.TapiPortMappingListener; import org.opendaylight.transportpce.tapi.utils.TapiLink; import org.opendaylight.transportpce.tapi.utils.TapiListener; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev210618.TransportpceOlmService; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915.TransportpceRendererService; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.tapinetworkutils.rev210408.TransportpceTapinetworkutilsService; import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.OrgOpenroadmServiceService; import org.slf4j.Logger; @@ -241,8 +242,6 @@ public class TransportPCEImpl extends AbstractLightyModule implements TransportP protected boolean initProcedure() { LOG.info("Initializing PCE provider ..."); pceProvider.init(); - LOG.info("Initializing renderer provider ..."); - rendererProvider.init(); LOG.info("Initializing service-handler provider ..."); servicehandlerProvider.init(); if (tapiProvider != null) { @@ -308,8 +307,8 @@ public class TransportPCEImpl extends AbstractLightyModule implements TransportP deviceRendererService, otnDeviceRendererService, olmPowerServiceRpc, lightyServices.getBindingDataBroker(), lightyServices.getBindingNotificationPublishService(), portMapping); - return new RendererProvider(lightyServices.getRpcProviderService(), deviceRendererRPC, - rendererServiceOperations); + return new RendererProvider(lightyServices.getRpcProviderService(), deviceRendererService, + otnDeviceRendererService, rendererServiceOperations); } private OpenRoadmInterfaceFactory initOpenRoadmFactory(MappingUtils mappingUtils, diff --git a/renderer/src/main/java/org/opendaylight/transportpce/renderer/RendererProvider.java b/renderer/src/main/java/org/opendaylight/transportpce/renderer/RendererProvider.java index 3bfacdc73..2f66a4ecb 100644 --- a/renderer/src/main/java/org/opendaylight/transportpce/renderer/RendererProvider.java +++ b/renderer/src/main/java/org/opendaylight/transportpce/renderer/RendererProvider.java @@ -8,38 +8,40 @@ package org.opendaylight.transportpce.renderer; import org.opendaylight.mdsal.binding.api.RpcProviderService; +import org.opendaylight.transportpce.renderer.provisiondevice.DeviceRendererService; +import org.opendaylight.transportpce.renderer.provisiondevice.OtnDeviceRendererService; import org.opendaylight.transportpce.renderer.provisiondevice.RendererServiceOperations; import org.opendaylight.transportpce.renderer.rpcs.DeviceRendererRPCImpl; import org.opendaylight.transportpce.renderer.rpcs.TransportPCEServicePathRPCImpl; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev211004.TransportpceDeviceRendererService; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915.TransportpceRendererService; import org.opendaylight.yangtools.concepts.ObjectRegistration; +import org.osgi.service.component.annotations.Activate; +import org.osgi.service.component.annotations.Component; +import org.osgi.service.component.annotations.Deactivate; +import org.osgi.service.component.annotations.Reference; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +@Component public class RendererProvider { private static final Logger LOG = LoggerFactory.getLogger(RendererProvider.class); private final RpcProviderService rpcProviderService; private DeviceRendererRPCImpl deviceRendererRPCImpl; + private TransportPCEServicePathRPCImpl transportPCEServicePathRPCImpl; private ObjectRegistration deviceRendererRegistration; private ObjectRegistration tpceServiceRegistry; - private RendererServiceOperations rendererServiceOperations; - public RendererProvider(RpcProviderService rpcProviderService, DeviceRendererRPCImpl deviceRendererRPCImpl, - RendererServiceOperations rendererServiceOperations) { + @Activate + public RendererProvider(@Reference RpcProviderService rpcProviderService, + @Reference DeviceRendererService deviceRenderer, + @Reference OtnDeviceRendererService otnDeviceRendererService, + @Reference RendererServiceOperations rendererServiceOperations) { this.rpcProviderService = rpcProviderService; - this.deviceRendererRPCImpl = deviceRendererRPCImpl; - this.rendererServiceOperations = rendererServiceOperations; - } - - /** - * Method called when the blueprint container is created. - */ - public void init() { + this.deviceRendererRPCImpl = new DeviceRendererRPCImpl(deviceRenderer, otnDeviceRendererService); + this.transportPCEServicePathRPCImpl = new TransportPCEServicePathRPCImpl(rendererServiceOperations); LOG.info("RendererProvider Session Initiated"); - TransportPCEServicePathRPCImpl transportPCEServicePathRPCImpl = - new TransportPCEServicePathRPCImpl(this.rendererServiceOperations); this.deviceRendererRegistration = this.rpcProviderService .registerRpcImplementation(TransportpceDeviceRendererService.class, deviceRendererRPCImpl); this.tpceServiceRegistry = this.rpcProviderService @@ -49,6 +51,7 @@ public class RendererProvider { /** * Method called when the blueprint container is destroyed. */ + @Deactivate public void close() { LOG.info("RendererProvider Closed"); if (this.deviceRendererRegistration != null) { @@ -58,5 +61,4 @@ public class RendererProvider { this.tpceServiceRegistry.close(); } } - -} +} \ No newline at end of file diff --git a/renderer/src/main/java/org/opendaylight/transportpce/renderer/rpcs/DeviceRendererRPCImpl.java b/renderer/src/main/java/org/opendaylight/transportpce/renderer/rpcs/DeviceRendererRPCImpl.java index eba065eeb..78bd06c32 100644 --- a/renderer/src/main/java/org/opendaylight/transportpce/renderer/rpcs/DeviceRendererRPCImpl.java +++ b/renderer/src/main/java/org/opendaylight/transportpce/renderer/rpcs/DeviceRendererRPCImpl.java @@ -39,6 +39,7 @@ public class DeviceRendererRPCImpl implements TransportpceDeviceRendererService OtnDeviceRendererService otnDeviceRendererService) { this.deviceRenderer = deviceRenderer; this.otnDeviceRendererService = otnDeviceRendererService; + LOG.debug("DeviceRendererRPCImpl instantiated"); } /** diff --git a/renderer/src/main/java/org/opendaylight/transportpce/renderer/rpcs/TransportPCEServicePathRPCImpl.java b/renderer/src/main/java/org/opendaylight/transportpce/renderer/rpcs/TransportPCEServicePathRPCImpl.java index 31bdda59f..38c7fd252 100644 --- a/renderer/src/main/java/org/opendaylight/transportpce/renderer/rpcs/TransportPCEServicePathRPCImpl.java +++ b/renderer/src/main/java/org/opendaylight/transportpce/renderer/rpcs/TransportPCEServicePathRPCImpl.java @@ -28,6 +28,7 @@ public class TransportPCEServicePathRPCImpl implements TransportpceRendererServi public TransportPCEServicePathRPCImpl(RendererServiceOperations rendererServiceOperations) { this.rendererServiceOperations = rendererServiceOperations; + LOG.debug("TransportPCEServicePathRPCImpl instantiated"); } @Override @@ -56,6 +57,4 @@ public class TransportPCEServicePathRPCImpl implements TransportpceRendererServi } return ModelMappingUtils.createServiceImplementationRpcResponse(output); } - } - diff --git a/renderer/src/main/resources/OSGI-INF/blueprint/renderer-blueprint.xml b/renderer/src/main/resources/OSGI-INF/blueprint/renderer-blueprint.xml deleted file mode 100644 index e56b693d3..000000000 --- a/renderer/src/main/resources/OSGI-INF/blueprint/renderer-blueprint.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/renderer/src/test/java/org/opendaylight/transportpce/renderer/RendererProviderTest.java b/renderer/src/test/java/org/opendaylight/transportpce/renderer/RendererProviderTest.java index 590475793..d6845de1f 100644 --- a/renderer/src/test/java/org/opendaylight/transportpce/renderer/RendererProviderTest.java +++ b/renderer/src/test/java/org/opendaylight/transportpce/renderer/RendererProviderTest.java @@ -16,6 +16,8 @@ import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; import org.opendaylight.mdsal.binding.api.RpcProviderService; +import org.opendaylight.transportpce.renderer.provisiondevice.DeviceRendererService; +import org.opendaylight.transportpce.renderer.provisiondevice.OtnDeviceRendererService; import org.opendaylight.transportpce.renderer.provisiondevice.RendererServiceOperations; import org.opendaylight.transportpce.renderer.rpcs.DeviceRendererRPCImpl; import org.opendaylight.transportpce.renderer.rpcs.TransportPCEServicePathRPCImpl; @@ -27,15 +29,15 @@ public class RendererProviderTest extends AbstractTest { @Mock RpcProviderService rpcProviderService; @Mock - private RendererServiceOperations rendererServiceOperations; + DeviceRendererService deviceRenderer; @Mock - DeviceRendererRPCImpl deviceRendererRPC; + OtnDeviceRendererService otnDeviceRendererService; + @Mock + RendererServiceOperations rendererServiceOperations; @Test void testInitMethodRegistersRendererToRpcService() { - RendererProvider provider = - new RendererProvider(rpcProviderService, deviceRendererRPC, rendererServiceOperations); - provider.init(); + new RendererProvider(rpcProviderService, deviceRenderer, otnDeviceRendererService, rendererServiceOperations); verify(rpcProviderService, times(1)) .registerRpcImplementation(any(), any(TransportPCEServicePathRPCImpl.class)); -- 2.36.6