From 7a37199ebccccd03bbea9b37df09ef610f89bb01 Mon Sep 17 00:00:00 2001 From: Matej Perina Date: Thu, 4 Apr 2019 09:27:16 +0200 Subject: [PATCH] Proposal to remove OSGi dependencies from the CCSDK project 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 Signed-off-by: Samuel Kontris --- ccsdk-plugins-lighty/pom.xml | 49 ++++++++ .../plugins/lighty/CcsdkPluginsLightyModule.java | 133 +++++++++++++++++++++ pom.xml | 1 + properties-node/lighty/pom.xml | 47 ++++++++ .../plugins/prop/lighty/PropertiesNodeModule.java | 45 +++++++ properties-node/pom.xml | 1 + restapi-call-node/lighty/pom.xml | 47 ++++++++ .../plugins/prop/lighty/RestApiCallNodeModule.java | 46 +++++++ restapi-call-node/pom.xml | 1 + restconf-client/lighty/pom.xml | 47 ++++++++ .../restconf/lighty/RestconfClientModule.java | 59 +++++++++ restconf-client/pom.xml | 1 + sshapi-call-node/lighty/pom.xml | 47 ++++++++ .../sshapicall/lighty/SshApiCallModule.java | 45 +++++++ sshapi-call-node/pom.xml | 1 + template-node/lighty/pom.xml | 47 ++++++++ .../template/lighty/TemplateNodeModule.java | 45 +++++++ template-node/pom.xml | 1 + 18 files changed, 663 insertions(+) create mode 100755 ccsdk-plugins-lighty/pom.xml create mode 100644 ccsdk-plugins-lighty/src/main/java/org/onap/ccsdk/sli/plugins/lighty/CcsdkPluginsLightyModule.java create mode 100755 properties-node/lighty/pom.xml create mode 100644 properties-node/lighty/src/main/java/org/onap/ccsdk/sli/plugins/prop/lighty/PropertiesNodeModule.java create mode 100755 restapi-call-node/lighty/pom.xml create mode 100644 restapi-call-node/lighty/src/main/java/org/onap/ccsdk/sli/plugins/prop/lighty/RestApiCallNodeModule.java create mode 100755 restconf-client/lighty/pom.xml create mode 100644 restconf-client/lighty/src/main/java/org/onap/ccsdk/sli/plugins/restconf/lighty/RestconfClientModule.java create mode 100755 sshapi-call-node/lighty/pom.xml create mode 100644 sshapi-call-node/lighty/src/main/java/org/onap/ccsdk/sli/plugins/sshapicall/lighty/SshApiCallModule.java create mode 100755 template-node/lighty/pom.xml create mode 100644 template-node/lighty/src/main/java/org/onap/ccsdk/sli/plugins/template/lighty/TemplateNodeModule.java diff --git a/ccsdk-plugins-lighty/pom.xml b/ccsdk-plugins-lighty/pom.xml new file mode 100755 index 00000000..6b9d8eba --- /dev/null +++ b/ccsdk-plugins-lighty/pom.xml @@ -0,0 +1,49 @@ + + + 4.0.0 + + + org.onap.ccsdk.parent + odlparent-lite + 1.4.0-SNAPSHOT + + + + org.onap.ccsdk.sli.plugins + ccsdk-plugins-lighty + 0.6.0-SNAPSHOT + jar + + + + org.onap.ccsdk.sli.core + ccsdk-core-lighty + ${project.version} + + + org.onap.ccsdk.sli.northbound + properties-node-lighty + ${project.version} + + + org.onap.ccsdk.sli.northbound + restapi-call-node-lighty + ${project.version} + + + org.onap.ccsdk.sli.northbound + restconf-client-lighty + ${project.version} + + + org.onap.ccsdk.sli.northbound + sshapi-call-node-lighty + ${project.version} + + + org.onap.ccsdk.sli.northbound + template-node-lighty + ${project.version} + + + 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 index 00000000..a6d662b8 --- /dev/null +++ b/ccsdk-plugins-lighty/src/main/java/org/onap/ccsdk/sli/plugins/lighty/CcsdkPluginsLightyModule.java @@ -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 6ee7dea9..9fa01554 100755 --- a/pom.xml +++ b/pom.xml @@ -29,6 +29,7 @@ grToolkit features artifacts + ccsdk-plugins-lighty diff --git a/properties-node/lighty/pom.xml b/properties-node/lighty/pom.xml new file mode 100755 index 00000000..6778f3c2 --- /dev/null +++ b/properties-node/lighty/pom.xml @@ -0,0 +1,47 @@ + + + 4.0.0 + + + org.onap.ccsdk.parent + binding-parent + 1.4.0-SNAPSHOT + + + + org.onap.ccsdk.sli.northbound + properties-node-lighty + 0.6.0-SNAPSHOT + jar + + ccsdk-sli-plugins :: properties-node :: ${project.artifactId} + http://maven.apache.org + + + UTF-8 + + + + + + org.onap.ccsdk.sli.core + ccsdk-lighty-dependency-versions + ${project.version} + pom + import + + + + + + + io.lighty.core + lighty-controller + + + org.onap.ccsdk.sli.plugins + properties-node-provider + ${project.version} + + + 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 index 00000000..34538112 --- /dev/null +++ b/properties-node/lighty/src/main/java/org/onap/ccsdk/sli/plugins/prop/lighty/PropertiesNodeModule.java @@ -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; + } +} diff --git a/properties-node/pom.xml b/properties-node/pom.xml index 09991f46..64036f7b 100755 --- a/properties-node/pom.xml +++ b/properties-node/pom.xml @@ -21,5 +21,6 @@ provider features installer + lighty diff --git a/restapi-call-node/lighty/pom.xml b/restapi-call-node/lighty/pom.xml new file mode 100755 index 00000000..fa4ad5c2 --- /dev/null +++ b/restapi-call-node/lighty/pom.xml @@ -0,0 +1,47 @@ + + + 4.0.0 + + + org.onap.ccsdk.parent + binding-parent + 1.4.0-SNAPSHOT + + + + org.onap.ccsdk.sli.northbound + restapi-call-node-lighty + 0.6.0-SNAPSHOT + jar + + ccsdk-sli-plugins :: restapi-call-node :: ${project.artifactId} + http://maven.apache.org + + + UTF-8 + + + + + + org.onap.ccsdk.sli.core + ccsdk-lighty-dependency-versions + ${project.version} + pom + import + + + + + + + io.lighty.core + lighty-controller + + + org.onap.ccsdk.sli.plugins + restapi-call-node-provider + ${project.version} + + + 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 index 00000000..01fa03e5 --- /dev/null +++ b/restapi-call-node/lighty/src/main/java/org/onap/ccsdk/sli/plugins/prop/lighty/RestApiCallNodeModule.java @@ -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; + } + +} diff --git a/restapi-call-node/pom.xml b/restapi-call-node/pom.xml index d6fb0b49..7fbce024 100755 --- a/restapi-call-node/pom.xml +++ b/restapi-call-node/pom.xml @@ -20,5 +20,6 @@ provider features installer + lighty diff --git a/restconf-client/lighty/pom.xml b/restconf-client/lighty/pom.xml new file mode 100755 index 00000000..86e8af30 --- /dev/null +++ b/restconf-client/lighty/pom.xml @@ -0,0 +1,47 @@ + + + 4.0.0 + + + org.onap.ccsdk.parent + binding-parent + 1.4.0-SNAPSHOT + + + + org.onap.ccsdk.sli.northbound + restconf-client-lighty + 0.6.0-SNAPSHOT + jar + + ccsdk-sli-plugins :: restconf-client :: ${project.artifactId} + http://maven.apache.org + + + UTF-8 + + + + + + org.onap.ccsdk.sli.core + ccsdk-lighty-dependency-versions + ${project.version} + pom + import + + + + + + + io.lighty.core + lighty-controller + + + org.onap.ccsdk.sli.plugins + restconf-client-provider + ${project.version} + + + 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 index 00000000..bb0fc90d --- /dev/null +++ b/restconf-client/lighty/src/main/java/org/onap/ccsdk/sli/plugins/restconf/lighty/RestconfClientModule.java @@ -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; + } +} diff --git a/restconf-client/pom.xml b/restconf-client/pom.xml index e8b0123c..221987d8 100755 --- a/restconf-client/pom.xml +++ b/restconf-client/pom.xml @@ -20,5 +20,6 @@ provider features installer + lighty diff --git a/sshapi-call-node/lighty/pom.xml b/sshapi-call-node/lighty/pom.xml new file mode 100755 index 00000000..a28c1332 --- /dev/null +++ b/sshapi-call-node/lighty/pom.xml @@ -0,0 +1,47 @@ + + + 4.0.0 + + + org.onap.ccsdk.parent + binding-parent + 1.4.0-SNAPSHOT + + + + org.onap.ccsdk.sli.northbound + sshapi-call-node-lighty + 0.6.0-SNAPSHOT + jar + + ccsdk-sli-plugins :: sshapi-call-node :: ${project.artifactId} + http://maven.apache.org + + + UTF-8 + + + + + + org.onap.ccsdk.sli.core + ccsdk-lighty-dependency-versions + ${project.version} + pom + import + + + + + + + io.lighty.core + lighty-controller + + + org.onap.ccsdk.sli.plugins + sshapi-call-node-provider + ${project.version} + + + 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 index 00000000..d8f1932d --- /dev/null +++ b/sshapi-call-node/lighty/src/main/java/org/onap/ccsdk/sli/plugins/sshapicall/lighty/SshApiCallModule.java @@ -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; + } +} diff --git a/sshapi-call-node/pom.xml b/sshapi-call-node/pom.xml index 66e2af30..4238e773 100755 --- a/sshapi-call-node/pom.xml +++ b/sshapi-call-node/pom.xml @@ -20,5 +20,6 @@ provider features installer + lighty diff --git a/template-node/lighty/pom.xml b/template-node/lighty/pom.xml new file mode 100755 index 00000000..cb55c57f --- /dev/null +++ b/template-node/lighty/pom.xml @@ -0,0 +1,47 @@ + + + 4.0.0 + + + org.onap.ccsdk.parent + binding-parent + 1.4.0-SNAPSHOT + + + + org.onap.ccsdk.sli.northbound + template-node-lighty + 0.6.0-SNAPSHOT + jar + + ccsdk-sli-plugins :: template-node :: ${project.artifactId} + http://maven.apache.org + + + UTF-8 + + + + + + org.onap.ccsdk.sli.core + ccsdk-lighty-dependency-versions + ${project.version} + pom + import + + + + + + + io.lighty.core + lighty-controller + + + org.onap.ccsdk.sli.plugins + template-node-provider + ${project.version} + + + 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 index 00000000..1cd836bb --- /dev/null +++ b/template-node/lighty/src/main/java/org/onap/ccsdk/sli/plugins/template/lighty/TemplateNodeModule.java @@ -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; + } +} diff --git a/template-node/pom.xml b/template-node/pom.xml index 0c811f71..4149f874 100644 --- a/template-node/pom.xml +++ b/template-node/pom.xml @@ -17,5 +17,6 @@ provider features installer + lighty -- 2.16.6