summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Branson <andrew.branson@cern.ch>2013-10-29 16:21:08 +0100
committerAndrew Branson <andrew.branson@cern.ch>2013-10-29 16:21:08 +0100
commitfd8108209688cda9e782a4c3c91be522eb3ed1f4 (patch)
tree62e38f2aecb05242f7d26f75e2fcf5765e47a8d8
parent79bdf4aa01fb9ca991de032733919923a19192c8 (diff)
Exception cleanup
Allow versions to be null: use Integer or String
-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
-rw-r--r--src/main/resources/boot/CA/ManageCompositeActDef.xml13
-rw-r--r--src/main/resources/boot/CA/ManageElementaryActDef.xml7
10 files changed, 21 insertions, 40 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());
diff --git a/src/main/resources/boot/CA/ManageCompositeActDef.xml b/src/main/resources/boot/CA/ManageCompositeActDef.xml
index 9eb8bf0..f1def44 100644
--- a/src/main/resources/boot/CA/ManageCompositeActDef.xml
+++ b/src/main/resources/boot/CA/ManageCompositeActDef.xml
@@ -11,8 +11,7 @@
<OutEdgeId>20</OutEdgeId>
<OutEdgeId>21</OutEdgeId>
<Properties>
- <KeyValuePair Key="LastNum" String="2"/>
- <KeyValuePair Key="RoutingScriptVersion" String=""/>
+ <KeyValuePair Key="LastNum" String="2"/>
<KeyValuePair Key="RoutingScriptName" String="javascript:true;"/>
</Properties>
</LoopDef>
@@ -37,10 +36,7 @@
<OutlinePoint x="244" y="51"/>
<OutEdgeId>16</OutEdgeId>
<OutEdgeId>17</OutEdgeId>
- <Properties>
- <KeyValuePair Key="RoutingScriptVersion" String=""/>
- <KeyValuePair Key="RoutingScriptName" String=""/>
- </Properties>
+ <Properties/>
</AndSplitDef>
<JoinDef ID="4" Name="" Height="24" Width="60" IsLayoutable="true" IsComposite="false">
<CentrePoint x="265" y="473"/>
@@ -65,7 +61,6 @@
<OutEdgeId>8</OutEdgeId>
<Properties>
<KeyValuePair Key="LastNum" String="2"/>
- <KeyValuePair Key="RoutingScriptVersion" String=""/>
<KeyValuePair Key="RoutingScriptName" String="javascript:true;"/>
</Properties>
</LoopDef>
@@ -78,8 +73,6 @@
<InEdgeId>18</InEdgeId>
<OutEdgeId>19</OutEdgeId>
<Properties>
- <KeyValuePair Key="Prefill" Boolean="false"/>
- <KeyValuePair Key="Prefill Version" String="-1"/>
<KeyValuePair Key="ViewName" String="CompositeActivityDef"/>
<KeyValuePair Key="Name" String="AssignNewActivityVersionFromLast"/>
</Properties>
@@ -107,8 +100,6 @@
<InEdgeId>24</InEdgeId>
<OutEdgeId>25</OutEdgeId>
<Properties>
- <KeyValuePair Key="Prefill" Boolean="false"/>
- <KeyValuePair Key="Prefill Version" String="-1"/>
<KeyValuePair Key="Name" String="EditDefinition"/>
<KeyValuePair Key="SchemaType" String="CompositeActivityDef"/>
</Properties>
diff --git a/src/main/resources/boot/CA/ManageElementaryActDef.xml b/src/main/resources/boot/CA/ManageElementaryActDef.xml
index 77baa8e..756fb8a 100644
--- a/src/main/resources/boot/CA/ManageElementaryActDef.xml
+++ b/src/main/resources/boot/CA/ManageElementaryActDef.xml
@@ -12,7 +12,6 @@
<OutEdgeId>21</OutEdgeId>
<Properties>
<KeyValuePair Key="LastNum" String="2"/>
- <KeyValuePair Key="RoutingScriptVersion" String=""/>
<KeyValuePair Key="RoutingScriptName" String="javascript:true;"/>
</Properties>
</LoopDef>
@@ -49,10 +48,7 @@
<OutlinePoint x="244" y="51"/>
<OutEdgeId>16</OutEdgeId>
<OutEdgeId>17</OutEdgeId>
- <Properties>
- <KeyValuePair Key="RoutingScriptVersion" String=""/>
- <KeyValuePair Key="RoutingScriptName" String=""/>
- </Properties>
+ <Properties/>
</AndSplitDef>
<LoopDef ID="3" Name="" Height="24" Width="60" IsLayoutable="true" IsComposite="false" isNext="0">
<CentrePoint x="177" y="359"/>
@@ -65,7 +61,6 @@
<OutEdgeId>8</OutEdgeId>
<Properties>
<KeyValuePair Key="LastNum" String="2"/>
- <KeyValuePair Key="RoutingScriptVersion" String=""/>
<KeyValuePair Key="RoutingScriptName" String="javascript:true;"/>
</Properties>
</LoopDef>