aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicParser.java611
1 files changed, 314 insertions, 297 deletions
diff --git a/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicParser.java b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicParser.java
index 26d45ce9..03cb50b5 100644
--- a/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicParser.java
+++ b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicParser.java
@@ -8,9 +8,9 @@
* 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.
@@ -53,10 +53,10 @@ public class SvcLogicParser {
static final String JAXP_DYNAMIC_VALIDATION = "http://apache.org/xml/features/validation/dynamic";
static final String JAXP_SCHEMA_VALIDATION = "http://apache.org/xml/features/validation/schema";
- private static final String LOAD_MESSAGE = "Getting SvcLogicGraph from database - ";
- private static final String LOAD_ERROR_MESSAGE = "SvcLogicGraph not found - ";
- private static final String ACTIVATION_ERROR_MESSAGE = "Could not activate SvcLogicGraph - ";
- private static final String PRINT_ERROR_MESSAGE = "Could not print SvcLogicGraph - ";
+ private static final String LOAD_MESSAGE = "Getting SvcLogicGraph from database - {}";
+ private static final String LOAD_ERROR_MESSAGE = "SvcLogicGraph not found - {}";
+ private static final String ACTIVATION_ERROR_MESSAGE = "Could not activate SvcLogicGraph - {}";
+ private static final String PRINT_ERROR_MESSAGE = "Could not print SvcLogicGraph - {}";
private static final String SVC_LOGIC_STORE_ERROR = "Could not get service logic store";
private static final Logger LOGGER = LoggerFactory.getLogger(SvcLogicParser.class);
@@ -98,86 +98,96 @@ public class SvcLogicParser {
// Handle service-logic (graph) tag
if ("service-logic".equalsIgnoreCase(qName)) {
- module = attributes.getValue("module");
- if (module == null || module.length() == 0) {
- throw new SAXException("line " + locator.getLineNumber() + ":" + locator.getColumnNumber() + " " + "Missing 'module' attribute from service-logic tag");
- }
+ module = attributes.getValue("module");
+ if (module == null || module.length() == 0) {
+ throw new SAXException("line " + locator.getLineNumber() + ":" + locator.getColumnNumber() + " "
+ + "Missing 'module' attribute from service-logic tag");
+ }
- version = attributes.getValue("version");
- if (version == null || version.length() == 0) {
- throw new SAXException("line " + locator.getLineNumber() + ":" + locator.getColumnNumber() + " " + "Missing 'version' attribute from service-logic tag");
- }
+ version = attributes.getValue("version");
+ if (version == null || version.length() == 0) {
+ throw new SAXException("line " + locator.getLineNumber() + ":" + locator.getColumnNumber() + " "
+ + "Missing 'version' attribute from service-logic tag");
+ }
- return;
+ return;
}
if ("method".equalsIgnoreCase(qName)) {
- if (curGraph != null) {
- throw new SAXException("line " + locator.getLineNumber() + ":" + locator.getColumnNumber() + " " + "Cannot nest module tags");
- }
- curGraph = new SvcLogicGraph();
- curGraph.setModule(module);
- curGraph.setVersion(version);
- this.curNodeId = 1;
- String attrValue = attributes.getValue("rpc");
- if (attrValue == null || attrValue.length() == 0) {
- throw new SAXException("line " + locator.getLineNumber() + ":" + locator.getColumnNumber() + " " + "Missing 'rpc' attribute for method tag");
- }
- curGraph.setRpc(attrValue);
+ if (curGraph != null) {
+ throw new SAXException("line " + locator.getLineNumber() + ":" + locator.getColumnNumber() + " "
+ + "Cannot nest module tags");
+ }
- attrValue = attributes.getValue("mode");
- if (attrValue == null || attrValue.length() == 0) {
- throw new SAXException("line " + locator.getLineNumber() + ":" + locator.getColumnNumber() + " " + "Missing 'mode' attribute for method tag");
- }
- curGraph.setMode(attrValue);
+ curGraph = new SvcLogicGraph();
+ curGraph.setModule(module);
+ curGraph.setVersion(version);
+ this.curNodeId = 1;
- return;
+ String attrValue = attributes.getValue("rpc");
+ if (attrValue == null || attrValue.length() == 0) {
+ throw new SAXException("line " + locator.getLineNumber() + ":" + locator.getColumnNumber() + " "
+ + "Missing 'rpc' attribute for method tag");
+ }
+ curGraph.setRpc(attrValue);
+
+ attrValue = attributes.getValue("mode");
+ if (attrValue == null || attrValue.length() == 0) {
+ throw new SAXException("line " + locator.getLineNumber() + ":" + locator.getColumnNumber() + " "
+ + "Missing 'mode' attribute for method tag");
+ }
+ curGraph.setMode(attrValue);
+
+ return;
}
// Handle outcome (edge) tag
if ("outcome".equalsIgnoreCase(qName)) {
- String refValue = attributes.getValue("ref");
-
- if (refValue != null) {
- SvcLogicNode refNode = curGraph.getNamedNode(refValue);
-
- if (refNode != null) {
- try {
- curNode.addOutcome(attributes.getValue("value"), refNode);
- } catch (SvcLogicException e) {
- throw new SAXException("line " + locator.getLineNumber() + ":" + locator.getColumnNumber() + " " + "Cannot add outcome", e);
- }
- } else {
- throw new SAXException("line " + locator.getLineNumber() + ":" + locator.getColumnNumber() + " " + "ref to unknown node " + refValue);
+ String refValue = attributes.getValue("ref");
+
+ if (refValue != null) {
+ SvcLogicNode refNode = curGraph.getNamedNode(refValue);
+
+ if (refNode != null) {
+ try {
+ curNode.addOutcome(attributes.getValue("value"), refNode);
+ } catch (SvcLogicException e) {
+ throw new SAXException("line " + locator.getLineNumber() + ":" + locator.getColumnNumber() + " "
+ + "Cannot add outcome", e);
+ }
+ } else {
+ throw new SAXException("line " + locator.getLineNumber() + ":" + locator.getColumnNumber() + " "
+ + "ref to unknown node " + refValue);
+ }
+ return;
}
- return;
- }
- if (outcomeValue != null) {
- outcomeStack.push(outcomeValue);
- }
- outcomeValue = attributes.getValue("value");
+ if (outcomeValue != null) {
+ outcomeStack.push(outcomeValue);
+ }
+ outcomeValue = attributes.getValue("value");
- return;
+ return;
}
// Handle parameter tag
if ("parameter".equalsIgnoreCase(qName)) {
- String parmName = attributes.getValue("name");
- String parmValue = attributes.getValue("value");
+ String parmName = attributes.getValue("name");
+ String parmValue = attributes.getValue("value");
- if (parmName != null && parmName.length() > 0 && parmValue != null) {
- try {
+ if (parmName != null && parmName.length() > 0 && parmValue != null) {
+ try {
- curNode.mapParameter(parmName, parmValue);
- } catch (Exception e) {
- throw new SAXException("line " + locator.getLineNumber() + ":" + locator.getColumnNumber() + " " + " cannot set parameter " + parmName + " to " + parmValue + " [" + e.getMessage() + "]");
+ curNode.mapParameter(parmName, parmValue);
+ } catch (Exception e) {
+ throw new SAXException("line " + locator.getLineNumber() + ":" + locator.getColumnNumber() + " "
+ + " cannot set parameter " + parmName + " to " + parmValue + " [" + e.getMessage() + "]");
+ }
}
- }
- return;
+ return;
}
// Handle node tags
@@ -187,10 +197,12 @@ public class SvcLogicParser {
try {
if (!svcLogicStore.isValidNodeType(qName)) {
- throw new SAXNotRecognizedException("line " + locator.getLineNumber() + ":" + locator.getColumnNumber() + " " + "Unknown tag " + qName);
+ throw new SAXNotRecognizedException("line " + locator.getLineNumber() + ":" + locator.getColumnNumber()
+ + " " + "Unknown tag " + qName);
}
} catch (Exception e) {
- throw new SAXNotRecognizedException("line " + locator.getLineNumber() + ":" + locator.getColumnNumber() + " " + "Cannot validate node type " + qName);
+ throw new SAXNotRecognizedException("line " + locator.getLineNumber() + ":" + locator.getColumnNumber() + " "
+ + "Cannot validate node type " + qName);
}
try {
@@ -204,7 +216,8 @@ public class SvcLogicParser {
curGraph.setRootNode(thisNode);
}
} catch (SvcLogicException e) {
- throw new SAXException("line " + locator.getLineNumber() + ":" + locator.getColumnNumber() + " " + e.getMessage());
+ throw new SAXException("line " + locator.getLineNumber() + ":" + locator.getColumnNumber() + " "
+ + e.getMessage());
}
@@ -218,7 +231,7 @@ public class SvcLogicParser {
String attrValueStr = attributes.getValue(i);
SvcLogicExpression attrValue = null;
if (attrValueStr.trim().startsWith("`")) {
- int lastParen = attrValueStr.lastIndexOf("`");
+ int lastParen = attrValueStr.lastIndexOf('`');
String evalExpr = attrValueStr.trim().substring(1, lastParen);
attrValue = SvcLogicExpressionFactory.parse(evalExpr);
@@ -231,23 +244,27 @@ public class SvcLogicParser {
}
thisNode.setAttribute(attrName, attrValue);
} catch (Exception e) {
- throw new SAXException("line " + locator.getLineNumber() + ":" + locator.getColumnNumber() + " " + "Cannot set attribute " + attrName, e);
+ throw new SAXException("line " + locator.getLineNumber() + ":" + locator.getColumnNumber() + " "
+ + "Cannot set attribute " + attrName, e);
}
}
}
if (curNode != null) {
try {
- if ("block".equalsIgnoreCase(curNode.getNodeType()) || "for".equalsIgnoreCase(curNode.getNodeType()) || "while".equalsIgnoreCase(curNode.getNodeType())) {
- curNode.addOutcome("" + (curNode.getNumOutcomes() + 1), thisNode);
+ if ("block".equalsIgnoreCase(curNode.getNodeType()) || "for".equalsIgnoreCase(curNode.getNodeType())
+ || "while".equalsIgnoreCase(curNode.getNodeType())) {
+ curNode.addOutcome(Integer.toString(curNode.getNumOutcomes() + 1), thisNode);
} else {
- if (outcomeValue == null) {
- throw new SAXException("line " + locator.getLineNumber() + ":" + locator.getColumnNumber() + " " + curNode.getNodeType() + " node expects outcome, instead found " + thisNode.getNodeType());
- }
- curNode.addOutcome(outcomeValue, thisNode);
+ if (outcomeValue == null) {
+ throw new SAXException("line " + locator.getLineNumber() + ":" + locator.getColumnNumber() + " "
+ + curNode.getNodeType() + " node expects outcome, instead found " + thisNode.getNodeType());
+ }
+ curNode.addOutcome(outcomeValue, thisNode);
}
} catch (SvcLogicException e) {
- throw new SAXException("line " + locator.getLineNumber() + ":" + locator.getColumnNumber() + " " + e.getMessage());
+ throw new SAXException("line " + locator.getLineNumber() + ":" + locator.getColumnNumber() + " "
+ + e.getMessage());
}
nodeStack.push(curNode);
}
@@ -260,338 +277,338 @@ public class SvcLogicParser {
// Handle close of service-logic tag
if ("service-logic".equalsIgnoreCase(qName)) {
- // Nothing more to do
- return;
+ // Nothing more to do
+ return;
}
// Handle close of method tag
if ("method".equalsIgnoreCase(qName)) {
- graphs.add(curGraph);
- curGraph = null;
- return;
+ graphs.add(curGraph);
+ curGraph = null;
+ return;
}
// Handle close of outcome tag
if ("outcome".equalsIgnoreCase(qName)) {
- // Finished this outcome - pop the outcome stack
- if (outcomeStack.isEmpty()) {
- outcomeValue = null;
- } else {
- outcomeValue = outcomeStack.pop();
- }
- return;
+ // Finished this outcome - pop the outcome stack
+ if (outcomeStack.isEmpty()) {
+ outcomeValue = null;
+ } else {
+ outcomeValue = outcomeStack.pop();
+ }
+ return;
}
// Handle close of parameter tag - do nothing
if ("parameter".equalsIgnoreCase(qName)) {
- return;
+ return;
}
// Handle close of a node tag
if (nodeStack.isEmpty()) {
- curNode = null;
+ curNode = null;
} else {
- curNode = nodeStack.pop();
+ curNode = nodeStack.pop();
}
}
@Override
public void error(SAXParseException arg0) throws SAXException {
- throw new SAXException("line " + locator.getLineNumber() + ":" + locator.getColumnNumber() + " " + arg0.getMessage());
+ throw new SAXException("line " + locator.getLineNumber() + ":" + locator.getColumnNumber() + " "
+ + arg0.getMessage());
}
}
public SvcLogicParser(SvcLogicStore store) {
- this.store = store;
+ this.store = store;
}
public SvcLogicParser(String propFile) {
- try {
- this.store = SvcLogicStoreFactory.getSvcLogicStore(propFile);
- } catch (Exception e) {
- LOGGER.error(SVC_LOGIC_STORE_ERROR, e);
+ try {
+ this.store = SvcLogicStoreFactory.getSvcLogicStore(propFile);
+ } catch (Exception e) {
+ LOGGER.error(SVC_LOGIC_STORE_ERROR, e);
- }
+ }
}
public SvcLogicParser(InputStream propStr) {
- try {
- this.store = SvcLogicStoreFactory.getSvcLogicStore(propStr);
- } catch (Exception e) {
- LOGGER.error(SVC_LOGIC_STORE_ERROR, e);
+ try {
+ this.store = SvcLogicStoreFactory.getSvcLogicStore(propStr);
+ } catch (Exception e) {
+ LOGGER.error(SVC_LOGIC_STORE_ERROR, e);
- }
+ }
}
public LinkedList<SvcLogicGraph> parse(String fileName) throws SvcLogicException {
- LinkedList<SvcLogicGraph> graphs = null;
+ LinkedList<SvcLogicGraph> graphs = null;
- URL xsdUrl = null;
- Schema schema = null;
- String validateSchema = System.getProperty(SLI_VALIDATING_PARSER, "true");
+ URL xsdUrl = null;
+ Schema schema = null;
+ String validateSchema = System.getProperty(SLI_VALIDATING_PARSER, "true");
- if ("true".equalsIgnoreCase(validateSchema)) {
- xsdUrl = getClass().getResource(SVCLOGIC_XSD);
+ if ("true".equalsIgnoreCase(validateSchema)) {
+ xsdUrl = getClass().getResource(SVCLOGIC_XSD);
- }
+ }
- if (xsdUrl != null) {
- try {
- SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
- schema = schemaFactory.newSchema(xsdUrl);
- } catch (Exception e) {
- LOGGER.warn("Could not validate using schema " + xsdUrl.getPath(), e);
+ if (xsdUrl != null) {
+ try {
+ SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
+ schema = schemaFactory.newSchema(xsdUrl);
+ } catch (Exception e) {
+ LOGGER.warn("Could not validate using schema " + xsdUrl.getPath(), e);
+ }
+ } else {
+ LOGGER.warn("Could not find resource {}", SVCLOGIC_XSD);
}
- } else {
- LOGGER.warn("Could not find resource " + SVCLOGIC_XSD);
- }
- try {
- SAXParserFactory factory = SAXParserFactory.newInstance();
+ try {
+ SAXParserFactory factory = SAXParserFactory.newInstance();
- if (schema != null) {
- factory.setNamespaceAware(true);
- factory.setSchema(schema);
- }
- SAXParser saxParser = factory.newSAXParser();
+ if (schema != null) {
+ factory.setNamespaceAware(true);
+ factory.setSchema(schema);
+ }
+ SAXParser saxParser = factory.newSAXParser();
- if (saxParser.isValidating()) {
- LOGGER.info("Parser not configured to validate XML {}", (xsdUrl != null ? xsdUrl.getPath() : null));
- }
- graphs = new LinkedList<>();
+ if (saxParser.isValidating()) {
+ LOGGER.info("Parser not configured to validate XML {}", (xsdUrl != null ? xsdUrl.getPath() : null));
+ }
+ graphs = new LinkedList<>();
- saxParser.parse(fileName, new SvcLogicHandler(graphs, store));
+ saxParser.parse(fileName, new SvcLogicHandler(graphs, store));
- } catch (Exception e) {
- String msg = e.getMessage();
- if (msg != null) {
- LOGGER.error(msg);
- throw new SvcLogicException("Compiler error: " + fileName + " @ " + msg);
- } else {
- LOGGER.info("Caught exception parsing " + fileName, e);
- throw new SvcLogicException("Compiler error: " + fileName, e);
+ } catch (Exception e) {
+ String msg = e.getMessage();
+ if (msg != null) {
+ LOGGER.error(msg);
+ throw new SvcLogicException("Compiler error: " + fileName + " @ " + msg);
+ } else {
+ LOGGER.info("Caught exception parsing " + fileName, e);
+ throw new SvcLogicException("Compiler error: " + fileName, e);
+ }
}
- }
- return graphs;
+ return graphs;
}
public static void main(String argv[]) {
- if (argv.length == 0) {
- SvcLogicParser.usage();
- }
+ if (argv.length == 0) {
+ SvcLogicParser.usage();
+ }
- if ("load".equalsIgnoreCase(argv[0])) {
- if (argv.length == 3) {
- String xmlfile = argv[1];
- String propfile = argv[2];
+ if ("load".equalsIgnoreCase(argv[0])) {
+ if (argv.length == 3) {
+ String xmlfile = argv[1];
+ String propfile = argv[2];
- SvcLogicStore store = SvcLogicParser.getStore(propfile);
- try {
- SvcLogicParser.load(xmlfile, store);
- } catch (Exception e) {
- LOGGER.error(e.getMessage(), e);
- }
- } else {
- SvcLogicParser.usage();
- }
- } else if ("print".equalsIgnoreCase(argv[0])) {
- String version = null;
- String propfile = null;
-
- switch (argv.length) {
- case 6:
- version = argv[4];
- propfile = argv[5];
- case 5:
- if (propfile == null) {
- propfile = argv[4];
- }
- SvcLogicStore store = SvcLogicParser.getStore(propfile);
- SvcLogicParser.print(argv[1], argv[2], argv[3], version, store);
- break;
- default:
- SvcLogicParser.usage();
- }
- } else if ("get-source".equalsIgnoreCase(argv[0])) {
-
- switch (argv.length) {
- case 6:
- SvcLogicStore store = SvcLogicParser.getStore(argv[5]);
- SvcLogicParser.getSource(argv[1], argv[2], argv[3], argv[4], store);
- break;
- default:
- SvcLogicParser.usage();
- }
- } else if ("activate".equalsIgnoreCase(argv[0])) {
- if (argv.length == 6) {
- SvcLogicStore store = SvcLogicParser.getStore(argv[5]);
- SvcLogicParser.activate(argv[1], argv[2], argv[3], argv[4], store);
- } else {
- SvcLogicParser.usage();
- }
- } else if ("validate".equalsIgnoreCase(argv[0])) {
- if (argv.length == 3) {
- String xmlfile = argv[1];
- String propfile = argv[2];
+ SvcLogicStore store = SvcLogicParser.getStore(propfile);
+ try {
+ SvcLogicParser.load(xmlfile, store);
+ } catch (Exception e) {
+ LOGGER.error(e.getMessage(), e);
+ }
+ } else {
+ SvcLogicParser.usage();
+ }
+ } else if ("print".equalsIgnoreCase(argv[0])) {
+ String version = null;
+ String propfile = null;
+
+ switch (argv.length) {
+ case 6:
+ version = argv[4];
+ propfile = argv[5];
+ case 5:
+ if (propfile == null) {
+ propfile = argv[4];
+ }
+ SvcLogicStore store = SvcLogicParser.getStore(propfile);
+ SvcLogicParser.print(argv[1], argv[2], argv[3], version, store);
+ break;
+ default:
+ SvcLogicParser.usage();
+ }
+ } else if ("get-source".equalsIgnoreCase(argv[0])) {
- System.setProperty(SLI_VALIDATING_PARSER, "true");
- SvcLogicStore store = SvcLogicParser.getStore(propfile);
- try {
- SvcLogicParser.validate(xmlfile, store);
- } catch (Exception e) {
- LOGGER.error(e.getMessage(), e);
- }
- } else {
- SvcLogicParser.usage();
+ if (argv.length == 6) {
+ SvcLogicStore store = SvcLogicParser.getStore(argv[5]);
+ SvcLogicParser.getSource(argv[1], argv[2], argv[3], argv[4], store);
+ } else {
+ SvcLogicParser.usage();
+ }
+ } else if ("activate".equalsIgnoreCase(argv[0])) {
+ if (argv.length == 6) {
+ SvcLogicStore store = SvcLogicParser.getStore(argv[5]);
+ SvcLogicParser.activate(argv[1], argv[2], argv[3], argv[4], store);
+ } else {
+ SvcLogicParser.usage();
+ }
+ } else if ("validate".equalsIgnoreCase(argv[0])) {
+ if (argv.length == 3) {
+ String xmlfile = argv[1];
+ String propfile = argv[2];
+
+ System.setProperty(SLI_VALIDATING_PARSER, "true");
+ SvcLogicStore store = SvcLogicParser.getStore(propfile);
+ try {
+ SvcLogicParser.validate(xmlfile, store);
+ } catch (Exception e) {
+ LOGGER.error(e.getMessage(), e);
+ }
+ } else {
+ SvcLogicParser.usage();
+ }
}
- }
- System.exit(0);
+ System.exit(0);
}
private static SvcLogicStore getStore(String propfile) {
- SvcLogicStore store = null;
+ SvcLogicStore store = null;
- try {
- store = SvcLogicStoreFactory.getSvcLogicStore(propfile);
- } catch (Exception e) {
- LOGGER.error(SVC_LOGIC_STORE_ERROR, e);
- System.exit(1);
- }
+ try {
+ store = SvcLogicStoreFactory.getSvcLogicStore(propfile);
+ } catch (Exception e) {
+ LOGGER.error(SVC_LOGIC_STORE_ERROR, e);
+ System.exit(1);
+ }
- return store;
+ return store;
}
public static void load(String xmlfile, SvcLogicStore store) throws SvcLogicException {
- File xmlFile = new File(xmlfile);
- if (!xmlFile.canRead()) {
- throw new ConfigurationException("Cannot read xml file (" + xmlfile + ")");
- }
-
- SvcLogicParser parser = new SvcLogicParser(store);
- LinkedList<SvcLogicGraph> graphs = null;
- try {
- graphs = parser.parse(xmlfile);
- } catch (Exception e) {
- throw new SvcLogicException(e.getMessage(), e);
- }
-
- if (graphs == null) {
- throw new SvcLogicException("Could not parse " + xmlfile);
- }
-
- for (SvcLogicGraph graph : graphs) {
+ File xmlFile = new File(xmlfile);
+ if (!xmlFile.canRead()) {
+ throw new ConfigurationException("Cannot read xml file (" + xmlfile + ")");
+ }
- String module = graph.getModule();
- String rpc = graph.getRpc();
- String version = graph.getVersion();
- String mode = graph.getMode();
+ SvcLogicParser parser = new SvcLogicParser(store);
+ LinkedList<SvcLogicGraph> graphs = null;
try {
- LOGGER.info("Saving SvcLogicGraph to database (module:" + module + ",rpc:" + rpc + ",version:" + version + ",mode:" + mode + ")");
- store.store(graph);
+ graphs = parser.parse(xmlfile);
} catch (Exception e) {
- throw new SvcLogicException(e.getMessage(), e);
+ throw new SvcLogicException(e.getMessage(), e);
}
- }
+ if (graphs == null) {
+ throw new SvcLogicException("Could not parse " + xmlfile);
+ }
+
+ for (SvcLogicGraph graph : graphs) {
+
+ String module = graph.getModule();
+ String rpc = graph.getRpc();
+ String version = graph.getVersion();
+ String mode = graph.getMode();
+ try {
+ LOGGER.info("Saving SvcLogicGraph to database (module:{},rpc:{},mode:{},version:{})", module, rpc,
+ mode, version);
+ store.store(graph);
+ } catch (Exception e) {
+ throw new SvcLogicException(e.getMessage(), e);
+ }
+
+ }
}
public static void validate(String xmlfile, SvcLogicStore store) throws SvcLogicException {
- File xmlFile = new File(xmlfile);
- if (!xmlFile.canRead()) {
- throw new ConfigurationException("Cannot read xml file (" + xmlfile + ")");
- }
+ File xmlFile = new File(xmlfile);
+ if (!xmlFile.canRead()) {
+ throw new ConfigurationException("Cannot read xml file (" + xmlfile + ")");
+ }
- SvcLogicParser parser = new SvcLogicParser(store);
- LinkedList<SvcLogicGraph> graphs = null;
- try {
- LOGGER.info("Validating " + xmlfile);
- graphs = parser.parse(xmlfile);
- } catch (Exception e) {
- throw new SvcLogicException(e.getMessage(), e);
- }
+ SvcLogicParser parser = new SvcLogicParser(store);
+ LinkedList<SvcLogicGraph> graphs = null;
+ try {
+ LOGGER.info("Validating {}", xmlfile);
+ graphs = parser.parse(xmlfile);
+ } catch (Exception e) {
+ throw new SvcLogicException(e.getMessage(), e);
+ }
- if (graphs == null) {
- throw new SvcLogicException("Could not parse " + xmlfile);
- } else {
- LOGGER.info("Compilation successful for " + xmlfile);
- }
+ if (graphs == null) {
+ throw new SvcLogicException("Could not parse " + xmlfile);
+ } else {
+ LOGGER.info("Compilation successful for {}", xmlfile);
+ }
}
private static void print(String module, String rpc, String mode, String version, SvcLogicStore store) {
- String details = "(module:" + module + ", rpc:" + rpc + ", version:" + version + ", mode:" + mode + ")";
+ String details = "(module:" + module + ", rpc:" + rpc + ", version:" + version + ", mode:" + mode + ")";
- try {
- LOGGER.info(LOAD_MESSAGE + details);
+ try {
+ LOGGER.info(LOAD_MESSAGE, details);
- SvcLogicGraph graph = store.fetch(module, rpc, version, mode);
- if (graph == null) {
- LOGGER.error(LOAD_ERROR_MESSAGE + details);
- System.exit(1);
+ SvcLogicGraph graph = store.fetch(module, rpc, version, mode);
+ if (graph == null) {
+ LOGGER.error(LOAD_ERROR_MESSAGE, details);
+ System.exit(1);
+ }
+ graph.printAsGv(System.out);
+ } catch (Exception e) {
+ LOGGER.error(PRINT_ERROR_MESSAGE, details, e);
+ System.exit(1);
}
- graph.printAsGv(System.out);
- } catch (Exception e) {
- LOGGER.error(PRINT_ERROR_MESSAGE + details, e);
- System.exit(1);
- }
}
private static void getSource(String module, String rpc, String mode, String version, SvcLogicStore store) {
- String details = "(module:" + module + ", rpc:" + rpc + ", version:" + version + ", mode:" + mode + ")";
+ String details = "(module:" + module + ", rpc:" + rpc + ", version:" + version + ", mode:" + mode + ")";
- try {
- LOGGER.info(LOAD_MESSAGE + details);
+ try {
+ LOGGER.info(LOAD_MESSAGE, details);
- SvcLogicGraph graph = store.fetch(module, rpc, version, mode);
- if (graph == null) {
- LOGGER.error(LOAD_ERROR_MESSAGE + details);
- System.exit(1);
+ SvcLogicGraph graph = store.fetch(module, rpc, version, mode);
+ if (graph == null) {
+ LOGGER.error(LOAD_ERROR_MESSAGE, details);
+ System.exit(1);
+ }
+ graph.printAsXml(System.out);
+ } catch (Exception e) {
+ LOGGER.error(PRINT_ERROR_MESSAGE, details, e);
+ System.exit(1);
}
- graph.printAsXml(System.out);
- } catch (Exception e) {
- LOGGER.error(PRINT_ERROR_MESSAGE + details, e);
- System.exit(1);
- }
}
private static void activate(String module, String rpc, String version, String mode, SvcLogicStore store) {
- String details = "(module:" + module + ", rpc:" + rpc + ", version:" + version + ", mode:" + mode + ")";
+ String details = "(module:" + module + ", rpc:" + rpc + ", version:" + version + ", mode:" + mode + ")";
- try {
- LOGGER.info(LOAD_MESSAGE + details);
+ try {
+ LOGGER.info(LOAD_MESSAGE, details);
- SvcLogicGraph graph = store.fetch(module, rpc, version, mode);
- if (graph == null) {
- LOGGER.error(LOAD_ERROR_MESSAGE + details);
- System.exit(1);
+ SvcLogicGraph graph = store.fetch(module, rpc, version, mode);
+ if (graph == null) {
+ LOGGER.error(LOAD_ERROR_MESSAGE, details);
+ System.exit(1);
+ }
+ store.activate(graph);
+ } catch (Exception e) {
+ LOGGER.error(ACTIVATION_ERROR_MESSAGE, details, e);
+ System.exit(1);
}
- store.activate(graph);
- } catch (Exception e) {
- LOGGER.error(ACTIVATION_ERROR_MESSAGE + details, e);
- System.exit(1);
- }
}
private static void usage() {
- System.err.println("Usage: SvcLogicParser load <xml-file> <prop-file>");
- System.err.println(" OR SvcLogicParser print <module> <rpc> <mode> [<version>] <prop-file>");
- System.err.println(" OR SvcLogicParser get-source <module> <rpc> <mode> <version> <prop-file>");
- System.err.println(" OR SvcLogicParser activate <module> <rpc> <version> <mode>");
- System.exit(1);
+ System.err.println("Usage: SvcLogicParser load <xml-file> <prop-file>");
+ System.err.println(" OR SvcLogicParser print <module> <rpc> <mode> [<version>] <prop-file>");
+ System.err.println(" OR SvcLogicParser get-source <module> <rpc> <mode> <version> <prop-file>");
+ System.err.println(" OR SvcLogicParser activate <module> <rpc> <version> <mode>");
+ System.exit(1);
}
}