summaryrefslogtreecommitdiffstats
path: root/properties-node/provider/src/main/java/org
diff options
context:
space:
mode:
authorJessica Wagantall <jwagantall@linuxfoundation.org>2020-12-01 11:33:35 -0800
committerJessica Wagantall <jwagantall@linuxfoundation.org>2020-12-01 11:33:35 -0800
commit96a9aafdff7813324bc8a8ba1e743683e251dde6 (patch)
tree644c6837ab58ed21fb05f4bf988dc392875b9f8d /properties-node/provider/src/main/java/org
parenta0e97e71a49a8b54fddf8fb004b32f202f114011 (diff)
Migrate files from sli-plugins
Migrate sli-plugins repo into new directory "plugins". Signed-off-by: Jessica Wagantall <jwagantall@linuxfoundation.org>
Diffstat (limited to 'properties-node/provider/src/main/java/org')
-rw-r--r--properties-node/provider/src/main/java/org/onap/ccsdk/sli/plugins/prop/JsonParser.java94
-rw-r--r--properties-node/provider/src/main/java/org/onap/ccsdk/sli/plugins/prop/Parameters.java31
-rw-r--r--properties-node/provider/src/main/java/org/onap/ccsdk/sli/plugins/prop/PropertiesNode.java194
-rw-r--r--properties-node/provider/src/main/java/org/onap/ccsdk/sli/plugins/prop/XmlParser.java176
4 files changed, 0 insertions, 495 deletions
diff --git a/properties-node/provider/src/main/java/org/onap/ccsdk/sli/plugins/prop/JsonParser.java b/properties-node/provider/src/main/java/org/onap/ccsdk/sli/plugins/prop/JsonParser.java
deleted file mode 100644
index 89243a055..000000000
--- a/properties-node/provider/src/main/java/org/onap/ccsdk/sli/plugins/prop/JsonParser.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * 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;
-
-import org.codehaus.jettison.json.JSONArray;
-import org.codehaus.jettison.json.JSONException;
-import org.codehaus.jettison.json.JSONObject;
-import org.onap.ccsdk.sli.core.sli.SvcLogicException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-
-public final class JsonParser {
-
- private static final Logger log = LoggerFactory.getLogger(JsonParser.class);
-
- private JsonParser() {
- // Preventing instantiation of the same.
- }
-
- @SuppressWarnings("unchecked")
- public static Map<String, String> convertToProperties(String s)
- throws SvcLogicException {
-
- checkNotNull(s, "Input should not be null.");
-
- try {
- JSONObject json = new JSONObject(s);
- Map<String, Object> wm = new HashMap<>();
- Iterator<String> ii = json.keys();
- while (ii.hasNext()) {
- String key1 = ii.next();
- wm.put(key1, json.get(key1));
- }
-
- Map<String, String> mm = new HashMap<>();
-
- while (!wm.isEmpty())
- for (String key : new ArrayList<>(wm.keySet())) {
- Object o = wm.get(key);
- wm.remove(key);
-
- if (o instanceof Boolean || o instanceof Number || o instanceof String) {
- mm.put(key, o.toString());
-
- log.info("Added property: {} : {}", key, o.toString());
- } else if (o instanceof JSONObject) {
- JSONObject jo = (JSONObject) o;
- Iterator<String> i = jo.keys();
- while (i.hasNext()) {
- String key1 = i.next();
- wm.put(key + "." + key1, jo.get(key1));
- }
- } else if (o instanceof JSONArray) {
- JSONArray ja = (JSONArray) o;
- mm.put(key + "_length", String.valueOf(ja.length()));
-
- log.info("Added property: {}_length: {}", key, String.valueOf(ja.length()));
-
- for (int i = 0; i < ja.length(); i++)
- wm.put(key + '[' + i + ']', ja.get(i));
- }
- }
- return mm;
- } catch (JSONException e) {
- throw new SvcLogicException("Unable to convert JSON to properties " + e.getLocalizedMessage(), e);
- }
- }
-}
diff --git a/properties-node/provider/src/main/java/org/onap/ccsdk/sli/plugins/prop/Parameters.java b/properties-node/provider/src/main/java/org/onap/ccsdk/sli/plugins/prop/Parameters.java
deleted file mode 100644
index 99e4647d7..000000000
--- a/properties-node/provider/src/main/java/org/onap/ccsdk/sli/plugins/prop/Parameters.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * 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;
-
-import java.util.Set;
-
-public class Parameters {
- public String fileName;
- public String contextPrefix;
- public Set<String> listNameList;
- public boolean fileBasedParsing;
-}
diff --git a/properties-node/provider/src/main/java/org/onap/ccsdk/sli/plugins/prop/PropertiesNode.java b/properties-node/provider/src/main/java/org/onap/ccsdk/sli/plugins/prop/PropertiesNode.java
deleted file mode 100644
index b4bc84747..000000000
--- a/properties-node/provider/src/main/java/org/onap/ccsdk/sli/plugins/prop/PropertiesNode.java
+++ /dev/null
@@ -1,194 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * 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;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
-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 PropertiesNode implements SvcLogicJavaPlugin {
-
- private static final Logger log = LoggerFactory.getLogger(PropertiesNode.class);
-
- public void readProperties(Map<String, String> paramMap, SvcLogicContext ctx) throws SvcLogicException {
- Parameters param = getParameters(paramMap);
- Properties prop = new Properties();
- try {
- File file = new File(param.fileName);
- try (InputStream in = new FileInputStream(file)) {
- Map<String, String> mm = null;
- String pfx = param.contextPrefix != null ? param.contextPrefix + '.' : "";
- if (param.fileBasedParsing) {
- byte[] data = new byte[(int) file.length()];
- if ("json".equalsIgnoreCase(getFileExtension(param.fileName))) {
- in.read(data);
- String str = new String(data, "UTF-8");
- mm = JsonParser.convertToProperties(str);
- } else if ("xml".equalsIgnoreCase(getFileExtension(param.fileName))) {
- in.read(data);
- String str = new String(data, "UTF-8");
- mm = XmlParser.convertToProperties(str, param.listNameList);
- } else {
- prop.load(in);
- for (Object key : prop.keySet()) {
- String name = (String) key;
- String value = prop.getProperty(name);
- if (value != null && value.trim().length() > 0) {
- ctx.setAttribute(pfx + name, getObfuscatedVal(value.trim()));
- log.info("+++ " + pfx + name + ": [" + maskPassword(pfx + name, value) + "]");
- }
- }
- }
- if (mm != null) {
- for (Map.Entry<String, String> entry : mm.entrySet()) {
- ctx.setAttribute(pfx + entry.getKey(), getObfuscatedVal(entry.getValue()));
- log.info("+++ " + pfx + entry.getKey() + ": ["
- + maskPassword(pfx + entry.getKey(), entry.getValue()) + "]");
- }
- }
- } else {
- prop.load(in);
- for (Object key : prop.keySet()) {
- String name = (String) key;
- String value = prop.getProperty(name);
- if (value != null && value.trim().length() > 0) {
- ctx.setAttribute(pfx + name, getObfuscatedVal(value.trim()));
- log.info("+++ " + pfx + name + ": [" + maskPassword(pfx + name, value) + "]");
- }
- }
- }
- }
- } catch (IOException e) {
- throw new SvcLogicException("Cannot read property file: " + param.fileName + ": " + e.getMessage(), e);
- }
- }
-
- /* Unobfuscate param value */
- private static String getObfuscatedVal(String paramValue) {
- String resValue = paramValue;
- if (paramValue != null && paramValue.startsWith("${") && paramValue.endsWith("}"))
- {
- String paramStr = paramValue.substring(2, paramValue.length()-1);
- if (paramStr != null && paramStr.length() > 0)
- {
- String val = System.getenv(paramStr);
- if (val != null && val.length() > 0)
- {
- resValue=val;
- log.info("Obfuscated value RESET for param value:" + paramValue);
- }
- }
- }
- return resValue;
- }
-
- /*
- * Getting extension has to do the following "" --> "" "name" --> "" "name.txt" --> "txt"
- * ".htpasswd" --> "" "name.with.many.dots.myext" --> "myext"
- */
- private static String getFileExtension(String fileName) {
- if (fileName.lastIndexOf(".") != -1 && fileName.lastIndexOf(".") != 0) {
- return fileName.substring(fileName.lastIndexOf(".") + 1);
- } else {
- return "";
- }
- }
-
- protected Parameters getParameters(Map<String, String> paramMap) throws SvcLogicException {
- Parameters p = new Parameters();
- p.fileName = parseParam(paramMap, "fileName", true, null);
- p.contextPrefix = parseParam(paramMap, "contextPrefix", false, null);
- p.listNameList = getListNameList(paramMap);
- String fileBasedParsingStr = paramMap.get("fileBasedParsing");
- p.fileBasedParsing = "true".equalsIgnoreCase(fileBasedParsingStr);
- return p;
- }
-
- protected Set<String> getListNameList(Map<String, String> paramMap) {
- Set<String> ll = new HashSet<>();
- for (Map.Entry<String, String> entry : paramMap.entrySet()) {
- if (entry.getKey().startsWith("listName")) {
- ll.add(entry.getValue());
- }
- }
- return ll;
- }
-
- private String parseParam(Map<String, String> paramMap, String name, boolean required, String def)
- throws SvcLogicException {
- String s = paramMap.get(name);
-
- if (s == null || s.trim().length() == 0) {
- if (!required) {
- return def;
- }
- throw new SvcLogicException("Parameter " + name + " is required in PropertiesNode");
- }
-
- s = s.trim();
- String value = "";
- int i = 0;
- int i1 = s.indexOf('%');
- while (i1 >= 0) {
- int i2 = s.indexOf('%', i1 + 1);
- if (i2 < 0) {
- throw new SvcLogicException("Cannot parse parameter " + name + ": " + s + ": no matching %");
- }
-
- String varName = s.substring(i1 + 1, i2);
- String varValue = System.getenv(varName);
- if (varValue == null) {
- varValue = "";
- }
-
- value += s.substring(i, i1);
- value += varValue;
-
- i = i2 + 1;
- i1 = s.indexOf('%', i);
- }
- value += s.substring(i);
-
- log.info("Parameter " + name + ": " + maskPassword(name, value));
- return value;
- }
-
- private static Object maskPassword(String name, Object value) {
- String[] pwdNames = {"pwd", "passwd", "password", "Pwd", "Passwd", "Password"};
- for (String pwdName : pwdNames) {
- if (name.contains(pwdName)) {
- return "**********";
- }
- }
- return value;
- }
-}
diff --git a/properties-node/provider/src/main/java/org/onap/ccsdk/sli/plugins/prop/XmlParser.java b/properties-node/provider/src/main/java/org/onap/ccsdk/sli/plugins/prop/XmlParser.java
deleted file mode 100644
index f48a21e9d..000000000
--- a/properties-node/provider/src/main/java/org/onap/ccsdk/sli/plugins/prop/XmlParser.java
+++ /dev/null
@@ -1,176 +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.prop;
-
-import org.onap.ccsdk.sli.core.sli.SvcLogicException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-import org.xml.sax.helpers.DefaultHandler;
-
-import javax.xml.XMLConstants;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-
-public final class XmlParser {
-
- private static final Logger log = LoggerFactory.getLogger(XmlParser.class);
-
- private XmlParser() {
- // Preventing instantiation of the same.
- }
-
- public static Map<String, String> convertToProperties(String s, Set<String> listNameList)
- throws SvcLogicException {
-
- checkNotNull(s, "Input should not be null.");
-
- Handler handler = new Handler(listNameList);
- try {
- SAXParserFactory factory = SAXParserFactory.newInstance();
-
- factory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
- factory.setFeature("http://xml.org/sax/features/external-general-entities", false);
- factory.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
- SAXParser saxParser = factory.newSAXParser();
- InputStream in = new ByteArrayInputStream(s.getBytes());
- saxParser.parse(in, handler);
- } catch (ParserConfigurationException | IOException | SAXException | NumberFormatException e) {
- throw new SvcLogicException("Unable to convert XML to properties" + e.getLocalizedMessage(), e);
- }
- return handler.getProperties();
- }
-
- private static class Handler extends DefaultHandler {
-
- private Set<String> listNameList;
-
- private Map<String, String> properties = new HashMap<>();
-
- StringBuilder currentName = new StringBuilder();
- StringBuilder currentValue = new StringBuilder();
-
- public Handler(Set<String> listNameList) {
- super();
- this.listNameList = listNameList;
- if (this.listNameList == null)
- this.listNameList = new HashSet<>();
- }
-
- public Map<String, String> getProperties() {
- return properties;
- }
-
- @Override
- public void startElement(String uri, String localName, String qName, Attributes attributes)
- throws SAXException {
- super.startElement(uri, localName, qName, attributes);
-
- String name = localName;
- if (name == null || name.trim().length() == 0)
- name = qName;
- int i2 = name.indexOf(':');
- if (i2 >= 0)
- name = name.substring(i2 + 1);
-
- if (currentName.length() > 0)
- currentName.append(Character.toString('.'));
- currentName.append(name);
-
- String listName = removeIndexes(currentName.toString());
-
- if (listNameList.contains(listName)) {
- String n = currentName.toString() + "_length";
- int len = getInt(properties, n);
- properties.put(n, String.valueOf(len + 1));
- currentName.append("[").append(len).append("]");
- }
- }
-
- @Override
- public void endElement(String uri, String localName, String qName) throws SAXException {
- super.endElement(uri, localName, qName);
-
- String name = localName;
- if (name == null || name.trim().length() == 0)
- name = qName;
- int i2 = name.indexOf(':');
- if (i2 >= 0)
- name = name.substring(i2 + 1);
-
- String s = currentValue.toString().trim();
- if (s.length() > 0) {
- properties.put(currentName.toString(), s);
-
- log.info("Added property: {} : {}", currentName, s);
- currentValue = new StringBuilder();
- }
-
- int i1 = currentName.lastIndexOf("." + name);
- if (i1 <= 0)
- currentName = new StringBuilder();
- else
- currentName = new StringBuilder(currentName.substring(0, i1));
- }
-
- @Override
- public void characters(char[] ch, int start, int length) throws SAXException {
- super.characters(ch, start, length);
-
- String value = new String(ch, start, length);
- currentValue.append(value);
- }
-
- private static int getInt(Map<String, String> mm, String name) {
- String s = mm.get(name);
- if (s == null)
- return 0;
- return Integer.parseInt(s);
- }
-
- private String removeIndexes(String currentName) {
- StringBuilder b = new StringBuilder();
- boolean add = true;
- for (int i = 0; i < currentName.length(); i++) {
- char c = currentName.charAt(i);
- if (c == '[')
- add = false;
- else if (c == ']')
- add = true;
- else if (add)
- b.append(Character.toString(c));
- }
- return b.toString();
- }
- }
-}