Merge "Corrections to developer Guide for Ar"
authorGilles Thouenon <gilles.thouenon@orange.com>
Thu, 30 Mar 2023 10:16:00 +0000 (10:16 +0000)
committerGerrit Code Review <gerrit@opendaylight.org>
Thu, 30 Mar 2023 10:16:00 +0000 (10:16 +0000)
59 files changed:
api/pom.xml
artifacts/pom.xml
common/pom.xml
dmaap-client/pom.xml
features/features-transportpce/pom.xml
features/odl-transportpce-dmaap-client/pom.xml
features/odl-transportpce-inventory/pom.xml
features/odl-transportpce-nbinotifications/pom.xml
features/odl-transportpce-swagger/pom.xml
features/odl-transportpce-tapi/pom.xml
features/odl-transportpce/pom.xml
features/pom.xml
inventory/pom.xml
karaf/pom.xml
lighty/build.sh
lighty/build_lighty_core.sh
lighty/pom.xml
lighty/src/main/java/io/lighty/controllers/tpce/module/TransportPCEImpl.java
nbinotifications/pom.xml
networkmodel/pom.xml
networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/NetworkModelProvider.java
networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/service/FrequenciesServiceImpl.java
networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/service/NetworkModelServiceImpl.java
networkmodel/src/main/resources/OSGI-INF/blueprint/networkmodel-blueprint.xml [deleted file]
networkmodel/src/test/java/org/opendaylight/transportpce/networkmodel/NetworkModelProviderTest.java
olm/pom.xml
olm/src/main/java/org/opendaylight/transportpce/olm/OlmPowerServiceRpcImpl.java
olm/src/main/java/org/opendaylight/transportpce/olm/OlmProvider.java
olm/src/main/java/org/opendaylight/transportpce/olm/power/PowerMgmtImpl.java
olm/src/main/java/org/opendaylight/transportpce/olm/service/OlmPowerServiceImpl.java
olm/src/main/resources/OSGI-INF/blueprint/olm-blueprint.xml [deleted file]
olm/src/test/java/org/opendaylight/transportpce/olm/OlmPowerServiceRpcImplTest.java
olm/src/test/java/org/opendaylight/transportpce/olm/power/PowerMgmtPowerMockTest.java
olm/src/test/java/org/opendaylight/transportpce/olm/power/PowerMgmtTest.java
olm/src/test/java/org/opendaylight/transportpce/olm/service/OlmPowerServiceImplTest.java
pce/pom.xml
pce/src/main/java/org/opendaylight/transportpce/pce/gnpy/consumer/GnpyConsumerImpl.java
pce/src/main/java/org/opendaylight/transportpce/pce/impl/PceProvider.java
pce/src/main/java/org/opendaylight/transportpce/pce/service/PathComputationServiceImpl.java
pce/src/main/resources/OSGI-INF/blueprint/pce-blueprint.xml [deleted file]
pce/src/test/java/org/opendaylight/transportpce/pce/impl/PceProviderTest.java
pce/src/test/java/org/opendaylight/transportpce/pce/service/PathComputationServiceImplTest.java
pom.xml
renderer/pom.xml
renderer/src/main/java/org/opendaylight/transportpce/renderer/RendererProvider.java
renderer/src/main/java/org/opendaylight/transportpce/renderer/openroadminterface/OpenRoadmInterfaceFactory.java
renderer/src/main/java/org/opendaylight/transportpce/renderer/provisiondevice/DeviceRendererServiceImpl.java
renderer/src/main/java/org/opendaylight/transportpce/renderer/provisiondevice/OtnDeviceRendererServiceImpl.java
renderer/src/main/java/org/opendaylight/transportpce/renderer/provisiondevice/RendererServiceOperationsImpl.java
renderer/src/main/java/org/opendaylight/transportpce/renderer/rpcs/DeviceRendererRPCImpl.java
renderer/src/main/java/org/opendaylight/transportpce/renderer/rpcs/TransportPCEServicePathRPCImpl.java
renderer/src/main/resources/OSGI-INF/blueprint/renderer-blueprint.xml [deleted file]
renderer/src/test/java/org/opendaylight/transportpce/renderer/RendererProviderTest.java
renderer/src/test/java/org/opendaylight/transportpce/renderer/provisiondevice/DeviceRendererServiceImplCreateOtsOmsTest.java
servicehandler/pom.xml
tapi/pom.xml
test-common/pom.xml
tests/transportpce_tests/pce/test01_pce.py
tox.ini

index cdc83b8a16c020adc20e1b1143db658d783864bc..f0031c9ba5ab8e1a708401637bd3e4744798a8c7 100644 (file)
@@ -18,11 +18,11 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
 
   <groupId>org.opendaylight.transportpce</groupId>
   <artifactId>transportpce-api</artifactId>
-  <version>7.0.0-SNAPSHOT</version>
+  <version>7.0.1-SNAPSHOT</version>
   <packaging>bundle</packaging>
 
   <properties>
-    <transportpce.models.version>18.0.0</transportpce.models.version>
+    <transportpce.models.version>18.0.1</transportpce.models.version>
   </properties>
 
   <dependencyManagement>
index 5ec56e62f5d9a05c5a3628dfd10e63dc39b42352..42639cadd447aea440f895357216cf9bb7c8a9d6 100644 (file)
@@ -19,7 +19,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
 
   <groupId>org.opendaylight.transportpce</groupId>
   <artifactId>transportpce-artifacts</artifactId>
-  <version>7.0.0-SNAPSHOT</version>
+  <version>7.0.1-SNAPSHOT</version>
   <packaging>pom</packaging>
 
   <dependencyManagement>
index 4ff0ba28455225441f517706fc12593c6eda21a5..878e1feeacb9969d8bc8370c715d2a8552c0fa83 100644 (file)
 
   <groupId>org.opendaylight.transportpce</groupId>
   <artifactId>transportpce-common</artifactId>
-  <version>7.0.0-SNAPSHOT</version>
+  <version>7.0.1-SNAPSHOT</version>
   <packaging>bundle</packaging>
 
   <properties>
-    <transportpce.models.version>18.0.0</transportpce.models.version>
+    <transportpce.models.version>18.0.1</transportpce.models.version>
   </properties>
 
   <dependencyManagement>
@@ -35,7 +35,7 @@
       <dependency>
         <groupId>org.opendaylight.netconf</groupId>
         <artifactId>netconf-artifacts</artifactId>
-        <version>5.0.3</version>
+        <version>5.0.4</version>
         <scope>import</scope>
         <type>pom</type>
       </dependency>
index 67692df587f060fd20009eab38897c3350aa0aca..e4e2e7bfd44698af82ad99ff6dd045b1e6e59dcd 100644 (file)
 
   <groupId>org.opendaylight.transportpce</groupId>
   <artifactId>transportpce-dmaap-client</artifactId>
-  <version>7.0.0-SNAPSHOT</version>
+  <version>7.0.1-SNAPSHOT</version>
   <packaging>bundle</packaging>
   <description>client to send message to Dmaap message router</description>
 
   <properties>
-    <transportpce.models.version>18.0.0</transportpce.models.version>
+    <transportpce.models.version>18.0.1</transportpce.models.version>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
   </properties>
 
index 3ccdb2a3d1b2914f9329b95f4d2fa6a1600696e8..7b7e4f3b113541bfb94d26887d85b1eb5daba3bc 100644 (file)
@@ -18,7 +18,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
 
   <groupId>org.opendaylight.transportpce</groupId>
   <artifactId>features-transportpce</artifactId>
-  <version>7.0.0-SNAPSHOT</version>
+  <version>7.0.1-SNAPSHOT</version>
   <packaging>feature</packaging>
   <name>OpenDaylight :: TransportPCE :: Features</name>
 
index 002edacdb29ba183f8eb06ce01b56752a487875e..8f298fc49465421d31b5ca4459b8ab01087ecbd3 100644 (file)
@@ -17,7 +17,7 @@
 
   <groupId>org.opendaylight.transportpce</groupId>
   <artifactId>odl-transportpce-dmaap-client</artifactId>
-  <version>7.0.0-SNAPSHOT</version>
+  <version>7.0.1-SNAPSHOT</version>
   <packaging>feature</packaging>
   <name>OpenDaylight :: transportpce :: dmaap-client</name>
 
index 49a102f515368d934a986ff331f10a140ff952cc..42fbf3e8bbf21f0dd7666390d8ebe8bf05acaaa2 100644 (file)
 
   <groupId>org.opendaylight.transportpce</groupId>
   <artifactId>odl-transportpce-inventory</artifactId>
-  <version>7.0.0-SNAPSHOT</version>
+  <version>7.0.1-SNAPSHOT</version>
   <packaging>feature</packaging>
   <name>OpenDaylight :: transportpce :: Inventory</name>
 
   <properties>
     <mdsal.version>11.0.7</mdsal.version>
-    <netconf.version>5.0.3</netconf.version>
-    <transportpce.models.version>18.0.0</transportpce.models.version>
+    <netconf.version>5.0.4</netconf.version>
+    <transportpce.models.version>18.0.1</transportpce.models.version>
     <transportpce.db.host>localhost:3306</transportpce.db.host>
     <transportpce.db.database>transportpce</transportpce.db.database>
     <transportpce.db.username>root</transportpce.db.username>
index 026b455dd1a3ec28de4f9a5182986f349b784a81..998399b699d39843d9ee964c50e9e3a231480b45 100644 (file)
@@ -17,7 +17,7 @@
 
   <groupId>org.opendaylight.transportpce</groupId>
   <artifactId>odl-transportpce-nbinotifications</artifactId>
-  <version>7.0.0-SNAPSHOT</version>
+  <version>7.0.1-SNAPSHOT</version>
   <packaging>feature</packaging>
   <name>OpenDaylight :: transportpce :: nbinotifications</name>
 
index 97681c0f94e3482304419a425f95602622abf771..55ebfb34220d7a4c0d8e9eede6f22a378ae38143 100644 (file)
@@ -18,12 +18,12 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
 
   <groupId>org.opendaylight.transportpce</groupId>
   <artifactId>odl-transportpce-swagger</artifactId>
-  <version>7.0.0-SNAPSHOT</version>
+  <version>7.0.1-SNAPSHOT</version>
   <packaging>feature</packaging>
   <name>OpenDaylight :: transportpce :: swagger</name>
 
   <properties>
-    <netconf.version>5.0.3</netconf.version>
+    <netconf.version>5.0.4</netconf.version>
     <configfile.directory>etc/opendaylight/karaf</configfile.directory>
     <skip.karaf.featureTest>false</skip.karaf.featureTest>
   </properties>
index 5ed933095b0abcaf4dbcc7ff2161115cb9de9bcb..0234f02ca0eca1ab1e9bf75ffc842fffd430bb8d 100644 (file)
@@ -18,14 +18,14 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
 
   <groupId>org.opendaylight.transportpce</groupId>
   <artifactId>odl-transportpce-tapi</artifactId>
-  <version>7.0.0-SNAPSHOT</version>
+  <version>7.0.1-SNAPSHOT</version>
   <packaging>feature</packaging>
   <name>OpenDaylight :: transportpce :: tapi</name>
 
   <properties>
     <mdsal.version>11.0.7</mdsal.version>
-    <netconf.version>5.0.3</netconf.version>
-    <transportpce.models.version>18.0.0</transportpce.models.version>
+    <netconf.version>5.0.4</netconf.version>
+    <transportpce.models.version>18.0.1</transportpce.models.version>
     <skip.karaf.featureTest>false</skip.karaf.featureTest>
   </properties>
 
index 829abac2a633cf24e0cb0e16d7d53260a9164581..8e8c1dbc7ab6fb63c82c86daff99cc6896287fab 100644 (file)
@@ -18,13 +18,13 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
 
   <groupId>org.opendaylight.transportpce</groupId>
   <artifactId>odl-transportpce</artifactId>
-  <version>7.0.0-SNAPSHOT</version>
+  <version>7.0.1-SNAPSHOT</version>
   <packaging>feature</packaging>
   <name>OpenDaylight :: transportpce</name>
 
   <properties>
-    <netconf.version>5.0.3</netconf.version>
-    <transportpce.models.version>18.0.0</transportpce.models.version>
+    <netconf.version>5.0.4</netconf.version>
+    <transportpce.models.version>18.0.1</transportpce.models.version>
     <configfile.directory>etc/opendaylight/karaf</configfile.directory>
     <skip.karaf.featureTest>false</skip.karaf.featureTest>
   </properties>
index 24e8f7748958d50286409800817b178a28bf5f10..800bcae9f67850c3aa190e9377c1b577d89fc139 100644 (file)
@@ -18,7 +18,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
 
   <groupId>org.opendaylight.transportpce</groupId>
   <artifactId>features-aggregator</artifactId>
-  <version>7.0.0-SNAPSHOT</version>
+  <version>7.0.1-SNAPSHOT</version>
   <name>${project.artifactId}</name>
   <packaging>pom</packaging>
 
index 77a53c696fe65b64b339ce2247140da5af115ac6..e02ce5dedf2b167e1928aee16d695c6446654035 100644 (file)
 
   <groupId>org.opendaylight.transportpce</groupId>
   <artifactId>transportpce-inventory</artifactId>
-  <version>7.0.0-SNAPSHOT</version>
+  <version>7.0.1-SNAPSHOT</version>
   <packaging>bundle</packaging>
 
   <properties>
-    <transportpce.models.version>18.0.0</transportpce.models.version>
+    <transportpce.models.version>18.0.1</transportpce.models.version>
   </properties>
 
   <dependencyManagement>
@@ -35,7 +35,7 @@
       <dependency>
         <groupId>org.opendaylight.netconf</groupId>
         <artifactId>netconf-artifacts</artifactId>
-        <version>5.0.3</version>
+        <version>5.0.4</version>
         <scope>import</scope>
         <type>pom</type>
       </dependency>
index 28ad85a63f2073539320949768143484da6ae014..e74a7a02f28c8becd6ef2e82ae428d198af573ce 100644 (file)
@@ -18,7 +18,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
 
   <groupId>org.opendaylight.transportpce</groupId>
   <artifactId>transportpce-karaf</artifactId>
-  <version>7.0.0-SNAPSHOT</version>
+  <version>7.0.1-SNAPSHOT</version>
   <packaging>pom</packaging>
   <name>${project.artifactId}</name>
 
index ee04d5e90e4f2b112c9c6971bebc5b88367d600b..d7c9feec131f02b3c91561152533ee9ca60e7da2 100755 (executable)
@@ -2,6 +2,6 @@
 
 cd $(dirname "$0")
 export JDK_JAVA_OPTIONS="--add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED"
-#./build_lighty_core.sh
-mvn clean install -B -U -Dmaven.javadoc.skip=true -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -s ../tests/odl_settings.xml
+./build_lighty_core.sh
+mvn clean install -B -U -q -Dmaven.javadoc.skip=true -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -s ../tests/odl_settings.xml
 unzip -q target/tpce-bin.zip -d target
index 3621fb1a4884c8e3f795f4f4db6b275ce8b15896..68edd424c211605d50290c243eac0dffc9149d38 100755 (executable)
@@ -4,7 +4,7 @@ cd $(dirname "$0")
 cd ..
 git clone https://github.com/PantheonTechnologies/lighty-core.git
 cd lighty-core
-#git checkout master
-git checkout 15.1.x
+git checkout main
+#git checkout 18.0.x
 export JDK_JAVA_OPTIONS="--add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED"
-mvn clean install -B -U -DskipTests -Dmaven.javadoc.skip=true -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
+mvn clean install -B -U -q -DskipTests -Dmaven.javadoc.skip=true -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
index 6586ac4ea84d8a2bf1f4d100343dafcb449f7b85..182a3f211ae85616c91027661a126f6e018b20f5 100644 (file)
   <parent>
     <groupId>io.lighty.core</groupId>
     <artifactId>lighty-app-parent</artifactId>
-    <version>17.1.0</version>
+    <version>18.0.0-SNAPSHOT</version>
     <relativePath/>
   </parent>
 
   <groupId>io.lighty.controllers</groupId>
   <artifactId>tpce</artifactId>
-  <version>7.0.0-SNAPSHOT</version>
+  <version>7.0.1-SNAPSHOT</version>
   <packaging>jar</packaging>
 
   <properties>
     <application.main.class>io.lighty.controllers.tpce.Main</application.main.class>
     <application.attach.zip>true</application.attach.zip>
     <maven.deploy.skip>true</maven.deploy.skip>
-    <transportpce.version>7.0.0-SNAPSHOT</transportpce.version>
-    <transportpce.models.version>18.0.0</transportpce.models.version>
+    <transportpce.version>7.0.1-SNAPSHOT</transportpce.version>
+    <transportpce.models.version>18.0.1</transportpce.models.version>
   </properties>
 
   <dependencyManagement>
index 0505c1269937e8b108bc9d342591089e5bb1c61b..7b9c99c6b2f16b2714f0ee917687a1dfe449fe71 100644 (file)
@@ -27,7 +27,6 @@ import org.opendaylight.transportpce.common.mapping.PortMappingVersion221;
 import org.opendaylight.transportpce.common.mapping.PortMappingVersion710;
 import org.opendaylight.transportpce.common.network.NetworkTransactionImpl;
 import org.opendaylight.transportpce.common.network.NetworkTransactionService;
-import org.opendaylight.transportpce.common.network.RequestProcessor;
 import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfaces;
 import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfacesImpl;
 import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfacesImpl121;
@@ -55,13 +54,8 @@ import org.opendaylight.transportpce.pce.impl.PceProvider;
 import org.opendaylight.transportpce.pce.service.PathComputationService;
 import org.opendaylight.transportpce.pce.service.PathComputationServiceImpl;
 import org.opendaylight.transportpce.renderer.RendererProvider;
-import org.opendaylight.transportpce.renderer.openroadminterface.OpenRoadmInterface121;
-import org.opendaylight.transportpce.renderer.openroadminterface.OpenRoadmInterface221;
-import org.opendaylight.transportpce.renderer.openroadminterface.OpenRoadmInterface710;
 import org.opendaylight.transportpce.renderer.openroadminterface.OpenRoadmInterfaceFactory;
 // Adding OTN interface
-import org.opendaylight.transportpce.renderer.openroadminterface.OpenRoadmOtnInterface221;
-import org.opendaylight.transportpce.renderer.openroadminterface.OpenRoadmOtnInterface710;
 import org.opendaylight.transportpce.renderer.provisiondevice.DeviceRendererService;
 import org.opendaylight.transportpce.renderer.provisiondevice.DeviceRendererServiceImpl;
 import org.opendaylight.transportpce.renderer.provisiondevice.OtnDeviceRendererService;
@@ -92,8 +86,8 @@ import org.opendaylight.transportpce.tapi.topology.TapiOrLinkListener;
 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.networkutils.rev220630.TransportpceNetworkutilsService;
 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;
@@ -139,19 +133,18 @@ public class TransportPCEImpl extends AbstractLightyModule implements TransportP
         LOG.info("Creating network-model beans ...");
         R2RLinkDiscovery linkDiscoveryImpl = new R2RLinkDiscovery(lightyServices.getBindingDataBroker(),
                 deviceTransactionManager, networkTransaction);
-        TransportpceNetworkutilsService networkutilsServiceImpl = new NetworkUtilsImpl(
-                lightyServices.getBindingDataBroker());
         PortMapping portMapping = initPortMapping(lightyServices);
-        NetworkModelService networkModelService = new NetworkModelServiceImpl(networkTransaction, linkDiscoveryImpl,
-                portMapping, lightyServices.getBindingNotificationPublishService());
-        FrequenciesService networkModelWavelengthService =
-                new FrequenciesServiceImpl(lightyServices.getBindingDataBroker());
-        NetConfTopologyListener netConfTopologyListener = new NetConfTopologyListener(networkModelService,
+        NetworkModelService networkModelService = new NetworkModelServiceImpl(lightyServices.getBindingDataBroker(),
+                deviceTransactionManager, networkTransaction, portMapping,
+                lightyServices.getBindingNotificationPublishService());
+        FrequenciesService networkModelWavelengthService = new FrequenciesServiceImpl(
+                lightyServices.getBindingDataBroker());
+        new NetConfTopologyListener(networkModelService,
                 lightyServices.getBindingDataBroker(), deviceTransactionManager, portMapping);
-        PortMappingListener portMappingListener = new PortMappingListener(networkModelService);
+        new PortMappingListener(networkModelService);
         networkModelProvider = new NetworkModelProvider(networkTransaction, lightyServices.getBindingDataBroker(),
-                lightyServices.getRpcProviderService(), networkutilsServiceImpl, netConfTopologyListener,
-                lightyServices.getNotificationService(), networkModelWavelengthService, portMappingListener);
+                lightyServices.getRpcProviderService(), networkModelService, deviceTransactionManager, portMapping,
+                lightyServices.getNotificationService(), networkModelWavelengthService);
 
         LOG.info("Creating PCE beans ...");
         // TODO: pass those parameters through command line
@@ -169,21 +162,20 @@ public class TransportPCEImpl extends AbstractLightyModule implements TransportP
         MappingUtils mappingUtils = new MappingUtilsImpl(lightyServices.getBindingDataBroker());
         CrossConnect crossConnect = initCrossConnect(mappingUtils);
         OpenRoadmInterfaces openRoadmInterfaces = initOpenRoadmInterfaces(mappingUtils, portMapping);
-        PowerMgmt powerMgmt = new PowerMgmtImpl(lightyServices.getBindingDataBroker(), openRoadmInterfaces,
-                crossConnect, deviceTransactionManager, portMapping, olmtimer1, olmtimer2);
+        PowerMgmt powerMgmt = new PowerMgmtImpl(openRoadmInterfaces, crossConnect, deviceTransactionManager,
+                portMapping, Long.valueOf(olmtimer1).longValue(), Long.valueOf(olmtimer2).longValue());
         OlmPowerService olmPowerService = new OlmPowerServiceImpl(lightyServices.getBindingDataBroker(), powerMgmt,
                 deviceTransactionManager, portMapping, mappingUtils, openRoadmInterfaces);
         TransportpceOlmService olmPowerServiceRpc = new OlmPowerServiceRpcImpl(olmPowerService);
         olmProvider = new OlmProvider(lightyServices.getRpcProviderService(), olmPowerServiceRpc);
 
         LOG.info("Creating renderer beans ...");
-        OpenRoadmInterfaceFactory openRoadmInterfaceFactory = initOpenRoadmFactory(mappingUtils, openRoadmInterfaces,
-                portMapping);
+        initOpenRoadmFactory(mappingUtils, openRoadmInterfaces, portMapping);
         DeviceRendererService deviceRendererService = new DeviceRendererServiceImpl(
-                lightyServices.getBindingDataBroker(), deviceTransactionManager, openRoadmInterfaceFactory,
-                openRoadmInterfaces, crossConnect, portMapping);
-        OtnDeviceRendererService otnDeviceRendererService = new OtnDeviceRendererServiceImpl(openRoadmInterfaceFactory,
-                crossConnect, openRoadmInterfaces, deviceTransactionManager, networkModelService);
+                lightyServices.getBindingDataBroker(), deviceTransactionManager, openRoadmInterfaces, crossConnect,
+                mappingUtils, portMapping);
+        OtnDeviceRendererService otnDeviceRendererService = new OtnDeviceRendererServiceImpl(crossConnect,
+                openRoadmInterfaces, deviceTransactionManager, mappingUtils, portMapping);
         rendererProvider = initRenderer(lightyServices, olmPowerServiceRpc, deviceRendererService,
                 otnDeviceRendererService, portMapping);
 
@@ -248,14 +240,6 @@ public class TransportPCEImpl extends AbstractLightyModule implements TransportP
 
     @Override
     protected boolean initProcedure() {
-        LOG.info("Initializing PCE provider ...");
-        pceProvider.init();
-        LOG.info("Initializing network-model provider ...");
-        networkModelProvider.init();
-        LOG.info("Initializing OLM provider ...");
-        olmProvider.init();
-        LOG.info("Initializing renderer provider ...");
-        rendererProvider.init();
         LOG.info("Initializing service-handler provider ...");
         servicehandlerProvider.init();
         if (tapiProvider != null) {
@@ -290,7 +274,6 @@ public class TransportPCEImpl extends AbstractLightyModule implements TransportP
         LOG.info("Shutting down PCE provider ...");
         pceProvider.close();
         LOG.info("Shutting down transaction providers ...");
-        networkTransaction.close();
         deviceTransactionManager.preDestroy();
         LOG.info("Shutdown done.");
         return true;
@@ -322,21 +305,13 @@ 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,
             OpenRoadmInterfaces openRoadmInterfaces, PortMapping portMapping) {
-        OpenRoadmInterface121 openRoadmInterface121 = new OpenRoadmInterface121(portMapping, openRoadmInterfaces);
-        OpenRoadmInterface221 openRoadmInterface221 = new OpenRoadmInterface221(portMapping, openRoadmInterfaces);
-        OpenRoadmInterface710 openRoadmInterface710 = new OpenRoadmInterface710(portMapping, openRoadmInterfaces);
-        OpenRoadmOtnInterface221 openRoadmOtnInterface221 = new OpenRoadmOtnInterface221(portMapping,
-                openRoadmInterfaces);
-        OpenRoadmOtnInterface710 openRoadmOtnInterface710 = new OpenRoadmOtnInterface710(portMapping,
-            openRoadmInterfaces);
-        return new OpenRoadmInterfaceFactory(mappingUtils, openRoadmInterface121, openRoadmInterface221,
-            openRoadmInterface710, openRoadmOtnInterface221, openRoadmOtnInterface710);
+        return new OpenRoadmInterfaceFactory(mappingUtils, portMapping, openRoadmInterfaces);
     }
 
     private PortMapping initPortMapping(LightyServices lightyServices) {
@@ -359,6 +334,7 @@ public class TransportPCEImpl extends AbstractLightyModule implements TransportP
                 deviceTransactionManager, portMapping);
         return new OpenRoadmInterfacesImpl(deviceTransactionManager, mappingUtils, openRoadmInterfacesImpl121,
                 openRoadmInterfacesImpl221, openRoadmInterfacesImpl710);
+
     }
 
     private CrossConnect initCrossConnect(MappingUtils mappingUtils) {
index 27e201bbe6579c2eaea2e8346531d8e08d7ce4eb..7c16ea13f094d88994112367609873e278921129 100644 (file)
 
   <groupId>org.opendaylight.transportpce</groupId>
   <artifactId>transportpce-nbinotifications</artifactId>
-  <version>7.0.0-SNAPSHOT</version>
+  <version>7.0.1-SNAPSHOT</version>
   <packaging>bundle</packaging>
 
   <properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-    <transportpce.models.version>18.0.0</transportpce.models.version>
+    <transportpce.models.version>18.0.1</transportpce.models.version>
     <kafka.version>3.0.0</kafka.version>
   </properties>
 
index d2c4e9070984a321ea35eb45281ca339e101062f..52be880d7e3226685e1c4a10e85a5d47ec81ddd2 100644 (file)
@@ -19,11 +19,11 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
 
   <groupId>org.opendaylight.transportpce</groupId>
   <artifactId>transportpce-networkmodel</artifactId>
-  <version>7.0.0-SNAPSHOT</version>
+  <version>7.0.1-SNAPSHOT</version>
   <packaging>bundle</packaging>
 
   <properties>
-    <transportpce.models.version>18.0.0</transportpce.models.version>
+    <transportpce.models.version>18.0.1</transportpce.models.version>
   </properties>
 
   <dependencyManagement>
@@ -52,7 +52,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
       <dependency>
         <groupId>org.opendaylight.netconf</groupId>
         <artifactId>netconf-artifacts</artifactId>
-        <version>5.0.3</version>
+        <version>5.0.4</version>
         <scope>import</scope>
         <type>pom</type>
       </dependency>
@@ -162,6 +162,10 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
       <groupId>com.google.guava</groupId>
       <artifactId>guava</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.service.component.annotations</artifactId>
+    </dependency>
 
     <!-- Sodium bump: javax.annotation.Nullable and friends -->
     <dependency>
index fb8937decdff6e27774106f2621782ecb3f9535c..571f9076c35ce71e2b8e0fe3a1fd27de8893a883 100644 (file)
@@ -7,6 +7,7 @@
  */
 package org.opendaylight.transportpce.networkmodel;
 
+import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.mdsal.binding.api.DataBroker;
 import org.opendaylight.mdsal.binding.api.DataTreeIdentifier;
 import org.opendaylight.mdsal.binding.api.NotificationService;
@@ -14,10 +15,13 @@ import org.opendaylight.mdsal.binding.api.RpcProviderService;
 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.listeners.PortMappingListener;
 import org.opendaylight.transportpce.networkmodel.listeners.ServiceHandlerListener;
 import org.opendaylight.transportpce.networkmodel.service.FrequenciesService;
+import org.opendaylight.transportpce.networkmodel.service.NetworkModelService;
 import org.opendaylight.transportpce.networkmodel.util.TpceNetwork;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.networkutils.rev220630.TransportpceNetworkutilsService;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220922.Network;
@@ -25,11 +29,16 @@ import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmappi
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.servicehandler.rev201125.TransportpceServicehandlerListener;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
 import org.opendaylight.yangtools.concepts.ListenerRegistration;
-import org.opendaylight.yangtools.concepts.ObjectRegistration;
+import org.opendaylight.yangtools.concepts.Registration;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+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 NetworkModelProvider {
 
     private static final Logger LOG = LoggerFactory.getLogger(NetworkModelProvider.class);
@@ -44,31 +53,38 @@ public class NetworkModelProvider {
     private final NetConfTopologyListener topologyListener;
     private ListenerRegistration<NetConfTopologyListener> dataTreeChangeListenerRegistration;
     private ListenerRegistration<PortMappingListener> mappingListenerRegistration;
-    private ObjectRegistration<TransportpceNetworkutilsService> networkutilsServiceRpcRegistration;
+    private @NonNull Registration networkutilsServiceRpcRegistration;
     private TpceNetwork tpceNetwork;
     private ListenerRegistration<TransportpceServicehandlerListener> serviceHandlerListenerRegistration;
     private NotificationService notificationService;
     private FrequenciesService frequenciesService;
     private PortMappingListener portMappingListener;
 
-    public NetworkModelProvider(NetworkTransactionService networkTransactionService, final DataBroker dataBroker,
-        final RpcProviderService rpcProviderService, final TransportpceNetworkutilsService networkutilsService,
-        final NetConfTopologyListener topologyListener, NotificationService notificationService,
-        FrequenciesService frequenciesService, PortMappingListener portMappingListener) {
+    @Activate
+    public NetworkModelProvider(@Reference NetworkTransactionService networkTransactionService,
+            @Reference final DataBroker dataBroker,
+            @Reference final RpcProviderService rpcProviderService,
+            @Reference final NetworkModelService networkModelService,
+            @Reference DeviceTransactionManager deviceTransactionManager,
+            @Reference PortMapping portMapping,
+            @Reference NotificationService notificationService,
+            @Reference FrequenciesService frequenciesService) {
         this.dataBroker = dataBroker;
         this.rpcProviderService = rpcProviderService;
-        this.networkutilsService = networkutilsService;
-        this.topologyListener = topologyListener;
-        this.tpceNetwork = new TpceNetwork(networkTransactionService);
         this.notificationService = notificationService;
         this.frequenciesService = frequenciesService;
-        this.portMappingListener = portMappingListener;
+        this.networkutilsService = new NetworkUtilsImpl(dataBroker);
+        this.topologyListener = new NetConfTopologyListener(networkModelService, dataBroker, deviceTransactionManager,
+            portMapping);
+        this.tpceNetwork = new TpceNetwork(networkTransactionService);
+        this.portMappingListener = new PortMappingListener(networkModelService);
+        this.init();
     }
 
     /**
      * Method called when the blueprint container is created.
      */
-    public void init() {
+    private void init() {
         LOG.info("NetworkModelProvider Session Initiated");
         tpceNetwork.createLayer(NetworkUtils.CLLI_NETWORK_ID);
         tpceNetwork.createLayer(NetworkUtils.UNDERLAY_NETWORK_ID);
@@ -79,16 +95,16 @@ public class NetworkModelProvider {
                 InstanceIdentifiers.NETCONF_TOPOLOGY_II.child(Node.class)), topologyListener);
         mappingListenerRegistration = dataBroker.registerDataTreeChangeListener(
                 DataTreeIdentifier.create(LogicalDatastoreType.CONFIGURATION, MAPPING_II), portMappingListener);
-        networkutilsServiceRpcRegistration =
-            rpcProviderService.registerRpcImplementation(TransportpceNetworkutilsService.class, networkutilsService);
-        TransportpceServicehandlerListener serviceHandlerListner =
-                new ServiceHandlerListener(frequenciesService);
+        networkutilsServiceRpcRegistration = rpcProviderService
+            .registerRpcImplementation(TransportpceNetworkutilsService.class, networkutilsService);
+        TransportpceServicehandlerListener serviceHandlerListner = new ServiceHandlerListener(frequenciesService);
         serviceHandlerListenerRegistration = notificationService.registerNotificationListener(serviceHandlerListner);
     }
 
         /**
          * Method called when the blueprint container is destroyed.
          */
+    @Deactivate
     public void close() {
         LOG.info("NetworkModelProvider Closed");
         if (dataTreeChangeListenerRegistration != null) {
index f2e7776101541a21531caecb5e3ed096803687ba..09221559c72a1730d0e475b31ff1a9743ddd2139 100644 (file)
@@ -62,16 +62,21 @@ import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdes
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.Decimal64;
 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
 public class FrequenciesServiceImpl implements FrequenciesService {
 
     private static final Logger LOG = LoggerFactory.getLogger(FrequenciesServiceImpl.class);
     private final DataBroker dataBroker;
     private final AvailFreqMapsKey availFreqMapKey = new AvailFreqMapsKey(GridConstant.C_BAND);
 
-    public FrequenciesServiceImpl(DataBroker dataBroker) {
+    @Activate
+    public FrequenciesServiceImpl(@Reference DataBroker dataBroker) {
         this.dataBroker = dataBroker;
     }
 
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
diff --git a/networkmodel/src/main/resources/OSGI-INF/blueprint/networkmodel-blueprint.xml b/networkmodel/src/main/resources/OSGI-INF/blueprint/networkmodel-blueprint.xml
deleted file mode 100644 (file)
index e129842..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- vi: set et smarttab sw=4 tabstop=4: -->
-<!-- Copyright © 2016 Orange and others. All rights reserved. This program and the accompanying materials
-    are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution,
-    and is available at http://www.eclipse.org/legal/epl-v10.html -->
-<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
-
-    <reference id="dataBroker" interface="org.opendaylight.mdsal.binding.api.DataBroker" />
-    <reference id="rpcProviderService" interface="org.opendaylight.mdsal.binding.api.RpcProviderService" />
-    <reference id="deviceTransactionManager" interface="org.opendaylight.transportpce.common.device.DeviceTransactionManager" />
-    <reference id="portMapping" interface="org.opendaylight.transportpce.common.mapping.PortMapping" />
-    <reference id="networkTransactionImpl" interface="org.opendaylight.transportpce.common.network.NetworkTransactionService" />
-    <reference id="mappingUtils" interface="org.opendaylight.transportpce.common.mapping.MappingUtils" />
-    <reference id="notificationService" interface="org.opendaylight.mdsal.binding.api.NotificationService"/>
-    <reference id="notificationPublishService" interface="org.opendaylight.mdsal.binding.api.NotificationPublishService"/>
-
-    <bean id="networkModelService" class="org.opendaylight.transportpce.networkmodel.service.NetworkModelServiceImpl">
-        <argument ref="networkTransactionImpl" />
-        <argument ref="linkDiscoveryImpl" />
-        <argument ref="portMapping" />
-        <argument ref="notificationPublishService" />
-    </bean>
-
-    <bean id="provider" class="org.opendaylight.transportpce.networkmodel.NetworkModelProvider"
-        init-method="init" destroy-method="close">
-        <argument ref="networkTransactionImpl" />
-        <argument ref="dataBroker" />
-        <argument ref="rpcProviderService" />
-        <argument ref="networkutilsServiceImpl" />
-        <argument ref="netconfTopologyListener" />
-        <argument ref="notificationService" />
-        <argument ref="frequenciesService" />
-        <argument ref="portMappingListener" />
-    </bean>
-
-    <bean id="portMappingListener" class="org.opendaylight.transportpce.networkmodel.listeners.PortMappingListener">
-        <argument ref="networkModelService" />
-    </bean>
-
-    <bean id="netconfTopologyListener" class="org.opendaylight.transportpce.networkmodel.NetConfTopologyListener">
-        <argument ref="networkModelService" />
-        <argument ref="dataBroker" />
-        <argument ref="deviceTransactionManager" />
-        <argument ref="portMapping" />
-    </bean>
-
-    <bean id="networkutilsServiceImpl" class="org.opendaylight.transportpce.networkmodel.NetworkUtilsImpl">
-        <argument ref="dataBroker" />
-    </bean>
-
-    <bean id="linkDiscoveryImpl" class="org.opendaylight.transportpce.networkmodel.R2RLinkDiscovery">
-        <argument ref="dataBroker" />
-        <argument ref="deviceTransactionManager" />
-        <argument ref="networkTransactionImpl" />
-   </bean>
-
-    <bean id="frequenciesService" class="org.opendaylight.transportpce.networkmodel.service.FrequenciesServiceImpl">
-        <argument ref="dataBroker" />
-    </bean>
-
-    <service ref="networkModelService" interface="org.opendaylight.transportpce.networkmodel.service.NetworkModelService" />
-
-    <service ref="frequenciesService" interface="org.opendaylight.transportpce.networkmodel.service.FrequenciesService" />
-
-</blueprint>
index 5f31c3bdcf4487ca2795379297602019e24b7805..451e63ba55b4666d4bbd34835faa4d00f6339b37 100644 (file)
@@ -22,9 +22,11 @@ import org.mockito.stubbing.Answer;
 import org.opendaylight.mdsal.binding.api.NotificationService;
 import org.opendaylight.mdsal.binding.api.RpcProviderService;
 import org.opendaylight.mdsal.common.api.CommitInfo;
+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.listeners.PortMappingListener;
 import org.opendaylight.transportpce.networkmodel.service.FrequenciesService;
+import org.opendaylight.transportpce.networkmodel.service.NetworkModelService;
 import org.opendaylight.transportpce.test.AbstractTest;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.networkutils.rev220630.TransportpceNetworkutilsService;
 
@@ -35,22 +37,21 @@ public class NetworkModelProviderTest extends AbstractTest {
     @Mock
     RpcProviderService rpcProviderService;
     @Mock
-    TransportpceNetworkutilsService networkutilsService;
+    NetworkModelService networkModelService;
     @Mock
-    NetConfTopologyListener topologyListener;
+    DeviceTransactionManager deviceTransactionManager;
+    @Mock
+    PortMapping portMapping;
     @Mock
-    private NotificationService notificationService;
+    NetConfTopologyListener topologyListener;
     @Mock
-    private FrequenciesService frequenciesService;
+    NotificationService notificationService;
     @Mock
-    private PortMappingListener portMappingListener;
+    FrequenciesService frequenciesService;
 
 
     @Test
     void networkmodelProviderInitTest() {
-        NetworkModelProvider provider = new NetworkModelProvider(networkTransactionService, getDataBroker(),
-            rpcProviderService, networkutilsService, topologyListener, notificationService,
-            frequenciesService, portMappingListener);
         Answer<FluentFuture<CommitInfo>> answer = new Answer<FluentFuture<CommitInfo>>() {
 
             @Override
@@ -61,7 +62,9 @@ public class NetworkModelProviderTest extends AbstractTest {
         };
         when(networkTransactionService.commit()).then(answer);
 
-        provider.init();
+        new NetworkModelProvider(networkTransactionService, getDataBroker(),
+            rpcProviderService, networkModelService, deviceTransactionManager, portMapping, notificationService,
+            frequenciesService);
 
         verify(rpcProviderService, times(1))
             .registerRpcImplementation(any(), any(TransportpceNetworkutilsService.class));
index 38f0fb46711500c5922eafba69654771ed7f95a5..acd72058774a3b4fa55d9f1181e60cfbcbdfe5cd 100644 (file)
@@ -19,11 +19,11 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
 
   <groupId>org.opendaylight.transportpce</groupId>
   <artifactId>transportpce-olm</artifactId>
-  <version>7.0.0-SNAPSHOT</version>
+  <version>7.0.1-SNAPSHOT</version>
   <packaging>bundle</packaging>
 
   <properties>
-    <transportpce.models.version>18.0.0</transportpce.models.version>
+    <transportpce.models.version>18.0.1</transportpce.models.version>
   </properties>
 
   <dependencyManagement>
@@ -109,6 +109,14 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
       <groupId>com.google.guava</groupId>
       <artifactId>guava</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.service.component.annotations</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.service.metatype.annotations</artifactId>
+    </dependency>
 
     <!-- Testing Dependencies -->
     <dependency>
index c12491b58945a9fa57dcdec709a9460ac8392e1d..78c165b2be31c5738699d21220f6cfd6201ca17b 100644 (file)
@@ -26,17 +26,22 @@ import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev21
 import org.opendaylight.yangtools.yang.common.ErrorType;
 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;
 
 /**
  * The Class OlmPowerServiceRpcImpl.
  */
+@Component
 public class OlmPowerServiceRpcImpl implements TransportpceOlmService {
     private static final Logger LOG = LoggerFactory.getLogger(OlmPowerServiceRpcImpl.class);
     private final OlmPowerService olmPowerService;
 
-    public OlmPowerServiceRpcImpl(OlmPowerService olmPowerService) {
+    @Activate
+    public OlmPowerServiceRpcImpl(@Reference OlmPowerService olmPowerService) {
         this.olmPowerService = olmPowerService;
     }
 
index 7ab54ce159a3fdd03f23d9a0aee18beee09047d3..3a33a43a35c9d1ed44a79967e9f380d394f85928 100644 (file)
@@ -11,16 +11,19 @@ package org.opendaylight.transportpce.olm;
 import org.opendaylight.mdsal.binding.api.RpcProviderService;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev210618.TransportpceOlmService;
 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;
 
 /**
  * The Class OlmProvider.
  */
+@Component
 public class OlmProvider {
     private static final Logger LOG = LoggerFactory.getLogger(OlmProvider.class);
-    private final RpcProviderService rpcProviderService;
-    private final TransportpceOlmService olmPowerServiceRpc;
     private ObjectRegistration<TransportpceOlmService> olmRPCRegistration;
 
     /**
@@ -30,24 +33,18 @@ public class OlmProvider {
      * @param rpcProviderService
      *            the rpc provider service
      */
-    public OlmProvider(final RpcProviderService rpcProviderService, final TransportpceOlmService olmPowerServiceRpc) {
-        this.rpcProviderService = rpcProviderService;
-        this.olmPowerServiceRpc = olmPowerServiceRpc;
-    }
-
-    /**
-     * Method called when the blueprint container is created.
-     */
-    public void init() {
-        LOG.info("OlmProvider Session Initiated");
-        // Initializing Notification module
+    @Activate
+    public OlmProvider(@Reference final RpcProviderService rpcProviderService,
+            @Reference final TransportpceOlmService olmPowerServiceRpc) {
         olmRPCRegistration = rpcProviderService.registerRpcImplementation(TransportpceOlmService.class,
-                this.olmPowerServiceRpc);
+                olmPowerServiceRpc);
+        LOG.info("OlmProvider Session Initiated");
     }
 
     /**
      * Method called when the blueprint container is destroyed.
      */
+    @Deactivate
     public void close() {
         LOG.info("OlmProvider Closed");
         // Clean up the RPC service registration
index 0be501425aa0b624026e0fdb452b8b92ddfc9f0f..74537a255bde6c28f802241ab987b7bd8ca7743b 100644 (file)
@@ -15,7 +15,6 @@ import java.util.HashMap;
 import java.util.Locale;
 import java.util.Map;
 import java.util.Optional;
-import org.opendaylight.mdsal.binding.api.DataBroker;
 import org.opendaylight.transportpce.common.crossconnect.CrossConnect;
 import org.opendaylight.transportpce.common.device.DeviceTransactionManager;
 import org.opendaylight.transportpce.common.fixedflex.GridConstant;
@@ -32,12 +31,25 @@ import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev161014.Op
 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.interfaces.grp.Interface;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.optical.transport.interfaces.rev161014.Interface1;
 import org.opendaylight.yangtools.yang.common.Decimal64;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
+import org.osgi.service.metatype.annotations.AttributeDefinition;
+import org.osgi.service.metatype.annotations.ObjectClassDefinition;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+@Component(configurationPid = "org.opendaylight.transportpce")
 public class PowerMgmtImpl implements PowerMgmt {
+
+    @ObjectClassDefinition
+    public @interface Configuration {
+        @AttributeDefinition
+        long timer1() default 120000;
+        @AttributeDefinition
+        long timer2() default 20000;
+    }
     private static final Logger LOG = LoggerFactory.getLogger(PowerMgmtImpl.class);
-    private final DataBroker db;
     private final OpenRoadmInterfaces openRoadmInterfaces;
     private final CrossConnect crossConnect;
     private final DeviceTransactionManager deviceTransactionManager;
@@ -47,42 +59,42 @@ public class PowerMgmtImpl implements PowerMgmt {
     private static final String INTERFACE_NOT_PRESENT = "Interface {} on node {} is not present!";
     private static final double MC_WIDTH_GRAN = 2 * GridConstant.GRANULARITY;
 
-    private long timer1 = 120000;
+    private long timer1;
     // openroadm spec value is 120000, functest value is 3000
-    private long timer2 = 20000;
+    private long timer2;
     // openroadm spec value is 20000, functest value is 2000
 
-    public PowerMgmtImpl(DataBroker db, OpenRoadmInterfaces openRoadmInterfaces, CrossConnect crossConnect,
-            DeviceTransactionManager deviceTransactionManager, PortMapping portMapping) {
-        this.db = db;
-        this.openRoadmInterfaces = openRoadmInterfaces;
-        this.crossConnect = crossConnect;
-        this.deviceTransactionManager = deviceTransactionManager;
-        this.portMapping = portMapping;
+    @Activate
+    public PowerMgmtImpl(@Reference OpenRoadmInterfaces openRoadmInterfaces,
+            @Reference CrossConnect crossConnect,
+            @Reference DeviceTransactionManager deviceTransactionManager,
+            @Reference PortMapping portMapping, final Configuration configuration) {
+        this(openRoadmInterfaces, crossConnect, deviceTransactionManager, portMapping, configuration.timer1(),
+                configuration.timer2());
     }
 
-    public PowerMgmtImpl(DataBroker db, OpenRoadmInterfaces openRoadmInterfaces,
+    public PowerMgmtImpl(OpenRoadmInterfaces openRoadmInterfaces,
                          CrossConnect crossConnect, DeviceTransactionManager deviceTransactionManager,
-            PortMapping portMapping, String timer1, String timer2) {
-        this.db = db;
+            PortMapping portMapping, long timer1, long timer2) {
         this.openRoadmInterfaces = openRoadmInterfaces;
         this.crossConnect = crossConnect;
         this.deviceTransactionManager = deviceTransactionManager;
         this.portMapping = portMapping;
         try {
-            this.timer1 = Long.parseLong(timer1);
+            this.timer1 = Long.valueOf(timer1);
         } catch (NumberFormatException e) {
             this.timer1 = 120000;
             LOG.warn("Failed to retrieve Olm timer1 value from configuration - using default value {}",
                 this.timer1, e);
         }
         try {
-            this.timer2 = Long.parseLong(timer2);
+            this.timer2 = Long.valueOf(timer2);
         } catch (NumberFormatException e) {
             this.timer2 = 20000;
             LOG.warn("Failed to retrieve Olm timer2 value from configuration - using default value {}",
                 this.timer2, e);
         }
+        LOG.debug("PowerMgmtImpl instantiated with olm timers = {} - {}", this.timer1, this.timer2);
     }
 
     /**
index 606bdbe04ba10984bb8724a88806ddb938c379a7..2419fd96ea8dab1069985a7cd228473bc7fcac30 100644 (file)
@@ -92,9 +92,13 @@ 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.binding.KeyedInstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.Decimal64;
+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 OlmPowerServiceImpl implements OlmPowerService {
     private static final Logger LOG = LoggerFactory.getLogger(OlmPowerServiceImpl.class);
     private final MappingUtils mappingUtils;
@@ -104,26 +108,22 @@ public class OlmPowerServiceImpl implements OlmPowerService {
     private final DeviceTransactionManager deviceTransactionManager;
     private final PortMapping portMapping;
 
-    public OlmPowerServiceImpl(DataBroker dataBroker, PowerMgmt powerMgmt,
-                               DeviceTransactionManager deviceTransactionManager, PortMapping portMapping,
-                               MappingUtils mappingUtils, OpenRoadmInterfaces openRoadmInterfaces) {
+    @Activate
+    public OlmPowerServiceImpl(@Reference DataBroker dataBroker,
+            @Reference PowerMgmt powerMgmt,
+            @Reference DeviceTransactionManager deviceTransactionManager,
+            @Reference PortMapping portMapping,
+            @Reference MappingUtils mappingUtils,
+            @Reference OpenRoadmInterfaces openRoadmInterfaces) {
         this.dataBroker = dataBroker;
         this.powerMgmt = powerMgmt;
         this.portMapping = portMapping;
         this.deviceTransactionManager = deviceTransactionManager;
         this.mappingUtils = mappingUtils;
         this.openRoadmInterfaces = openRoadmInterfaces;
+        LOG.debug("OlmPowerServiceImpl Instantiated");
     }
 
-    public void init() {
-        LOG.info("init ...");
-    }
-
-    public void close() {
-        LOG.info("close ...");
-    }
-
-
     @Override
     public GetPmOutput getPm(GetPmInput pmInput) {
         GetPmOutputBuilder pmOutputBuilder = new GetPmOutputBuilder();
diff --git a/olm/src/main/resources/OSGI-INF/blueprint/olm-blueprint.xml b/olm/src/main/resources/OSGI-INF/blueprint/olm-blueprint.xml
deleted file mode 100644 (file)
index ca76f85..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- vi: set et smarttab sw=4 tabstop=4: -->
-<!--
-Copyright © 2016 Orange and others. All rights reserved.
-
-This program and the accompanying materials are made available under the
-terms of the Eclipse Public License v1.0 which accompanies this distribution,
-and is available at http://www.eclipse.org/legal/epl-v10.html
--->
-<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
-           xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0">
-
-    <cm:property-placeholder persistent-id="org.opendaylight.transportpce" update-strategy="reload">
-        <cm:default-properties>
-            <cm:property name="timer1" value="" />
-            <cm:property name="timer2" value="" />
-            <!--The following values are used to speed-up tests with simulators without convergence times-->
-            <!--cm:property name="timer1" value="3000" /-->
-            <!--cm:property name="timer2" value="2000" /-->
-        </cm:default-properties>
-    </cm:property-placeholder>
-
-
-  <reference id="dataBroker"
-        interface="org.opendaylight.mdsal.binding.api.DataBroker"/>
-  <reference id="rpcProviderService"
-        interface="org.opendaylight.mdsal.binding.api.RpcProviderService" />
-  <reference id="openRoadmInterfaces"
-        interface="org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfaces" />
-  <reference id="crossConnect"
-        interface="org.opendaylight.transportpce.common.crossconnect.CrossConnect" />
-  <reference id="deviceTransactionManager"
-        interface="org.opendaylight.transportpce.common.device.DeviceTransactionManager" />
-  <reference id="portMapping"
-        interface="org.opendaylight.transportpce.common.mapping.PortMapping" />
-  <reference id="mappingUtils" interface="org.opendaylight.transportpce.common.mapping.MappingUtils" />
-
-  <bean id="powerMgmt" class="org.opendaylight.transportpce.olm.power.PowerMgmtImpl" >
-    <argument ref="dataBroker" />
-    <argument ref="openRoadmInterfaces" />
-    <argument ref="crossConnect" />
-    <argument ref="deviceTransactionManager" />
-    <argument ref="portMapping" />
-    <argument value="${timer1}"/>
-    <argument value="${timer2}"/>
-  </bean>
-
-  <bean id="olmPowerServiceImpl" class="org.opendaylight.transportpce.olm.service.OlmPowerServiceImpl">
-    <argument ref="dataBroker" />
-    <argument ref="powerMgmt" />
-    <argument ref="deviceTransactionManager" />
-    <argument ref="portMapping" />
-    <argument ref="mappingUtils" />
-    <argument ref="openRoadmInterfaces" />
-  </bean>
-
-  <bean id="olmPowerServiceRpcImpl" class="org.opendaylight.transportpce.olm.OlmPowerServiceRpcImpl">
-    <argument ref="olmPowerServiceImpl" />
-  </bean>
-
-  <bean id="provider" class="org.opendaylight.transportpce.olm.OlmProvider"
-        init-method="init" destroy-method="close">
-    <argument ref="rpcProviderService" />
-    <argument ref="olmPowerServiceRpcImpl" />
-  </bean>
-
-  <service ref="olmPowerServiceRpcImpl"
-           interface="org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev210618.TransportpceOlmService"/>
-  </blueprint>
index 92bc79e65e5ac03774e93ef1612324068634273d..a75623d65bffadf8930e1bd19d89e3f274c9a42b 100644 (file)
@@ -129,8 +129,8 @@ public class OlmPowerServiceRpcImplTest extends AbstractTest {
                 this.mappingUtils,this.openRoadmInterfacesImpl121,this.openRoadmInterfacesImpl22,
             this.openRoadmInterfacesImpl710);
         this.portMapping = Mockito.spy(this.portMapping);
-        this.powerMgmt = new PowerMgmtImpl(getDataBroker(), this.openRoadmInterfaces, this.crossConnect,
-            this.deviceTransactionManager, this.portMapping);
+        this.powerMgmt = new PowerMgmtImpl(this.openRoadmInterfaces, this.crossConnect,
+            this.deviceTransactionManager, this.portMapping, 1000, 1000);
         this.olmPowerService = new OlmPowerServiceImpl(getDataBroker(), this.powerMgmt,
             this.deviceTransactionManager, this.portMapping,mappingUtils,openRoadmInterfaces);
         this.olmPowerServiceRpc = new OlmPowerServiceRpcImpl(this.olmPowerService);
index d28c5e6bf669fe25c845c4068643dfb9215eadd7..62fdb6b33b39bb944442780400b5338a63119750 100644 (file)
@@ -111,8 +111,8 @@ public class PowerMgmtPowerMockTest extends AbstractTest {
             this.openRoadmInterfacesImpl710);
         this.openRoadmInterfaces = Mockito.spy(this.openRoadmInterfaces);
         this.portMapping = Mockito.spy(this.portMapping);
-        this.powerMgmt = new PowerMgmtImpl(getDataBroker(), this.openRoadmInterfaces, this.crossConnect,
-                this.deviceTransactionManager, this.portMapping);
+        this.powerMgmt = new PowerMgmtImpl(this.openRoadmInterfaces, this.crossConnect,
+                this.deviceTransactionManager, this.portMapping, 1000, 1000);
     }
 
     @Test
@@ -235,8 +235,8 @@ public class PowerMgmtPowerMockTest extends AbstractTest {
                 this.mappingUtils, openRoadmInterfacesImpl121Spy, this.openRoadmInterfacesImpl22,
             this.openRoadmInterfacesImpl710);
         openRoadmInterfacesSpy = Mockito.spy(openRoadmInterfacesSpy);
-        return new PowerMgmtImpl(getDataBroker(), openRoadmInterfacesSpy, crossConnectMock,
-                this.deviceTransactionManager, this.portMapping);
+        return new PowerMgmtImpl(openRoadmInterfacesSpy, crossConnectMock,
+                this.deviceTransactionManager, this.portMapping, 0, 0);
     }
 
     private Nodes getXpdrNodesFromNodesBuilderDeg() {
index 6d6f0c147d6ca9ebbf21ab9ef7cd42a2b56e7c33..9c6a562b1f3db301f29eafbf5c3570cffc1ee67a 100644 (file)
@@ -44,7 +44,6 @@ import org.opendaylight.yang.gen.v1.http.org.openroadm.optical.transport.interfa
 import org.opendaylight.yangtools.yang.common.Decimal64;
 
 public class PowerMgmtTest {
-    private DataBroker dataBroker;
     private OpenRoadmInterfaces openRoadmInterfaces;
     private CrossConnect crossConnect;
     private DeviceTransactionManager deviceTransactionManager;
@@ -53,13 +52,13 @@ public class PowerMgmtTest {
 
     @BeforeEach
     void setUp() {
-        this.dataBroker = Mockito.mock(DataBroker.class);
+        Mockito.mock(DataBroker.class);
         this.openRoadmInterfaces = Mockito.mock(OpenRoadmInterfaces.class);
         this.crossConnect = Mockito.mock((CrossConnectImpl.class));
         this.deviceTransactionManager = Mockito.mock(DeviceTransactionManager.class);
         this.portMapping = Mockito.mock(PortMapping.class);
-        this.powerMgmt = new PowerMgmtImpl(this.dataBroker, this.openRoadmInterfaces, this.crossConnect,
-                this.deviceTransactionManager, this.portMapping, "1000", "1000");
+        this.powerMgmt = new PowerMgmtImpl(this.openRoadmInterfaces, this.crossConnect,
+                this.deviceTransactionManager, this.portMapping, 1000, 1000);
     }
 
     @Test
index 86113ab5f72ecc181a49db136034e33182a48320..513987fe43ec0d46c40f5adb2d7bf8c4907ae42f 100644 (file)
@@ -62,13 +62,6 @@ public class OlmPowerServiceImplTest  extends AbstractTest {
                 this.portMapping, this.mappingUtils, this.openRoadmInterfaces);
     }
 
-    @Test
-    void dummyTest() {
-        OlmPowerServiceImpl olmPowerServiceImpl = (OlmPowerServiceImpl) this.olmPowerService;
-        olmPowerServiceImpl.init();
-        olmPowerServiceImpl.close();
-    }
-
     @Test
     void testGetPm() {
         when(this.mappingUtils.getOpenRoadmVersion(anyString()))
index 54ce3bd6770a723b84fab8abcc5c6f2a5c67f82d..a698df9d9ce075327390b91d34bb34519e4622cc 100644 (file)
 
   <groupId>org.opendaylight.transportpce</groupId>
   <artifactId>transportpce-pce</artifactId>
-  <version>7.0.0-SNAPSHOT</version>
+  <version>7.0.1-SNAPSHOT</version>
   <packaging>bundle</packaging>
 
   <properties>
-    <transportpce.models.version>18.0.0</transportpce.models.version>
+    <transportpce.models.version>18.0.1</transportpce.models.version>
   </properties>
 
   <dependencyManagement>
       <groupId>jakarta.ws.rs</groupId>
       <artifactId>jakarta.ws.rs-api</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.service.component.annotations</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.service.metatype.annotations</artifactId>
+    </dependency>
 
     <!-- Testing Dependencies -->
     <dependency>
index b0854e02b128628d5527e67a2276ed76c00aa2cd..7d307636ac6d99187a48bfcdb5f5b060cf21126b 100644 (file)
@@ -19,14 +19,36 @@ import org.opendaylight.mdsal.binding.dom.codec.spi.BindingDOMCodecServices;
 import org.opendaylight.transportpce.common.converter.JsonStringConverter;
 import org.opendaylight.yang.gen.v1.gnpy.gnpy.api.rev220221.Request;
 import org.opendaylight.yang.gen.v1.gnpy.path.rev220615.Result;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
+import org.osgi.service.metatype.annotations.AttributeDefinition;
+import org.osgi.service.metatype.annotations.ObjectClassDefinition;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+@Component(configurationPid = "org.opendaylight.transportpce.pce")
 public class GnpyConsumerImpl implements GnpyConsumer {
+    @ObjectClassDefinition
+    public @interface Configuration {
+        @AttributeDefinition
+        String url() default "http://127.0.0.1:8008";
+        @AttributeDefinition
+        String username() default "gnpy";
+        @AttributeDefinition
+        String password() default "gnpy";
+    }
+
     private static final Logger LOG = LoggerFactory.getLogger(GnpyConsumerImpl.class);
 
     private final GnpyResource api;
 
+    @Activate
+    public GnpyConsumerImpl(final Configuration configuration,
+            @Reference BindingDOMCodecServices bindingDOMCodecServices) {
+        this(configuration.url(), configuration.username(), configuration.password(), bindingDOMCodecServices);
+    }
+
     public GnpyConsumerImpl(String baseUrl, String username, String password,
             BindingDOMCodecServices bindingDOMCodecServices) {
         JsonStringConverter<Request> gnpyRequestConverter = new JsonStringConverter<>(bindingDOMCodecServices);
index f5b1516f71708ca83ab192790a6832f6f69946b1..bab1554114ad7fe1e80d1f2f4e90311a3a6464d6 100644 (file)
@@ -11,6 +11,10 @@ import org.opendaylight.mdsal.binding.api.RpcProviderService;
 import org.opendaylight.transportpce.pce.service.PathComputationService;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220808.TransportpcePceService;
 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;
 
@@ -18,23 +22,18 @@ import org.slf4j.LoggerFactory;
  * Class to register
  * Pce Service & Notification.
  */
+@Component
 public class PceProvider {
 
     private static final Logger LOG = LoggerFactory.getLogger(PceProvider.class);
 
     private final RpcProviderService rpcService;
-    private final PathComputationService pathComputationService;
     private ObjectRegistration<PceServiceRPCImpl> rpcRegistration;
 
-    public PceProvider(RpcProviderService rpcProviderService, PathComputationService pathComputationService) {
+    @Activate
+    public PceProvider(@Reference RpcProviderService rpcProviderService,
+            @Reference PathComputationService pathComputationService) {
         this.rpcService = rpcProviderService;
-        this.pathComputationService = pathComputationService;
-    }
-
-    /*
-     * Method called when the blueprint container is created.
-     */
-    public void init() {
         LOG.info("PceProvider Session Initiated");
         final PceServiceRPCImpl consumer = new PceServiceRPCImpl(pathComputationService);
         rpcRegistration = rpcService.registerRpcImplementation(TransportpcePceService.class, consumer);
@@ -43,9 +42,9 @@ public class PceProvider {
     /*
      * Method called when the blueprint container is destroyed.
      */
+    @Deactivate
     public void close() {
         LOG.info("PceProvider Closed");
         rpcRegistration.close();
     }
-
 }
index 32942c2bd12d9a92de028e557cc51b7335d7009f..3bda9da106ae4c8e72ce4298b9c1fa9ec1edca7f 100644 (file)
@@ -55,9 +55,13 @@ import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118.ServicePathNotificationTypes;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118.response.parameters.sp.ResponseParametersBuilder;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118.service.handler.header.ServiceHandlerHeaderBuilder;
+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 PathComputationServiceImpl implements PathComputationService {
 
     private static final Logger LOG = LoggerFactory.getLogger(PathComputationServiceImpl.class);
@@ -68,22 +72,17 @@ public class PathComputationServiceImpl implements PathComputationService {
     private final GnpyConsumer gnpyConsumer;
     private PortMapping portMapping;
 
-    public PathComputationServiceImpl(NetworkTransactionService networkTransactionService,
-                                      NotificationPublishService notificationPublishService,
-                                      GnpyConsumer gnpyConsumer, PortMapping portMapping) {
+    @Activate
+    public PathComputationServiceImpl(@Reference NetworkTransactionService networkTransactionService,
+            @Reference NotificationPublishService notificationPublishService,
+            @Reference GnpyConsumer gnpyConsumer,
+            @Reference PortMapping portMapping) {
         this.notificationPublishService = notificationPublishService;
         this.networkTransactionService = networkTransactionService;
         this.executor = MoreExecutors.listeningDecorator(Executors.newFixedThreadPool(5));
         this.gnpyConsumer = gnpyConsumer;
         this.portMapping = portMapping;
-    }
-
-    public void init() {
-        LOG.info("init ...");
-    }
-
-    public void close() {
-        LOG.info("close.");
+        LOG.debug("PathComputationServiceImpl instantiated");
     }
 
     @SuppressFBWarnings(
diff --git a/pce/src/main/resources/OSGI-INF/blueprint/pce-blueprint.xml b/pce/src/main/resources/OSGI-INF/blueprint/pce-blueprint.xml
deleted file mode 100755 (executable)
index c8da033..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- vi: set et smarttab sw=4 tabstop=4: -->
-<!--
-Copyright © 2017 Orange and others. All rights reserved.
-
-This program and the accompanying materials are made available under the
-terms of the Eclipse Public License v1.0 which accompanies this distribution,
-and is available at http://www.eclipse.org/legal/epl-v10.html
-
-Author: Martial Coulibaly <martial.coulibaly@gfi.com> on behalf of Orange
--->
-<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
-           xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0">
-    <cm:property-placeholder persistent-id="org.opendaylight.transportpce.pce" update-strategy="reload">
-        <cm:default-properties>
-            <cm:property name="url" value="http://127.0.0.1:8008" />
-            <cm:property name="username" value="gnpy" />
-            <cm:property name="password" value="gnpy" />
-        </cm:default-properties>
-    </cm:property-placeholder>
-
-  <reference id="networkTransactionImpl" interface="org.opendaylight.transportpce.common.network.NetworkTransactionService" />
-  <reference id="bindingDOMCodecServices" interface="org.opendaylight.mdsal.binding.dom.codec.spi.BindingDOMCodecServices" />
-  <reference id="dataBroker" interface="org.opendaylight.mdsal.binding.api.DataBroker"/>
-  <reference id="rpcService" interface="org.opendaylight.mdsal.binding.api.RpcProviderService"/>
-  <reference id="notificationPublishService" interface="org.opendaylight.mdsal.binding.api.NotificationPublishService"/>
-  <reference id="portMapping" interface="org.opendaylight.transportpce.common.mapping.PortMapping"/>
-
-  <bean id="pceServiceImpl"
-        class="org.opendaylight.transportpce.pce.service.PathComputationServiceImpl"
-        init-method="init" destroy-method="close">
-    <argument ref="networkTransactionImpl"/>
-    <argument ref="notificationPublishService" />
-    <argument ref="gnpyConsumer" />
-    <argument ref="portMapping" />
-  </bean>
-
-  <bean id="gnpyConsumer"
-        class="org.opendaylight.transportpce.pce.gnpy.consumer.GnpyConsumerImpl">
-     <argument value="${url}"/>
-     <argument value="${username}"/>
-     <argument value="${password}"/>
-     <argument ref="bindingDOMCodecServices" />
-  </bean>
-
-  <bean id="provider"
-        class="org.opendaylight.transportpce.pce.impl.PceProvider"
-        init-method="init" destroy-method="close">
-    <argument ref="rpcService" />
-    <argument ref="pceServiceImpl" />
-  </bean>
-
-  <service ref="pceServiceImpl"
-        interface="org.opendaylight.transportpce.pce.service.PathComputationService"/>
-
-</blueprint>
index ac45ec8ddcc39b939c37e960f39b583ff2a66b62..0245310d087b0cdd48c24d830f6cdaa38782af1b 100644 (file)
@@ -9,58 +9,29 @@
 package org.opendaylight.transportpce.pce.impl;
 
 import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
 
-import org.eclipse.jdt.annotation.NonNull;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
-import org.opendaylight.mdsal.binding.api.NotificationPublishService;
+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.common.network.NetworkTransactionImpl;
 import org.opendaylight.transportpce.pce.service.PathComputationService;
-import org.opendaylight.transportpce.pce.service.PathComputationServiceImpl;
-import org.opendaylight.transportpce.pce.utils.NotificationPublishServiceMock;
 import org.opendaylight.transportpce.test.AbstractTest;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220808.TransportpcePceService;
-import org.opendaylight.yangtools.concepts.ObjectRegistration;
 
+@ExtendWith(MockitoExtension.class)
 public class PceProviderTest extends AbstractTest {
 
+    @Mock
     private RpcProviderService rpcService;
+    @Mock
     private PathComputationService pathComputationService;
-    private NotificationPublishService notificationPublishService;
-    private NetworkTransactionImpl networkTransaction;
-    private ObjectRegistration<TransportpcePceService> rpcRegistration;
-    private PceProvider pceProvider;
-
-    @BeforeEach
-    void setUp() {
-        rpcService = mock(RpcProviderService.class);
-        notificationPublishService = new NotificationPublishServiceMock();
-        networkTransaction = new NetworkTransactionImpl(getDataBroker());
-        pathComputationService = new PathComputationServiceImpl(networkTransaction, notificationPublishService,
-                null, null);
-        pceProvider = new PceProvider(rpcService, pathComputationService);
-    }
 
     @Test
     void testInit() {
-        this.rpcRegistration = new ObjectRegistration<TransportpcePceService>() {
-            @NonNull
-            @Override
-            public TransportpcePceService getInstance() {
-                return new PceServiceRPCImpl(pathComputationService);
-            }
-
-            @Override
-            public void close() {
-
-            }
-        };
-        when(rpcService.registerRpcImplementation(eq(TransportpcePceService.class), any())).thenReturn(rpcRegistration);
-        pceProvider.init();
-        pceProvider.close();
+        new PceProvider(rpcService, pathComputationService);
+        verify(rpcService, times(1)).registerRpcImplementation(any(), any(TransportpcePceService.class));
     }
 }
index 66ae13a72a91f84fa84844b8ed9b6a00b0698ebb..4408d094ed0e3ff4f726888a2ba29f067a1e55b6 100644 (file)
@@ -10,7 +10,6 @@ package org.opendaylight.transportpce.pce.service;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 
 import java.util.Map;
-import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.mockito.Mockito;
@@ -40,7 +39,6 @@ public class PathComputationServiceImplTest extends AbstractTest {
         pathComputationServiceImpl = new PathComputationServiceImpl(
                 networkTransactionService,
                 this.getNotificationPublishService(), null, null);
-        pathComputationServiceImpl.init();
     }
 
     @Test
@@ -79,9 +77,4 @@ public class PathComputationServiceImplTest extends AbstractTest {
         pathComputationServiceImpl.generateGnpyResponse(null,"path");
         assertNotNull(pathComputationServiceImpl.pathComputationRerouteRequest(PceTestData.getPCEReroute()));
     }
-
-    @AfterEach
-    void destroy() {
-        pathComputationServiceImpl.close();
-    }
 }
diff --git a/pom.xml b/pom.xml
index 9c9b418552c43ce349ac06195ee4f80b54a801a5..f25c4a15b6f4702cbb06e1bd9b37dbf38f1359a9 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -18,7 +18,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
 
   <groupId>org.opendaylight.transportpce</groupId>
   <artifactId>transportpce-aggregator</artifactId>
-  <version>7.0.0-SNAPSHOT</version>
+  <version>7.0.1-SNAPSHOT</version>
   <name>transportpce</name>
   <packaging>pom</packaging>
 
index f8f9ac2a10a1913c1ab2fd5e931c38d3a22945f3..74d7ffaf08fc56636a8406b35d8b4f01b3a124d1 100644 (file)
@@ -19,11 +19,11 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
 
   <groupId>org.opendaylight.transportpce</groupId>
   <artifactId>transportpce-renderer</artifactId>
-  <version>7.0.0-SNAPSHOT</version>
+  <version>7.0.1-SNAPSHOT</version>
   <packaging>bundle</packaging>
 
   <properties>
-    <transportpce.models.version>18.0.0</transportpce.models.version>
+    <transportpce.models.version>18.0.1</transportpce.models.version>
   </properties>
 
   <dependencyManagement>
@@ -110,6 +110,10 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
       <groupId>com.google.guava</groupId>
       <artifactId>guava</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.service.component.annotations</artifactId>
+    </dependency>
 
     <!-- Testing Dependencies -->
     <dependency>
index 3bfacdc7373f0c956c14fb29ffad2a5e408453bc..2f66a4ecb1e55a0070220af6452d2f2174b7cae2 100644 (file)
@@ -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<DeviceRendererRPCImpl> deviceRendererRegistration;
     private ObjectRegistration<TransportpceRendererService> 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
index cc16c6904ef1b74255bc5eaf987f2b29911905e4..cc99c4386b97dac192395befd11c4b3737327f1b 100644 (file)
@@ -14,7 +14,9 @@ import org.opendaylight.transportpce.common.device.DeviceTransactionManager;
 import org.opendaylight.transportpce.common.fixedflex.GridConstant;
 import org.opendaylight.transportpce.common.fixedflex.SpectrumInformation;
 import org.opendaylight.transportpce.common.mapping.MappingUtils;
+import org.opendaylight.transportpce.common.mapping.PortMapping;
 import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfaceException;
+import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfaces;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev211004.az.api.info.AEndApiInfo;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev211004.az.api.info.ZEndApiInfo;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220922.mapping.Mapping;
@@ -36,15 +38,14 @@ public class OpenRoadmInterfaceFactory {
     private final OpenRoadmOtnInterface221 openRoadmOtnInterface221;
     private final OpenRoadmOtnInterface710 openRoadmOtnInterface710;
 
-    public OpenRoadmInterfaceFactory(MappingUtils mappingUtils, OpenRoadmInterface121 openRoadmInterface121,
-            OpenRoadmInterface221 openRoadmInterface221, OpenRoadmInterface710 openRoadmInterface710,
-            OpenRoadmOtnInterface221 openRoadmOTNInterface221, OpenRoadmOtnInterface710 openRoadmOtnInterface710) {
+    public OpenRoadmInterfaceFactory(MappingUtils mappingUtils, PortMapping portMapping,
+            OpenRoadmInterfaces openRoadmInterfaces) {
         this.mappingUtils = mappingUtils;
-        this.openRoadmInterface121 = openRoadmInterface121;
-        this.openRoadmInterface221 = openRoadmInterface221;
-        this.openRoadmInterface710 = openRoadmInterface710;
-        this.openRoadmOtnInterface221 = openRoadmOTNInterface221;
-        this.openRoadmOtnInterface710 = openRoadmOtnInterface710;
+        this.openRoadmInterface121 = new OpenRoadmInterface121(portMapping, openRoadmInterfaces);
+        this.openRoadmInterface221 = new OpenRoadmInterface221(portMapping, openRoadmInterfaces);
+        this.openRoadmInterface710 = new OpenRoadmInterface710(portMapping, openRoadmInterfaces);
+        this.openRoadmOtnInterface221 = new OpenRoadmOtnInterface221(portMapping, openRoadmInterfaces);
+        this.openRoadmOtnInterface710 = new OpenRoadmOtnInterface710(portMapping, openRoadmInterfaces);
     }
 
     public String createOpenRoadmEthInterface(String nodeId, String logicalConnPoint)
index 2f807ed3c2d823eddccc115d83e74220448d18a9..6664caa99765d6bffd0f6bc54af962976e969158 100644 (file)
@@ -41,6 +41,7 @@ import org.opendaylight.transportpce.common.device.DeviceTransactionManager;
 import org.opendaylight.transportpce.common.fixedflex.GridConstant;
 import org.opendaylight.transportpce.common.fixedflex.GridUtils;
 import org.opendaylight.transportpce.common.fixedflex.SpectrumInformation;
+import org.opendaylight.transportpce.common.mapping.MappingUtils;
 import org.opendaylight.transportpce.common.mapping.PortMapping;
 import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfaceException;
 import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfaces;
@@ -78,10 +79,13 @@ import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev220926
 import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev220926.node.interfaces.NodeInterfaceKey;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev220926.optical.renderer.nodes.Nodes;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+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 DeviceRendererServiceImpl implements DeviceRendererService {
     private static final String IS_NOT_MOUNTED_ON_THE_CONTROLLER = " is not mounted on the controller";
     private static final Logger LOG = LoggerFactory.getLogger(DeviceRendererServiceImpl.class);
@@ -93,15 +97,19 @@ public class DeviceRendererServiceImpl implements DeviceRendererService {
     private final CrossConnect crossConnect;
     private final PortMapping portMapping;
 
-    public DeviceRendererServiceImpl(DataBroker dataBroker, DeviceTransactionManager deviceTransactionManager,
-            OpenRoadmInterfaceFactory openRoadmInterfaceFactory, OpenRoadmInterfaces openRoadmInterfaces,
-            CrossConnect crossConnect, PortMapping portMapping) {
+    @Activate
+    public DeviceRendererServiceImpl(@Reference DataBroker dataBroker,
+            @Reference DeviceTransactionManager deviceTransactionManager,
+            @Reference OpenRoadmInterfaces openRoadmInterfaces,
+            @Reference CrossConnect crossConnect,
+            @Reference MappingUtils mappingUtils,
+            @Reference PortMapping portMapping) {
         this.dataBroker = dataBroker;
         this.deviceTransactionManager = deviceTransactionManager;
-        this.openRoadmInterfaceFactory = openRoadmInterfaceFactory;
         this.openRoadmInterfaces = openRoadmInterfaces;
         this.crossConnect = crossConnect;
         this.portMapping = portMapping;
+        this.openRoadmInterfaceFactory = new OpenRoadmInterfaceFactory(mappingUtils, portMapping, openRoadmInterfaces);
     }
 
     @SuppressWarnings("rawtypes")
index 4fceed9513a30220cb475b07717ddbe9c5ae8141..9573ed322493ed7ebc23fe7fc7d4dfd7599987dd 100644 (file)
@@ -25,9 +25,10 @@ import java.util.concurrent.atomic.AtomicBoolean;
 import org.opendaylight.transportpce.common.StringConstants;
 import org.opendaylight.transportpce.common.crossconnect.CrossConnect;
 import org.opendaylight.transportpce.common.device.DeviceTransactionManager;
+import org.opendaylight.transportpce.common.mapping.MappingUtils;
+import org.opendaylight.transportpce.common.mapping.PortMapping;
 import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfaceException;
 import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfaces;
-import org.opendaylight.transportpce.networkmodel.service.NetworkModelService;
 import org.opendaylight.transportpce.renderer.openroadminterface.OpenRoadmInterfaceFactory;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev211004.OtnServicePathInput;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev211004.OtnServicePathOutput;
@@ -41,10 +42,14 @@ import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev220926
 import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev220926.node.interfaces.NodeInterfaceBuilder;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev220926.node.interfaces.NodeInterfaceKey;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev220926.otn.renderer.nodes.Nodes;
+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 OtnDeviceRendererServiceImpl implements OtnDeviceRendererService {
     private static final Logger LOG = LoggerFactory.getLogger(OtnDeviceRendererServiceImpl.class);
     private static final String PT_03 = "03";
@@ -54,14 +59,16 @@ public class OtnDeviceRendererServiceImpl implements OtnDeviceRendererService {
     private final OpenRoadmInterfaces openRoadmInterfaces;
     private final DeviceTransactionManager deviceTransactionManager;
 
-    public OtnDeviceRendererServiceImpl(OpenRoadmInterfaceFactory openRoadmInterfaceFactory, CrossConnect crossConnect,
-                                        OpenRoadmInterfaces openRoadmInterfaces,
-                                        DeviceTransactionManager deviceTransactionManager,
-                                        NetworkModelService networkModelService) {
-        this.openRoadmInterfaceFactory = openRoadmInterfaceFactory;
+    @Activate
+    public OtnDeviceRendererServiceImpl(@Reference CrossConnect crossConnect,
+            @Reference OpenRoadmInterfaces openRoadmInterfaces,
+            @Reference DeviceTransactionManager deviceTransactionManager,
+            @Reference MappingUtils mappingUtils,
+            @Reference PortMapping portMapping) {
         this.crossConnect = crossConnect;
         this.openRoadmInterfaces = openRoadmInterfaces;
         this.deviceTransactionManager = deviceTransactionManager;
+        this.openRoadmInterfaceFactory = new OpenRoadmInterfaceFactory(mappingUtils, portMapping, openRoadmInterfaces);
     }
 
 //TODO Align log messages and returned results messages
index c8c620d4c58ac01f75dd456bb165fb1d017d80c7..4b95bb914af53c682796045a5a6a336732b1d7b8 100644 (file)
@@ -76,10 +76,14 @@ import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev220926
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.binding.Notification;
 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 RendererServiceOperationsImpl implements RendererServiceOperations {
 
     private static final Logger LOG = LoggerFactory.getLogger(RendererServiceOperationsImpl.class);
@@ -103,9 +107,13 @@ public class RendererServiceOperationsImpl implements RendererServiceOperations
     private final PortMapping portMapping;
     private ListeningExecutorService executor;
 
-    public RendererServiceOperationsImpl(DeviceRendererService deviceRenderer,
-            OtnDeviceRendererService otnDeviceRenderer, TransportpceOlmService olmService,
-            DataBroker dataBroker, NotificationPublishService notificationPublishService, PortMapping portMapping) {
+    @Activate
+    public RendererServiceOperationsImpl(@Reference DeviceRendererService deviceRenderer,
+            @Reference OtnDeviceRendererService otnDeviceRenderer,
+            @Reference TransportpceOlmService olmService,
+            @Reference DataBroker dataBroker,
+            @Reference NotificationPublishService notificationPublishService,
+            @Reference PortMapping portMapping) {
         this.deviceRenderer = deviceRenderer;
         this.otnDeviceRenderer = otnDeviceRenderer;
         this.olmService = olmService;
@@ -113,6 +121,7 @@ public class RendererServiceOperationsImpl implements RendererServiceOperations
         this.notificationPublishService = notificationPublishService;
         this.portMapping = portMapping;
         this.executor = MoreExecutors.listeningDecorator(Executors.newFixedThreadPool(NUMBER_OF_THREADS));
+        LOG.debug("RendererServiceOperationsImpl instantiated");
     }
 
     @Override
index eba065eeba618d9766cc3c3a0311153ed86c4e14..78bd06c327224624176a42c089242752c26161b4 100644 (file)
@@ -39,6 +39,7 @@ public class DeviceRendererRPCImpl implements TransportpceDeviceRendererService
                                  OtnDeviceRendererService otnDeviceRendererService) {
         this.deviceRenderer = deviceRenderer;
         this.otnDeviceRendererService = otnDeviceRendererService;
+        LOG.debug("DeviceRendererRPCImpl instantiated");
     }
 
     /**
index 31bdda59fcc8c76f07eaf5e5f0f706e18a6e59c9..38c7fd25210ad5ebedf79d2c5aa33d9752a37e4b 100644 (file)
@@ -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 (file)
index 7c4ebe5..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- vi: set et smarttab sw=4 tabstop=4: -->
-<!--
-Copyright © 2016 Orange and others. All rights reserved.
-
-This program and the accompanying materials are made available under the
-terms of the Eclipse Public License v1.0 which accompanies this distribution,
-and is available at http://www.eclipse.org/legal/epl-v10.html
--->
-<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
-
-  <reference id="dataBroker" interface="org.opendaylight.mdsal.binding.api.DataBroker"/>
-  <reference id="notificationPublishService"
-        interface="org.opendaylight.mdsal.binding.api.NotificationPublishService"/>
-  <reference id="rpcProviderService" interface="org.opendaylight.mdsal.binding.api.RpcProviderService" />
-  <reference id="deviceTransactionManager" interface="org.opendaylight.transportpce.common.device.DeviceTransactionManager" />
-  <reference id="openRoadmInterfaces" interface="org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfaces" />
-  <reference id="portMapping" interface="org.opendaylight.transportpce.common.mapping.PortMapping" />
-  <reference id="crossConnect" interface="org.opendaylight.transportpce.common.crossconnect.CrossConnect" />
-  <reference id="mappingUtils" interface="org.opendaylight.transportpce.common.mapping.MappingUtils"/>
-  <reference id="networkModelService" interface="org.opendaylight.transportpce.networkmodel.service.NetworkModelService"/>
-  <reference id="olmService" interface="org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev210618.TransportpceOlmService"/>
-
-  <bean id="openRoadmInterface121"
-        class="org.opendaylight.transportpce.renderer.openroadminterface.OpenRoadmInterface121">
-    <argument ref="portMapping"/>
-    <argument ref="openRoadmInterfaces"/>
-  </bean>
-
-  <bean id="openRoadmInterface221"
-        class="org.opendaylight.transportpce.renderer.openroadminterface.OpenRoadmInterface221">
-    <argument ref="portMapping"/>
-    <argument ref="openRoadmInterfaces"/>
-  </bean>
-
-  <bean id="openRoadmInterface710"
-        class="org.opendaylight.transportpce.renderer.openroadminterface.OpenRoadmInterface710">
-    <argument ref="portMapping"/>
-    <argument ref="openRoadmInterfaces"/>
-  </bean>
-
-  <bean id="openRoadmOtnInterface221"
-        class="org.opendaylight.transportpce.renderer.openroadminterface.OpenRoadmOtnInterface221">
-    <argument ref="portMapping"/>
-    <argument ref="openRoadmInterfaces"/>
-  </bean>
-
-  <bean id="openRoadmOtnInterface710"
-    class="org.opendaylight.transportpce.renderer.openroadminterface.OpenRoadmOtnInterface710">
-    <argument ref="portMapping"/>
-    <argument ref="openRoadmInterfaces"/>
-  </bean>
-
-  <bean id="openRoadmInterfaceFactory"
-        class="org.opendaylight.transportpce.renderer.openroadminterface.OpenRoadmInterfaceFactory">
-    <argument ref="mappingUtils"/>
-    <argument ref="openRoadmInterface121"/>
-    <argument ref="openRoadmInterface221"/>
-    <argument ref="openRoadmInterface710"/>
-    <argument ref="openRoadmOtnInterface221"/>
-    <argument ref="openRoadmOtnInterface710"/>
-  </bean>
-
-  <bean id="deviceRenderer" class="org.opendaylight.transportpce.renderer.provisiondevice.DeviceRendererServiceImpl" >
-    <argument ref="dataBroker" />
-    <argument ref="deviceTransactionManager" />
-    <argument ref="openRoadmInterfaceFactory" />
-    <argument ref="openRoadmInterfaces" />
-    <argument ref="crossConnect" />
-    <argument ref="portMapping" />
-  </bean>
-
-  <bean id="otnDeviceRenderer" class="org.opendaylight.transportpce.renderer.provisiondevice.OtnDeviceRendererServiceImpl" >
-    <argument ref="openRoadmInterfaceFactory" />
-    <argument ref="crossConnect" />
-    <argument ref="openRoadmInterfaces" />
-    <argument ref="deviceTransactionManager" />
-    <argument ref="networkModelService" />
-  </bean>
-
-    <bean id="deviceRendererRPCImpl" class="org.opendaylight.transportpce.renderer.rpcs.DeviceRendererRPCImpl" >
-    <argument ref="deviceRenderer" />
-    <argument ref="otnDeviceRenderer" />
-  </bean>
-
-  <bean id="rendererServiceOperations" class="org.opendaylight.transportpce.renderer.provisiondevice.RendererServiceOperationsImpl" >
-    <argument ref="deviceRenderer" />
-    <argument ref="otnDeviceRenderer"/>
-    <argument ref="olmService" />
-    <argument ref="dataBroker" />
-    <argument ref="notificationPublishService" />
-    <argument ref="portMapping" />
-  </bean>
-
-  <bean id="rendererProvider" class="org.opendaylight.transportpce.renderer.RendererProvider"
-        init-method="init" destroy-method="close">
-    <argument ref="rpcProviderService" />
-    <argument ref="deviceRendererRPCImpl" />
-    <argument ref="rendererServiceOperations" />
-  </bean>
-
-  <service ref="deviceRenderer"
-           interface="org.opendaylight.transportpce.renderer.provisiondevice.DeviceRendererService" />
-  <service ref="rendererServiceOperations"
-           interface="org.opendaylight.transportpce.renderer.provisiondevice.RendererServiceOperations" />
-  <service ref="otnDeviceRenderer"
-           interface="org.opendaylight.transportpce.renderer.provisiondevice.OtnDeviceRendererService"/>
-
-</blueprint>
index 590475793ffcba013c8f17d35ed01146f8de4ee8..d6845de1fd6120acf7995a12843e068ef539ea19 100644 (file)
@@ -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));
index 24ab9cc97c90af5b5994ab4ecfd87e84e9958f89..0f3b013aa697c95faa272942f6c6b09e906ad626 100644 (file)
@@ -41,12 +41,7 @@ import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfa
 import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfacesImpl121;
 import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfacesImpl221;
 import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfacesImpl710;
-import org.opendaylight.transportpce.renderer.openroadminterface.OpenRoadmInterface121;
-import org.opendaylight.transportpce.renderer.openroadminterface.OpenRoadmInterface221;
-import org.opendaylight.transportpce.renderer.openroadminterface.OpenRoadmInterface710;
 import org.opendaylight.transportpce.renderer.openroadminterface.OpenRoadmInterfaceFactory;
-import org.opendaylight.transportpce.renderer.openroadminterface.OpenRoadmOtnInterface221;
-import org.opendaylight.transportpce.renderer.openroadminterface.OpenRoadmOtnInterface710;
 import org.opendaylight.transportpce.renderer.utils.CreateOtsOmsDataUtils;
 import org.opendaylight.transportpce.renderer.utils.MountPointUtils;
 import org.opendaylight.transportpce.test.AbstractTest;
@@ -89,24 +84,16 @@ public class DeviceRendererServiceImplCreateOtsOmsTest extends AbstractTest {
         this.openRoadmInterfaces = new OpenRoadmInterfacesImpl(deviceTransactionManager, mappingUtils,
             openRoadmInterfacesImpl121, openRoadmInterfacesImpl221, openRoadmInterfacesImpl710);
         this.openRoadmInterfaces = spy(this.openRoadmInterfaces);
-        OpenRoadmInterface121 openRoadmInterface121 = new OpenRoadmInterface121(portMapping,openRoadmInterfaces);
-        OpenRoadmInterface221 openRoadmInterface221 = new OpenRoadmInterface221(portMapping,openRoadmInterfaces);
-        OpenRoadmInterface710 openRoadmInterface710 = new OpenRoadmInterface710(portMapping, openRoadmInterfaces);
-        OpenRoadmOtnInterface221 openRoadmOTNInterface221 = new OpenRoadmOtnInterface221(portMapping,
-            openRoadmInterfaces);
-        OpenRoadmOtnInterface710 openRoadmOtnInterface710 = new OpenRoadmOtnInterface710(portMapping,
-            openRoadmInterfaces);
-        this.openRoadmInterfaceFactory = new OpenRoadmInterfaceFactory(this.mappingUtils,openRoadmInterface121,
-            openRoadmInterface221, openRoadmInterface710, openRoadmOTNInterface221, openRoadmOtnInterface710);
+        this.openRoadmInterfaceFactory = new OpenRoadmInterfaceFactory(this.mappingUtils, portMapping,
+                openRoadmInterfaces);
 
         this.crossConnectImpl121 = new CrossConnectImpl121(this.deviceTransactionManager);
         this.crossConnectImpl221 = new CrossConnectImpl221(this.deviceTransactionManager);
         this.crossConnect = new CrossConnectImpl(this.deviceTransactionManager, this.mappingUtils,
             this.crossConnectImpl121, this.crossConnectImpl221, this.crossConnectImpl710);
         this.crossConnect = spy(this.crossConnect);
-        this.deviceRendererService = new DeviceRendererServiceImpl(getDataBroker(),
-            this.deviceTransactionManager, this.openRoadmInterfaceFactory, this.openRoadmInterfaces,
-            this.crossConnect, portMapping);
+        this.deviceRendererService = new DeviceRendererServiceImpl(getDataBroker(), this.deviceTransactionManager,
+                this.openRoadmInterfaces, this.crossConnect, mappingUtils, portMapping);
     }
 
     @Test
index 635255ba937ad84186a2b2ff54acc2c8ab74d801..8159b11dc3257041ebc4f4fca9938a45d7f39f78 100644 (file)
@@ -21,11 +21,11 @@ Author: Martial Coulibaly <martial.coulibaly@gfi.com> on behalf of Orange
 
   <groupId>org.opendaylight.transportpce</groupId>
   <artifactId>transportpce-servicehandler</artifactId>
-  <version>7.0.0-SNAPSHOT</version>
+  <version>7.0.1-SNAPSHOT</version>
   <packaging>bundle</packaging>
 
   <properties>
-    <transportpce.models.version>18.0.0</transportpce.models.version>
+    <transportpce.models.version>18.0.1</transportpce.models.version>
   </properties>
 
   <dependencyManagement>
index f9757546aae793356b7668c0ac956ee9ed4e744e..ce3a27c7970fbe6620d460e879311b0b3251d363 100644 (file)
@@ -21,11 +21,11 @@ Author: Martial Coulibaly <martial.coulibaly@gfi.com> on behalf of Orange
 
   <groupId>org.opendaylight.transportpce</groupId>
   <artifactId>transportpce-tapi</artifactId>
-  <version>7.0.0-SNAPSHOT</version>
+  <version>7.0.1-SNAPSHOT</version>
   <packaging>bundle</packaging>
 
   <properties>
-    <transportpce.models.version>18.0.0</transportpce.models.version>
+    <transportpce.models.version>18.0.1</transportpce.models.version>
   </properties>
 
   <dependencyManagement>
@@ -40,7 +40,7 @@ Author: Martial Coulibaly <martial.coulibaly@gfi.com> on behalf of Orange
       <dependency>
         <groupId>org.opendaylight.netconf</groupId>
         <artifactId>netconf-artifacts</artifactId>
-        <version>5.0.3</version>
+        <version>5.0.4</version>
         <scope>import</scope>
         <type>pom</type>
       </dependency>
index a150e6c36a7ce4f15895d9c2c1606552f92e4fbd..e85da34ca01799a98215bfb4a4d1931f60341bca 100644 (file)
 
   <groupId>org.opendaylight.transportpce</groupId>
   <artifactId>test-common</artifactId>
-  <version>7.0.0-SNAPSHOT</version>
+  <version>7.0.1-SNAPSHOT</version>
   <packaging>bundle</packaging>
 
   <properties>
-    <transportpce.models.version>18.0.0</transportpce.models.version>
+    <transportpce.models.version>18.0.1</transportpce.models.version>
   </properties>
 
   <dependencyManagement>
@@ -37,7 +37,7 @@
       <dependency>
         <groupId>org.opendaylight.netconf</groupId>
         <artifactId>netconf-artifacts</artifactId>
-        <version>5.0.3</version>
+        <version>5.0.4</version>
         <scope>import</scope>
         <type>pom</type>
       </dependency>
index cdfe103aa0791aa210d4ea66da4530f9d94508c7..32886a613376970a88e7b4217570e4db301c70d0 100644 (file)
@@ -90,6 +90,7 @@ class TransportPCEtesting(unittest.TestCase):
                 print("sample files content loaded")
 
         cls.processes = test_utils.start_tpce()
+        time.sleep(5)
 
     @classmethod
     def tearDownClass(cls):
diff --git a/tox.ini b/tox.ini
index b2976bf5eb1803117aab016d9eb28eba70211eba..b736f8ef23f0703c400f819a63c70cc96df97928 100644 (file)
--- a/tox.ini
+++ b/tox.ini
@@ -1,15 +1,17 @@
 [tox]
 minversion = 3.7.0
-envlist = buildcontroller,testsPCE,
-    sims121,build_karaf_tests121,tests121,
-    sims221,build_karaf_tests221,tests221,tests_tapi,
-    sims71,build_karaf_tests71,tests71,
-    build_karaf_tests_hybrid,tests_hybrid,
-    docs
-    docs-linkcheck
-    checkbashisms
-    pre-commit
-    pylint
+envlist = buildcontroller
+     testsPCE,
+     sims121,build_karaf_tests121,tests121,
+     sims221,build_karaf_tests221,tests_tapi,tests221,
+     sims71,build_karaf_tests71,tests71,
+     build_karaf_tests_hybrid,tests_hybrid,
+     buildlighty,
+     docs
+     docs-linkcheck
+     checkbashisms
+     pre-commit
+     pylint
 skipsdist = true
 setupdir = tests/
 
@@ -34,6 +36,13 @@ whitelist_externals = build_controller.sh
 commands =
   ./build_controller.sh
 
+[testenv:buildlighty]
+whitelist_externals = build.sh
+depends = buildcontroller,tests_hybrid
+changedir = {toxinidir}/lighty
+commands =
+  ./build.sh
+
 [testenv:sims121]
 whitelist_externals = install_honeynode.sh
 depends = buildcontroller