Proposal to remove OSGi dependencies from the CCSDK project 02/84202/15
authorMatej Perina <matej.perina@pantheon.tech>
Thu, 4 Apr 2019 07:27:16 +0000 (09:27 +0200)
committerDan Timoney <dtimoney@att.com>
Mon, 26 Aug 2019 15:29:55 +0000 (15:29 +0000)
Dependencies on the OSGi frameworks and libraries are removed
by integrating the CCSDK project with the lighty.io.
It's a toolkit that allows to use ODL services (in this case
core services and the Restconf) without the dependency
on the Karaf framework and the Blueprint DI.

In this change are created the lighty.io modules which
initialize and expose same services as the Blueprint DI in
the blueprint.xml files.

More info about the lighty.io - https://lighty.io

Change-Id: I3e549e19374ccf04bc430b515e1df7d8d61d8ea7
Signed-off-by: Matej Perina <matej.perina@pantheon.tech>
Signed-off-by: Samuel Kontris <samuel.kontris@pantheon.tech>
18 files changed:
ccsdk-plugins-lighty/pom.xml [new file with mode: 0755]
ccsdk-plugins-lighty/src/main/java/org/onap/ccsdk/sli/plugins/lighty/CcsdkPluginsLightyModule.java [new file with mode: 0644]
pom.xml
properties-node/lighty/pom.xml [new file with mode: 0755]
properties-node/lighty/src/main/java/org/onap/ccsdk/sli/plugins/prop/lighty/PropertiesNodeModule.java [new file with mode: 0644]
properties-node/pom.xml
restapi-call-node/lighty/pom.xml [new file with mode: 0755]
restapi-call-node/lighty/src/main/java/org/onap/ccsdk/sli/plugins/prop/lighty/RestApiCallNodeModule.java [new file with mode: 0644]
restapi-call-node/pom.xml
restconf-client/lighty/pom.xml [new file with mode: 0755]
restconf-client/lighty/src/main/java/org/onap/ccsdk/sli/plugins/restconf/lighty/RestconfClientModule.java [new file with mode: 0644]
restconf-client/pom.xml
sshapi-call-node/lighty/pom.xml [new file with mode: 0755]
sshapi-call-node/lighty/src/main/java/org/onap/ccsdk/sli/plugins/sshapicall/lighty/SshApiCallModule.java [new file with mode: 0644]
sshapi-call-node/pom.xml
template-node/lighty/pom.xml [new file with mode: 0755]
template-node/lighty/src/main/java/org/onap/ccsdk/sli/plugins/template/lighty/TemplateNodeModule.java [new file with mode: 0644]
template-node/pom.xml

diff --git a/ccsdk-plugins-lighty/pom.xml b/ccsdk-plugins-lighty/pom.xml
new file mode 100755 (executable)
index 0000000..6b9d8eb
--- /dev/null
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+       <modelVersion>4.0.0</modelVersion>
+
+       <parent>
+               <groupId>org.onap.ccsdk.parent</groupId>
+               <artifactId>odlparent-lite</artifactId>
+               <version>1.4.0-SNAPSHOT</version>
+               <relativePath/>
+       </parent>
+
+       <groupId>org.onap.ccsdk.sli.plugins</groupId>
+       <artifactId>ccsdk-plugins-lighty</artifactId>
+       <version>0.6.0-SNAPSHOT</version>
+       <packaging>jar</packaging>
+
+       <dependencies>
+               <dependency>
+                       <groupId>org.onap.ccsdk.sli.core</groupId>
+                       <artifactId>ccsdk-core-lighty</artifactId>
+                       <version>${project.version}</version>
+               </dependency>
+               <dependency>
+                       <groupId>org.onap.ccsdk.sli.northbound</groupId>
+                       <artifactId>properties-node-lighty</artifactId>
+                       <version>${project.version}</version>
+               </dependency>
+               <dependency>
+                       <groupId>org.onap.ccsdk.sli.northbound</groupId>
+                       <artifactId>restapi-call-node-lighty</artifactId>
+                       <version>${project.version}</version>
+               </dependency>
+               <dependency>
+                       <groupId>org.onap.ccsdk.sli.northbound</groupId>
+                       <artifactId>restconf-client-lighty</artifactId>
+                       <version>${project.version}</version>
+               </dependency>
+               <dependency>
+                       <groupId>org.onap.ccsdk.sli.northbound</groupId>
+                       <artifactId>sshapi-call-node-lighty</artifactId>
+                       <version>${project.version}</version>
+               </dependency>
+               <dependency>
+                       <groupId>org.onap.ccsdk.sli.northbound</groupId>
+                       <artifactId>template-node-lighty</artifactId>
+                       <version>${project.version}</version>
+               </dependency>
+       </dependencies>
+</project>
diff --git a/ccsdk-plugins-lighty/src/main/java/org/onap/ccsdk/sli/plugins/lighty/CcsdkPluginsLightyModule.java b/ccsdk-plugins-lighty/src/main/java/org/onap/ccsdk/sli/plugins/lighty/CcsdkPluginsLightyModule.java
new file mode 100644 (file)
index 0000000..a6d662b
--- /dev/null
@@ -0,0 +1,133 @@
+/*
+ * ============LICENSE_START==========================================
+ * Copyright (c) 2019 PANTHEON.tech s.r.o.
+ * ===================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
+ * OF ANY KIND, either express or implied. See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ *
+ */
+package org.onap.ccsdk.sli.plugins.lighty;
+
+import io.lighty.core.controller.api.AbstractLightyModule;
+import org.onap.ccsdk.sli.core.lighty.common.CcsdkLightyUtils;
+import org.onap.ccsdk.sli.plugins.prop.lighty.PropertiesNodeModule;
+import org.onap.ccsdk.sli.plugins.prop.lighty.RestApiCallNodeModule;
+import org.onap.ccsdk.sli.plugins.restconf.lighty.RestconfClientModule;
+import org.onap.ccsdk.sli.plugins.sshapicall.lighty.SshApiCallModule;
+import org.onap.ccsdk.sli.plugins.template.lighty.TemplateNodeModule;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * The implementation of the {@link io.lighty.core.controller.api.LightyModule} that groups all other LightyModules 
+ * from the ccsdk-sli-plugins repository so they can be all treated as one component (for example started/stopped at once).
+ * For more information about the lighty.io visit the website https://lighty.io.
+ */
+public class CcsdkPluginsLightyModule extends AbstractLightyModule {
+
+    private static final Logger LOG = LoggerFactory.getLogger(CcsdkPluginsLightyModule.class);
+
+    private PropertiesNodeModule propertiesNodeModule;
+    private RestApiCallNodeModule restApiCallNodeModule;
+    private RestconfClientModule restconfClientModule;
+    private SshApiCallModule sshApiCallModule;
+    private TemplateNodeModule templateNodeModule;
+
+    protected boolean initProcedure() {
+        LOG.debug("Initializing CCSDK Plugins Lighty module...");
+
+        this.propertiesNodeModule = new PropertiesNodeModule();
+        if (!CcsdkLightyUtils.startLightyModule(propertiesNodeModule)) {
+            LOG.error("Unable to start PropertiesNodeModule in CCSDK Plugins Lighty module!");
+            return false;
+        }
+
+        this.restApiCallNodeModule = new RestApiCallNodeModule();
+        if (!CcsdkLightyUtils.startLightyModule(restApiCallNodeModule)) {
+            LOG.error("Unable to start RestApiCallNodeModule in CCSDK Plugins Lighty module!");
+            return false;
+        }
+
+        this.restconfClientModule = new RestconfClientModule(restApiCallNodeModule.getPropertiesNode());
+        if (!CcsdkLightyUtils.startLightyModule(restconfClientModule)) {
+            LOG.error("Unable to start RestconfClientModule in CCSDK Plugins Lighty module!");
+            return false;
+        }
+
+        this.sshApiCallModule = new SshApiCallModule();
+        if (!CcsdkLightyUtils.startLightyModule(sshApiCallModule)) {
+            LOG.error("Unable to start SshApiCallModule in CCSDK Plugins Lighty module!");
+            return false;
+        }
+
+        this.templateNodeModule = new TemplateNodeModule();
+        if (!CcsdkLightyUtils.startLightyModule(templateNodeModule)) {
+            LOG.error("Unable to start TemplateNodeModule in CCSDK Plugins Lighty module!");
+            return false;
+        }
+
+        LOG.debug("CCSDK Plugins Lighty module was initialized successfully");
+        return true;
+    }
+
+    protected boolean stopProcedure() {
+        LOG.debug("Stopping CCSDK Plugins Lighty module...");
+
+        boolean stopSuccessful = true;
+
+        if (!CcsdkLightyUtils.stopLightyModule(templateNodeModule)) {
+            stopSuccessful = false;
+        }
+
+        if (!CcsdkLightyUtils.stopLightyModule(sshApiCallModule)) {
+            stopSuccessful = false;
+        }
+
+        if (!CcsdkLightyUtils.stopLightyModule(restconfClientModule)) {
+            stopSuccessful = false;
+        }
+
+        if (!CcsdkLightyUtils.stopLightyModule(restApiCallNodeModule)) {
+            stopSuccessful = false;
+        }
+
+        if (!CcsdkLightyUtils.stopLightyModule(propertiesNodeModule)) {
+            stopSuccessful = false;
+        }
+
+        if (stopSuccessful) {
+            LOG.debug("CCSDK Plugins Lighty module was stopped successfully");
+        } else {
+            LOG.error("CCSDK Plugins Lighty module was not stopped successfully!");
+        }
+        return stopSuccessful;
+    }
+
+    public PropertiesNodeModule getPropertiesNodeModule() {
+        return propertiesNodeModule;
+    }
+
+    public RestApiCallNodeModule getRestApiCallNodeModule() {
+        return restApiCallNodeModule;
+    }
+
+    public RestconfClientModule getRestconfClientModule() {
+        return restconfClientModule;
+    }
+
+    public SshApiCallModule getSshApiCallModule() {
+        return sshApiCallModule;
+    }
+
+    public TemplateNodeModule getTemplateNodeModule() {
+        return templateNodeModule;
+    }
+}
diff --git a/pom.xml b/pom.xml
index 6ee7dea..9fa0155 100755 (executable)
--- a/pom.xml
+++ b/pom.xml
@@ -29,6 +29,7 @@
         <module>grToolkit</module>
         <module>features</module>
         <module>artifacts</module>
+        <module>ccsdk-plugins-lighty</module>
     </modules>
 
     <scm>
diff --git a/properties-node/lighty/pom.xml b/properties-node/lighty/pom.xml
new file mode 100755 (executable)
index 0000000..6778f3c
--- /dev/null
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+       <modelVersion>4.0.0</modelVersion>
+
+       <parent>
+               <groupId>org.onap.ccsdk.parent</groupId>
+               <artifactId>binding-parent</artifactId>
+               <version>1.4.0-SNAPSHOT</version>
+               <relativePath/>
+       </parent>
+
+       <groupId>org.onap.ccsdk.sli.northbound</groupId>
+       <artifactId>properties-node-lighty</artifactId>
+       <version>0.6.0-SNAPSHOT</version>
+       <packaging>jar</packaging>
+
+       <name>ccsdk-sli-plugins :: properties-node :: ${project.artifactId}</name>
+       <url>http://maven.apache.org</url>
+
+       <properties>
+               <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+       </properties>
+
+       <dependencyManagement>
+               <dependencies>
+                       <dependency>
+                               <groupId>org.onap.ccsdk.sli.core</groupId>
+                               <artifactId>ccsdk-lighty-dependency-versions</artifactId>
+                               <version>${project.version}</version>
+                               <type>pom</type>
+                               <scope>import</scope>
+                       </dependency>
+               </dependencies>
+       </dependencyManagement>
+
+       <dependencies>
+               <dependency>
+                       <groupId>io.lighty.core</groupId>
+                       <artifactId>lighty-controller</artifactId>
+               </dependency>
+               <dependency>
+                       <groupId>org.onap.ccsdk.sli.plugins</groupId>
+                       <artifactId>properties-node-provider</artifactId>
+                       <version>${project.version}</version>
+               </dependency>
+       </dependencies>
+</project>
diff --git a/properties-node/lighty/src/main/java/org/onap/ccsdk/sli/plugins/prop/lighty/PropertiesNodeModule.java b/properties-node/lighty/src/main/java/org/onap/ccsdk/sli/plugins/prop/lighty/PropertiesNodeModule.java
new file mode 100644 (file)
index 0000000..3453811
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * ============LICENSE_START==========================================
+ * Copyright (c) 2019 PANTHEON.tech s.r.o.
+ * ===================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
+ * OF ANY KIND, either express or implied. See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ *
+ */
+package org.onap.ccsdk.sli.plugins.prop.lighty;
+
+import io.lighty.core.controller.api.AbstractLightyModule;
+import io.lighty.core.controller.api.LightyModule;
+import org.onap.ccsdk.sli.plugins.prop.PropertiesNode;
+
+/**
+ * The implementation of the {@link io.lighty.core.controller.api.LightyModule} that manages and provides services from
+ * the properties-node-provider artifact.
+ */
+public class PropertiesNodeModule extends AbstractLightyModule implements LightyModule {
+
+    private PropertiesNode propertiesNode;
+
+    @Override
+    protected boolean initProcedure() {
+        this.propertiesNode = new PropertiesNode();
+        return true;
+    }
+
+    @Override
+    protected boolean stopProcedure() {
+        return true;
+    }
+
+    public PropertiesNode getPropertiesNode() {
+        return this.propertiesNode;
+    }
+}
index 09991f4..64036f7 100755 (executable)
@@ -21,5 +21,6 @@
         <module>provider</module>
         <module>features</module>
         <module>installer</module>
+        <module>lighty</module>
     </modules>
 </project>
diff --git a/restapi-call-node/lighty/pom.xml b/restapi-call-node/lighty/pom.xml
new file mode 100755 (executable)
index 0000000..fa4ad5c
--- /dev/null
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+       <modelVersion>4.0.0</modelVersion>
+
+       <parent>
+               <groupId>org.onap.ccsdk.parent</groupId>
+               <artifactId>binding-parent</artifactId>
+               <version>1.4.0-SNAPSHOT</version>
+               <relativePath/>
+       </parent>
+
+       <groupId>org.onap.ccsdk.sli.northbound</groupId>
+       <artifactId>restapi-call-node-lighty</artifactId>
+       <version>0.6.0-SNAPSHOT</version>
+       <packaging>jar</packaging>
+
+       <name>ccsdk-sli-plugins :: restapi-call-node :: ${project.artifactId}</name>
+       <url>http://maven.apache.org</url>
+
+       <properties>
+               <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+       </properties>
+
+       <dependencyManagement>
+               <dependencies>
+                       <dependency>
+                               <groupId>org.onap.ccsdk.sli.core</groupId>
+                               <artifactId>ccsdk-lighty-dependency-versions</artifactId>
+                               <version>${project.version}</version>
+                               <type>pom</type>
+                               <scope>import</scope>
+                       </dependency>
+               </dependencies>
+       </dependencyManagement>
+
+       <dependencies>
+               <dependency>
+                       <groupId>io.lighty.core</groupId>
+                       <artifactId>lighty-controller</artifactId>
+               </dependency>
+               <dependency>
+                       <groupId>org.onap.ccsdk.sli.plugins</groupId>
+                       <artifactId>restapi-call-node-provider</artifactId>
+                       <version>${project.version}</version>
+               </dependency>
+       </dependencies>
+</project>
diff --git a/restapi-call-node/lighty/src/main/java/org/onap/ccsdk/sli/plugins/prop/lighty/RestApiCallNodeModule.java b/restapi-call-node/lighty/src/main/java/org/onap/ccsdk/sli/plugins/prop/lighty/RestApiCallNodeModule.java
new file mode 100644 (file)
index 0000000..01fa03e
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * ============LICENSE_START==========================================
+ * Copyright (c) 2019 PANTHEON.tech s.r.o.
+ * ===================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
+ * OF ANY KIND, either express or implied. See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ *
+ */
+package org.onap.ccsdk.sli.plugins.prop.lighty;
+
+import io.lighty.core.controller.api.AbstractLightyModule;
+import io.lighty.core.controller.api.LightyModule;
+import org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode;
+
+/**
+ * The implementation of the {@link io.lighty.core.controller.api.LightyModule} that manages and provides services from
+ * the restapi-call-node-provider artifact.
+ */
+public class RestApiCallNodeModule extends AbstractLightyModule implements LightyModule {
+
+    private RestapiCallNode restapiCallNode;
+
+    @Override
+    protected boolean initProcedure() {
+        this.restapiCallNode = new RestapiCallNode();
+        return true;
+    }
+
+    @Override
+    protected boolean stopProcedure() {
+        return true;
+    }
+
+    public RestapiCallNode getPropertiesNode() {
+        return this.restapiCallNode;
+    }
+
+}
index d6fb0b4..7fbce02 100755 (executable)
@@ -20,5 +20,6 @@
         <module>provider</module>
         <module>features</module>
         <module>installer</module>
+        <module>lighty</module>
     </modules>
 </project>
diff --git a/restconf-client/lighty/pom.xml b/restconf-client/lighty/pom.xml
new file mode 100755 (executable)
index 0000000..86e8af3
--- /dev/null
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+       <modelVersion>4.0.0</modelVersion>
+
+       <parent>
+               <groupId>org.onap.ccsdk.parent</groupId>
+               <artifactId>binding-parent</artifactId>
+               <version>1.4.0-SNAPSHOT</version>
+               <relativePath/>
+       </parent>
+
+       <groupId>org.onap.ccsdk.sli.northbound</groupId>
+       <artifactId>restconf-client-lighty</artifactId>
+       <version>0.6.0-SNAPSHOT</version>
+       <packaging>jar</packaging>
+
+       <name>ccsdk-sli-plugins :: restconf-client :: ${project.artifactId}</name>
+       <url>http://maven.apache.org</url>
+
+       <properties>
+               <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+       </properties>
+
+       <dependencyManagement>
+               <dependencies>
+                       <dependency>
+                               <groupId>org.onap.ccsdk.sli.core</groupId>
+                               <artifactId>ccsdk-lighty-dependency-versions</artifactId>
+                               <version>${project.version}</version>
+                               <type>pom</type>
+                               <scope>import</scope>
+                       </dependency>
+               </dependencies>
+       </dependencyManagement>
+
+       <dependencies>
+               <dependency>
+                       <groupId>io.lighty.core</groupId>
+                       <artifactId>lighty-controller</artifactId>
+               </dependency>
+               <dependency>
+                       <groupId>org.onap.ccsdk.sli.plugins</groupId>
+                       <artifactId>restconf-client-provider</artifactId>
+                       <version>${project.version}</version>
+               </dependency>
+       </dependencies>
+</project>
diff --git a/restconf-client/lighty/src/main/java/org/onap/ccsdk/sli/plugins/restconf/lighty/RestconfClientModule.java b/restconf-client/lighty/src/main/java/org/onap/ccsdk/sli/plugins/restconf/lighty/RestconfClientModule.java
new file mode 100644 (file)
index 0000000..bb0fc90
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+ * ============LICENSE_START==========================================
+ * Copyright (c) 2019 PANTHEON.tech s.r.o.
+ * ===================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
+ * OF ANY KIND, either express or implied. See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ *
+ */
+package org.onap.ccsdk.sli.plugins.restconf.lighty;
+
+import io.lighty.core.controller.api.AbstractLightyModule;
+import io.lighty.core.controller.api.LightyModule;
+import org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode;
+import org.onap.ccsdk.sli.plugins.restconfapicall.RestconfApiCallNode;
+import org.onap.ccsdk.sli.plugins.restconfdiscovery.RestconfDiscoveryNode;
+
+/**
+ * The implementation of the {@link io.lighty.core.controller.api.LightyModule} that manages and provides services from
+ * the restconf-client-provider artifact.
+ */
+public class RestconfClientModule extends AbstractLightyModule implements LightyModule {
+
+    private final RestapiCallNode restapiCallNode;
+
+    private RestconfApiCallNode restconfApiCallNode;
+    private RestconfDiscoveryNode restconfDiscoveryNode;
+
+    public RestconfClientModule(final RestapiCallNode restapiCallNode) {
+        this.restapiCallNode = restapiCallNode;
+    }
+
+    @Override
+    protected boolean initProcedure() {
+        this.restconfApiCallNode = new RestconfApiCallNode(restapiCallNode);
+        this.restconfDiscoveryNode = new RestconfDiscoveryNode(restconfApiCallNode);
+        return true;
+    }
+
+    @Override
+    protected boolean stopProcedure() {
+        return true;
+    }
+
+    public RestconfApiCallNode getRestconfApiCallNode() {
+        return this.restconfApiCallNode;
+    }
+
+    public RestconfDiscoveryNode getRestconfDiscoveryNode() {
+        return this.restconfDiscoveryNode;
+    }
+}
index e8b0123..221987d 100755 (executable)
@@ -20,5 +20,6 @@
         <module>provider</module>
         <module>features</module>
         <module>installer</module>
+        <module>lighty</module>
     </modules>
 </project>
diff --git a/sshapi-call-node/lighty/pom.xml b/sshapi-call-node/lighty/pom.xml
new file mode 100755 (executable)
index 0000000..a28c133
--- /dev/null
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+       <modelVersion>4.0.0</modelVersion>
+
+       <parent>
+               <groupId>org.onap.ccsdk.parent</groupId>
+               <artifactId>binding-parent</artifactId>
+               <version>1.4.0-SNAPSHOT</version>
+               <relativePath/>
+       </parent>
+
+       <groupId>org.onap.ccsdk.sli.northbound</groupId>
+       <artifactId>sshapi-call-node-lighty</artifactId>
+       <version>0.6.0-SNAPSHOT</version>
+       <packaging>jar</packaging>
+
+       <name>ccsdk-sli-plugins :: sshapi-call-node :: ${project.artifactId}</name>
+       <url>http://maven.apache.org</url>
+
+       <properties>
+               <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+       </properties>
+
+       <dependencyManagement>
+               <dependencies>
+                       <dependency>
+                               <groupId>org.onap.ccsdk.sli.core</groupId>
+                               <artifactId>ccsdk-lighty-dependency-versions</artifactId>
+                               <version>${project.version}</version>
+                               <type>pom</type>
+                               <scope>import</scope>
+                       </dependency>
+               </dependencies>
+       </dependencyManagement>
+
+       <dependencies>
+               <dependency>
+                       <groupId>io.lighty.core</groupId>
+                       <artifactId>lighty-controller</artifactId>
+               </dependency>
+               <dependency>
+                       <groupId>org.onap.ccsdk.sli.plugins</groupId>
+                       <artifactId>sshapi-call-node-provider</artifactId>
+                       <version>${project.version}</version>
+               </dependency>
+       </dependencies>
+</project>
diff --git a/sshapi-call-node/lighty/src/main/java/org/onap/ccsdk/sli/plugins/sshapicall/lighty/SshApiCallModule.java b/sshapi-call-node/lighty/src/main/java/org/onap/ccsdk/sli/plugins/sshapicall/lighty/SshApiCallModule.java
new file mode 100644 (file)
index 0000000..d8f1932
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * ============LICENSE_START==========================================
+ * Copyright (c) 2019 PANTHEON.tech s.r.o.
+ * ===================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
+ * OF ANY KIND, either express or implied. See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ *
+ */
+package org.onap.ccsdk.sli.plugins.sshapicall.lighty;
+
+import io.lighty.core.controller.api.AbstractLightyModule;
+import io.lighty.core.controller.api.LightyModule;
+import org.onap.ccsdk.sli.plugins.sshapicall.SshApiCallNode;
+
+/**
+ * The implementation of the {@link io.lighty.core.controller.api.LightyModule} that manages and provides services from
+ * the sshapi-call-node-provider artifact.
+ */
+public class SshApiCallModule extends AbstractLightyModule implements LightyModule {
+
+    private SshApiCallNode sshApiCallNode;
+
+    @Override
+    protected boolean initProcedure() {
+        this.sshApiCallNode = new SshApiCallNode();
+        return true;
+    }
+
+    @Override
+    protected boolean stopProcedure() {
+        return true;
+    }
+
+    public SshApiCallNode getSshApiCallNode() {
+        return this.sshApiCallNode;
+    }
+}
index 66e2af3..4238e77 100755 (executable)
@@ -20,5 +20,6 @@
         <module>provider</module>
         <module>features</module>
         <module>installer</module>
+        <module>lighty</module>
     </modules>
 </project>
diff --git a/template-node/lighty/pom.xml b/template-node/lighty/pom.xml
new file mode 100755 (executable)
index 0000000..cb55c57
--- /dev/null
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+       <modelVersion>4.0.0</modelVersion>
+
+       <parent>
+               <groupId>org.onap.ccsdk.parent</groupId>
+               <artifactId>binding-parent</artifactId>
+               <version>1.4.0-SNAPSHOT</version>
+               <relativePath/>
+       </parent>
+
+       <groupId>org.onap.ccsdk.sli.northbound</groupId>
+       <artifactId>template-node-lighty</artifactId>
+       <version>0.6.0-SNAPSHOT</version>
+       <packaging>jar</packaging>
+
+       <name>ccsdk-sli-plugins :: template-node :: ${project.artifactId}</name>
+       <url>http://maven.apache.org</url>
+
+       <properties>
+               <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+       </properties>
+
+       <dependencyManagement>
+               <dependencies>
+                       <dependency>
+                               <groupId>org.onap.ccsdk.sli.core</groupId>
+                               <artifactId>ccsdk-lighty-dependency-versions</artifactId>
+                               <version>${project.version}</version>
+                               <type>pom</type>
+                               <scope>import</scope>
+                       </dependency>
+               </dependencies>
+       </dependencyManagement>
+
+       <dependencies>
+               <dependency>
+                       <groupId>io.lighty.core</groupId>
+                       <artifactId>lighty-controller</artifactId>
+               </dependency>
+               <dependency>
+                       <groupId>org.onap.ccsdk.sli.plugins</groupId>
+                       <artifactId>template-node-provider</artifactId>
+                       <version>${project.version}</version>
+               </dependency>
+       </dependencies>
+</project>
diff --git a/template-node/lighty/src/main/java/org/onap/ccsdk/sli/plugins/template/lighty/TemplateNodeModule.java b/template-node/lighty/src/main/java/org/onap/ccsdk/sli/plugins/template/lighty/TemplateNodeModule.java
new file mode 100644 (file)
index 0000000..1cd836b
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * ============LICENSE_START==========================================
+ * Copyright (c) 2019 PANTHEON.tech s.r.o.
+ * ===================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
+ * OF ANY KIND, either express or implied. See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ *
+ */
+package org.onap.ccsdk.sli.plugins.template.lighty;
+
+import io.lighty.core.controller.api.AbstractLightyModule;
+import io.lighty.core.controller.api.LightyModule;
+import org.onap.ccsdk.sli.plugins.template.TemplateNode;
+
+/**
+ * The implementation of the {@link io.lighty.core.controller.api.LightyModule} that manages and provides services from
+ * the template-node-provider artifact.
+ */
+public class TemplateNodeModule extends AbstractLightyModule implements LightyModule {
+
+    private TemplateNode templateNode;
+
+    @Override
+    protected boolean initProcedure() {
+        this.templateNode = new TemplateNode();
+        return true;
+    }
+
+    @Override
+    protected boolean stopProcedure() {
+        return true;
+    }
+
+    public TemplateNode getTemplateNode() {
+        return this.templateNode;
+    }
+}
index 0c811f7..4149f87 100644 (file)
@@ -17,5 +17,6 @@
         <module>provider</module>
         <module>features</module>
         <module>installer</module>
+        <module>lighty</module>
     </modules>
 </project>