diff options
| author | Andrew Branson <andrew.branson@cern.ch> | 2013-10-27 21:06:45 +0100 |
|---|---|---|
| committer | Andrew Branson <andrew.branson@cern.ch> | 2013-10-27 21:06:45 +0100 |
| commit | 79bdf4aa01fb9ca991de032733919923a19192c8 (patch) | |
| tree | 3804d7f5b9fc2858bb27f7649d46f275613afd41 | |
| parent | 30cd736670a579985890d8c2dfe363bacbad7568 (diff) | |
3.0-SNAPSHOT
Do Integer.parseInt(propObj.toString()) to tolerate String or Integer
version properties.
11 files changed, 30 insertions, 24 deletions
@@ -3,7 +3,7 @@ <groupId>cristal</groupId> <artifactId>cristal-kernel</artifactId> <name>CRISTAL Kernel</name> - <version>2.5-SNAPSHOT</version> + <version>3.0-SNAPSHOT</version> <description>CRISTAL is a description-driven software platform originally developed to track the construction of the CMS ECAL detector of the LHC at CERN. This is its core library, known as the kernel, which manages business objects called Items. Items are entirely configured from data, called descriptions, held in other Items. diff --git a/src/main/java/com/c2kernel/graph/model/GraphableVertex.java b/src/main/java/com/c2kernel/graph/model/GraphableVertex.java index 7c9adef..77be7a8 100644 --- a/src/main/java/com/c2kernel/graph/model/GraphableVertex.java +++ b/src/main/java/com/c2kernel/graph/model/GraphableVertex.java @@ -5,6 +5,7 @@ package com.c2kernel.graph.model; */
+import com.c2kernel.common.InvalidDataException;
import com.c2kernel.utils.CastorHashMap;
import com.c2kernel.utils.KeyValuePair;
public abstract class GraphableVertex extends Vertex
@@ -25,6 +26,14 @@ public abstract class GraphableVertex extends Vertex {
return mProperties;
}
+ protected int getVersionNumberProperty(String propName) throws InvalidDataException {
+ Object val = getProperties().get(propName);
+ try {
+ return Integer.parseInt(val.toString());
+ } catch (NumberFormatException ex) {
+ throw new InvalidDataException("Invalid version number for property '"+propName+"': "+val.toString(), "");
+ }
+ }
public KeyValuePair[] getKeyValuePairs()
{
return mProperties.getKeyValuePairs();
diff --git a/src/main/java/com/c2kernel/lifecycle/ActivitySlotDef.java b/src/main/java/com/c2kernel/lifecycle/ActivitySlotDef.java index 9a3819b..514dc72 100644 --- a/src/main/java/com/c2kernel/lifecycle/ActivitySlotDef.java +++ b/src/main/java/com/c2kernel/lifecycle/ActivitySlotDef.java @@ -44,7 +44,7 @@ public class ActivitySlotDef extends WfVertexDef public ActivityDef getTheActivityDef() throws ObjectNotFoundException, InvalidDataException
{
- ActivityDef actDef = LocalObjectLoader.getActDef(getActivityDef(), getActVersion());
+ ActivityDef actDef = LocalObjectLoader.getActDef(getActivityDef(), getVersionNumberProperty("Version"));
if (actDef instanceof CompositeActivityDef)
mIsComposite = true;
return actDef;
@@ -142,14 +142,6 @@ public class ActivitySlotDef extends WfVertexDef {
return (String) getProperties().get("Name");
}
- public int getActVersion() throws InvalidDataException
- {
- Object verObj = getProperties().get("Version");
- if (verObj instanceof Integer)
- return (Integer)verObj;
- else
- throw new InvalidDataException("Version string was not an integer", "");
- }
@Override
public WfVertex instantiate() throws ObjectNotFoundException, InvalidDataException {
diff --git a/src/main/java/com/c2kernel/lifecycle/instance/Activity.java b/src/main/java/com/c2kernel/lifecycle/instance/Activity.java index a386194..a83eadd 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/Activity.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/Activity.java @@ -82,7 +82,7 @@ public class Activity extends WfVertex public StateMachine getStateMachine() throws InvalidDataException {
if (machine == null) {
String name = (String)getProperties().get("StateMachineName");
- Integer version = (Integer)getProperties().get("StateMachineVersion");
+ int version = getVersionNumberProperty("StateMachineVersion");
try {
machine = LocalObjectLoader.getStateMachine(name, version);
} catch (ObjectNotFoundException ex) {
@@ -104,7 +104,7 @@ public class Activity extends WfVertex }
return machine;
}
-
+
/** return the current State of the State machine (Used in Serialisation) */
public int getState() throws InvalidDataException
{
diff --git a/src/main/java/com/c2kernel/lifecycle/instance/OrSplit.java b/src/main/java/com/c2kernel/lifecycle/instance/OrSplit.java index 89f5ad2..357e86a 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");
- Integer scriptVersion = (Integer) getProperties().get("RoutingScriptVersion");
+ int scriptVersion = getVersionNumberProperty("RoutingScriptVersion");
try {
nexts = this.evaluateScript(scriptName, scriptVersion, itemSysKey).toString();
} catch (ScriptingEngineException e) {
diff --git a/src/main/java/com/c2kernel/lifecycle/instance/XOrSplit.java b/src/main/java/com/c2kernel/lifecycle/instance/XOrSplit.java index a74a939..f8c314d 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/XOrSplit.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/XOrSplit.java @@ -33,7 +33,7 @@ public class XOrSplit extends Split ArrayList<DirectedEdge> nextsToFollow = new ArrayList<DirectedEdge>();
String nexts;
String scriptName = (String) getProperties().get("RoutingScriptName");
- int scriptVersion = (Integer) getProperties().get("RoutingScriptVersion");
+ int scriptVersion = getVersionNumberProperty("RoutingScriptVersion");
try {
nexts = this.evaluateScript(scriptName, scriptVersion, itemSysKey).toString();
} catch (ScriptingEngineException e) {
diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/CreateItemFromDescription.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/CreateItemFromDescription.java index 2e3d652..10e54d1 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/CreateItemFromDescription.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/predefined/CreateItemFromDescription.java @@ -93,7 +93,12 @@ public class CreateItemFromDescription extends PredefinedStep // get the first member from the wf collection
CollectionMember wfMember = members.get(0);
wfDefName = wfMember.resolveEntity().getName();
- wfDefVer = (Integer)wfMember.getProperties().get("Version");
+ Object wfVerObj = wfMember.getProperties().get("Version");
+ try {
+ wfDefVer = Integer.parseInt(wfVerObj.toString());
+ } catch (NumberFormatException ex) {
+ throw new InvalidDataException("Invalid workflow version number: "+wfVerObj.toString(), "");
+ }
}
}
diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/Outcome.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/Outcome.java index a8431de..9ab5793 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/Outcome.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/Outcome.java @@ -10,10 +10,10 @@ public class Outcome { public Outcome() {
}
- public Outcome(String schema, String version, String viewname, String path) {
+ public Outcome(String schema, int version, String viewname, String path) {
super();
this.schema = schema;
- this.version = Integer.parseInt(version);
+ this.version = version;
this.viewname = viewname;
this.path = path;
}
diff --git a/src/main/java/com/c2kernel/process/module/Module.java b/src/main/java/com/c2kernel/process/module/Module.java index a932361..d0a017c 100644 --- a/src/main/java/com/c2kernel/process/module/Module.java +++ b/src/main/java/com/c2kernel/process/module/Module.java @@ -67,7 +67,7 @@ public class Module { }
moduleItem.dependencyList.add(children);
// Add moduleXML
- Outcome moduleOutcome = new Outcome("Module", "0", "last", null);
+ Outcome moduleOutcome = new Outcome("Module", 0, "last", null);
moduleOutcome.data = moduleXML;
moduleItem.outcomes.add(moduleOutcome);
imports.list.add(moduleItem);
diff --git a/src/main/java/com/c2kernel/scripting/Script.java b/src/main/java/com/c2kernel/scripting/Script.java index 1a755ea..9166e2e 100644 --- a/src/main/java/com/c2kernel/scripting/Script.java +++ b/src/main/java/com/c2kernel/scripting/Script.java @@ -43,7 +43,7 @@ public class Script {
String mScript = "";
String mName;
- String mVersion;
+ Integer mVersion;
HashMap<String, Parameter> mInputParams = new HashMap<String, Parameter>();
HashMap<String, Parameter> mAllInputParams = new HashMap<String, Parameter>();
HashMap<String, Parameter> mOutputParams = new HashMap<String, Parameter>();
@@ -79,7 +79,7 @@ public class Script public Script(String scriptName, int scriptVersion) throws ScriptingEngineException
{
mName = scriptName;
- mVersion = String.valueOf(scriptVersion);
+ mVersion = scriptVersion;
if (!scriptName.equals(""))
loadScript(mName, mVersion);
}
@@ -92,7 +92,7 @@ public class Script {
mName = "<expr>";
setScriptEngine(lang);
- mVersion = "";
+ mVersion = null;
addOutput(null, returnType);
mScript = expr;
}
@@ -121,7 +121,7 @@ public class Script public Script(ItemProxy object, AgentProxy subject, Job job) throws ScriptingEngineException
{
- this(job.getActPropString("ScriptName"), job.getActPropString("ScriptVersion") == null ? -1 : Integer.parseInt(job.getActPropString("ScriptVersion")));
+ this(job.getActPropString("ScriptName"), job.getActPropString("ScriptVersion") == null ? null : Integer.parseInt(job.getActPropString("ScriptVersion").toString()));
// set environment - this needs to be well documented for script developers
if (!mInputParams.containsKey("item"))
addInputParam("item", ItemProxy.class);
@@ -183,7 +183,7 @@ public class Script engine.setContext(context);
}
- private void loadScript(String scriptName, String scriptVersion) throws ScriptingEngineException
+ private void loadScript(String scriptName, int scriptVersion) throws ScriptingEngineException
{
try
{
diff --git a/src/main/java/com/c2kernel/utils/LocalObjectLoader.java b/src/main/java/com/c2kernel/utils/LocalObjectLoader.java index c17db40..aef7b96 100644 --- a/src/main/java/com/c2kernel/utils/LocalObjectLoader.java +++ b/src/main/java/com/c2kernel/utils/LocalObjectLoader.java @@ -24,7 +24,7 @@ public class LocalObjectLoader { return (ItemProxy)Gateway.getProxyManager().getProxy(defPath);
}
- static public String getScript(String scriptName, String scriptVersion) throws ObjectNotFoundException {
+ static public String getScript(String scriptName, int scriptVersion) throws ObjectNotFoundException {
Logger.msg(5, "Loading script "+scriptName+" v"+scriptVersion);
try {
ItemProxy script = loadLocalObjectDef("/desc/Script/", scriptName);
|
