From f7df981d031e360b379b86d9aefdde15b918b21f Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Mon, 25 Aug 2014 13:53:33 +0200 Subject: Require integers for all resource versions --- src/main/java/com/c2kernel/lifecycle/ActivityDef.java | 6 +++--- src/main/java/com/c2kernel/lifecycle/ActivitySlotDef.java | 8 +++++++- .../lifecycle/instance/predefined/CreateItemFromDescription.java | 7 +++++-- .../lifecycle/instance/predefined/entitycreation/NewItem.java | 2 +- src/main/java/com/c2kernel/process/Bootstrap.java | 4 ++-- src/main/java/com/c2kernel/scripting/Script.java | 2 +- src/main/java/com/c2kernel/utils/ActDefCache.java | 2 +- src/main/java/com/c2kernel/utils/LocalObjectLoader.java | 4 ++-- 8 files changed, 22 insertions(+), 13 deletions(-) (limited to 'src/main/java/com') diff --git a/src/main/java/com/c2kernel/lifecycle/ActivityDef.java b/src/main/java/com/c2kernel/lifecycle/ActivityDef.java index 40d1f8a..efe532d 100644 --- a/src/main/java/com/c2kernel/lifecycle/ActivityDef.java +++ b/src/main/java/com/c2kernel/lifecycle/ActivityDef.java @@ -15,7 +15,7 @@ public class ActivityDef extends WfVertexDef implements C2KLocalObject { private int mId = -1; private String mName = ""; - private String mVersion = ""; + private Integer mVersion = null; public boolean changed = false; /** * @see java.lang.Object#Object() @@ -61,14 +61,14 @@ public class ActivityDef extends WfVertexDef implements C2KLocalObject return mName; } - public void setVersion(String v) + public void setVersion(Integer v) { mVersion = v; } /** * @see com.c2kernel.graph.model.Vertex#getName() */ - public String getVersion() + public Integer getVersion() { return mVersion; } diff --git a/src/main/java/com/c2kernel/lifecycle/ActivitySlotDef.java b/src/main/java/com/c2kernel/lifecycle/ActivitySlotDef.java index 74d8305..885f613 100644 --- a/src/main/java/com/c2kernel/lifecycle/ActivitySlotDef.java +++ b/src/main/java/com/c2kernel/lifecycle/ActivitySlotDef.java @@ -44,7 +44,13 @@ public class ActivitySlotDef extends WfVertexDef public ActivityDef getTheActivityDef() throws ObjectNotFoundException, InvalidDataException { - ActivityDef actDef = LocalObjectLoader.getActDef(getActivityDef(), getActVersion()); + int actVersion; + try { + actVersion = Integer.parseInt(getActVersion()); + } catch (NumberFormatException ex) { + throw new InvalidDataException("Non-integer activitiy version set for slot "+getActName(), ""); + } + ActivityDef actDef = LocalObjectLoader.getActDef(getActivityDef(), actVersion); if (actDef instanceof CompositeActivityDef) mIsComposite = true; return actDef; 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 77a3aa5..b80b3cd 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/CreateItemFromDescription.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/predefined/CreateItemFromDescription.java @@ -63,6 +63,7 @@ public class CreateItemFromDescription extends PredefinedStep CompositeActivityDef wfDef; String wfDefName = null; String wfDefVer = null; + if (input.length > 2) // override wf wfDefName = input[2]; @@ -108,11 +109,13 @@ public class CreateItemFromDescription extends PredefinedStep throw new InvalidDataException("No workflow def version given",""); try { - wfDef = (CompositeActivityDef)LocalObjectLoader.getActDef(wfDefName, wfDefVer); + wfDef = (CompositeActivityDef)LocalObjectLoader.getActDef(wfDefName, Integer.valueOf(wfDefVer)); } catch (ObjectNotFoundException ex) { - throw new InvalidDataException("Workflow def '"+wfDefName+"' v"+wfDefVer+" item not found", ""); + throw new InvalidDataException("Workflow def '"+wfDefName+"' v"+wfDefVer+" not found", ""); } catch (ClassCastException ex) { throw new InvalidDataException("Activity def '"+wfDefName+"' v"+wfDefVer+" was not Composite", ""); + } catch (NumberFormatException ex) { + throw new InvalidDataException("Workflow def version '"+wfDefVer+"' given for def '"+wfDefName+"' was not an integer", ""); } diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/NewItem.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/NewItem.java index 0856580..6c3abf1 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/NewItem.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/NewItem.java @@ -87,7 +87,7 @@ public class NewItem extends ModuleImport { try { // find workflow def - CompositeActivityDef compact = (CompositeActivityDef)LocalObjectLoader.getActDef(workflow, "0"); + CompositeActivityDef compact = (CompositeActivityDef)LocalObjectLoader.getActDef(workflow, 0); newItem.initialise( agentId, Gateway.getMarshaller().marshall(new PropertyArrayList(properties)), diff --git a/src/main/java/com/c2kernel/process/Bootstrap.java b/src/main/java/com/c2kernel/process/Bootstrap.java index 4f29b87..70bd2e8 100644 --- a/src/main/java/com/c2kernel/process/Bootstrap.java +++ b/src/main/java/com/c2kernel/process/Bootstrap.java @@ -250,7 +250,7 @@ public class Bootstrap CompositeActivity ca; if (ns!=null && "true".equals(Gateway.getProperty("Module.debug"))) - ca = (CompositeActivity) ((CompositeActivityDef)LocalObjectLoader.getActDef(impHandler.getWorkflowName(), "0")).instantiate(); + ca = (CompositeActivity) ((CompositeActivityDef)LocalObjectLoader.getActDef(impHandler.getWorkflowName(), 0)).instantiate(); else ca = new CompositeActivity(); @@ -349,7 +349,7 @@ public class Bootstrap } public static void initServerItemWf() throws Exception { - CompositeActivityDef serverWfCa = (CompositeActivityDef)LocalObjectLoader.getActDef("ServerItemWorkflow", "last"); + CompositeActivityDef serverWfCa = (CompositeActivityDef)LocalObjectLoader.getActDef("ServerItemWorkflow", 0); Workflow wf = new Workflow((CompositeActivity)serverWfCa.instantiate()); PredefinedStepContainer predef = (PredefinedStepContainer)wf.search("workflow/predefined"); wf.getChildGraphModel().removeVertex(predef); diff --git a/src/main/java/com/c2kernel/scripting/Script.java b/src/main/java/com/c2kernel/scripting/Script.java index 80270d4..6f4aee9 100644 --- a/src/main/java/com/c2kernel/scripting/Script.java +++ b/src/main/java/com/c2kernel/scripting/Script.java @@ -193,7 +193,7 @@ public class Script { mName = scriptName; mVersion = scriptVersion; - parseScriptXML(LocalObjectLoader.getScript(scriptName, String.valueOf(scriptVersion))); + parseScriptXML(LocalObjectLoader.getScript(scriptName, scriptVersion)); } catch (ObjectNotFoundException e) { diff --git a/src/main/java/com/c2kernel/utils/ActDefCache.java b/src/main/java/com/c2kernel/utils/ActDefCache.java index 2ee5c7c..f5a7a78 100644 --- a/src/main/java/com/c2kernel/utils/ActDefCache.java +++ b/src/main/java/com/c2kernel/utils/ActDefCache.java @@ -18,7 +18,7 @@ public class ActDefCache { SoftCache actCache = new SoftCache(); - public ActivityDef get(String actName, String actVersion) throws ObjectNotFoundException, InvalidDataException { + public ActivityDef get(String actName, int actVersion) throws ObjectNotFoundException, InvalidDataException { ActivityDef thisActDef; synchronized(actCache) { ActCacheEntry thisActDefEntry = actCache.get(actName+"_"+actVersion); diff --git a/src/main/java/com/c2kernel/utils/LocalObjectLoader.java b/src/main/java/com/c2kernel/utils/LocalObjectLoader.java index 63bb3c2..3025f2d 100644 --- a/src/main/java/com/c2kernel/utils/LocalObjectLoader.java +++ b/src/main/java/com/c2kernel/utils/LocalObjectLoader.java @@ -22,7 +22,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); @@ -65,7 +65,7 @@ public class LocalObjectLoader { * @return ActivityDef * @throws ObjectNotFoundException - When activity or version does not exist */ - static public ActivityDef getActDef(String actName, String actVersion) throws ObjectNotFoundException, InvalidDataException { + static public ActivityDef getActDef(String actName, int actVersion) throws ObjectNotFoundException, InvalidDataException { Logger.msg(5, "Loading activity def "+actName+" v"+actVersion); return actCache.get(actName, actVersion); } -- cgit v1.2.3