You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by at...@apache.org on 2018/01/21 22:47:09 UTC
commons-scxml git commit: SCXML-279 Only use default Jexl3 setting
for silent (false) and strict (true), cleanup APIs accordingly
Repository: commons-scxml
Updated Branches:
refs/heads/master 05e94b822 -> 3c8c62b34
SCXML-279 Only use default Jexl3 setting for silent (false) and strict (true), cleanup APIs accordingly
This drops the API changes from SCXML=258, allowing to run SCXML in strict mode (non-strict being the default)
which only was applicable for Jexl anyway.
This also removes the remaining flags in JexlEvaluator for dynamically setting silent/strict mode,
which were introduced in SCXML-183. Note that the upgrade to Jexl3 (see SCXML-254) already made these flags defunct.
Project: http://git-wip-us.apache.org/repos/asf/commons-scxml/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-scxml/commit/3c8c62b3
Tree: http://git-wip-us.apache.org/repos/asf/commons-scxml/tree/3c8c62b3
Diff: http://git-wip-us.apache.org/repos/asf/commons-scxml/diff/3c8c62b3
Branch: refs/heads/master
Commit: 3c8c62b342d0e5b666930e2cb2a42606d76e44df
Parents: 05e94b8
Author: Ate Douma <at...@apache.org>
Authored: Sun Jan 21 23:46:17 2018 +0100
Committer: Ate Douma <at...@apache.org>
Committed: Sun Jan 21 23:46:17 2018 +0100
----------------------------------------------------------------------
.../org/apache/commons/scxml2/Evaluator.java | 5 ---
.../apache/commons/scxml2/EvaluatorFactory.java | 5 ++-
.../commons/scxml2/EvaluatorProvider.java | 19 ----------
.../org/apache/commons/scxml2/SCInstance.java | 20 ++---------
.../apache/commons/scxml2/SCXMLExecutor.java | 9 -----
.../scxml2/env/groovy/GroovyEvaluator.java | 14 --------
.../scxml2/env/javascript/JSEvaluator.java | 14 --------
.../commons/scxml2/env/jexl/JexlEvaluator.java | 38 +-------------------
.../scxml2/env/minimal/MinimalEvaluator.java | 15 --------
.../scxml2/model/actions-initial-test.xml | 2 +-
.../scxml2/model/actions-parallel-test.xml | 2 +-
.../commons/scxml2/model/actions-state-test.xml | 2 +-
.../org/apache/commons/scxml2/w3c/W3CTests.java | 1 -
13 files changed, 8 insertions(+), 138 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/commons-scxml/blob/3c8c62b3/src/main/java/org/apache/commons/scxml2/Evaluator.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/scxml2/Evaluator.java b/src/main/java/org/apache/commons/scxml2/Evaluator.java
index 15f64ec..f85d1e0 100644
--- a/src/main/java/org/apache/commons/scxml2/Evaluator.java
+++ b/src/main/java/org/apache/commons/scxml2/Evaluator.java
@@ -33,11 +33,6 @@ public interface Evaluator {
String DEFAULT_DATA_MODEL = "";
/**
- * @return indicates if using strict / specification compliant behavior
- */
- boolean isStrict();
-
- /**
* Get the datamodel type supported by this Evaluator
* @return The supported datamodel type
*/
http://git-wip-us.apache.org/repos/asf/commons-scxml/blob/3c8c62b3/src/main/java/org/apache/commons/scxml2/EvaluatorFactory.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/scxml2/EvaluatorFactory.java b/src/main/java/org/apache/commons/scxml2/EvaluatorFactory.java
index 0024d4c..49f71b4 100644
--- a/src/main/java/org/apache/commons/scxml2/EvaluatorFactory.java
+++ b/src/main/java/org/apache/commons/scxml2/EvaluatorFactory.java
@@ -93,17 +93,16 @@ public class EvaluatorFactory {
/**
* Returns a dedicated Evaluator instance for a specific SCXML document its documentmodel.
* <p>If no SCXML document is provided a default Evaluator will be returned.</p>
- * @param strict flag if an evaluator with strict / specification compliant behavior should be provided
* @param document The document to return a dedicated Evaluator for. May be null to retrieve the default Evaluator.
* @return a new and not sharable Evaluator instance for the provided document, or a default Evaluator otherwise
* @throws ModelException If the SCXML document datamodel is not supported.
*/
- public static Evaluator getEvaluator(final boolean strict, final SCXML document) throws ModelException {
+ public static Evaluator getEvaluator(final SCXML document) throws ModelException {
String datamodelName = document != null ? document.getDatamodelName() : null;
EvaluatorProvider provider = INSTANCE.providers.get(datamodelName == null ? DEFAULT_DATA_MODEL : datamodelName);
if (provider == null) {
throw new ModelException("Unsupported SCXML document datamodel \""+(datamodelName)+"\"");
}
- return document != null ? provider.getEvaluator(strict, document) : provider.getEvaluator(strict);
+ return document != null ? provider.getEvaluator(document) : provider.getEvaluator();
}
}
http://git-wip-us.apache.org/repos/asf/commons-scxml/blob/3c8c62b3/src/main/java/org/apache/commons/scxml2/EvaluatorProvider.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/scxml2/EvaluatorProvider.java b/src/main/java/org/apache/commons/scxml2/EvaluatorProvider.java
index 157f65d..b7b7e67 100644
--- a/src/main/java/org/apache/commons/scxml2/EvaluatorProvider.java
+++ b/src/main/java/org/apache/commons/scxml2/EvaluatorProvider.java
@@ -34,13 +34,6 @@ public interface EvaluatorProvider {
Evaluator getEvaluator();
/**
- * @param strict flag if an evaluator with strict / specification compliant behavior should be provided
- * @return a default or generic {@link Evaluator} supporting the {@link #getSupportedDatamodel()}
- * with strict / specification compliant behavior, if specified
- */
- Evaluator getEvaluator(final boolean strict);
-
- /**
* Factory method to return a dedicated and optimized {@link Evaluator} instance for a specific SCXML document.
* <p>
* As the returned Evaluator <em>might</em> be optimized and dedicated for the SCXML document instance, the
@@ -50,16 +43,4 @@ public interface EvaluatorProvider {
* @return a new and not sharable Evaluator instance
*/
Evaluator getEvaluator(SCXML document);
-
- /**
- * Factory method to return a dedicated and optimized {@link Evaluator} instance for a specific SCXML document.
- * <p>
- * As the returned Evaluator <em>might</em> be optimized and dedicated for the SCXML document instance, the
- * Evaluator may not be shareable and reusable for other SCXML documents.
- * </p>
- * @param strict flag if an evaluator with strict / specification compliant behavior should be provided
- * @param document the SCXML document
- * @return a new and not sharable Evaluator instance
- */
- Evaluator getEvaluator(final boolean strict, final SCXML document);
}
http://git-wip-us.apache.org/repos/asf/commons-scxml/blob/3c8c62b3/src/main/java/org/apache/commons/scxml2/SCInstance.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/scxml2/SCInstance.java b/src/main/java/org/apache/commons/scxml2/SCInstance.java
index baa35e3..d29291b 100644
--- a/src/main/java/org/apache/commons/scxml2/SCInstance.java
+++ b/src/main/java/org/apache/commons/scxml2/SCInstance.java
@@ -131,11 +131,6 @@ public class SCInstance implements Serializable {
private boolean singleContext;
/**
- * Flag indicating if strict / specification compliant behavior is required
- */
- private boolean strict;
-
- /**
* Constructor
* @param internalIOProcessor The I/O Processor for the internal event queue
* @param evaluator The evaluator
@@ -161,7 +156,7 @@ public class SCInstance implements Serializable {
throw new ModelException(ERR_NO_STATE_MACHINE);
}
if (evaluator == null) {
- evaluator = EvaluatorFactory.getEvaluator(isStrict(), stateMachine);
+ evaluator = EvaluatorFactory.getEvaluator(stateMachine);
}
if (evaluator.requiresGlobalContext()) {
singleContext = true;
@@ -196,7 +191,7 @@ public class SCInstance implements Serializable {
}
}
}
- if ((stateMachine.isLateBinding() == null && isStrict()) || Boolean.FALSE.equals(stateMachine.isLateBinding())) {
+ if (stateMachine.isLateBinding() == null || Boolean.FALSE.equals(stateMachine.isLateBinding())) {
// early binding
for (EnterableState es : stateMachine.getChildren()) {
getContext(es);
@@ -302,17 +297,6 @@ public class SCInstance implements Serializable {
return singleContext;
}
- public void setStrict(final boolean strict) throws ModelException {
- if (initialized) {
- throw new ModelException("SCInstance: already initialized");
- }
- this.strict = strict;
- }
-
- public boolean isStrict() {
- return strict;
- }
-
/**
* Clone data model.
*
http://git-wip-us.apache.org/repos/asf/commons-scxml/blob/3c8c62b3/src/main/java/org/apache/commons/scxml2/SCXMLExecutor.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/scxml2/SCXMLExecutor.java b/src/main/java/org/apache/commons/scxml2/SCXMLExecutor.java
index 5e6ad90..4f669dd 100644
--- a/src/main/java/org/apache/commons/scxml2/SCXMLExecutor.java
+++ b/src/main/java/org/apache/commons/scxml2/SCXMLExecutor.java
@@ -118,7 +118,6 @@ public class SCXMLExecutor implements SCXMLIOProcessor {
this.exctx = new SCXMLExecutionContext(this, parentSCXMLExecutor.getEvaluator(),
parentSCXMLExecutor.getEventdispatcher().newInstance(), parentSCXMLExecutor.getErrorReporter());
getSCInstance().setSingleContext(parentSCXMLExecutor.isSingleContext());
- getSCInstance().setStrict(parentSCXMLExecutor.isStrict());
getSCInstance().setStateMachine(scxml);
}
@@ -251,14 +250,6 @@ public class SCXMLExecutor implements SCXMLIOProcessor {
return getSCInstance().isSingleContext();
}
- public void setStrict(final boolean strict) throws ModelException {
- getSCInstance().setStrict(strict);
- }
-
- public boolean isStrict() {
- return getSCInstance().isStrict();
- }
-
/**
* Get the state machine that is being executed.
* <b>NOTE:</b> This is the state machine definition or model used by this
http://git-wip-us.apache.org/repos/asf/commons-scxml/blob/3c8c62b3/src/main/java/org/apache/commons/scxml2/env/groovy/GroovyEvaluator.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/scxml2/env/groovy/GroovyEvaluator.java b/src/main/java/org/apache/commons/scxml2/env/groovy/GroovyEvaluator.java
index e26aaaf..23bbe9c 100644
--- a/src/main/java/org/apache/commons/scxml2/env/groovy/GroovyEvaluator.java
+++ b/src/main/java/org/apache/commons/scxml2/env/groovy/GroovyEvaluator.java
@@ -59,18 +59,9 @@ public class GroovyEvaluator extends AbstractBaseEvaluator {
}
@Override
- public Evaluator getEvaluator(final boolean strict) {
- return new GroovyEvaluator();
- }
-
- @Override
public Evaluator getEvaluator(final SCXML document) {
return new GroovyEvaluator();
}
- @Override
- public Evaluator getEvaluator(final boolean strict, final SCXML document) {
- return new GroovyEvaluator();
- }
}
/** Error message if evaluation context is not a GroovyContext. */
@@ -126,11 +117,6 @@ public class GroovyEvaluator extends AbstractBaseEvaluator {
this.scriptCache = newScriptCache();
}
- @Override
- public boolean isStrict() {
- return false;
- }
-
/**
* Overridable factory method to create the GroovyExtendableScriptCache for this GroovyEvaluator.
* <p>
http://git-wip-us.apache.org/repos/asf/commons-scxml/blob/3c8c62b3/src/main/java/org/apache/commons/scxml2/env/javascript/JSEvaluator.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/scxml2/env/javascript/JSEvaluator.java b/src/main/java/org/apache/commons/scxml2/env/javascript/JSEvaluator.java
index 1ec2d58..b5b32fa 100644
--- a/src/main/java/org/apache/commons/scxml2/env/javascript/JSEvaluator.java
+++ b/src/main/java/org/apache/commons/scxml2/env/javascript/JSEvaluator.java
@@ -69,18 +69,9 @@ public class JSEvaluator extends AbstractBaseEvaluator {
}
@Override
- public Evaluator getEvaluator(final boolean strict) {
- return new JSEvaluator();
- }
-
- @Override
public Evaluator getEvaluator(final SCXML document) {
return new JSEvaluator();
}
- @Override
- public Evaluator getEvaluator(final boolean strict, final SCXML document) {
- return new JSEvaluator();
- }
}
private static final String SCXML_SYSTEM_CONTEXT = "_scxmlSystemContext";
@@ -180,11 +171,6 @@ public class JSEvaluator extends AbstractBaseEvaluator {
}
@Override
- public boolean isStrict() {
- return false;
- }
-
- @Override
public String getSupportedDatamodel() {
return SUPPORTED_DATA_MODEL;
}
http://git-wip-us.apache.org/repos/asf/commons-scxml/blob/3c8c62b3/src/main/java/org/apache/commons/scxml2/env/jexl/JexlEvaluator.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/scxml2/env/jexl/JexlEvaluator.java b/src/main/java/org/apache/commons/scxml2/env/jexl/JexlEvaluator.java
index ea7f5a8..0f11d0f 100644
--- a/src/main/java/org/apache/commons/scxml2/env/jexl/JexlEvaluator.java
+++ b/src/main/java/org/apache/commons/scxml2/env/jexl/JexlEvaluator.java
@@ -59,19 +59,9 @@ public class JexlEvaluator extends AbstractBaseEvaluator {
}
@Override
- public Evaluator getEvaluator(final boolean strict) {
- return new JexlEvaluator(strict);
- }
-
- @Override
public Evaluator getEvaluator(final SCXML document) {
return new JexlEvaluator();
}
-
- @Override
- public Evaluator getEvaluator(final boolean strict, final SCXML document) {
- return new JexlEvaluator(strict);
- }
}
/** Error message if evaluation context is not a JexlContext. */
@@ -83,35 +73,9 @@ public class JexlEvaluator extends AbstractBaseEvaluator {
/** The internal JexlEngine instance to use. */
private transient volatile JexlEngine jexlEngine;
- /** The current JexlEngine silent mode, stored locally to be reapplied after deserialization of the engine */
- private final boolean jexlEngineSilent;
- /** The current JexlEngine strict mode, stored locally to be reapplied after deserialization of the engine */
- private boolean jexlEngineStrict;
-
/** Constructor. */
public JexlEvaluator() {
- this(false);
- }
-
- public JexlEvaluator(final boolean strict) {
- jexlEngineStrict = strict;
- // create the internal JexlEngine initially
jexlEngine = getJexlEngine();
- jexlEngineSilent = jexlEngine.isSilent();
- jexlEngineStrict = jexlEngine.isStrict();
- }
-
- /**
- * Checks whether the internal Jexl engine throws JexlException during evaluation.
- * @return true if silent, false (default) otherwise
- */
- public boolean isJexlEngineSilent() {
- return jexlEngineSilent;
- }
-
- @Override
- public boolean isStrict() {
- return jexlEngineStrict;
}
@Override
@@ -216,7 +180,7 @@ public class JexlEvaluator extends AbstractBaseEvaluator {
// See javadoc of org.apache.commons.jexl2.JexlEngine#setFunctions(Map<String,Object> funcs) for detail.
Map<String, Object> funcs = new HashMap<>();
funcs.put(null, JexlBuiltin.class);
- return new JexlBuilder().namespaces(funcs).strict(jexlEngineStrict).silent(jexlEngineSilent).cache(256).create();
+ return new JexlBuilder().namespaces(funcs).cache(256).create();
}
/**
http://git-wip-us.apache.org/repos/asf/commons-scxml/blob/3c8c62b3/src/main/java/org/apache/commons/scxml2/env/minimal/MinimalEvaluator.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/scxml2/env/minimal/MinimalEvaluator.java b/src/main/java/org/apache/commons/scxml2/env/minimal/MinimalEvaluator.java
index 32a8ed7..6f0443b 100644
--- a/src/main/java/org/apache/commons/scxml2/env/minimal/MinimalEvaluator.java
+++ b/src/main/java/org/apache/commons/scxml2/env/minimal/MinimalEvaluator.java
@@ -51,24 +51,9 @@ public class MinimalEvaluator implements Evaluator, Serializable {
}
@Override
- public Evaluator getEvaluator(final boolean strict) {
- return new MinimalEvaluator();
- }
-
- @Override
public Evaluator getEvaluator(final SCXML document) {
return new MinimalEvaluator();
}
-
- @Override
- public Evaluator getEvaluator(final boolean strict, final SCXML document) {
- return new MinimalEvaluator();
- }
- }
-
- @Override
- public boolean isStrict() {
- return true;
}
@Override
http://git-wip-us.apache.org/repos/asf/commons-scxml/blob/3c8c62b3/src/test/java/org/apache/commons/scxml2/model/actions-initial-test.xml
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/scxml2/model/actions-initial-test.xml b/src/test/java/org/apache/commons/scxml2/model/actions-initial-test.xml
index 21ce85e..ff2c481 100644
--- a/src/test/java/org/apache/commons/scxml2/model/actions-initial-test.xml
+++ b/src/test/java/org/apache/commons/scxml2/model/actions-initial-test.xml
@@ -40,7 +40,7 @@
event="croak" namelist="drink eat" hints="'h2o bzz'"
delayexpr="1000+500" />
<cancel sendId="send12345"/>
- <log expr="leaving" label="entry001" />
+ <log expr="'leaving'" label="entry001" />
<raise event="event.test"/>
</transition>
</initial>
http://git-wip-us.apache.org/repos/asf/commons-scxml/blob/3c8c62b3/src/test/java/org/apache/commons/scxml2/model/actions-parallel-test.xml
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/scxml2/model/actions-parallel-test.xml b/src/test/java/org/apache/commons/scxml2/model/actions-parallel-test.xml
index 51706e4..8731bc6 100644
--- a/src/test/java/org/apache/commons/scxml2/model/actions-parallel-test.xml
+++ b/src/test/java/org/apache/commons/scxml2/model/actions-parallel-test.xml
@@ -39,7 +39,7 @@
event="croak" namelist="drink eat" hints="'h2o bzz'"
delayexpr="1000+500" />
<cancel sendId="send12345"/>
- <log expr="leaving" label="entry001" />
+ <log expr="'leaving'" label="entry001" />
<raise event="event.test"/>
</onentry>
http://git-wip-us.apache.org/repos/asf/commons-scxml/blob/3c8c62b3/src/test/java/org/apache/commons/scxml2/model/actions-state-test.xml
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/scxml2/model/actions-state-test.xml b/src/test/java/org/apache/commons/scxml2/model/actions-state-test.xml
index 89bc038..2dfb2a4 100644
--- a/src/test/java/org/apache/commons/scxml2/model/actions-state-test.xml
+++ b/src/test/java/org/apache/commons/scxml2/model/actions-state-test.xml
@@ -39,7 +39,7 @@
event="croak" namelist="drink eat" hints="'h2o bzz'"
delayexpr="1000+500" />
<cancel sendId="send12345"/>
- <log expr="leaving" label="entry001" />
+ <log expr="'leaving'" label="entry001" />
<raise event="event.test"/>
</onentry>
http://git-wip-us.apache.org/repos/asf/commons-scxml/blob/3c8c62b3/src/test/java/org/apache/commons/scxml2/w3c/W3CTests.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/scxml2/w3c/W3CTests.java b/src/test/java/org/apache/commons/scxml2/w3c/W3CTests.java
index 29a1d49..71ae057 100644
--- a/src/test/java/org/apache/commons/scxml2/w3c/W3CTests.java
+++ b/src/test/java/org/apache/commons/scxml2/w3c/W3CTests.java
@@ -667,7 +667,6 @@ public class W3CTests {
}
final SCXMLExecutor exec = new SCXMLExecutor(null, null, trc);
exec.setSingleContext(true);
- exec.setStrict(true);
exec.setStateMachine(doc);
exec.addListener(doc, trc);
exec.registerInvokerClass("scxml", SimpleSCXMLInvoker.class);