From 0414e9fec8fef0acf68cf2a98d73c79c1ffa4860 Mon Sep 17 00:00:00 2001 From: Gilles Thouenon Date: Wed, 27 Sep 2023 17:34:37 +0200 Subject: [PATCH] Turn NetworkUtilsImpl into a Component Instead of instanciating this implementation from NetworkModelProvider, convert it into a simple component. Signed-off-by: Gilles Thouenon Change-Id: Ie051ab82455d5d17864bfde5049f6f2b5c6f8e5a --- .../lighty/controllers/tpce/module/TransportPCEImpl.java | 4 +++- .../transportpce/networkmodel/NetworkModelProvider.java | 5 +++-- .../transportpce/networkmodel/NetworkUtilsImpl.java | 8 +++++++- .../networkmodel/NetworkModelProviderTest.java | 5 +++-- 4 files changed, 16 insertions(+), 6 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 1d309d3bb..f3b37acb4 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 @@ -32,6 +32,7 @@ import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfa import org.opendaylight.transportpce.nbinotifications.impl.NbiNotificationsProvider; import org.opendaylight.transportpce.networkmodel.NetConfTopologyListener; import org.opendaylight.transportpce.networkmodel.NetworkModelProvider; +import org.opendaylight.transportpce.networkmodel.NetworkUtilsImpl; import org.opendaylight.transportpce.networkmodel.listeners.PortMappingListener; import org.opendaylight.transportpce.networkmodel.service.FrequenciesServiceImpl; import org.opendaylight.transportpce.networkmodel.service.NetworkModelService; @@ -128,7 +129,8 @@ public class TransportPCEImpl extends AbstractLightyModule implements TransportP lgServRPS, networkModelService, deviceTransactionManager, portMapping, lgServNS, - new FrequenciesServiceImpl(lgServBDB)); + new FrequenciesServiceImpl(lgServBDB), + new NetworkUtilsImpl(lgServBDB)); LOG.info("Creating PCE beans ..."); // TODO: pass those parameters through command line diff --git a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/NetworkModelProvider.java b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/NetworkModelProvider.java index a1c359452..0eafd00f1 100644 --- a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/NetworkModelProvider.java +++ b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/NetworkModelProvider.java @@ -69,13 +69,14 @@ public class NetworkModelProvider { @Reference DeviceTransactionManager deviceTransactionManager, @Reference PortMapping portMapping, @Reference NotificationService notificationService, - @Reference FrequenciesService frequenciesService) { + @Reference FrequenciesService frequenciesService, + @Reference TransportpceNetworkutilsService networkUtils) { this.dataBroker = dataBroker; this.rpcProviderService = rpcProviderService; this.notificationService = notificationService; this.frequenciesService = frequenciesService; this.listeners = new ArrayList<>(); - this.networkutilsService = new NetworkUtilsImpl(dataBroker); + this.networkutilsService = networkUtils; this.topologyListener = new NetConfTopologyListener(networkModelService, dataBroker, deviceTransactionManager, portMapping); this.tpceNetwork = new TpceNetwork(networkTransactionService); diff --git a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/NetworkUtilsImpl.java b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/NetworkUtilsImpl.java index d8807b988..df63d4bea 100644 --- a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/NetworkUtilsImpl.java +++ b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/NetworkUtilsImpl.java @@ -39,16 +39,22 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.top import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; 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 public class NetworkUtilsImpl implements TransportpceNetworkutilsService { private static final Logger LOG = LoggerFactory.getLogger(NetworkUtilsImpl.class); private final DataBroker dataBroker; - public NetworkUtilsImpl(DataBroker dataBroker) { + @Activate + public NetworkUtilsImpl(@Reference DataBroker dataBroker) { this.dataBroker = dataBroker; + LOG.info("NetworkUtilsImpl instanciated"); } @Override diff --git a/networkmodel/src/test/java/org/opendaylight/transportpce/networkmodel/NetworkModelProviderTest.java b/networkmodel/src/test/java/org/opendaylight/transportpce/networkmodel/NetworkModelProviderTest.java index 8d5ba9f8c..c0ff6ecca 100644 --- a/networkmodel/src/test/java/org/opendaylight/transportpce/networkmodel/NetworkModelProviderTest.java +++ b/networkmodel/src/test/java/org/opendaylight/transportpce/networkmodel/NetworkModelProviderTest.java @@ -50,7 +50,8 @@ public class NetworkModelProviderTest { NotificationService notificationService; @Mock FrequenciesService frequenciesService; - + @Mock + TransportpceNetworkutilsService networkUtils; @Test void networkmodelProviderInitTest() { @@ -65,7 +66,7 @@ public class NetworkModelProviderTest { when(networkTransactionService.commit()).then(answer); new NetworkModelProvider(networkTransactionService, dataBroker, rpcProviderService, networkModelService, - deviceTransactionManager, portMapping, notificationService, frequenciesService); + deviceTransactionManager, portMapping, notificationService, frequenciesService, networkUtils); verify(rpcProviderService, times(1)) .registerRpcImplementation(any(), any(TransportpceNetworkutilsService.class)); -- 2.36.6