aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBharat saraswal <bharat.saraswal@huawei.com>2017-09-22 16:00:17 +0530
committerBharat saraswal <bharat.saraswal@huawei.com>2017-09-22 16:20:20 +0530
commit0cfe6edb0ac361998bc567067b4c7ce780b835fa (patch)
treec96f6920be69e469cf2a658fe1998eff3824b5e0
parentb7d0116d228ba50d89429c615ff3e88eec30885e (diff)
Resolved below sonar issues:
reduced method complexitity. removed redundant code. Issue-Id:AAI-211 Change-Id: If4f8f53cc01fdfb6cc9d0efea5e144fef9941720 Signed-off-by: Bharat saraswal <bharat.saraswal@huawei.com>
-rw-r--r--ajsc-aai/src/main/java/org/openecomp/aai/workarounds/LegacyURLTransformer.java122
-rw-r--r--ajsc-aai/src/main/java/org/openecomp/aai/workarounds/ModifyOXMProperties.java338
2 files changed, 227 insertions, 233 deletions
diff --git a/ajsc-aai/src/main/java/org/openecomp/aai/workarounds/LegacyURLTransformer.java b/ajsc-aai/src/main/java/org/openecomp/aai/workarounds/LegacyURLTransformer.java
index 2775af0..0060d70 100644
--- a/ajsc-aai/src/main/java/org/openecomp/aai/workarounds/LegacyURLTransformer.java
+++ b/ajsc-aai/src/main/java/org/openecomp/aai/workarounds/LegacyURLTransformer.java
@@ -21,76 +21,70 @@
package org.openecomp.aai.workarounds;
import java.net.MalformedURLException;
-import java.net.URI;
import java.net.URL;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-import com.att.aft.dme2.internal.javaxwsrs.core.UriBuilder;
-
public class LegacyURLTransformer {
- /**
- * Instantiates a new legacy URL transformer.
- */
- private LegacyURLTransformer() {
-
- }
-
- private static class Helper {
- private static final LegacyURLTransformer INSTANCE = new LegacyURLTransformer();
- }
-
- /**
- * Gets the single instance of LegacyURLTransformer.
- *
- * @return single instance of LegacyURLTransformer
- */
- public static LegacyURLTransformer getInstance() {
- return Helper.INSTANCE;
- }
-
- /**
- * Gets the legacy URL.
- *
- * @param url the url
- * @return the legacy URL
- * @throws MalformedURLException the malformed URL exception
- */
- public URL getLegacyURL(URL url) throws MalformedURLException {
- String substring = "/aai/(?<version>v\\d+)/cloud-infrastructure/tenants/tenant/(?<tenantKey>.*?)/vservers/vserver/(?<vserverKey>[^/]*?$)";
- String replacement = "/aai/servers/${version}/${tenantKey}/vservers/${vserverKey}";
- Pattern p = Pattern.compile(substring);
- String result = url.toString();
- Matcher m = p.matcher(result);
- if (m.find()) {
- result = m.replaceFirst(replacement);
+ /**
+ * Instantiates a new legacy URL transformer.
+ */
+ private LegacyURLTransformer() {
+
+ }
+
+ private static class Helper {
+
+ private static final LegacyURLTransformer INSTANCE = new LegacyURLTransformer();
+ }
+
+ /**
+ * Gets the single instance of LegacyURLTransformer.
+ *
+ * @return single instance of LegacyURLTransformer
+ */
+ public static LegacyURLTransformer getInstance() {
+ return Helper.INSTANCE;
+ }
+
+ /**
+ * Gets the legacy URL.
+ *
+ * @param url the url
+ * @return the legacy URL
+ * @throws MalformedURLException the malformed URL exception
+ */
+ public URL getLegacyURL(URL url) throws MalformedURLException {
+ String substring = "/aai/(?<version>v\\d+)/cloud-infrastructure/tenants/tenant/(?<tenantKey>.*?)/vservers/"
+ + "vserver/(?<vserverKey>[^/]*?$)";
+ String replacement = "/aai/servers/${version}/${tenantKey}/vservers/${vserverKey}";
+ Pattern p = Pattern.compile(substring);
+ String result = url.toString();
+ Matcher m = p.matcher(result);
+ if (m.find()) {
+ result = m.replaceFirst(replacement);
+ }
+ return new URL(result);
+ }
- }
- URL resultUrl = new URL(result);
- return resultUrl;
-
- }
-
- /**
- * Gets the current URL.
- *
- * @param url the url
- * @return the current URL
- * @throws MalformedURLException the malformed URL exception
- */
- public URL getCurrentURL(URL url) throws MalformedURLException {
- String substring = "/aai/servers/(?<version>v[23])/(?<tenantKey>.*?)/vservers/(?<vserverKey>[^/]*?$)";
- String replacement = "/aai/${version}/cloud-infrastructure/tenants/tenant/${tenantKey}/vservers/vserver/${vserverKey}";
- Pattern p = Pattern.compile(substring);
- String result = url.toString();
- Matcher m = p.matcher(result);
- if (m.find()) {
- result = m.replaceFirst(replacement);
+ /**
+ * Gets the current URL.
+ *
+ * @param url the url
+ * @return the current URL
+ * @throws MalformedURLException the malformed URL exception
+ */
+ public URL getCurrentURL(URL url) throws MalformedURLException {
+ String substring = "/aai/servers/(?<version>v[23])/(?<tenantKey>.*?)/vservers/(?<vserverKey>[^/]*?$)";
+ String replacement = "/aai/${version}/cloud-infrastructure/tenants/tenant/${tenantKey}/vservers/vserver/${vserverKey}";
+ Pattern p = Pattern.compile(substring);
+ String result = url.toString();
+ Matcher m = p.matcher(result);
+ if (m.find()) {
+ result = m.replaceFirst(replacement);
+ }
- }
-
- URL resultUrl = new URL(result);
- return resultUrl;
- }
+ return new URL(result);
+ }
}
diff --git a/ajsc-aai/src/main/java/org/openecomp/aai/workarounds/ModifyOXMProperties.java b/ajsc-aai/src/main/java/org/openecomp/aai/workarounds/ModifyOXMProperties.java
index 4f42afb..494ada3 100644
--- a/ajsc-aai/src/main/java/org/openecomp/aai/workarounds/ModifyOXMProperties.java
+++ b/ajsc-aai/src/main/java/org/openecomp/aai/workarounds/ModifyOXMProperties.java
@@ -20,13 +20,13 @@
package org.openecomp.aai.workarounds;
+import com.google.common.base.CaseFormat;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-
import javax.xml.XMLConstants;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
@@ -41,180 +41,180 @@ import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpression;
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;
-
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
-import com.google.common.base.CaseFormat;
-
public class ModifyOXMProperties {
- private static String[] versions = new String[]{"v8"};
-
- /**
- * The main method.
- *
- * @param args the arguments
- * @throws SAXException the SAX exception
- * @throws IOException Signals that an I/O exception has occurred.
- * @throws ParserConfigurationException the parser configuration exception
- * @throws XPathExpressionException the x path expression exception
- * @throws TransformerException the transformer exception
- */
- public static void main(String[] args) throws SAXException, IOException, ParserConfigurationException, XPathExpressionException, TransformerException {
-
- for (int i = 0; i < versions.length; i++) {
- process(versions[i]);
- }
-
-
-
- }
-
- /**
- * Process.
- *
- * @param version the version
- * @throws SAXException the SAX exception
- * @throws IOException Signals that an I/O exception has occurred.
- * @throws ParserConfigurationException the parser configuration exception
- * @throws XPathExpressionException the x path expression exception
- * @throws TransformerException the transformer exception
- */
- private static void process(String version) throws SAXException, IOException, ParserConfigurationException, XPathExpressionException, TransformerException {
-
-
-
- String filepath = "bundleconfig-local/etc/oxm/aai_oxm_" + version + ".xml";
- DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
- docFactory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
- DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
- Document doc = docBuilder.parse(filepath);
- XPath xpath = XPathFactory.newInstance().newXPath();
- NodeList list = doc.getElementsByTagName("java-type");
- //Find namespaces - restrict to inventory
- //XPathExpression expr = xpath.compile("//java-type[java-attributes[count(xml-element[contains(@type, 'aai.openecomp.org')])=count(./xml-element)][count(xml-element) > 1]]/xml-root-element");
- XPathExpression expr = xpath.compile("//java-type[@name='Inventory']/java-attributes/xml-element/@name");
- Object result = expr.evaluate(doc, XPathConstants.NODESET);
- NodeList nodes = (NodeList) result;
- String[] temp = null;
- List<String> itemsUnderInventory = new ArrayList<>();
- for (int i = 0; i < nodes.getLength(); i++) {
- itemsUnderInventory.add(nodes.item(i).getTextContent());
- }
- Map<String, String> namespaces = new HashMap<>();
-
- itemsUnderInventory.remove("Search");
- for (String item : itemsUnderInventory) {
- expr = xpath.compile("//java-type[xml-root-element/@name='" + item + "']");
- result = expr.evaluate(doc, XPathConstants.NODESET);
- nodes = (NodeList) result;
- for (int i = 0; i < nodes.getLength(); i++) {
- String a = "java-attributes/xml-element/@type[contains(.,'aai.openecomp.org')]";
- XPathExpression expr2 = xpath.compile(a);
- Object result2 = expr2.evaluate(nodes.item(i), XPathConstants.NODESET);
-
- NodeList node2 = (NodeList) result2;
- for (int j = 0; j < node2.getLength(); j++) {
- temp = node2.item(j).getTextContent().split("\\.");
- namespaces.put(temp[temp.length-1], item);
- }
- }
- }
-
-
-
- //go through plurals
- expr = xpath.compile("//java-type[java-attributes[count(xml-element) = 1]/xml-element[contains(@type, 'aai.openecomp.org')]]/xml-root-element");
-
- result = expr.evaluate(doc, XPathConstants.NODESET);
- nodes = (NodeList) result;
- List<String> children = new ArrayList<>();
- for (int i = 0; i < nodes.getLength(); i++) {
- XPathExpression expr2 = xpath.compile("../java-attributes/xml-element[1]/@type[contains(.,'aai.openecomp.org')]");
- Object result2 = expr2.evaluate(nodes.item(i), XPathConstants.NODESET);
-
- NodeList node2 = (NodeList) result2;
- temp = node2.item(0).getTextContent().split("\\.");
- String containerName = nodes.item(i).getAttributes().getNamedItem("name").getTextContent();
- String childrenTuple = containerName + "," + temp[temp.length-1];
- if (namespaces.containsKey(CaseFormat.LOWER_HYPHEN.to(CaseFormat.UPPER_CAMEL,containerName))) {
- childrenTuple += "," + namespaces.get(CaseFormat.LOWER_HYPHEN.to(CaseFormat.UPPER_CAMEL,containerName));
- }
- children.add(childrenTuple);
- }
-
- //match types up with plurals
- String[] split = null;
- for (String s : children) {
- split = s.split(",");
- expr = xpath.compile("//java-type[@name='"+split[1]+"']/xml-properties");
- result = expr.evaluate(doc, XPathConstants.NODESET);
- nodes = (NodeList) result;
- if (nodes.getLength() > 0) {
- Element property = null;
-
- if (!hasChild(nodes.item(0), "name", "container")) {
-
- property = doc.createElement("xml-property");
-
- property.setAttribute("name", "container");
- property.setAttribute("value",split[0]);
- nodes.item(0).appendChild(property);
-
- }
-
- if (split.length == 3) {
- Element property2 = null;
- if (!hasChild(nodes.item(0), "name", "namespace")) {
- property2 = doc.createElement("xml-property");
- property2.setAttribute("name", "namespace");
- property2.setAttribute("value",split[2]);
- nodes.item(0).appendChild(property2);
- }
-
- }
- }
-
-
- }
-
- filepath = "bundleconfig-local/etc/oxm/aai_oxm_" + version + ".xml";
- TransformerFactory transformerFactory = TransformerFactory.newInstance();
- transformerFactory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
- Transformer transformer = transformerFactory.newTransformer();
- DOMSource source = new DOMSource(doc);
- StreamResult file = new StreamResult(new File(filepath));
- transformer.transform(source, file);
- }
-
- /**
- * Checks for child.
- *
- * @param node the node
- * @param name the name
- * @param value the value
- * @return true, if successful
- */
- private static boolean hasChild(Node node, String name, String value) {
- boolean result = false;
- NodeList list = node.getChildNodes();
- Node temp = null;
- for (int i = 0; i < list.getLength(); i++) {
-
- if (list.item(i).hasAttributes()) {
- temp = list.item(i).getAttributes().getNamedItem(name);
- }
-
- if (temp != null && temp.getTextContent().equals(value)) {
- result = true;
- }
- }
-
- return result;
- }
-
+ private static String[] versions = new String[]{"v8"};
+
+ /**
+ * The main method.
+ *
+ * @param args the arguments
+ * @throws SAXException the SAX exception
+ * @throws IOException Signals that an I/O exception has occurred.
+ * @throws ParserConfigurationException the parser configuration exception
+ * @throws XPathExpressionException the x path expression exception
+ * @throws TransformerException the transformer exception
+ */
+ public static void main(String[] args)
+ throws SAXException, IOException, ParserConfigurationException, XPathExpressionException, TransformerException {
+
+ for (String version : versions) {
+ process(version);
+ }
+ }
+
+ /**
+ * Process.
+ *
+ * @param version the version
+ * @throws SAXException the SAX exception
+ * @throws IOException Signals that an I/O exception has occurred.
+ * @throws ParserConfigurationException the parser configuration exception
+ * @throws XPathExpressionException the x path expression exception
+ * @throws TransformerException the transformer exception
+ */
+ private static void process(String version)
+ throws SAXException, IOException, ParserConfigurationException, XPathExpressionException, TransformerException {
+
+ String filepath = "bundleconfig-local/etc/oxm/aai_oxm_" + version + ".xml";
+ DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
+ docFactory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
+ DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
+ Document doc = docBuilder.parse(filepath);
+ XPath xpath = XPathFactory.newInstance().newXPath();
+ //Find namespaces - restrict to inventory
+ //XPathExpression expr = xpath.compile("//java-type[java-attributes[count(xml-element[contains(@type, 'aai.openecomp.org')])=count(./xml-element)][count(xml-element) > 1]]/xml-root-element");
+ XPathExpression expr = xpath.compile("//java-type[@name='Inventory']/java-attributes/xml-element/@name");
+ Object result = expr.evaluate(doc, XPathConstants.NODESET);
+ NodeList nodes = (NodeList) result;
+ List<String> itemsUnderInventory = new ArrayList<>();
+ for (int i = 0; i < nodes.getLength(); i++) {
+ itemsUnderInventory.add(nodes.item(i).getTextContent());
+ }
+ Map<String, String> namespaces = new HashMap<>();
+
+ itemsUnderInventory.remove("Search");
+ for (String item : itemsUnderInventory) {
+ expr = xpath.compile("//java-type[xml-root-element/@name='" + item + "']");
+ result = expr.evaluate(doc, XPathConstants.NODESET);
+ nodes = (NodeList) result;
+ handleItemsUnderInventory(nodes, namespaces, xpath, item);
+ }
+
+ //go through plurals
+ expr = xpath.compile(
+ "//java-type[java-attributes[count(xml-element) = 1]/xml-element[contains(@type, 'aai.openecomp.org')]]/xml-root-element");
+
+ result = expr.evaluate(doc, XPathConstants.NODESET);
+ nodes = (NodeList) result;
+ List<String> children = new ArrayList<>();
+ for (int i = 0; i < nodes.getLength(); i++) {
+ XPathExpression expr2 = xpath
+ .compile("../java-attributes/xml-element[1]/@type[contains(.,'aai.openecomp.org')]");
+ Object result2 = expr2.evaluate(nodes.item(i), XPathConstants.NODESET);
+
+ NodeList node2 = (NodeList) result2;
+ String[] temp = node2.item(0).getTextContent().split("\\.");
+ String containerName = nodes.item(i).getAttributes().getNamedItem("name").getTextContent();
+ String childrenTuple = containerName + "," + temp[temp.length - 1];
+ if (namespaces.containsKey(CaseFormat.LOWER_HYPHEN.to(CaseFormat.UPPER_CAMEL, containerName))) {
+ childrenTuple +=
+ "," + namespaces.get(CaseFormat.LOWER_HYPHEN.to(CaseFormat.UPPER_CAMEL, containerName));
+ }
+ children.add(childrenTuple);
+ }
+
+ //match types up with plurals
+ handleChildrenNodes(children, xpath, doc);
+
+ filepath = "bundleconfig-local/etc/oxm/aai_oxm_" + version + ".xml";
+ TransformerFactory transformerFactory = TransformerFactory.newInstance();
+ transformerFactory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
+ Transformer transformer = transformerFactory.newTransformer();
+ DOMSource source = new DOMSource(doc);
+ StreamResult file = new StreamResult(new File(filepath));
+ transformer.transform(source, file);
+ }
+
+ private static void handleItemsUnderInventory(NodeList nodes, Map<String, String> namespaces, XPath xpath,
+ String item) throws XPathExpressionException {
+ String[] temp;
+ for (int i = 0; i < nodes.getLength(); i++) {
+ String a = "java-attributes/xml-element/@type[contains(.,'aai.openecomp.org')]";
+ XPathExpression expr2 = xpath.compile(a);
+ Object result2 = expr2.evaluate(nodes.item(i), XPathConstants.NODESET);
+
+ NodeList node2 = (NodeList) result2;
+ for (int j = 0; j < node2.getLength(); j++) {
+ temp = node2.item(j).getTextContent().split("\\.");
+ namespaces.put(temp[temp.length - 1], item);
+ }
+ }
+ }
+
+ private static void handleChildrenNodes(List<String> children, XPath xpath, Document doc)
+ throws XPathExpressionException {
+ NodeList nodes;
+ XPathExpression expr;
+ Object result;
+ String[] split;
+ for (String s : children) {
+ split = s.split(",");
+ expr = xpath.compile("//java-type[@name='" + split[1] + "']/xml-properties");
+ result = expr.evaluate(doc, XPathConstants.NODESET);
+ nodes = (NodeList) result;
+ if (nodes.getLength() > 0) {
+
+ if (!hasChild(nodes.item(0), "name", "container")) {
+
+ Element property = doc.createElement("xml-property");
+ property.setAttribute("name", "container");
+ property.setAttribute("value", split[0]);
+ nodes.item(0).appendChild(property);
+ }
+
+ if (split.length == 3) {
+ Element property;
+ if (!hasChild(nodes.item(0), "name", "namespace")) {
+ property = doc.createElement("xml-property");
+ property.setAttribute("name", "namespace");
+ property.setAttribute("value", split[2]);
+ nodes.item(0).appendChild(property);
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * Checks for child.
+ *
+ * @param node the node
+ * @param name the name
+ * @param value the value
+ * @return true, if successful
+ */
+ private static boolean hasChild(Node node, String name, String value) {
+ boolean result = false;
+ NodeList list = node.getChildNodes();
+ Node temp = null;
+ for (int i = 0; i < list.getLength(); i++) {
+
+ if (list.item(i).hasAttributes()) {
+ temp = list.item(i).getAttributes().getNamedItem(name);
+ }
+
+ if (temp != null && temp.getTextContent().equals(value)) {
+ result = true;
+ }
+ }
+
+ return result;
+ }
}