From 3a30f5ab7eed6b9ef77edc0a104cfceb8a87be4c Mon Sep 17 00:00:00 2001 From: Gilles Thouenon Date: Tue, 14 Mar 2023 13:56:43 +0100 Subject: [PATCH] Remove static instantiations from RendererProvider Convert DeviceRendererRPCImpl and TransportPCEServicePathRPCImpl into Components. JIRA: TRNSPRTPCE-736 Signed-off-by: Gilles Thouenon Change-Id: I678a717ac1ffdbadc181bc789c8066700c51b56c (cherry picked from commit 807b93874f23be2f81da25b066204a827a05368a) --- .../controllers/tpce/module/TransportPCEImpl.java | 4 +++- .../transportpce/renderer/RendererProvider.java | 12 +++--------- .../renderer/rpcs/DeviceRendererRPCImpl.java | 9 +++++++-- .../rpcs/TransportPCEServicePathRPCImpl.java | 7 ++++++- .../transportpce/renderer/RendererProviderTest.java | 8 +++++--- 5 files changed, 24 insertions(+), 16 deletions(-) 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 0596c0890..9ee5b91c0 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 @@ -64,6 +64,7 @@ import org.opendaylight.transportpce.renderer.provisiondevice.OtnDeviceRendererS import org.opendaylight.transportpce.renderer.provisiondevice.RendererServiceOperations; import org.opendaylight.transportpce.renderer.provisiondevice.RendererServiceOperationsImpl; import org.opendaylight.transportpce.renderer.rpcs.DeviceRendererRPCImpl; +import org.opendaylight.transportpce.renderer.rpcs.TransportPCEServicePathRPCImpl; import org.opendaylight.transportpce.servicehandler.impl.ServicehandlerImpl; import org.opendaylight.transportpce.servicehandler.impl.ServicehandlerProvider; import org.opendaylight.transportpce.servicehandler.listeners.NetworkModelListenerImpl; @@ -304,7 +305,8 @@ public class TransportPCEImpl extends AbstractLightyModule implements TransportP lightyServices.getBindingDataBroker(), lightyServices.getBindingNotificationPublishService(), portMapping); return new RendererProvider(lightyServices.getRpcProviderService(), deviceRendererService, - otnDeviceRendererService, rendererServiceOperations); + otnDeviceRendererService, deviceRendererRPC, + new TransportPCEServicePathRPCImpl(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 2f66a4ecb..41aed38be 100644 --- a/renderer/src/main/java/org/opendaylight/transportpce/renderer/RendererProvider.java +++ b/renderer/src/main/java/org/opendaylight/transportpce/renderer/RendererProvider.java @@ -10,9 +10,6 @@ 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; @@ -28,19 +25,16 @@ 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 deviceRendererRegistration; private ObjectRegistration tpceServiceRegistry; @Activate public RendererProvider(@Reference RpcProviderService rpcProviderService, @Reference DeviceRendererService deviceRenderer, @Reference OtnDeviceRendererService otnDeviceRendererService, - @Reference RendererServiceOperations rendererServiceOperations) { + @Reference TransportpceDeviceRendererService deviceRendererRPCImpl, + @Reference TransportpceRendererService transportPCEServicePathRPCImpl) { this.rpcProviderService = rpcProviderService; - this.deviceRendererRPCImpl = new DeviceRendererRPCImpl(deviceRenderer, otnDeviceRendererService); - this.transportPCEServicePathRPCImpl = new TransportPCEServicePathRPCImpl(rendererServiceOperations); LOG.info("RendererProvider Session Initiated"); this.deviceRendererRegistration = this.rpcProviderService .registerRpcImplementation(TransportpceDeviceRendererService.class, deviceRendererRPCImpl); 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 78bd06c32..39141700b 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 @@ -26,17 +26,22 @@ import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.re import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev211004.TransportpceDeviceRendererService; 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; +@Component(immediate = true) public class DeviceRendererRPCImpl implements TransportpceDeviceRendererService { private static final Logger LOG = LoggerFactory.getLogger(DeviceRendererRPCImpl.class); private DeviceRendererService deviceRenderer; private OtnDeviceRendererService otnDeviceRendererService; - public DeviceRendererRPCImpl(DeviceRendererService deviceRenderer, - OtnDeviceRendererService otnDeviceRendererService) { + @Activate + public DeviceRendererRPCImpl(@Reference DeviceRendererService deviceRenderer, + @Reference 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 38c7fd252..f43204df4 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 @@ -17,16 +17,21 @@ import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer. import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915.ServiceImplementationRequestOutput; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915.TransportpceRendererService; import org.opendaylight.yangtools.yang.common.RpcResult; +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; +@Component(immediate = true) public class TransportPCEServicePathRPCImpl implements TransportpceRendererService { private static final Logger LOG = LoggerFactory.getLogger(TransportPCEServicePathRPCImpl.class); private final RendererServiceOperations rendererServiceOperations; - public TransportPCEServicePathRPCImpl(RendererServiceOperations rendererServiceOperations) { + @Activate + public TransportPCEServicePathRPCImpl(@Reference RendererServiceOperations rendererServiceOperations) { this.rendererServiceOperations = rendererServiceOperations; LOG.debug("TransportPCEServicePathRPCImpl instantiated"); } 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 d6845de1f..611326ae3 100644 --- a/renderer/src/test/java/org/opendaylight/transportpce/renderer/RendererProviderTest.java +++ b/renderer/src/test/java/org/opendaylight/transportpce/renderer/RendererProviderTest.java @@ -18,7 +18,6 @@ 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; import org.opendaylight.transportpce.test.AbstractTest; @@ -33,11 +32,14 @@ public class RendererProviderTest extends AbstractTest { @Mock OtnDeviceRendererService otnDeviceRendererService; @Mock - RendererServiceOperations rendererServiceOperations; + DeviceRendererRPCImpl deviceRendererRPCImpl; + @Mock + TransportPCEServicePathRPCImpl transportPCEServicePathRPCImpl; @Test void testInitMethodRegistersRendererToRpcService() { - new RendererProvider(rpcProviderService, deviceRenderer, otnDeviceRendererService, rendererServiceOperations); + new RendererProvider(rpcProviderService, deviceRenderer, otnDeviceRendererService, deviceRendererRPCImpl, + transportPCEServicePathRPCImpl); verify(rpcProviderService, times(1)) .registerRpcImplementation(any(), any(TransportPCEServicePathRPCImpl.class)); -- 2.36.6