summaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/com/c2kernel/lifecycle/instance/Activity.java3
-rw-r--r--src/main/java/com/c2kernel/lifecycle/instance/WfVertex.java2
-rw-r--r--src/main/java/com/c2kernel/lifecycle/instance/stateMachine/State.java22
-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.java23
-rw-r--r--src/main/java/com/c2kernel/lifecycle/instance/stateMachine/TransitionOutcome.java4
-rw-r--r--src/main/java/com/c2kernel/lifecycle/instance/stateMachine/TransitionScript.java4
-rw-r--r--src/main/java/com/c2kernel/lookup/Path.java19
-rw-r--r--src/main/java/com/c2kernel/process/UserCodeProcess.java5
-rw-r--r--src/main/java/com/c2kernel/scripting/Script.java10
-rw-r--r--src/main/java/com/c2kernel/utils/CastorXMLUtility.java2
-rw-r--r--src/main/java/com/c2kernel/utils/XmlElementParser.java172
12 files changed, 163 insertions, 105 deletions
diff --git a/src/main/java/com/c2kernel/lifecycle/instance/Activity.java b/src/main/java/com/c2kernel/lifecycle/instance/Activity.java
index 3dd94b0..d921cfc 100644
--- a/src/main/java/com/c2kernel/lifecycle/instance/Activity.java
+++ b/src/main/java/com/c2kernel/lifecycle/instance/Activity.java
@@ -1,5 +1,6 @@
package com.c2kernel.lifecycle.instance;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Iterator;
import java.util.Map;
import java.util.Vector;
@@ -316,7 +317,7 @@ public class Activity extends WfVertex
hasNoNext = true;
out = true;
}
- Logger.debug(8, outVertices + " " + outVertices2);
+ Logger.debug(8, Arrays.toString(outVertices) + " " + Arrays.toString(outVertices2));
if (!hasNoNext)
((WfVertex) outVertices[0]).run(agent, itemPath);
else
diff --git a/src/main/java/com/c2kernel/lifecycle/instance/WfVertex.java b/src/main/java/com/c2kernel/lifecycle/instance/WfVertex.java
index c2596f8..f21b947 100644
--- a/src/main/java/com/c2kernel/lifecycle/instance/WfVertex.java
+++ b/src/main/java/com/c2kernel/lifecycle/instance/WfVertex.java
@@ -147,7 +147,7 @@ public abstract class WfVertex extends GraphableVertex
inputParam = null;
}
}
- Logger.msg(5, "Split.evaluateScript() - Setting param " + element.getKey() + " to " + inputParam.toString());
+ Logger.msg(5, "Split.evaluateScript() - Setting param " + element.getKey() + " to " + inputParam);
script.setInputParamValue(element.getKey(), inputParam);
}
}
diff --git a/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/State.java b/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/State.java
index fd712f4..dd0c763 100644
--- a/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/State.java
+++ b/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/State.java
@@ -57,4 +57,26 @@ public class State implements Serializable {
public Set<Integer> getPossibleTransitionIds() {
return possibleTransitions.keySet();
}
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + id;
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ State other = (State) obj;
+ if (id != other.id)
+ return false;
+ return true;
+ }
}
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 ff9d5a8..f9814dd 100644
--- a/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/StateMachine.java
+++ b/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/StateMachine.java
@@ -63,7 +63,7 @@ public class StateMachine implements DescriptionObject
for (Transition trans : transitions) {
Logger.debug(6, "Transition "+trans.id+": "+trans.name);
transitionCodes.put(trans.getId(), trans);
- isCoherent &= trans.resolveStates(stateCodes);
+ isCoherent = isCoherent && trans.resolveStates(stateCodes);
}
}
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 8a82bc1..b16520c 100644
--- a/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/Transition.java
+++ b/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/Transition.java
@@ -299,4 +299,27 @@ public class Transition implements Serializable {
return false;
return true;
}
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + id;
+ return result;
+ }
+
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ Transition other = (Transition) obj;
+ if (id != other.id)
+ return false;
+ return true;
+ }
}
diff --git a/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/TransitionOutcome.java b/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/TransitionOutcome.java
index 71ba3b3..ad2d54c 100644
--- a/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/TransitionOutcome.java
+++ b/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/TransitionOutcome.java
@@ -1,6 +1,8 @@
package com.c2kernel.lifecycle.instance.stateMachine;
-public class TransitionOutcome extends TransitionResource {
+import java.io.Serializable;
+
+public class TransitionOutcome extends TransitionResource implements Serializable {
// schema properties
String schemaName, schemaVersion; // Name & version of the schema of the data required for this transition.
diff --git a/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/TransitionScript.java b/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/TransitionScript.java
index 9585102..271b44d 100644
--- a/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/TransitionScript.java
+++ b/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/TransitionScript.java
@@ -1,6 +1,8 @@
package com.c2kernel.lifecycle.instance.stateMachine;
-public class TransitionScript extends TransitionResource {
+import java.io.Serializable;
+
+public class TransitionScript extends TransitionResource implements Serializable {
// script properties
String scriptName, scriptVersion; // Name & version of the script to be run by the agent during this transition
diff --git a/src/main/java/com/c2kernel/lookup/Path.java b/src/main/java/com/c2kernel/lookup/Path.java
index 65d9738..1a563b5 100644
--- a/src/main/java/com/c2kernel/lookup/Path.java
+++ b/src/main/java/com/c2kernel/lookup/Path.java
@@ -21,8 +21,7 @@ import com.c2kernel.process.Gateway;
/**
-* @version $Revision: 1.27 $ $Date: 2006/01/17 07:49:58 $
-* @author $Author: abranson $
+*
**/
public abstract class Path implements Serializable
{
@@ -113,13 +112,15 @@ public abstract class Path implements Serializable
public void setPath(String path)
{
ArrayList<String> newPath = new ArrayList<String>();
- StringTokenizer tok = new StringTokenizer(path, delim);
- if (tok.hasMoreTokens()) {
- String first = tok.nextToken();
- if (!first.equals(getRoot()))
- newPath.add(first);
- while (tok.hasMoreTokens())
- newPath.add(tok.nextToken());
+ if (path != null) {
+ StringTokenizer tok = new StringTokenizer(path, delim);
+ if (tok.hasMoreTokens()) {
+ String first = tok.nextToken();
+ if (!first.equals(getRoot()))
+ newPath.add(first);
+ while (tok.hasMoreTokens())
+ newPath.add(tok.nextToken());
+ }
}
mPath = (newPath.toArray(mPath));
diff --git a/src/main/java/com/c2kernel/process/UserCodeProcess.java b/src/main/java/com/c2kernel/process/UserCodeProcess.java
index cb8ca74..8182f65 100644
--- a/src/main/java/com/c2kernel/process/UserCodeProcess.java
+++ b/src/main/java/com/c2kernel/process/UserCodeProcess.java
@@ -36,7 +36,7 @@ public class UserCodeProcess extends StandardClient implements ProxyObserver<Job
static boolean active = true;
ArrayList<String> ignoredPaths = new ArrayList<String>();
HashMap<String, ErrorInfo> errors = new HashMap<String, ErrorInfo>();
- HashMap<String, C2KLocalObject> jobs;
+ final HashMap<String, C2KLocalObject> jobs = new HashMap<String, C2KLocalObject>();
public UserCodeProcess(String agentName, String agentPass, String resource) {
// login - try for a while in case server hasn't imported our user yet
@@ -59,7 +59,6 @@ public class UserCodeProcess extends StandardClient implements ProxyObserver<Job
@Override
public void run() {
Thread.currentThread().setName("Usercode Process");
- jobs = new HashMap<String, C2KLocalObject>();
// subscribe to job list
agent.subscribe(new MemberSubscription<Job>(this, ClusterStorage.JOB, true));
while (active) {
@@ -193,7 +192,7 @@ public class UserCodeProcess extends StandardClient implements ProxyObserver<Job
@Override
public void control(String control, String msg) {
- if (control == MemberSubscription.ERROR)
+ if (MemberSubscription.ERROR.equals(control))
Logger.error("Error in job subscription: "+msg);
}
diff --git a/src/main/java/com/c2kernel/scripting/Script.java b/src/main/java/com/c2kernel/scripting/Script.java
index d8ccee2..2709a13 100644
--- a/src/main/java/com/c2kernel/scripting/Script.java
+++ b/src/main/java/com/c2kernel/scripting/Script.java
@@ -124,7 +124,7 @@ public class Script
public Script(ItemProxy object, AgentProxy subject, Job job) throws ScriptingEngineException
{
- this(job.getActPropString("ScriptName"), job.getActPropString("ScriptVersion") == null ? null : Integer.parseInt(job.getActPropString("ScriptVersion").toString()));
+ this(job.getActPropString("ScriptName"), getScriptVersion(job));
// set environment - this needs to be well documented for script developers
if (!mInputParams.containsKey("item"))
addInputParam("item", ItemProxy.class);
@@ -142,6 +142,14 @@ public class Script
addOutput("errors", ErrorInfo.class);
}
+ public static int getScriptVersion(Job job) {
+ String verStr = job.getActPropString("ScriptVersion");
+ if (verStr != null)
+ return Integer.parseInt(verStr);
+ else
+ return -1;
+ }
+
/**
* For consoles
*
diff --git a/src/main/java/com/c2kernel/utils/CastorXMLUtility.java b/src/main/java/com/c2kernel/utils/CastorXMLUtility.java
index 497f934..e8e3ee4 100644
--- a/src/main/java/com/c2kernel/utils/CastorXMLUtility.java
+++ b/src/main/java/com/c2kernel/utils/CastorXMLUtility.java
@@ -99,7 +99,7 @@ public class CastorXMLUtility
mappingContext.setClassLoader(defaultClassLoader);
// if the aAppProperties contains castor properties then
- if (aAppProperties.containsKey(CASTOR_XML_SERIALIZER_FACTORY)) {
+ if (aAppProperties!= null && aAppProperties.containsKey(CASTOR_XML_SERIALIZER_FACTORY)) {
mappingContext.setProperty(CASTOR_XML_SERIALIZER_FACTORY,
aAppProperties
diff --git a/src/main/java/com/c2kernel/utils/XmlElementParser.java b/src/main/java/com/c2kernel/utils/XmlElementParser.java
index 2e86763..7601731 100644
--- a/src/main/java/com/c2kernel/utils/XmlElementParser.java
+++ b/src/main/java/com/c2kernel/utils/XmlElementParser.java
@@ -6,6 +6,7 @@ import java.util.Vector;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
@@ -13,93 +14,92 @@ import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
-public class XmlElementParser
-{
- public static String[] parse(String data, String xpath)
- {
- Vector<String> returnData = new Vector<String>();
- String[] returnArray = new String[0];
- try
- {
- DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
- DocumentBuilder builder = factory.newDocumentBuilder();
- StringReader is = new StringReader(data);
- Document doc = builder.parse(new InputSource(is));
- StringTokenizer pathTokens = new StringTokenizer(xpath, "/");
- int taille = pathTokens.countTokens();
- String[] pathElements = new String[taille];
- int i=taille;
- while (pathTokens.hasMoreElements())
- pathElements[--i] = pathTokens.nextToken();
+public class XmlElementParser {
+ public static String[] parse(String data, String xpath) {
+ Vector<String> returnData = new Vector<String>();
+ String[] returnArray = new String[0];
+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder builder;
+ try {
+ builder = factory.newDocumentBuilder();
+ } catch (ParserConfigurationException e) {
+ Logger.error(e);
+ throw new RuntimeException("Could not create XML Document Builder");
+ }
+ StringReader is = new StringReader(data);
+ Document doc;
+ try {
+ doc = builder.parse(new InputSource(is));
+ } catch (Exception e) {
+ Logger.error(e);
+ throw new RuntimeException("Parser malfunction");
+ }
+ StringTokenizer pathTokens = new StringTokenizer(xpath, "/");
+ int taille = pathTokens.countTokens();
+ String[] pathElements = new String[taille];
+ int i = taille;
+ while (pathTokens.hasMoreElements())
+ pathElements[--i] = pathTokens.nextToken();
- if (Logger.doLog(6)) {
- Logger.msg(6, "Path elements:");
- for (String pathElement : pathElements)
- Logger.debug(6, pathElement);
- }
+ if (Logger.doLog(6)) {
+ Logger.msg(6, "Path elements:");
+ for (String pathElement : pathElements)
+ Logger.debug(6, pathElement);
+ }
- Logger.msg(6, "Looking for attribute "+pathElements[0]+" in "+pathElements[1]);
- NodeList nl = doc.getElementsByTagName(pathElements[1]);
- for (int j = 0; j < nl.getLength(); j++)
- {
- Logger.msg(6, "Found one");
- Element e = (Element)nl.item(j);
- boolean match=true;
- Node child=e;
- for (int k=2;k<taille&&match;k++)
- {
- Logger.msg(6, "Checking parent "+pathElements[k]);
- child = child.getParentNode();
- if (!child.getNodeName().equals(pathElements[k]))
- {
- Logger.msg(6, "No match for "+child.getNodeName());
- match=false;
- }
- else
- Logger.msg(6, "Match");
- }
- if (match&&e.hasAttribute(pathElements[0])) {
- Logger.msg(6, "Matching Attribute "+pathElements[0]+"="+e.getAttribute(pathElements[0]));
- returnData.add(e.getAttribute(pathElements[0]));
- }
- }
+ Logger.msg(6, "Looking for attribute " + pathElements[0] + " in "
+ + pathElements[1]);
+ NodeList nl = doc.getElementsByTagName(pathElements[1]);
+ for (int j = 0; j < nl.getLength(); j++) {
+ Logger.msg(6, "Found one");
+ Element e = (Element) nl.item(j);
+ boolean match = true;
+ Node child = e;
+ for (int k = 2; k < taille && match; k++) {
+ Logger.msg(6, "Checking parent " + pathElements[k]);
+ child = child.getParentNode();
+ if (!child.getNodeName().equals(pathElements[k])) {
+ Logger.msg(6, "No match for " + child.getNodeName());
+ match = false;
+ } else
+ Logger.msg(6, "Match");
+ }
+ if (match && e.hasAttribute(pathElements[0])) {
+ Logger.msg(
+ 6,
+ "Matching Attribute " + pathElements[0] + "="
+ + e.getAttribute(pathElements[0]));
+ returnData.add(e.getAttribute(pathElements[0]));
+ }
+ }
- Logger.msg(6, "Looking for element "+pathElements[0]);
- nl = doc.getElementsByTagName(pathElements[0]);
- for (int j = 0; j < nl.getLength(); j++)
- {
- Logger.msg(6, "Found one");
- Element e = (Element)nl.item(j);
- boolean match=true;
- Node child=e;
- for (int k=1;k<taille&&match;k++)
- {
- Logger.msg(6, "Checking parent "+pathElements[k]);
- child = child.getParentNode();
- if (!child.getNodeName().equals(pathElements[k]))
- {
- Logger.msg(6, "No match for "+child.getNodeName());
- match=false;
- }
- else
- Logger.msg(6, "Match");
- }
- if (match)
- {
- String s =e.getFirstChild().getNodeValue();
- Logger.msg(6, "Found Element "+pathElements[0]+"="+s);
- if (s!=null) returnData.add(s);
- }
- }
- }
- catch (Exception e)
- {
- //Logger.error(e);
- }
- Logger.msg(3, returnData.size()+" values found for "+xpath);
- returnArray=new String[returnData.size()];
- for (int i=0;i<returnArray.length;i++)
- returnArray[i] = returnData.get(i);
- return returnArray;
- }
+ Logger.msg(6, "Looking for element " + pathElements[0]);
+ nl = doc.getElementsByTagName(pathElements[0]);
+ for (int j = 0; j < nl.getLength(); j++) {
+ Logger.msg(6, "Found one");
+ Element e = (Element) nl.item(j);
+ boolean match = true;
+ Node child = e;
+ for (int k = 1; k < taille && match; k++) {
+ Logger.msg(6, "Checking parent " + pathElements[k]);
+ child = child.getParentNode();
+ if (!child.getNodeName().equals(pathElements[k])) {
+ Logger.msg(6, "No match for " + child.getNodeName());
+ match = false;
+ } else
+ Logger.msg(6, "Match");
+ }
+ if (match) {
+ String s = e.getFirstChild().getNodeValue();
+ Logger.msg(6, "Found Element " + pathElements[0] + "=" + s);
+ if (s != null)
+ returnData.add(s);
+ }
+ }
+ Logger.msg(3, returnData.size() + " values found for " + xpath);
+ returnArray = new String[returnData.size()];
+ for (int j = 0; j < returnArray.length; j++)
+ returnArray[j] = returnData.get(j);
+ return returnArray;
+ }
}