[jbpm-commits] JBoss JBPM SVN: r2943 - in jbpm3/branches/tdiesler/modules/integration/src/main/java/org/jbpm/integration: service and 1 other directory.

do-not-reply at jboss.org do-not-reply at jboss.org
Sun Nov 16 13:13:33 EST 2008


Author: thomas.diesler at jboss.com
Date: 2008-11-16 13:13:33 -0500 (Sun, 16 Nov 2008)
New Revision: 2943

Modified:
   jbpm3/branches/tdiesler/modules/integration/src/main/java/org/jbpm/integration/model/SequenceFlowImpl.java
   jbpm3/branches/tdiesler/modules/integration/src/main/java/org/jbpm/integration/service/ProcessDefinitionServiceImpl.java
Log:
wip

Modified: jbpm3/branches/tdiesler/modules/integration/src/main/java/org/jbpm/integration/model/SequenceFlowImpl.java
===================================================================
--- jbpm3/branches/tdiesler/modules/integration/src/main/java/org/jbpm/integration/model/SequenceFlowImpl.java	2008-11-16 18:12:36 UTC (rev 2942)
+++ jbpm3/branches/tdiesler/modules/integration/src/main/java/org/jbpm/integration/model/SequenceFlowImpl.java	2008-11-16 18:13:33 UTC (rev 2943)
@@ -38,6 +38,7 @@
   private static final long serialVersionUID = 1L;
 
   private Transition oldTrans;
+  private ConditionType condType = ConditionType.None;
 
   public SequenceFlowImpl(Transition oldTrans)
   {
@@ -53,7 +54,7 @@
   @Override
   public ConditionType getConditionType()
   {
-    throw new NotImplementedException();
+    return condType;
   }
 
   @Override

Modified: jbpm3/branches/tdiesler/modules/integration/src/main/java/org/jbpm/integration/service/ProcessDefinitionServiceImpl.java
===================================================================
--- jbpm3/branches/tdiesler/modules/integration/src/main/java/org/jbpm/integration/service/ProcessDefinitionServiceImpl.java	2008-11-16 18:12:36 UTC (rev 2942)
+++ jbpm3/branches/tdiesler/modules/integration/src/main/java/org/jbpm/integration/service/ProcessDefinitionServiceImpl.java	2008-11-16 18:13:33 UTC (rev 2943)
@@ -23,8 +23,19 @@
 
 // $Id$
 
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+
+import javax.management.ObjectName;
+
 import org.jbpm.api.client.ProcessEngine;
+import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.service.ProcessDefinitionService;
+import org.jbpm.api.service.ProcessInstanceService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * The ProcessDefinitionService is the entry point to create, find and otherwise manage process definitions.
@@ -34,9 +45,64 @@
  */
 public class ProcessDefinitionServiceImpl extends ProcessDefinitionService implements MutableService
 {
+  // Provide logging
+  final static Logger log = LoggerFactory.getLogger(ProcessDefinitionServiceImpl.class);
+  
+  // The set of registered ProcessDefinitions
+  private Map<ObjectName, ProcessDefinition> procDefs = new HashMap<ObjectName, ProcessDefinition>();
+  
   @Override
   public void setProcessEngine(ProcessEngine engine)
   {
     super.setProcessEngine(engine);
   }
+
+  @Override
+  public ProcessDefinition getProcessDefinition(ObjectName procDefID)
+  {
+    return procDefs.get(procDefID);
+  }
+
+  @Override
+  public Set<ObjectName> getProcessDefinitions()
+  {
+    return Collections.unmodifiableSet(procDefs.keySet());
+  }
+
+  @Override
+  public ObjectName registerProcessDefinition(ProcessDefinition procDef)
+  {
+    if (getProcessDefinition(procDef.getKey()) != null)
+      throw new IllegalStateException("Process definition already registered: " + procDef);
+
+    log.debug("registerProcessDefinition: " + procDef);
+
+    // Save the ProcessDefinition through the PersistenceService
+    ObjectName procDefID = procDef.getKey();
+    procDefs.put(procDefID, procDef);
+
+    return procDefID;
+  }
+
+  @Override
+  public boolean unregisterProcessDefinition(ObjectName procDefID)
+  {
+    boolean removed = false;
+    ProcessDefinition procDef = procDefs.get(procDefID);
+    if (procDef != null)
+    {
+      log.debug("unregisterProcessDefinition: " + procDef);
+
+      ProcessEngine engine = getProcessEngine();
+
+      // Unregister the associated process instances
+      ProcessInstanceService procService = engine.getService(ProcessInstanceService.class);
+      for (ObjectName procID : procService.getProcesses(procDef.getName(), null))
+        procService.unregisterProcess(procID);
+
+      procDefs.remove(procDefID);
+      removed = true;
+    }
+    return removed;
+  }
 }
\ No newline at end of file




More information about the jbpm-commits mailing list