From b3967539983771c335984d904c7e074dd1fc5a9b Mon Sep 17 00:00:00 2001 From: Gary Wu Date: Tue, 9 May 2017 14:08:07 -0700 Subject: Simplify BaseTask and subclasses Change-Id: If06c2be264003ab27090adf0a29804d961d28115 Signed-off-by: Gary Wu --- .../java/org/openecomp/mso/bpmn/core/BaseTask.java | 22 ++++++++----- .../openecomp/mso/bpmn/core/ReadConfigTask.java | 27 +++------------- .../org/openecomp/mso/bpmn/core/ReadFileTask.java | 36 ++++------------------ .../openecomp/mso/bpmn/core/XQueryScriptTask.java | 31 ++++--------------- 4 files changed, 31 insertions(+), 85 deletions(-) diff --git a/bpmn/MSOCoreBPMN/src/main/java/org/openecomp/mso/bpmn/core/BaseTask.java b/bpmn/MSOCoreBPMN/src/main/java/org/openecomp/mso/bpmn/core/BaseTask.java index 849c8ba..5b43c3f 100644 --- a/bpmn/MSOCoreBPMN/src/main/java/org/openecomp/mso/bpmn/core/BaseTask.java +++ b/bpmn/MSOCoreBPMN/src/main/java/org/openecomp/mso/bpmn/core/BaseTask.java @@ -20,6 +20,9 @@ package org.openecomp.mso.bpmn.core; +import java.util.Objects; + +import org.camunda.bpm.engine.ProcessEngineException; import org.camunda.bpm.engine.delegate.DelegateExecution; import org.camunda.bpm.engine.delegate.Expression; import org.camunda.bpm.engine.delegate.JavaDelegate; @@ -185,13 +188,7 @@ public abstract class BaseTask implements JavaDelegate { protected String getOptionalStringField(Expression expression, DelegateExecution execution, String fieldName) { Object o = getFieldImpl(expression, execution, fieldName, true); - if (o instanceof String) { - return (String) o; - } else if (o == null) { - return null; - } else { - return o.toString(); - } + return Objects.toString(o, null); } /** @@ -526,4 +523,15 @@ public abstract class BaseTask implements JavaDelegate { public String getTaskName() { return getClass().getSimpleName(); } + + + /** + * Check if shouldFail variable is set to true. + * @param execution + * @return + */ + protected boolean shouldFail(DelegateExecution execution) { + Boolean shouldFail = (Boolean) execution.getVariable("shouldFail"); + return shouldFail != null && shouldFail; + } } diff --git a/bpmn/MSOCoreBPMN/src/main/java/org/openecomp/mso/bpmn/core/ReadConfigTask.java b/bpmn/MSOCoreBPMN/src/main/java/org/openecomp/mso/bpmn/core/ReadConfigTask.java index b46ffcd..09288f0 100644 --- a/bpmn/MSOCoreBPMN/src/main/java/org/openecomp/mso/bpmn/core/ReadConfigTask.java +++ b/bpmn/MSOCoreBPMN/src/main/java/org/openecomp/mso/bpmn/core/ReadConfigTask.java @@ -27,7 +27,6 @@ import java.util.Properties; import org.camunda.bpm.engine.ProcessEngineException; import org.camunda.bpm.engine.delegate.DelegateExecution; import org.camunda.bpm.engine.delegate.Expression; - import org.openecomp.mso.logger.MsoLogger; /** @@ -57,38 +56,20 @@ public class ReadConfigTask extends BaseTask { msoLogger.debug("propertiesFile = " + thePropertiesFile); } - Boolean shouldFail = (Boolean) execution.getVariable("shouldFail"); - - if (shouldFail != null && shouldFail) { - throw new ProcessEngineException(getClass().getSimpleName() + " Failed"); - } + if (shouldFail(execution)) { + throw new ProcessEngineException(getTaskName() + " Failed"); + } synchronized (ReadConfigTask.class) { if (properties == null) { properties = new Properties(); - InputStream stream = null; - - try { - stream = getClass().getResourceAsStream(thePropertiesFile); - + try(InputStream stream = getClass().getResourceAsStream(thePropertiesFile)) { if (stream == null) { throw new IOException("Resource not found: " + thePropertiesFile); } properties.load(stream); - - stream.close(); - stream = null; - - } finally { - if (stream != null) { - try { - stream.close(); - } catch (Exception e) { - // Do nothing - } - } } } } diff --git a/bpmn/MSOCoreBPMN/src/main/java/org/openecomp/mso/bpmn/core/ReadFileTask.java b/bpmn/MSOCoreBPMN/src/main/java/org/openecomp/mso/bpmn/core/ReadFileTask.java index 389fdc0..3adba19 100644 --- a/bpmn/MSOCoreBPMN/src/main/java/org/openecomp/mso/bpmn/core/ReadFileTask.java +++ b/bpmn/MSOCoreBPMN/src/main/java/org/openecomp/mso/bpmn/core/ReadFileTask.java @@ -24,11 +24,11 @@ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; +import java.util.stream.Collectors; import org.camunda.bpm.engine.ProcessEngineException; import org.camunda.bpm.engine.delegate.DelegateExecution; import org.camunda.bpm.engine.delegate.Expression; - import org.openecomp.mso.logger.MsoLogger; /** @@ -66,45 +66,21 @@ public class ReadFileTask extends BaseTask { + "file = " + theFile); } - Boolean shouldFail = (Boolean) execution.getVariable("shouldFail"); - - if (shouldFail != null && shouldFail) { - throw new ProcessEngineException(getClass().getSimpleName() + " Failed"); - } + if (shouldFail(execution)) { + throw new ProcessEngineException(getTaskName() + " Failed"); + } Object value = execution.getVariable(theInputVariable); if (value == null) { - InputStream xmlStream = null; - - try { - xmlStream = getClass().getResourceAsStream(theFile); + try(InputStream xmlStream = getClass().getResourceAsStream(theFile)) { if (xmlStream == null) { throw new IOException("Resource not found: " + theFile); } BufferedReader reader = new BufferedReader(new InputStreamReader(xmlStream)); - StringBuilder output = new StringBuilder(); - String line; - - while ((line = reader.readLine()) != null) { - output.append(line); - } - - xmlStream.close(); - xmlStream = null; - - value = output.toString(); - - } finally { - if (xmlStream != null) { - try { - xmlStream.close(); - } catch (Exception e) { - // Do nothing - } - } + value = reader.lines().collect(Collectors.joining()); } } execution.setVariable(theInputVariable, value); diff --git a/bpmn/MSOCoreBPMN/src/main/java/org/openecomp/mso/bpmn/core/XQueryScriptTask.java b/bpmn/MSOCoreBPMN/src/main/java/org/openecomp/mso/bpmn/core/XQueryScriptTask.java index 31da737..e42806e 100644 --- a/bpmn/MSOCoreBPMN/src/main/java/org/openecomp/mso/bpmn/core/XQueryScriptTask.java +++ b/bpmn/MSOCoreBPMN/src/main/java/org/openecomp/mso/bpmn/core/XQueryScriptTask.java @@ -25,7 +25,6 @@ import java.io.IOException; import java.io.InputStream; import java.math.BigDecimal; import java.net.URI; -import java.util.Iterator; import javax.xml.transform.stream.StreamSource; @@ -33,7 +32,6 @@ import org.camunda.bpm.engine.ProcessEngineException; import org.camunda.bpm.engine.delegate.DelegateExecution; //import java.util.logging.Logger; import org.camunda.bpm.engine.delegate.Expression; - import org.openecomp.mso.logger.MessageEnum; import org.openecomp.mso.logger.MsoLogger; @@ -97,11 +95,9 @@ public class XQueryScriptTask extends BaseTask { String[] atomicInputVariableArray = (theAtomicInputVariables == null) ? new String[0] : theAtomicInputVariables.split(",[ ]*"); - Boolean shouldFail = (Boolean) execution.getVariable("shouldFail"); - - if (shouldFail != null && shouldFail) { - throw new ProcessEngineException(getClass().getSimpleName() + " Failed"); - } + if (shouldFail(execution)) { + throw new ProcessEngineException(getTaskName() + " Failed"); + } // The script could be compiled once and reused, but we are reading it // and compiling it every time. @@ -190,9 +186,7 @@ public class XQueryScriptTask extends BaseTask { // Evaluate the query and collect the output. StringBuilder output = new StringBuilder(); - Iterator xdmItems = evaluator.iterator(); - while (xdmItems.hasNext()) { - XdmItem item = xdmItems.next(); + for(XdmItem item : evaluator) { if (msoLogger.isDebugEnabled()) { msoLogger.debug("XQuery result item = " + item); @@ -218,26 +212,13 @@ public class XQueryScriptTask extends BaseTask { */ private XQueryExecutable compile(XQueryCompiler compiler, String resource) throws Exception { - InputStream xqStream = null; - try { - xqStream = getClass().getResourceAsStream(resource); + try(InputStream xqStream = getClass().getResourceAsStream(resource)) { if (xqStream == null) { throw new IOException("Resource not found: " + resource); } - XQueryExecutable executable = compiler.compile(xqStream); - xqStream.close(); - xqStream = null; - return executable; - } finally { - if (xqStream != null) { - try { - xqStream.close(); - } catch (Exception e) { - // Do nothing - } - } + return compiler.compile(xqStream); } } } \ No newline at end of file -- cgit 1.2.3-korg