[jbpm-commits] JBoss JBPM SVN: r3126 - in jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration: service and 1 other directory.
do-not-reply at jboss.org
do-not-reply at jboss.org
Thu Nov 27 09:06:49 EST 2008
Author: thomas.diesler at jboss.com
Date: 2008-11-27 09:06:49 -0500 (Thu, 27 Nov 2008)
New Revision: 3126
Modified:
jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/model/ProcessDefinitionImpl.java
jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/model/ProcessImpl.java
jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/service/ProcessDefinitionServiceImpl.java
jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/service/ProcessServiceImpl.java
Log:
Save process instance on register
Modified: jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/model/ProcessDefinitionImpl.java
===================================================================
--- jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/model/ProcessDefinitionImpl.java 2008-11-27 13:26:37 UTC (rev 3125)
+++ jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/model/ProcessDefinitionImpl.java 2008-11-27 14:06:49 UTC (rev 3126)
@@ -37,6 +37,7 @@
import org.jboss.bpm.api.model.Process;
import org.jboss.bpm.api.model.ProcessDefinition;
import org.jboss.bpm.api.model.builder.ObjectNameFactory;
+import org.jbpm.JbpmConfiguration;
import org.jbpm.graph.def.Transition;
import org.jbpm.graph.node.EndState;
import org.jbpm.graph.node.StartState;
@@ -55,6 +56,7 @@
private org.jbpm.graph.def.ProcessDefinition oldProcDef;
private ProcessEngine engine;
private Map<String, Node> nodes = new LinkedHashMap<String, Node>();
+ private JbpmConfiguration jbpmConfigCache;
public ProcessDefinitionImpl(ProcessEngine engine, String name)
{
@@ -81,6 +83,15 @@
return oldProcDef;
}
+ public JbpmConfiguration getJbpmConfiguration()
+ {
+ if (jbpmConfigCache == null)
+ {
+ jbpmConfigCache = JbpmConfiguration.getInstance();
+ }
+ return jbpmConfigCache;
+ }
+
public ProcessEngine getProcessEngine()
{
return engine;
Modified: jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/model/ProcessImpl.java
===================================================================
--- jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/model/ProcessImpl.java 2008-11-27 13:26:37 UTC (rev 3125)
+++ jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/model/ProcessImpl.java 2008-11-27 14:06:49 UTC (rev 3126)
@@ -59,12 +59,13 @@
public ProcessImpl(ProcessDefinitionImpl procDef)
{
this.procDef = procDef;
+ this.oldProc = new ProcessInstance(procDef.getOldProcessDefinition());
}
//@Override
public ObjectName getKey()
{
- long id = oldProc != null ? oldProc.getId() : 0;
+ long id = oldProc.getId();
return ObjectNameFactory.create(Constants.ID_DOMAIN + ":proc=" + getName() + ",id=" + id);
}
@@ -110,12 +111,12 @@
public Date getEndDate()
{
- return oldProc != null ? oldProc.getEnd() : null;
+ return oldProc.getEnd();
}
public Date getStartDate()
{
- return oldProc != null ? oldProc.getStart() : null;
+ return oldProc.getStart();
}
//@Override
@@ -151,8 +152,6 @@
//@Override
public Token startProcess(Attachments contextData)
{
- oldProc = new ProcessInstance(procDef.getOldProcessDefinition());
-
// Register the Process
ProcessService procService = getProcessEngine().getService(ProcessService.class);
procService.registerProcess(this);
@@ -180,7 +179,7 @@
public Token getRootToken()
{
- return oldProc != null ? new TokenImpl(this, oldProc.getRootToken()) : null;
+ return new TokenImpl(this, oldProc.getRootToken());
}
public Set<Token> getTokens()
Modified: jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/service/ProcessDefinitionServiceImpl.java
===================================================================
--- jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/service/ProcessDefinitionServiceImpl.java 2008-11-27 13:26:37 UTC (rev 3125)
+++ jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/service/ProcessDefinitionServiceImpl.java 2008-11-27 14:06:49 UTC (rev 3126)
@@ -53,7 +53,6 @@
// The set of registered ProcessDefinitions
private Map<ObjectName, ProcessDefinition> procDefs = new HashMap<ObjectName, ProcessDefinition>();
- private JbpmConfiguration jbpmConfigCache;
@Override
public void setProcessEngine(ProcessEngine engine)
@@ -79,13 +78,13 @@
log.debug("registerProcessDefinition: " + procDef);
// Works with the default configuration
- JbpmConfiguration jbpmConfig = getJbpmConfiguration();
+ ProcessDefinitionImpl procDefImpl = (ProcessDefinitionImpl)procDef;
+ JbpmConfiguration jbpmConfig = procDefImpl.getJbpmConfiguration();
JbpmContext jbpmContext = jbpmConfig.createJbpmContext();
ObjectName procDefID;
try
{
- ProcessDefinitionImpl procDefImpl = (ProcessDefinitionImpl)procDef;
jbpmContext.deployProcessDefinition(procDefImpl.getOldProcessDefinition());
procDefID = procDef.getKey();
@@ -102,15 +101,6 @@
return procDefID;
}
- private JbpmConfiguration getJbpmConfiguration()
- {
- if (jbpmConfigCache == null)
- {
- jbpmConfigCache = JbpmConfiguration.getInstance();
- }
- return jbpmConfigCache;
- }
-
public boolean unregisterProcessDefinition(ObjectName procDefID)
{
boolean removed = false;
@@ -126,12 +116,12 @@
for (ObjectName procID : procService.getProcesses(procDefID, null))
procService.unregisterProcess(procID);
- // Works with the default configuration
- JbpmConfiguration jbpmConfig = getJbpmConfiguration();
+ // Save the ProcessDefinition
+ ProcessDefinitionImpl procDefImpl = (ProcessDefinitionImpl)procDef;
+ JbpmConfiguration jbpmConfig = procDefImpl.getJbpmConfiguration();
JbpmContext jbpmContext = jbpmConfig.createJbpmContext();
try
{
- ProcessDefinitionImpl procDefImpl = (ProcessDefinitionImpl)procDef;
long oldID = procDefImpl.getOldProcessDefinition().getId();
jbpmContext.getGraphSession().deleteProcessDefinition(oldID);
@@ -147,6 +137,7 @@
jbpmContext.close();
}
}
+
return removed;
}
}
\ No newline at end of file
Modified: jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/service/ProcessServiceImpl.java
===================================================================
--- jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/service/ProcessServiceImpl.java 2008-11-27 13:26:37 UTC (rev 3125)
+++ jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/service/ProcessServiceImpl.java 2008-11-27 14:06:49 UTC (rev 3126)
@@ -39,6 +39,9 @@
import org.jboss.bpm.api.model.Process.ProcessStatus;
import org.jboss.bpm.api.service.ProcessDefinitionService;
import org.jboss.bpm.api.service.ProcessService;
+import org.jbpm.JbpmConfiguration;
+import org.jbpm.JbpmContext;
+import org.jbpm.integration.model.ProcessDefinitionImpl;
import org.jbpm.integration.model.ProcessImpl;
import org.jbpm.integration.runtime.NodeInterceptor;
import org.slf4j.Logger;
@@ -143,10 +146,27 @@
if (procDefService.getProcessDefinition(procDef.getKey()) == null)
procDefService.registerProcessDefinition(procDef);
+ // Save the Process instance
+ ProcessDefinitionImpl procDefImpl = (ProcessDefinitionImpl)procDef;
+ JbpmConfiguration jbpmConfig = procDefImpl.getJbpmConfiguration();
+ JbpmContext jbpmContext = jbpmConfig.createJbpmContext();
+ ProcessImpl procImpl = (ProcessImpl)proc;
+ try
+ {
+ jbpmContext.save(procImpl.getOldProcessInstance());
+ procID = proc.getKey();
+ }
+ catch (RuntimeException rte)
+ {
+ throw rte;
+ }
+ finally
+ {
+ jbpmContext.close();
+ }
+
// Register the process
registeredProcs.put(procID, proc);
-
- ProcessImpl procImpl = (ProcessImpl)proc;
procImpl.setProcessStatus(ProcessStatus.Ready);
return procID;
@@ -162,7 +182,25 @@
if (proc != null)
{
log.debug("unregisterProcess: " + proc);
-
+
+ // Delete the Process instance
+ ProcessDefinitionImpl procDefImpl = (ProcessDefinitionImpl)proc.getProcessDefinition();
+ JbpmConfiguration jbpmConfig = procDefImpl.getJbpmConfiguration();
+ JbpmContext jbpmContext = jbpmConfig.createJbpmContext();
+ ProcessImpl procImpl = (ProcessImpl)proc;
+ try
+ {
+ jbpmContext.getGraphSession().deleteProcessInstance(procImpl.getOldProcessInstance());
+ }
+ catch (RuntimeException rte)
+ {
+ throw rte;
+ }
+ finally
+ {
+ jbpmContext.close();
+ }
+
registeredProcs.remove(procID);
removed = true;
}
More information about the jbpm-commits
mailing list