Convert NetworkModelServiceImpl into a Component 31/104931/3
authorGilles Thouenon <gilles.thouenon@orange.com>
Sat, 11 Mar 2023 15:30:13 +0000 (16:30 +0100)
committerguillaume.lambert <guillaume.lambert@orange.com>
Thu, 23 Mar 2023 16:20:54 +0000 (17:20 +0100)
JIRA: TRNSPRTPCE-736
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
Change-Id: I8cece9475224d9301d2f71cacf36b3727368e191

lighty/src/main/java/io/lighty/controllers/tpce/module/TransportPCEImpl.java
networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/service/NetworkModelServiceImpl.java
networkmodel/src/main/resources/OSGI-INF/blueprint/networkmodel-blueprint.xml

index 93cb0f5829ed08aaee54752cd3c264b0b2c86bad..f9f626e8f62c59f4bdaf005654dadbda19d74192 100644 (file)
@@ -141,8 +141,9 @@ public class TransportPCEImpl extends AbstractLightyModule implements TransportP
         TransportpceNetworkutilsService networkutilsServiceImpl = new NetworkUtilsImpl(
                 lightyServices.getBindingDataBroker());
         PortMapping portMapping = initPortMapping(lightyServices);
-        NetworkModelService networkModelService = new NetworkModelServiceImpl(networkTransaction, linkDiscoveryImpl,
-                portMapping, lightyServices.getBindingNotificationPublishService());
+        NetworkModelService networkModelService = new NetworkModelServiceImpl(lightyServices.getBindingDataBroker(),
+                deviceTransactionManager, networkTransaction, portMapping,
+                lightyServices.getBindingNotificationPublishService());
         FrequenciesService networkModelWavelengthService =
                 new FrequenciesServiceImpl(lightyServices.getBindingDataBroker());
         NetConfTopologyListener netConfTopologyListener = new NetConfTopologyListener(networkModelService,
index f6eb1e5715b2533384baa1fb9f6974462ccc0187..5ee5d5931b0bd4b64c09cde487a3be07f7c3dd42 100644 (file)
@@ -19,10 +19,12 @@ import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
 import java.util.stream.Collectors;
 import org.eclipse.jdt.annotation.Nullable;
+import org.opendaylight.mdsal.binding.api.DataBroker;
 import org.opendaylight.mdsal.binding.api.NotificationPublishService;
 import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
 import org.opendaylight.transportpce.common.InstanceIdentifiers;
 import org.opendaylight.transportpce.common.NetworkUtils;
+import org.opendaylight.transportpce.common.device.DeviceTransactionManager;
 import org.opendaylight.transportpce.common.mapping.PortMapping;
 import org.opendaylight.transportpce.common.network.NetworkTransactionService;
 import org.opendaylight.transportpce.networkmodel.R2RLinkDiscovery;
@@ -66,9 +68,13 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.top
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.ConnectionOper.ConnectionStatus;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.Uint32;
+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 NetworkModelServiceImpl implements NetworkModelService {
 
     private static final Logger LOG = LoggerFactory.getLogger(NetworkModelServiceImpl.class);
@@ -83,24 +89,21 @@ public class NetworkModelServiceImpl implements NetworkModelService {
     private Map<TopologyChangesKey, TopologyChanges> topologyChanges;
     private TopologyUpdateResult notification = null;
 
-    public NetworkModelServiceImpl(final NetworkTransactionService networkTransactionService,
-            final R2RLinkDiscovery linkDiscovery, PortMapping portMapping,
-            final NotificationPublishService notificationPublishService) {
+    @Activate
+    public NetworkModelServiceImpl(@Reference DataBroker dataBroker,
+            @Reference DeviceTransactionManager deviceTransactionManager,
+            @Reference final NetworkTransactionService networkTransactionService,
+            @Reference PortMapping portMapping,
+            @Reference final NotificationPublishService notificationPublishService) {
 
         this.networkTransactionService = networkTransactionService;
-        this.linkDiscovery = linkDiscovery;
+        this.linkDiscovery = new R2RLinkDiscovery(dataBroker, deviceTransactionManager, networkTransactionService);
         this.portMapping = portMapping;
         this.topologyShardMountedDevice = new HashMap<String, TopologyShard>();
         this.otnTopologyShardMountedDevice = new HashMap<String, TopologyShard>();
         this.notificationPublishService = notificationPublishService;
         this.topologyChanges = new HashMap<TopologyChangesKey, TopologyChanges>();
-    }
-
-    public void init() {
-        LOG.info("init ...");
-    }
-
-    public void close() {
+        LOG.debug("NetworkModelServiceImpl instantiated");
     }
 
     @Override
index 3badba5d478c5f121f1215ea207e18563fe12cd8..150f06efd89688a29e3e5d7d0a0e0ca17ab87db4 100644 (file)
     <reference id="notificationService" interface="org.opendaylight.mdsal.binding.api.NotificationService"/>
     <reference id="notificationPublishService" interface="org.opendaylight.mdsal.binding.api.NotificationPublishService"/>
     <reference id="frequenciesService" interface="org.opendaylight.transportpce.networkmodel.service.FrequenciesService" />
-
-    <bean id="networkModelService" class="org.opendaylight.transportpce.networkmodel.service.NetworkModelServiceImpl">
-        <argument ref="networkTransactionImpl" />
-        <argument ref="linkDiscoveryImpl" />
-        <argument ref="portMapping" />
-        <argument ref="notificationPublishService" />
-    </bean>
+    <reference id="networkModelService" interface="org.opendaylight.transportpce.networkmodel.service.NetworkModelService" />
 
     <bean id="provider" class="org.opendaylight.transportpce.networkmodel.NetworkModelProvider"
         init-method="init" destroy-method="close">
         <argument ref="dataBroker" />
     </bean>
 
-    <bean id="linkDiscoveryImpl" class="org.opendaylight.transportpce.networkmodel.R2RLinkDiscovery">
-        <argument ref="dataBroker" />
-        <argument ref="deviceTransactionManager" />
-        <argument ref="networkTransactionImpl" />
-   </bean>
-
-    <service ref="networkModelService" interface="org.opendaylight.transportpce.networkmodel.service.NetworkModelService" />
 </blueprint>