summaryrefslogtreecommitdiff
path: root/src/main/java/com/c2kernel
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/c2kernel')
-rw-r--r--src/main/java/com/c2kernel/graph/model/GraphableVertex.java5
-rw-r--r--src/main/java/com/c2kernel/lifecycle/AndSplitDef.java2
-rw-r--r--src/main/java/com/c2kernel/lifecycle/WfCastorHashMap.java4
-rw-r--r--src/main/java/com/c2kernel/lifecycle/instance/OrSplit.java2
-rw-r--r--src/main/java/com/c2kernel/lifecycle/instance/WfVertex.java18
-rw-r--r--src/main/java/com/c2kernel/lifecycle/instance/XOrSplit.java4
-rw-r--r--src/main/java/com/c2kernel/lifecycle/instance/stateMachine/StateMachine.java2
-rw-r--r--src/main/java/com/c2kernel/lifecycle/instance/stateMachine/Transition.java4
8 files changed, 18 insertions, 23 deletions
diff --git a/src/main/java/com/c2kernel/graph/model/GraphableVertex.java b/src/main/java/com/c2kernel/graph/model/GraphableVertex.java
index 77be7a8..b0b74fd 100644
--- a/src/main/java/com/c2kernel/graph/model/GraphableVertex.java
+++ b/src/main/java/com/c2kernel/graph/model/GraphableVertex.java
@@ -26,10 +26,11 @@ public abstract class GraphableVertex extends Vertex
{
return mProperties;
}
- protected int getVersionNumberProperty(String propName) throws InvalidDataException {
+ protected Integer getVersionNumberProperty(String propName) throws InvalidDataException {
Object val = getProperties().get(propName);
+ if (val == null || val.equals("") || val.toString().equals("-1")) return null;
try {
- return Integer.parseInt(val.toString());
+ return new Integer(val.toString());
} catch (NumberFormatException ex) {
throw new InvalidDataException("Invalid version number for property '"+propName+"': "+val.toString(), "");
}
diff --git a/src/main/java/com/c2kernel/lifecycle/AndSplitDef.java b/src/main/java/com/c2kernel/lifecycle/AndSplitDef.java
index 014fecc..af87b18 100644
--- a/src/main/java/com/c2kernel/lifecycle/AndSplitDef.java
+++ b/src/main/java/com/c2kernel/lifecycle/AndSplitDef.java
@@ -20,7 +20,7 @@ public class AndSplitDef extends WfVertexDef
{
mErrors = new Vector<String>(0, 1);
getProperties().put("RoutingScriptName", "");
- getProperties().put("RoutingScriptVersion", -1);
+ getProperties().put("RoutingScriptVersion", "");
}
/**
diff --git a/src/main/java/com/c2kernel/lifecycle/WfCastorHashMap.java b/src/main/java/com/c2kernel/lifecycle/WfCastorHashMap.java
index a52fcfe..5a9d472 100644
--- a/src/main/java/com/c2kernel/lifecycle/WfCastorHashMap.java
+++ b/src/main/java/com/c2kernel/lifecycle/WfCastorHashMap.java
@@ -17,9 +17,9 @@ public class WfCastorHashMap extends CastorHashMap
put("Agent Role", "");
put("Agent Name", "");
put("SchemaType", "");
- put("SchemaVersion", -1);
+ put("SchemaVersion", "");
put("ScriptName", "");
- put("ScriptVersion", -1);
+ put("ScriptVersion", "");
put("StateMachineName", "Default");
put("StateMachineVersion", 0);
put("Viewpoint", "");
diff --git a/src/main/java/com/c2kernel/lifecycle/instance/OrSplit.java b/src/main/java/com/c2kernel/lifecycle/instance/OrSplit.java
index 357e86a..b9fc263 100644
--- a/src/main/java/com/c2kernel/lifecycle/instance/OrSplit.java
+++ b/src/main/java/com/c2kernel/lifecycle/instance/OrSplit.java
@@ -24,7 +24,7 @@ public class OrSplit extends Split
{
String nexts;
String scriptName = (String) getProperties().get("RoutingScriptName");
- int scriptVersion = getVersionNumberProperty("RoutingScriptVersion");
+ Integer scriptVersion = getVersionNumberProperty("RoutingScriptVersion");
try {
nexts = this.evaluateScript(scriptName, scriptVersion, itemSysKey).toString();
} catch (ScriptingEngineException e) {
diff --git a/src/main/java/com/c2kernel/lifecycle/instance/WfVertex.java b/src/main/java/com/c2kernel/lifecycle/instance/WfVertex.java
index 9ed5c8a..de5f56f 100644
--- a/src/main/java/com/c2kernel/lifecycle/instance/WfVertex.java
+++ b/src/main/java/com/c2kernel/lifecycle/instance/WfVertex.java
@@ -112,7 +112,7 @@ public abstract class WfVertex extends GraphableVertex
*/
public abstract Next addNext(WfVertex vertex);
- protected Object evaluateScript(String scriptName, int scriptVersion, int itemSysKey) throws ScriptingEngineException
+ protected Object evaluateScript(String scriptName, Integer scriptVersion, int itemSysKey) throws ScriptingEngineException
{
try
@@ -172,24 +172,18 @@ public abstract class WfVertex extends GraphableVertex
}
}
- private static Script getScript(String name, int version) throws ScriptingEngineException
+ private static Script getScript(String name, Integer version) throws ScriptingEngineException
{
if (name == null || name.length() == 0)
throw new ScriptingEngineException("Script name is empty");
Script script;
- try
- {
+ if (version!=null) {
+ Logger.debug(version.toString());
script = new Script(name, version);
}
- catch (NumberFormatException e)
- { // version not valid
+ else { // empty version: try expression
int split = name.indexOf(":");
- if (split > -1)
- {
- script = new Script(name.substring(0, split), name.substring(split + 1));
- }
- else
- throw new ScriptingEngineException("Script version is invalid");
+ script = new Script(name.substring(0, split), name.substring(split + 1));
}
return script;
diff --git a/src/main/java/com/c2kernel/lifecycle/instance/XOrSplit.java b/src/main/java/com/c2kernel/lifecycle/instance/XOrSplit.java
index f8c314d..65bd4ba 100644
--- a/src/main/java/com/c2kernel/lifecycle/instance/XOrSplit.java
+++ b/src/main/java/com/c2kernel/lifecycle/instance/XOrSplit.java
@@ -33,12 +33,12 @@ public class XOrSplit extends Split
ArrayList<DirectedEdge> nextsToFollow = new ArrayList<DirectedEdge>();
String nexts;
String scriptName = (String) getProperties().get("RoutingScriptName");
- int scriptVersion = getVersionNumberProperty("RoutingScriptVersion");
+ Integer scriptVersion = getVersionNumberProperty("RoutingScriptVersion");
try {
nexts = this.evaluateScript(scriptName, scriptVersion, itemSysKey).toString();
} catch (ScriptingEngineException e) {
Logger.error(e);
- throw new InvalidDataException("Error running routing script "+scriptName+" v"+scriptVersion, null);
+ throw new InvalidDataException("Error running routing script "+scriptName+" v"+scriptVersion, "");
}
StringTokenizer tok = new StringTokenizer(nexts,",");
diff --git a/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/StateMachine.java b/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/StateMachine.java
index 3896ac5..c165e6f 100644
--- a/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/StateMachine.java
+++ b/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/StateMachine.java
@@ -144,7 +144,7 @@ public class StateMachine implements DescriptionObject
return transition.targetState;
}
else
- throw new InvalidTransitionException();
+ throw new InvalidTransitionException("Transition '"+transition.getName()+"' not valid from state '"+currentState.getName(), "");
}
diff --git a/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/Transition.java b/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/Transition.java
index e7bcba9..9922c7c 100644
--- a/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/Transition.java
+++ b/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/Transition.java
@@ -173,11 +173,11 @@ public class Transition implements Serializable {
// check available
if (!isEnabled(act.getProperties()))
- throw new AccessRightsException("Transition '"+name+"' is disabled by the '"+enabledProp+"' property.");
+ throw new AccessRightsException("Transition '"+name+"' is disabled by the '"+enabledProp+"' property.", "");
// check active
if (isRequiresActive() && !act.getActive())
- throw new AccessRightsException("Activity must be active to perform this transition", null);
+ throw new AccessRightsException("Activity must be active to perform this transition", "");
RolePath role = null;
String overridingRole = resolveValue(roleOverride, act.getProperties());