[jbpm-commits] JBoss JBPM SVN: r2736 - in projects/spec/trunk/modules: api/src/main/java/org/jbpm/api/runtime and 16 other directories.
do-not-reply at jboss.org
do-not-reply at jboss.org
Sat Nov 1 06:45:22 EDT 2008
Author: thomas.diesler at jboss.com
Date: 2008-11-01 06:45:21 -0400 (Sat, 01 Nov 2008)
New Revision: 2736
Modified:
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/SequenceFlow.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/Token.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/ProcessCatalog.java
projects/spec/trunk/modules/cts/.classpath
projects/spec/trunk/modules/dialects/api10/.classpath
projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/ProcessMarshaller.java
projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/ProcessUnmarshaller.java
projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/model/JAXBFlow.java
projects/spec/trunk/modules/dialects/jpdl32/.classpath
projects/spec/trunk/modules/dialects/stp/.classpath
projects/spec/trunk/modules/dialects/xpdl21/.classpath
projects/spec/trunk/modules/ri/.classpath
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/AbstractElementImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/EndEventImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/EventImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ExclusiveGatewayImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GateImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GatewayImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GroupImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/InclusiveGatewayImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/InputSetImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/MessageImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/NodeImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/OutputSetImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ParallelGatewayImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessDefinitionImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessStructureImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/SequenceFlowImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/StartEventImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/TaskImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/UserTaskImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingToken.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RunnableToken.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RuntimeContext.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TokenImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ExecutionServiceImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/HibernatePersistenceServiceImpl.java
projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/EndEventPersistenceTest.java
projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/NodePersistenceTest.java
projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/TaskPersistenceTest.java
projects/spec/trunk/modules/ri/src/test/resources/log4j.xml
projects/spec/trunk/modules/samples/airticket/client/.classpath
projects/spec/trunk/modules/samples/airticket/server/.classpath
Log:
Remove FetchType.EAGER
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/SequenceFlow.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/SequenceFlow.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/SequenceFlow.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -52,19 +52,14 @@
* Object is connected from. Note: there are restrictions as to what objects Sequence
* Flow and Message Flow can connect.
*/
- Node getSourceRef();
+ String getSourceRef();
/**
* TargetRef is an attribute that identifies which Graphical Element the Connecting
* Object is connected to. Note: there are restrictions as to what objects Sequence
* Flow and Message Flow can connect.
*/
- Node getTargetRef();
-
- /**
- * Get the required target name
- */
- String getTargetName();
+ String getTargetRef();
/**
* By default, the ConditionType of a Sequence Flow is None. This means that there is no evaluation at runtime to
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/Token.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/Token.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/Token.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -24,6 +24,7 @@
// $Id$
import org.hibernate.Session;
+import org.jbpm.api.model.Process;
import org.jbpm.api.model.SequenceFlow;
/**
@@ -56,6 +57,11 @@
TokenStatus getTokenStatus();
/**
+ * Get the associated {@link Process}
+ */
+ Process getProcess();
+
+ /**
* Get the associated {@link ExecutionContext}
*/
ExecutionContext getExecutionContext();
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/ProcessCatalog.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/ProcessCatalog.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/ProcessCatalog.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -95,14 +95,12 @@
SequenceFlow startFlow = start.getOutFlow();
TestCase.assertNotNull("Start flow not null", startFlow);
- TestCase.assertEquals("Task", startFlow.getTargetName());
- TestCase.assertSame(start, startFlow.getSourceRef());
- TestCase.assertSame(task, startFlow.getTargetRef());
+ TestCase.assertEquals("Task", startFlow.getTargetRef());
+ TestCase.assertEquals("Start", startFlow.getSourceRef());
SequenceFlow taskFlow = task.getOutFlow();
TestCase.assertNotNull("Task flow not null", taskFlow);
- TestCase.assertEquals("End", taskFlow.getTargetName());
- TestCase.assertSame(task, taskFlow.getSourceRef());
- TestCase.assertSame(end, taskFlow.getTargetRef());
+ TestCase.assertEquals("End", taskFlow.getTargetRef());
+ TestCase.assertEquals("Task", taskFlow.getSourceRef());
}
}
Modified: projects/spec/trunk/modules/cts/.classpath
===================================================================
--- projects/spec/trunk/modules/cts/.classpath 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/cts/.classpath 2008-11-01 10:45:21 UTC (rev 2736)
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
- <classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
+ <classpathentry kind="src" path="src/test/java"/>
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="output" path="target/classes"/>
Modified: projects/spec/trunk/modules/dialects/api10/.classpath
===================================================================
--- projects/spec/trunk/modules/dialects/api10/.classpath 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/dialects/api10/.classpath 2008-11-01 10:45:21 UTC (rev 2736)
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="src" output="target/classes" path="src/main/java"/>
+ <classpathentry kind="src" path="src/main/java"/>
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="output" path="target/classes"/>
Modified: projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/ProcessMarshaller.java
===================================================================
--- projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/ProcessMarshaller.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/ProcessMarshaller.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -423,7 +423,7 @@
{
throw new NotImplementedException("JBPM-1382", "Message Flow");
}
- jaxb.setTargetName(flow.getTargetName());
+ jaxb.setTargetRef(flow.getTargetRef());
return jaxb;
}
Modified: projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/ProcessUnmarshaller.java
===================================================================
--- projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/ProcessUnmarshaller.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/ProcessUnmarshaller.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -359,15 +359,15 @@
if (jaxbSeq.getConditionType() == ConditionType.Expression)
{
JAXBExpression jaxbExpr = jaxbSeq.getCondition();
- gwBuilder.addConditionalGate(jaxbFlow.getTargetName(), jaxbExpr.getLang(), jaxbExpr.getBody());
+ gwBuilder.addConditionalGate(jaxbFlow.getTargetRef(), jaxbExpr.getLang(), jaxbExpr.getBody());
}
else if (jaxbSeq.getConditionType() == ConditionType.Default)
{
- gwBuilder.addDefaultGate(jaxbFlow.getTargetName());
+ gwBuilder.addDefaultGate(jaxbFlow.getTargetRef());
}
else
{
- gwBuilder.addGate(jaxbFlow.getTargetName());
+ gwBuilder.addGate(jaxbFlow.getTargetRef());
}
}
else if (jaxbFlow instanceof JAXBMessageFlow)
@@ -390,7 +390,7 @@
{
if (jaxbFlow instanceof JAXBSequenceFlow)
{
- procBuilder.addSequenceFlow(jaxbFlow.getTargetName());
+ procBuilder.addSequenceFlow(jaxbFlow.getTargetRef());
}
else if (jaxbFlow instanceof JAXBMessageFlow)
{
Modified: projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/model/JAXBFlow.java
===================================================================
--- projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/model/JAXBFlow.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/model/JAXBFlow.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -39,16 +39,16 @@
@XmlType(name = "Flow")
public class JAXBFlow extends JAXBGraphicalElement
{
- private String targetName;
+ private String targetRef;
- public String getTargetName()
+ public String getTargetRef()
{
- return targetName;
+ return targetRef;
}
@XmlAttribute(name = "to", required = true)
- public void setTargetName(String targetName)
+ public void setTargetRef(String targetRef)
{
- this.targetName = targetName;
+ this.targetRef = targetRef;
}
}
\ No newline at end of file
Modified: projects/spec/trunk/modules/dialects/jpdl32/.classpath
===================================================================
--- projects/spec/trunk/modules/dialects/jpdl32/.classpath 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/dialects/jpdl32/.classpath 2008-11-01 10:45:21 UTC (rev 2736)
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="src" output="target/classes" path="src/main/java"/>
- <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
+ <classpathentry kind="src" path="src/main/java"/>
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="output" path="target/classes"/>
Modified: projects/spec/trunk/modules/dialects/stp/.classpath
===================================================================
--- projects/spec/trunk/modules/dialects/stp/.classpath 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/dialects/stp/.classpath 2008-11-01 10:45:21 UTC (rev 2736)
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="src" output="target/classes" path="src/main/java"/>
- <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
+ <classpathentry kind="src" path="src/main/java"/>
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="output" path="target/classes"/>
Modified: projects/spec/trunk/modules/dialects/xpdl21/.classpath
===================================================================
--- projects/spec/trunk/modules/dialects/xpdl21/.classpath 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/dialects/xpdl21/.classpath 2008-11-01 10:45:21 UTC (rev 2736)
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="src" output="target/classes" path="src/main/java"/>
- <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
+ <classpathentry kind="src" path="src/main/java"/>
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="output" path="target/classes"/>
Modified: projects/spec/trunk/modules/ri/.classpath
===================================================================
--- projects/spec/trunk/modules/ri/.classpath 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/.classpath 2008-11-01 10:45:21 UTC (rev 2736)
@@ -1,9 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="src" output="target/classes" path="src/main/java"/>
- <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
+ <classpathentry kind="src" path="src/main/java"/>
<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
- <classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="output" path="target/classes"/>
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/AbstractElementImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/AbstractElementImpl.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/AbstractElementImpl.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -24,11 +24,12 @@
//$Id$
import javax.management.ObjectName;
-import javax.persistence.Column;
+import javax.persistence.Basic;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.MappedSuperclass;
+import org.hibernate.Session;
import org.jbpm.api.InvalidProcessException;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.model.Process;
@@ -49,7 +50,7 @@
@Id @GeneratedValue
protected Integer id;
- @Column
+ @Basic
private String engineName;
protected AbstractElementImpl(ProcessEngine engine)
@@ -81,6 +82,9 @@
return ProcessEngine.getProcessEngine(engineName);
}
+ /** Initializes the persistent object */
+ public abstract void initialize(Session session);
+
protected void create(ProcessDefinition procDef)
{
// nothing to do
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/EndEventImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/EndEventImpl.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/EndEventImpl.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -103,7 +103,7 @@
public void setInFlow(SequenceFlowImpl inFlow)
{
inFlow.setTargetIndex(inFlows.size());
- inFlow.setTargetRef(this);
+ inFlow.setTargetRef(getName());
inFlows.add(inFlow);
}
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/EventImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/EventImpl.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/EventImpl.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -27,7 +27,6 @@
import javax.persistence.CascadeType;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
-import javax.persistence.FetchType;
import javax.persistence.MappedSuperclass;
import javax.persistence.OneToOne;
@@ -66,10 +65,10 @@
@Enumerated(EnumType.STRING)
protected EventDetailType detailType = EventDetailType.None;
- @OneToOne(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = MessageImpl.class)
+ @OneToOne(cascade = { CascadeType.ALL }, targetEntity = MessageImpl.class)
private Message messageRef;
- @OneToOne(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = SignalImpl.class)
+ @OneToOne(cascade = { CascadeType.ALL }, targetEntity = SignalImpl.class)
private Signal signalRef;
public EventImpl(ProcessStructure procStruct, String name)
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ExclusiveGatewayImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ExclusiveGatewayImpl.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ExclusiveGatewayImpl.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -124,7 +124,7 @@
public void execute(TokenExecutor tokenExecutor, Token token)
{
- Node sourceRef = token.getSequenceFlow().getSourceRef();
+ String sourceRef = token.getSequenceFlow().getSourceRef();
// Schedule the first token that arrives
if (token == receivedTokens.get(0))
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GateImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GateImpl.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GateImpl.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -29,7 +29,6 @@
import javax.persistence.CascadeType;
import javax.persistence.Entity;
-import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;
@@ -65,11 +64,11 @@
@GeneratedValue
protected Integer id;
- @OneToOne(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = SequenceFlowImpl.class)
+ @OneToOne(cascade = { CascadeType.ALL }, targetEntity = SequenceFlowImpl.class)
protected SequenceFlow outFlow;
@IndexColumn(name = "assignIndex")
- @OneToMany(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = AssignmentImpl.class)
+ @OneToMany(cascade = { CascadeType.ALL }, targetEntity = AssignmentImpl.class)
private List<Assignment> assignments = new ArrayList<Assignment>();
@Override
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GatewayImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GatewayImpl.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GatewayImpl.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -103,7 +103,7 @@
public void addOutFlow(SequenceFlowImpl outFlow)
{
outFlow.setSourceIndex(outFlows.size());
- outFlow.setSourceRef(this);
+ outFlow.setSourceRef(getName());
outFlows.add(outFlow);
}
@@ -111,7 +111,7 @@
public void addInFlow(SequenceFlowImpl inFlow)
{
inFlow.setTargetIndex(inFlows.size());
- inFlow.setTargetRef(this);
+ inFlow.setTargetRef(getName());
inFlows.add(inFlow);
}
@@ -139,7 +139,7 @@
SequenceFlow gate = null;
for (SequenceFlow aux : outFlows)
{
- if (aux.getTargetName().equals(targetName))
+ if (aux.getTargetRef().equals(targetName))
{
gate = aux;
break;
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GroupImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GroupImpl.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GroupImpl.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -30,7 +30,6 @@
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
-import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToOne;
@@ -53,7 +52,7 @@
@Id @GeneratedValue
protected int id;
- @OneToOne(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = PropertySupportImpl.class)
+ @OneToOne(cascade = { CascadeType.ALL }, targetEntity = PropertySupportImpl.class)
private PropertySupport propSupport = new PropertySupportImpl();
@Enumerated(EnumType.STRING)
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/InclusiveGatewayImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/InclusiveGatewayImpl.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/InclusiveGatewayImpl.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -84,7 +84,7 @@
public void execute(TokenExecutor tokenExecutor, Token token)
{
MutableToken mutableToken = (MutableToken)token;
- Node sourceRef = token.getSequenceFlow().getSourceRef();
+ String sourceRef = token.getSequenceFlow().getSourceRef();
log.debug("Propagate token comming from: " + sourceRef);
// Get the applicable gates
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/InputSetImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/InputSetImpl.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/InputSetImpl.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -28,7 +28,6 @@
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
-import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToOne;
@@ -54,7 +53,7 @@
@Basic
private int setIndex;
- @OneToOne(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = PropertySupportImpl.class)
+ @OneToOne(cascade = { CascadeType.ALL }, targetEntity = PropertySupportImpl.class)
protected PropertySupport propSupport = new PropertySupportImpl();
int getSetIndex()
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/MessageImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/MessageImpl.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/MessageImpl.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -28,7 +28,6 @@
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
-import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToOne;
@@ -60,13 +59,13 @@
@Basic
private String name;
- @OneToOne(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = ParticipantImpl.class)
+ @OneToOne(cascade = { CascadeType.ALL }, targetEntity = ParticipantImpl.class)
private Participant fromRef;
- @OneToOne(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = ParticipantImpl.class)
+ @OneToOne(cascade = { CascadeType.ALL }, targetEntity = ParticipantImpl.class)
private Participant toRef;
- @OneToOne(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = PropertySupportImpl.class)
+ @OneToOne(cascade = { CascadeType.ALL }, targetEntity = PropertySupportImpl.class)
protected PropertySupport propSupport = new PropertySupportImpl();
public MessageImpl(String name)
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/NodeImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/NodeImpl.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/NodeImpl.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -31,13 +31,15 @@
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
-import javax.persistence.FetchType;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
+import javax.persistence.JoinTable;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
+import org.hibernate.Hibernate;
+import org.hibernate.Session;
import org.hibernate.annotations.IndexColumn;
import org.jbpm.api.InvalidProcessException;
import org.jbpm.api.NameNotUniqueException;
@@ -91,18 +93,21 @@
private int nodeIndex;
@IndexColumn(name = "targetIndex")
- @OneToMany(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, mappedBy = "targetRef", targetEntity = SequenceFlowImpl.class)
+ @JoinTable(name = "BPMNodeInFlows")
+ @OneToMany(cascade = { CascadeType.ALL }, targetEntity = SequenceFlowImpl.class)
protected List<SequenceFlow> inFlows = new ArrayList<SequenceFlow>();
@IndexColumn(name = "sourceIndex")
- @OneToMany(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, mappedBy = "sourceRef", targetEntity = SequenceFlowImpl.class)
+ @JoinTable(name = "BPMNodeOutFlows")
+ @OneToMany(cascade = { CascadeType.ALL }, targetEntity = SequenceFlowImpl.class)
protected List<SequenceFlow> outFlows = new ArrayList<SequenceFlow>();
- @OneToOne(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = PropertySupportImpl.class)
+ @OneToOne(cascade = { CascadeType.ALL }, targetEntity = PropertySupportImpl.class)
protected PropertySupport propSupport = new PropertySupportImpl();
@IndexColumn(name = "assignIndex")
- @OneToMany(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = AssignmentImpl.class)
+ @JoinTable(name = "BPMNodeAssignments")
+ @OneToMany(cascade = { CascadeType.ALL }, targetEntity = AssignmentImpl.class)
private List<Assignment> assignments = new ArrayList<Assignment>();
@Basic
@@ -182,7 +187,7 @@
{
this.groupRef = groupRef;
}
-
+
@Override
public Property getProperty(String name)
{
@@ -233,12 +238,12 @@
public List<SequenceFlow> getInFlows()
{
- return inFlows;
+ return Collections.unmodifiableList(inFlows);
}
public List<SequenceFlow> getOutFlows()
{
- return outFlows;
+ return Collections.unmodifiableList(outFlows);
}
public void execute(RuntimeContext rtContext)
@@ -398,6 +403,16 @@
checkAndInitializeStructure(procStruct);
}
+ @Override
+ public void initialize(Session session)
+ {
+ Hibernate.initialize(this);
+ Hibernate.initialize(propSupport);
+ Hibernate.initialize(assignments);
+ Hibernate.initialize(outFlows);
+ Hibernate.initialize(inFlows);
+ }
+
private void checkAndInitializeStructure(ProcessStructure procStruct)
{
// Check required name
@@ -419,7 +434,7 @@
Group procGroup = procStruct.getGroup(grpName);
if (procGroup == null)
throw new InvalidProcessException("Cannot obtain group for name: " + grpName);
-
+
this.groupRef = procGroup;
}
@@ -467,7 +482,7 @@
{
if (flow != null)
{
- String name = flow.getTargetName();
+ String name = flow.getTargetRef();
Node target = procStruct.getNode(name);
if (target == null)
throw new InvalidProcessException("Cannot find target for out flow: " + name);
@@ -487,8 +502,8 @@
throw new InvalidProcessException("Target does not support in flow: " + target);
}
- flow.setSourceRef(this);
- flow.setTargetRef(target);
+ flow.setSourceRef(getName());
+ flow.setTargetRef(target.getName());
}
}
}
\ No newline at end of file
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/OutputSetImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/OutputSetImpl.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/OutputSetImpl.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -28,7 +28,6 @@
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
-import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToOne;
@@ -54,7 +53,7 @@
@Basic
private int setIndex;
- @OneToOne(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = PropertySupportImpl.class)
+ @OneToOne(cascade = { CascadeType.ALL }, targetEntity = PropertySupportImpl.class)
protected PropertySupport propSupport = new PropertySupportImpl();
int getSetIndex()
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ParallelGatewayImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ParallelGatewayImpl.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ParallelGatewayImpl.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -199,7 +199,7 @@
private TokenImpl getMergedTokens()
{
- TokenImpl mergedToken = new TokenImpl(getProcessEngine(), null);
+ TokenImpl mergedToken = new TokenImpl(getProcess(), null);
for (Token auxToken : mergeTokens)
{
log.debug("mergeToken: " + auxToken);
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessDefinitionImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessDefinitionImpl.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessDefinitionImpl.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -34,11 +34,12 @@
import javax.management.ObjectName;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
-import javax.persistence.FetchType;
import javax.persistence.Lob;
import javax.persistence.OneToOne;
import javax.persistence.Transient;
+import org.hibernate.Hibernate;
+import org.hibernate.Session;
import org.jbpm.api.Constants;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.model.Assignment;
@@ -67,7 +68,7 @@
// provide logging
final static Logger log = LoggerFactory.getLogger(ProcessDefinitionImpl.class);
- @OneToOne(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = ProcessStructureImpl.class)
+ @OneToOne(cascade = { CascadeType.ALL }, targetEntity = ProcessStructureImpl.class)
private ProcessStructure procStruct;
@Lob
@@ -232,6 +233,14 @@
}
@Override
+ public void initialize(Session session)
+ {
+ Hibernate.initialize(this);
+ ProcessStructureImpl procStructImpl = (ProcessStructureImpl)procStruct;
+ procStructImpl.initialize(session);
+ }
+
+ @Override
protected void create(ProcessDefinition procDef)
{
super.create(procDef);
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessImpl.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessImpl.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -31,11 +31,12 @@
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
-import javax.persistence.FetchType;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
import javax.persistence.Transient;
+import org.hibernate.Hibernate;
+import org.hibernate.Session;
import org.jbpm.api.Constants;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.model.Assignment;
@@ -46,7 +47,6 @@
import org.jbpm.api.model.ProcessDefinition;
import org.jbpm.api.model.Property;
import org.jbpm.api.model.builder.ObjectNameFactory;
-import org.jbpm.api.model.internal.ProcessStructure;
import org.jbpm.api.runtime.Attachments;
import org.jbpm.api.service.ExecutionService;
import org.jbpm.api.service.ProcessService;
@@ -71,10 +71,10 @@
private ProcessStatus status = ProcessStatus.None;
@ManyToOne(targetEntity = ProcessDefinitionImpl.class)
- private ProcessDefinition procDef;
+ private ProcessDefinitionImpl procDef;
- @OneToOne(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = ProcessStructureImpl.class)
- private ProcessStructure procStruct;
+ @OneToOne(cascade = { CascadeType.ALL }, targetEntity = ProcessStructureImpl.class)
+ private ProcessStructureImpl procStruct;
@Transient
private transient RuntimeException runtimeException;
@@ -276,35 +276,39 @@
}
@Override
+ public void initialize(Session session)
+ {
+ Hibernate.initialize(this);
+ procDef.initialize(session);
+ procStruct.initialize(session);
+ }
+
+ @Override
protected void create(Process proc)
{
super.create(proc);
- ProcessStructureImpl procStructImpl = (ProcessStructureImpl)procStruct;
- procStructImpl.create(proc);
+ procStruct.create(proc);
}
@Override
public void register(Process proc)
{
super.register(proc);
- ProcessStructureImpl procStructImpl = (ProcessStructureImpl)procStruct;
- procStructImpl.register(proc);
+ procStruct.register(proc);
}
@Override
public void unregister(Process proc)
{
super.unregister(proc);
- ProcessStructureImpl procStructImpl = (ProcessStructureImpl)procStruct;
- procStructImpl.unregister(proc);
+ procStruct.unregister(proc);
}
@Override
protected void destroy(Process proc)
{
super.destroy(proc);
- ProcessStructureImpl procStructImpl = (ProcessStructureImpl)procStruct;
- procStructImpl.destroy(proc);
+ procStruct.destroy(proc);
}
public String toString()
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessStructureImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessStructureImpl.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessStructureImpl.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -32,11 +32,12 @@
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
-import javax.persistence.FetchType;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Transient;
+import org.hibernate.Hibernate;
+import org.hibernate.Session;
import org.hibernate.annotations.IndexColumn;
import org.jbpm.api.Constants;
import org.jbpm.api.InvalidProcessException;
@@ -73,25 +74,25 @@
@Basic
private String name;
+ @OneToOne(cascade = { CascadeType.ALL }, targetEntity = PropertySupportImpl.class)
+ protected PropertySupport propSupport = new PropertySupportImpl();
+
@IndexColumn(name = "nodeIndex")
- @OneToMany(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, mappedBy = "procStruct", targetEntity = NodeImpl.class)
+ @OneToMany(cascade = { CascadeType.ALL }, mappedBy = "procStruct", targetEntity = NodeImpl.class)
private List<Node> nodes = new ArrayList<Node>();
- @OneToOne(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = PropertySupportImpl.class)
- protected PropertySupport propSupport = new PropertySupportImpl();
-
@IndexColumn(name = "msgIndex")
- @OneToMany(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = MessageImpl.class)
+ @OneToMany(cascade = { CascadeType.ALL }, targetEntity = MessageImpl.class)
private List<Message> messages = new ArrayList<Message>();
@IndexColumn(name = "assignIndex")
- @OneToMany(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = AssignmentImpl.class)
+ @OneToMany(cascade = { CascadeType.ALL }, targetEntity = AssignmentImpl.class)
private List<Assignment> assignments = new ArrayList<Assignment>();
@IndexColumn(name = "groupIndex")
- @OneToMany(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = GroupImpl.class)
+ @OneToMany(cascade = { CascadeType.ALL }, targetEntity = GroupImpl.class)
private List<Group> groups = new ArrayList<Group>();
-
+
public ProcessStructureImpl(ProcessEngine engine, String name)
{
super(engine);
@@ -257,13 +258,13 @@
{
return propSupport.removeProperty(name);
}
-
+
public void addGroup(GroupImpl groupImpl)
{
groupImpl.setGroupIndex(groups.size());
groups.add(groupImpl);
}
-
+
@Override
public Group getGroup(String grpName)
{
@@ -286,6 +287,22 @@
}
@Override
+ public void initialize(Session session)
+ {
+ Hibernate.initialize(this);
+ Hibernate.initialize(propSupport);
+ Hibernate.initialize(messages);
+ Hibernate.initialize(assignments);
+ Hibernate.initialize(groups);
+
+ for (Node node : getNodes())
+ {
+ AbstractElementImpl elImpl = (AbstractElementImpl)node;
+ elImpl.initialize(session);
+ }
+ }
+
+ @Override
public void create(ProcessDefinition procDef)
{
super.create(procDef);
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/SequenceFlowImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/SequenceFlowImpl.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/SequenceFlowImpl.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -28,14 +28,11 @@
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
-import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
-import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
import org.jbpm.api.model.Expression;
-import org.jbpm.api.model.Node;
import org.jbpm.api.model.SequenceFlow;
/**
@@ -64,25 +61,22 @@
private ConditionType conditionType = ConditionType.None;
@Basic
- private String targetName;
+ private String targetRef;
- @ManyToOne(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = NodeImpl.class)
- private Node sourceRef;
+ @Basic
+ private String sourceRef;
- @ManyToOne(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = NodeImpl.class)
- private Node targetRef;
-
- @OneToOne(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = ExpressionImpl.class)
+ @OneToOne(cascade = { CascadeType.ALL }, targetEntity = ExpressionImpl.class)
private Expression conditionExpression;
- public SequenceFlowImpl(String targetName)
+ public SequenceFlowImpl(String targetRef)
{
- this.targetName = targetName;
+ this.targetRef = targetRef;
}
- public SequenceFlowImpl(String targetName, ConditionType type, Expression expr)
+ public SequenceFlowImpl(String targetRef, ConditionType type, Expression expr)
{
- this.targetName = targetName;
+ this.targetRef = targetRef;
this.conditionType = type;
this.conditionExpression = (ExpressionImpl)expr;
}
@@ -112,36 +106,35 @@
this.targetIndex = targetIndex;
}
- public Node getSourceRef()
+ @Override
+ public String getSourceRef()
{
return sourceRef;
}
- protected void setSourceRef(Node source)
+ protected void setSourceRef(String sourceRef)
{
- this.sourceRef = source;
+ this.sourceRef = sourceRef;
}
- public Node getTargetRef()
+ @Override
+ public String getTargetRef()
{
return targetRef;
}
- protected void setTargetRef(Node target)
+ protected void setTargetRef(String targetRef)
{
- this.targetRef = target;
+ this.targetRef = targetRef;
}
- public String getTargetName()
- {
- return targetName;
- }
-
+ @Override
public ConditionType getConditionType()
{
return conditionType;
}
+ @Override
public Expression getConditionExpression()
{
return conditionExpression;
@@ -149,17 +142,6 @@
public String toString()
{
- Node sourceRef = getSourceRef();
- Node targetRef = getTargetRef();
-
- String srcName = null;
- if (sourceRef != null)
- srcName = (sourceRef.getName() != null ? sourceRef.getName() : sourceRef.getKey().getCanonicalName());
-
- String tarName = null;
- if (targetRef != null)
- tarName = (targetRef.getName() != null ? targetRef.getName() : targetRef.getKey().getCanonicalName());
-
- return "SequenceFlow[" + srcName + "->" + tarName + "]";
+ return "SequenceFlow[" + sourceRef + "->" + targetRef + "]";
}
}
\ No newline at end of file
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/StartEventImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/StartEventImpl.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/StartEventImpl.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -108,7 +108,7 @@
public void setOutFlow(SequenceFlowImpl outFlow)
{
outFlow.setSourceIndex(outFlows.size());
- outFlow.setSourceRef(this);
+ outFlow.setSourceRef(getName());
outFlows.add(outFlow);
}
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/TaskImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/TaskImpl.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/TaskImpl.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -32,7 +32,6 @@
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
-import javax.persistence.FetchType;
import javax.persistence.OneToMany;
import javax.persistence.Transient;
@@ -78,15 +77,15 @@
protected TaskType taskType;
@IndexColumn(name = "setIndex")
- @OneToMany(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = InputSetImpl.class)
+ @OneToMany(cascade = { CascadeType.ALL }, targetEntity = InputSetImpl.class)
private List<InputSet> inputSets = new ArrayList<InputSet>();
@IndexColumn(name = "setIndex")
- @OneToMany(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = OutputSetImpl.class)
+ @OneToMany(cascade = { CascadeType.ALL }, targetEntity = OutputSetImpl.class)
private List<OutputSet> outputSets = new ArrayList<OutputSet>();
@IndexColumn(name = "exprIndex")
- @OneToMany(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = ExpressionImpl.class)
+ @OneToMany(cascade = { CascadeType.ALL }, targetEntity = ExpressionImpl.class)
private List<Expression> ioRules = new ArrayList<Expression>();
public TaskImpl(ProcessStructure procStruct, TaskType taskType, String name)
@@ -125,7 +124,7 @@
public void setInFlow(SequenceFlowImpl inFlow)
{
inFlow.setTargetIndex(inFlows.size());
- inFlow.setTargetRef(this);
+ inFlow.setTargetRef(getName());
inFlows.add(inFlow);
}
@@ -140,7 +139,7 @@
public void setOutFlow(SequenceFlowImpl outFlow)
{
outFlow.setSourceIndex(outFlows.size());
- outFlow.setSourceRef(this);
+ outFlow.setSourceRef(getName());
outFlows.add(outFlow);
}
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/UserTaskImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/UserTaskImpl.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/UserTaskImpl.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -29,7 +29,6 @@
import javax.management.ObjectName;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
-import javax.persistence.FetchType;
import javax.persistence.OneToOne;
import javax.persistence.Transient;
@@ -62,10 +61,10 @@
final static Logger log = LoggerFactory.getLogger(UserTaskImpl.class);
- @OneToOne(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = MessageImpl.class)
+ @OneToOne(cascade = { CascadeType.ALL }, targetEntity = MessageImpl.class)
protected MessageImpl outMessageRef;
- @OneToOne(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = MessageImpl.class)
+ @OneToOne(cascade = { CascadeType.ALL }, targetEntity = MessageImpl.class)
protected MessageImpl inMessageRef;
@Transient
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingToken.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingToken.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingToken.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -25,6 +25,7 @@
import org.hibernate.Session;
import org.jbpm.api.model.Node;
+import org.jbpm.api.model.Process;
import org.jbpm.api.model.SequenceFlow;
import org.jbpm.api.runtime.ExecutionContext;
import org.jbpm.api.runtime.Token;
@@ -44,9 +45,10 @@
{
this.delegateToken = token;
- Node targetRef = token.getSequenceFlow().getTargetRef();
+ String targetRef = token.getSequenceFlow().getTargetRef();
+ Node targetNode = token.getProcess().getNode(targetRef);
ExecutionContext exContext = token.getExecutionContext();
- this.delegateContext = new DelegatingExecutionContext(targetRef, exContext);
+ this.delegateContext = new DelegatingExecutionContext(targetNode, exContext);
}
@Override
@@ -80,6 +82,12 @@
}
@Override
+ public Process getProcess()
+ {
+ return delegateToken.getProcess();
+ }
+
+ @Override
public void mergeToken(Token token)
{
delegateToken.mergeToken(token);
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RunnableToken.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RunnableToken.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RunnableToken.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -79,7 +79,8 @@
while (continueTokenThread())
{
// Get the target node
- Node node = token.getSequenceFlow().getTargetRef();
+ String targetRef = token.getSequenceFlow().getTargetRef();
+ Node node = proc.getNode(targetRef);
// Synchronize on the target Node
synchronized (node)
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RuntimeContext.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RuntimeContext.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RuntimeContext.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -57,7 +57,8 @@
public Node getNode()
{
- return token.getSequenceFlow().getTargetRef();
+ String targetRef = token.getSequenceFlow().getTargetRef();
+ return token.getProcess().getNode(targetRef);
}
public Token getToken()
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TokenImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TokenImpl.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TokenImpl.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -26,6 +26,7 @@
import org.hibernate.Session;
import org.jboss.util.id.UID;
import org.jbpm.api.client.ProcessEngine;
+import org.jbpm.api.model.Process;
import org.jbpm.api.model.SequenceFlow;
import org.jbpm.api.runtime.Attachments;
import org.jbpm.api.runtime.BasicExecutionContext;
@@ -52,18 +53,18 @@
private SequenceFlow flow;
private ExecutionContext context;
private TokenStatus status;
- private ProcessEngine engine;
+ private Process process;
private Session session;
/**
* Construct a Token with given {@link Attachments}
*/
- public TokenImpl(ProcessEngine engine, Attachments att)
+ public TokenImpl(Process process, Attachments att)
{
this.context = new BasicExecutionContext(att);
this.id = new UID().toString();
this.status = TokenStatus.Created;
- this.engine = engine;
+ this.process = process;
}
@Override
@@ -85,6 +86,12 @@
}
@Override
+ public Process getProcess()
+ {
+ return process;
+ }
+
+ @Override
public ExecutionContext getExecutionContext()
{
return context;
@@ -107,6 +114,7 @@
{
if (session == null)
{
+ ProcessEngine engine = process.getProcessEngine();
PersistenceService service = engine.getService(PersistenceService.class);
session = service.createSession();
}
@@ -126,7 +134,7 @@
@Override
public MutableToken copyToken()
{
- return new TokenImpl(engine, context);
+ return new TokenImpl(process, context);
}
@Override
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ExecutionServiceImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ExecutionServiceImpl.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ExecutionServiceImpl.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -114,7 +114,6 @@
InitialFlow(StartEvent start)
{
super(start.getName());
- setTargetRef(start);
}
}
@@ -122,7 +121,7 @@
boolean startProcessThread = (rtProc == null);
// Create initial Token
- TokenImpl initialToken = new TokenImpl(getProcessEngine(), att);
+ TokenImpl initialToken = new TokenImpl(proc, att);
InitialFlow initialFlow = new InitialFlow(start);
initialToken.setSequenceFlow(initialFlow);
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/HibernatePersistenceServiceImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/HibernatePersistenceServiceImpl.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/HibernatePersistenceServiceImpl.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -29,7 +29,6 @@
import javax.management.ObjectName;
-import org.hibernate.Hibernate;
import org.hibernate.ObjectNotFoundException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
@@ -43,6 +42,7 @@
import org.jbpm.api.model.ProcessDefinition;
import org.jbpm.api.service.PersistenceService;
import org.jbpm.api.service.Service;
+import org.jbpm.ri.model.AbstractElementImpl;
import org.jbpm.ri.model.ProcessDefinitionImpl;
import org.jbpm.ri.model.ProcessImpl;
import org.slf4j.Logger;
@@ -108,13 +108,14 @@
public ProcessDefinition loadProcessDefinition(ObjectName procDefID)
{
log.debug("START loadProcessDefinition: " + procDefID);
- ProcessDefinitionImpl procDefImpl = null;
+ ProcessDefinition procDef = null;
Session session = getSessionFactory().openSession();
try
{
Integer id = Integer.valueOf(procDefID.getKeyProperty("id"));
- procDefImpl = (ProcessDefinitionImpl)session.load(ProcessDefinitionImpl.class, id);
- Hibernate.initialize(procDefImpl);
+ procDef = (ProcessDefinition)session.load(ProcessDefinitionImpl.class, id);
+ AbstractElementImpl elImpl = (AbstractElementImpl)procDef;
+ elImpl.initialize(session);
}
catch (ObjectNotFoundException ex)
{
@@ -125,7 +126,7 @@
session.close();
}
log.debug("END loadProcessDefinition: " + procDefID);
- return (ProcessDefinition)procDefImpl;
+ return (ProcessDefinition)procDef;
}
@Override
@@ -136,6 +137,9 @@
Transaction tx = session.beginTransaction();
try
{
+ ObjectName procDefID = procDef.getKey();
+ Integer id = Integer.valueOf(procDefID.getKeyProperty("id"));
+ procDef = (ProcessDefinition)session.load(ProcessDefinitionImpl.class, id);
session.delete(procDef);
tx.commit();
}
@@ -175,7 +179,8 @@
{
Integer id = Integer.valueOf(procID.getKeyProperty("id"));
proc = (Process)session.load(ProcessImpl.class, id);
- Hibernate.initialize(proc);
+ AbstractElementImpl elImpl = (AbstractElementImpl)proc;
+ elImpl.initialize(session);
}
catch (ObjectNotFoundException ex)
{
@@ -197,6 +202,9 @@
Transaction tx = session.beginTransaction();
try
{
+ ObjectName procID = proc.getKey();
+ Integer id = Integer.valueOf(procID.getKeyProperty("id"));
+ proc = (Process)session.load(ProcessImpl.class, id);
session.delete(proc);
tx.commit();
}
@@ -211,9 +219,9 @@
public ObjectName saveNode(Session session, Node node)
{
log.debug("START saveNode: " + node.getKey());
-
+
session.saveOrUpdate(node);
-
+
log.debug("END saveNode: " + node.getKey());
return node.getKey();
}
@@ -228,7 +236,6 @@
{
Integer id = Integer.valueOf(nodeID.getKeyProperty("id"));
node = (T)session.load(nodeClass, id);
- Hibernate.initialize(node);
}
catch (ObjectNotFoundException ex)
{
@@ -241,9 +248,7 @@
public void deleteNode(Session session, Node node)
{
log.debug("START deleteNode: " + node);
-
session.delete(node);
-
log.debug("END deleteNode: " + node);
}
Modified: projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/EndEventPersistenceTest.java
===================================================================
--- projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/EndEventPersistenceTest.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/EndEventPersistenceTest.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -25,14 +25,14 @@
import javax.management.ObjectName;
+import org.jbpm.api.model.EndEvent;
import org.jbpm.api.model.Message;
import org.jbpm.api.model.Signal;
-import org.jbpm.api.model.EndEvent;
import org.jbpm.api.model.Event.EventDetailType;
import org.jbpm.api.model.Signal.SignalType;
+import org.jbpm.ri.model.EndEventImpl;
import org.jbpm.ri.model.MessageImpl;
import org.jbpm.ri.model.SignalImpl;
-import org.jbpm.ri.model.EndEventImpl;
/**
* Test the HibernatePersistenceService for EndEvent
Modified: projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/NodePersistenceTest.java
===================================================================
--- projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/NodePersistenceTest.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/NodePersistenceTest.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -25,10 +25,7 @@
import javax.management.ObjectName;
-import org.hibernate.Hibernate;
import org.hibernate.Session;
-import org.hibernate.StaleStateException;
-import org.hibernate.Transaction;
import org.jbpm.api.model.Node;
import org.jbpm.api.service.PersistenceService;
import org.jbpm.api.test.CTSTestCase;
@@ -43,61 +40,37 @@
public abstract class NodePersistenceTest extends CTSTestCase
{
protected HibernatePersistenceServiceImpl service;
-
+ private Session session;
+
@Override
protected void setUp() throws Exception
{
super.setUp();
service = (HibernatePersistenceServiceImpl)PersistenceService.locatePersistenceService();
+ session = service.createSession();
}
+ @Override
+ protected void tearDown() throws Exception
+ {
+ super.tearDown();
+ session.close();
+ }
+
protected ObjectName saveNode(Node node)
{
- Session session = service.createSession();
- Transaction tx = session.beginTransaction();
- try
- {
- service.saveNode(session, node);
- tx.commit();
-
- return node.getKey();
- }
- finally
- {
- session.close();
- }
+ service.saveNode(session, node);
+ return node.getKey();
}
-
+
protected <T extends Node> T loadNode(Class<T> nodeClass, ObjectName nodeID)
{
- Session session = service.createSession();
- try
- {
- T node = service.loadNode(session, nodeClass, nodeID);
- return node;
- }
- finally
- {
- session.close();
- }
+ T node = service.loadNode(session, nodeClass, nodeID);
+ return node;
}
protected void deleteNode(Node node)
{
- Session session = service.createSession();
- Transaction tx = session.beginTransaction();
- try
- {
- service.deleteNode(session, node);
- tx.commit();
- }
- catch(StaleStateException ex)
- {
- // ignore, because the node was already deleted by a cascade
- }
- finally
- {
- session.close();
- }
+ service.deleteNode(session, node);
}
}
Modified: projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/TaskPersistenceTest.java
===================================================================
--- projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/TaskPersistenceTest.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/TaskPersistenceTest.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -112,6 +112,25 @@
deleteNode(wasNode);
}
+ public void testOutFlow() throws Exception
+ {
+ TaskImpl taskA = new TaskImpl(null, TaskType.None, "TaskA");
+
+ SequenceFlowImpl flow = new SequenceFlowImpl("TaskB", ConditionType.Expression, new ExpressionImpl("expr"));
+ taskA.setOutFlow(flow);
+
+ ObjectName aID = saveNode(taskA);
+
+ Task wasA = loadNode(TaskImpl.class, aID);
+
+ SequenceFlow outFlowA = wasA.getOutFlow();
+ assertEquals("TaskB", outFlowA.getTargetRef());
+ assertEquals(ConditionType.Expression, outFlowA.getConditionType());
+ assertEquals("expr", outFlowA.getConditionExpression().getExpressionBody());
+
+ deleteNode(wasA);
+ }
+
public void testInOutFlows() throws Exception
{
TaskImpl taskA = new TaskImpl(null, TaskType.None, "TaskA");
@@ -128,14 +147,12 @@
Task wasB = loadNode(TaskImpl.class, bID);
SequenceFlow outFlowA = wasA.getOutFlow();
- assertEquals("TaskB", outFlowA.getTargetName());
- assertEquals("TaskB", outFlowA.getTargetRef().getName());
+ assertEquals("TaskB", outFlowA.getTargetRef());
assertEquals(ConditionType.Expression, outFlowA.getConditionType());
assertEquals("expr", outFlowA.getConditionExpression().getExpressionBody());
- assertSame(wasA, outFlowA.getSourceRef());
SequenceFlow inFlowB = wasB.getInFlow();
- assertEquals(outFlowA.getTargetName(), inFlowB.getTargetName());
+ assertEquals(outFlowA.getTargetRef(), inFlowB.getTargetRef());
deleteNode(wasA);
deleteNode(wasB);
Modified: projects/spec/trunk/modules/ri/src/test/resources/log4j.xml
===================================================================
--- projects/spec/trunk/modules/ri/src/test/resources/log4j.xml 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/test/resources/log4j.xml 2008-11-01 10:45:21 UTC (rev 2736)
@@ -33,9 +33,6 @@
<!-- ================ -->
<category name="org.hibernate">
- <priority value="INFO" />
- </category>
- <category name="org.hibernate.persister">
<priority value="DEBUG" />
</category>
Modified: projects/spec/trunk/modules/samples/airticket/client/.classpath
===================================================================
--- projects/spec/trunk/modules/samples/airticket/client/.classpath 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/samples/airticket/client/.classpath 2008-11-01 10:45:21 UTC (rev 2736)
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="src" output="target/classes" path="src/main/java"/>
- <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
+ <classpathentry kind="src" path="src/main/java"/>
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="output" path="target/classes"/>
Modified: projects/spec/trunk/modules/samples/airticket/server/.classpath
===================================================================
--- projects/spec/trunk/modules/samples/airticket/server/.classpath 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/samples/airticket/server/.classpath 2008-11-01 10:45:21 UTC (rev 2736)
@@ -1,9 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="src" output="target/classes" path="src/main/java"/>
- <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
+ <classpathentry kind="src" path="src/main/java"/>
<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
- <classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="output" path="target/classes"/>
More information about the jbpm-commits
mailing list