diff options
Diffstat (limited to 'template-node/provider')
7 files changed, 0 insertions, 281 deletions
diff --git a/template-node/provider/pom.xml b/template-node/provider/pom.xml deleted file mode 100644 index d7bc54fc6..000000000 --- a/template-node/provider/pom.xml +++ /dev/null @@ -1,49 +0,0 @@ -<?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>2.1.0</version> - </parent> - - <groupId>org.onap.ccsdk.sli.plugins</groupId> - <artifactId>template-node-provider</artifactId> - <version>1.1.1-SNAPSHOT</version> - <packaging>bundle</packaging> - - <name>ccsdk-sli-plugins :: template-node :: ${project.artifactId}</name> - - <dependencyManagement> - <dependencies> - <dependency> - <groupId>org.onap.ccsdk.sli.core</groupId> - <artifactId>sli-core-artifacts</artifactId> - <version>${ccsdk.sli.core.version}</version> - <type>pom</type> - <scope>import</scope> - </dependency> - </dependencies> - </dependencyManagement> - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.onap.ccsdk.sli.core</groupId> - <artifactId>sli-common</artifactId> - <scope>provided</scope> - </dependency> - <dependency> - <groupId>org.slf4j</groupId> - <artifactId>slf4j-api</artifactId> - </dependency> - <dependency> - <groupId>org.apache.velocity</groupId> - <artifactId>velocity</artifactId> - </dependency> - </dependencies> -</project> diff --git a/template-node/provider/src/main/java/org/onap/ccsdk/sli/plugins/template/TemplateNode.java b/template-node/provider/src/main/java/org/onap/ccsdk/sli/plugins/template/TemplateNode.java deleted file mode 100755 index 005b62067..000000000 --- a/template-node/provider/src/main/java/org/onap/ccsdk/sli/plugins/template/TemplateNode.java +++ /dev/null @@ -1,114 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights - * reserved. - * Modifications Copyright © 2018 IBM. - * ================================================================================ - * 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; - -import java.io.FileInputStream; -import java.io.StringWriter; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Properties; -import org.apache.velocity.Template; -import org.apache.velocity.VelocityContext; -import org.apache.velocity.app.VelocityEngine; -import org.apache.velocity.runtime.RuntimeConstants; -import org.onap.ccsdk.sli.core.sli.SvcLogicContext; -import org.onap.ccsdk.sli.core.sli.SvcLogicException; -import org.onap.ccsdk.sli.core.sli.SvcLogicJavaPlugin; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class TemplateNode implements SvcLogicJavaPlugin { - private static final Logger logger = LoggerFactory.getLogger(TemplateNode.class); - public static final String TEMPLATE_PATH = "templatePath"; - public static final String OUTPUT_PATH_KEY = "output"; - public static final String PREFIX_KEY = "prefix"; - public static final String REQUIRED_PARAMETERS_ERROR_MESSAGE = "templateName & outputPath are required fields"; - protected static final String TEMPLATE_PROPERTIES_FILE_NAME = "template-node.properties"; - protected static final String DEFAULT_PROPERTIES_DIR = "/opt/onap/ccsdk/data/properties"; - protected static final String PROPERTIES_DIR_KEY = "SDNC_CONFIG_DIR"; - - protected VelocityEngine ve; - - public TemplateNode() { - ve = new VelocityEngine(); - setProperties(); - ve.init(); - } - - protected void setProperties() { - String configDir = System.getProperty(PROPERTIES_DIR_KEY, DEFAULT_PROPERTIES_DIR); - Properties props = new Properties(); - - try (FileInputStream in = new FileInputStream(configDir + "/" + TEMPLATE_PROPERTIES_FILE_NAME)) { - props.load(in); - } catch (Exception e) { - logger.warn("Properties not loaded for template node, using sensible defaults. " + e.getMessage()); - } - - // give sensible defaults for required properties - ve.setProperty(RuntimeConstants.RESOURCE_LOADER, props.getProperty("velocity.resource.loader", "file")); - ve.setProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH, - props.getProperty("velocity.file.resource.loader.path", "/opt/onap/sdnc/restapi/templates")); - ve.setProperty(RuntimeConstants.FILE_RESOURCE_LOADER_CACHE, - props.getProperty("velocity.file.resource.loader.cache", "false")); - - // allow flexible reading of additional velocity properties - for (String propertyName : props.stringPropertyNames()) { - if (propertyName.startsWith("velocity")) { - logger.error("set " + propertyName.substring(9) + "=" + props.get(propertyName)); - ve.setProperty(propertyName.substring(9), props.get(propertyName)); - } - } - } - - public void evaluateTemplate(Map<String, String> params, SvcLogicContext ctx) throws SvcLogicException { - String templateName = params.get(TEMPLATE_PATH); - String outputPath = params.get(OUTPUT_PATH_KEY); - String prefix = params.get(PREFIX_KEY); - - if (prefix != null && prefix.length() > 0) { - outputPath = prefix + "." + outputPath; - } - - if (templateName == null || outputPath == null) { - throw new SvcLogicException(REQUIRED_PARAMETERS_ERROR_MESSAGE); - } else { - try { - Template template = ve.getTemplate(templateName); - VelocityContext context = new VelocityContext(); - context.put("ctx", ctx); - context.put("params", params); - //Adding these values directly to context makes working with the values cleaner - for (Entry<String, String> entry : params.entrySet()) { - context.put(entry.getKey(), entry.getValue()); - } - StringWriter sw = new StringWriter(); - template.merge(context, sw); - ctx.setAttribute(outputPath, sw.toString()); - } catch (Exception e) { - throw new SvcLogicException(e.getMessage()); - } - } - } - -} diff --git a/template-node/provider/src/main/resources/OSGI-INF/blueprint/blueprint.xml b/template-node/provider/src/main/resources/OSGI-INF/blueprint/blueprint.xml deleted file mode 100644 index 60409c504..000000000 --- a/template-node/provider/src/main/resources/OSGI-INF/blueprint/blueprint.xml +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"> - - <bean id="templateNode" - class="org.onap.ccsdk.sli.plugins.template.TemplateNode" /> - - <service id="templateNodeService" ref="templateNode" - interface="org.onap.ccsdk.sli.plugins.template.TemplateNode" /> - -</blueprint>
\ No newline at end of file diff --git a/template-node/provider/src/test/java/org/onap/ccsdk/sli/plugins/template/MockTemplateNode.java b/template-node/provider/src/test/java/org/onap/ccsdk/sli/plugins/template/MockTemplateNode.java deleted file mode 100644 index d628ac929..000000000 --- a/template-node/provider/src/test/java/org/onap/ccsdk/sli/plugins/template/MockTemplateNode.java +++ /dev/null @@ -1,7 +0,0 @@ -package org.onap.ccsdk.sli.plugins.template; - -public class MockTemplateNode extends TemplateNode { - protected void setProperties() { - // do nothing - } -} diff --git a/template-node/provider/src/test/java/org/onap/ccsdk/sli/plugins/template/TemplateNodeTest.java b/template-node/provider/src/test/java/org/onap/ccsdk/sli/plugins/template/TemplateNodeTest.java deleted file mode 100644 index 29c5c973e..000000000 --- a/template-node/provider/src/test/java/org/onap/ccsdk/sli/plugins/template/TemplateNodeTest.java +++ /dev/null @@ -1,85 +0,0 @@ -package org.onap.ccsdk.sli.plugins.template; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; -import java.util.HashMap; -import java.util.Map; -import java.util.Vector; -import org.apache.velocity.runtime.RuntimeConstants; -import org.junit.Test; -import org.onap.ccsdk.sli.core.sli.SvcLogicContext; -import org.onap.ccsdk.sli.core.sli.SvcLogicException; - -public class TemplateNodeTest { - - @Test - public void sunnyDay() throws Exception { - String requestId = "REQ001"; - String uniqueKey = "UNIQUE_TEST"; - String action = "uPdaTe"; - String serviceType = "VPN"; - - TemplateNode t = new MockTemplateNode(); - - Map<String, String> params = new HashMap<String, String>(); - params.put(TemplateNode.PREFIX_KEY, "output"); - params.put(TemplateNode.OUTPUT_PATH_KEY, "mycontainer"); - params.put(TemplateNode.TEMPLATE_PATH, "src/test/resources/basic.vtl"); - params.put("service-type", serviceType); - SvcLogicContext ctx = new SvcLogicContext(); - ctx.setAttribute("input.svc-request-id", requestId); - ctx.setAttribute("input.unique-key", uniqueKey); - ctx.setAttribute("action", action); - - t.evaluateTemplate(params, ctx); - String result = ctx.getAttribute("output.mycontainer"); - assertNotNull(result); - assertTrue(result.contains(requestId)); - assertTrue(result.contains(uniqueKey)); - assertTrue(result.contains(action.toUpperCase())); - assertTrue(result.contains(serviceType)); - } - - @Test(expected = SvcLogicException.class) - public void parameterException() throws Exception { - TemplateNode t = new MockTemplateNode(); - Map<String, String> params = new HashMap<String, String>(); - SvcLogicContext ctx = new SvcLogicContext(); - t.evaluateTemplate(params, ctx); - } - - @Test(expected = SvcLogicException.class) - public void missingTemplate() throws Exception { - TemplateNode t = new MockTemplateNode(); - Map<String, String> params = new HashMap<String, String>(); - params.put(TemplateNode.PREFIX_KEY, "output"); - params.put(TemplateNode.OUTPUT_PATH_KEY, "mycontainer"); - params.put(TemplateNode.TEMPLATE_PATH, "src/test/resources/missing.vtl"); - SvcLogicContext ctx = new SvcLogicContext(); - t.evaluateTemplate(params, ctx); - } - - @Test - public void withProperties() throws Exception { - System.setProperty(TemplateNode.PROPERTIES_DIR_KEY, "src/test/resources"); - TemplateNode t = new TemplateNode(); - Vector<String> loader = (Vector<String>) t.ve.getProperty(RuntimeConstants.RESOURCE_LOADER); - assertTrue(loader.contains("class")); - assertEquals("/home/my/example", t.ve.getProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH)); - assertEquals("true", t.ve.getProperty(RuntimeConstants.FILE_RESOURCE_LOADER_CACHE)); - assertEquals("customValue", t.ve.getProperty("custom.property")); - } - - @Test - public void withNoProperties() throws Exception { - System.setProperty(TemplateNode.PROPERTIES_DIR_KEY, "i/do/not/exist"); - TemplateNode t = new TemplateNode(); - Vector<String> loader = (Vector<String>) t.ve.getProperty(RuntimeConstants.RESOURCE_LOADER); - assertTrue(loader.contains("file")); - assertEquals("/opt/onap/sdnc/restapi/templates", t.ve.getProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH)); - assertEquals("false", t.ve.getProperty(RuntimeConstants.FILE_RESOURCE_LOADER_CACHE)); - assertEquals(null, t.ve.getProperty("custom.property")); - } - -}
\ No newline at end of file diff --git a/template-node/provider/src/test/resources/basic.vtl b/template-node/provider/src/test/resources/basic.vtl deleted file mode 100644 index 63fcc670a..000000000 --- a/template-node/provider/src/test/resources/basic.vtl +++ /dev/null @@ -1,12 +0,0 @@ -{ - "input": { - "sdnc-request-header": { - "svc-request-id": "$ctx.getAttribute("input.svc-request-id")", - "svc-action": "$ctx.getAttribute("action").toUpperCase()" - }, - "service-information": { - "service-type": "$params.get("service-type")", - "service-instance-id": "$ctx.getAttribute("input.unique-key")" - } - } -}
\ No newline at end of file diff --git a/template-node/provider/src/test/resources/template-node.properties b/template-node/provider/src/test/resources/template-node.properties deleted file mode 100644 index 1199a0cde..000000000 --- a/template-node/provider/src/test/resources/template-node.properties +++ /dev/null @@ -1,4 +0,0 @@ -velocity.resource.loader=class -velocity.file.resource.loader.path=/home/my/example -velocity.file.resource.loader.cache=true -velocity.custom.property=customValue
\ No newline at end of file |