[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