[jbpm-commits] JBoss JBPM SVN: r2942 - in projects/spec/trunk/modules: ri/src/main/java/org/jbpm/ri/service and 1 other directory.

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


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

Modified:
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessDefinitionService.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ProcessDefinitionServiceImpl.java
Log:
wip

Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessDefinitionService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessDefinitionService.java	2008-11-15 14:22:04 UTC (rev 2941)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessDefinitionService.java	2008-11-16 18:12:36 UTC (rev 2942)
@@ -28,9 +28,6 @@
 import java.io.InputStream;
 import java.net.URI;
 import java.net.URL;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
 import java.util.Set;
 
 import javax.management.ObjectName;
@@ -56,9 +53,6 @@
   // Provide logging
   final static Logger log = LoggerFactory.getLogger(ProcessDefinitionService.class);
 
-  // The set of registered ProcessDefinitions
-  private Map<ObjectName, ProcessDefinition> procDefs = new HashMap<ObjectName, ProcessDefinition>();
-
   // Hide public constructor
   protected ProcessDefinitionService()
   {
@@ -74,6 +68,26 @@
   }
 
   /**
+   * Register a ProcessDefinition.
+   */
+  public abstract ObjectName registerProcessDefinition(ProcessDefinition procDef);
+
+  /**
+   * Unregister a ProcessDefinition.
+   */
+  public abstract boolean unregisterProcessDefinition(ObjectName procDefID);
+
+  /**
+   * Get a ProcessDefinition for a given id
+   */
+  public abstract ProcessDefinition getProcessDefinition(ObjectName procDefID);
+
+  /**
+   * Get the set of registered ProcessDefinition names
+   */
+  public abstract Set<ObjectName> getProcessDefinitions();
+
+  /**
    * Create a ProcessDefinition from a XML string in one of the supported formats
    */
   public final ProcessDefinition createProcessDefinition(String pXML)
@@ -103,66 +117,6 @@
     return procDef;
   }
   
-  /**
-   * Register a ProcessDefinition.
-   */
-  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
-    PersistenceService persService = getProcessEngine().getService(PersistenceService.class);
-    ObjectName procDefID = persService.saveProcessDefinition(procDef);
-    procDefs.put(procDefID, procDef);
-    return procDefID;
-  }
-
-  /**
-   * Unregister a ProcessDefinition.
-   */
-  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);
-
-      // Delete the ProcessDefinition through the PersistenceService
-      PersistenceService persService = engine.getService(PersistenceService.class);
-      persService.deleteProcessDefinition(procDef);
-      procDefs.remove(procDefID);
-      removed = true;
-    }
-    return removed;
-  }
-
-  /**
-   * Get a ProcessDefinition for a given id
-   */
-  public ProcessDefinition getProcessDefinition(ObjectName procDefID)
-  {
-    return procDefs.get(procDefID);
-  }
-
-  /**
-   * Get the set of registered ProcessDefinition names
-   */
-  public Set<ObjectName> getProcessDefinitions()
-  {
-    return Collections.unmodifiableSet(procDefs.keySet());
-  }
-
   private URI getNamespaceURI(InputStream procXML)
   {
     DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ProcessDefinitionServiceImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ProcessDefinitionServiceImpl.java	2008-11-15 14:22:04 UTC (rev 2941)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ProcessDefinitionServiceImpl.java	2008-11-16 18:12:36 UTC (rev 2942)
@@ -23,12 +23,21 @@
 
 // $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.PersistenceService;
 import org.jbpm.api.service.ProcessDefinitionService;
+import org.jbpm.api.service.ProcessInstanceService;
 import org.jbpm.ri.model.ProcessDefinitionImpl;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * The ProcessDefinitionService is the entry point to create, find and otherwise manage process definitions.
@@ -38,6 +47,12 @@
  */
 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)
   {
@@ -45,11 +60,33 @@
   }
 
   @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)
   {
-    ObjectName procDefID = super.registerProcessDefinition(procDef);
+    if (getProcessDefinition(procDef.getKey()) != null)
+      throw new IllegalStateException("Process definition already registered: " + procDef);
+
+    log.debug("registerProcessDefinition: " + procDef);
+
+    // Save the ProcessDefinition through the PersistenceService
+    PersistenceService persService = getProcessEngine().getService(PersistenceService.class);
+    ObjectName procDefID = persService.saveProcessDefinition(procDef);
+    procDefs.put(procDefID, procDef);
+
     ProcessDefinitionImpl procDefImpl = (ProcessDefinitionImpl)procDef;
     procDefImpl.register(procDef);
+
     return procDefID;
   }
 
@@ -59,7 +96,26 @@
     ProcessDefinitionImpl procDefImpl = (ProcessDefinitionImpl)getProcessDefinition(procDefID);
     if (procDefImpl != null)
       procDefImpl.unregister(procDefImpl);
-    
-    return super.unregisterProcessDefinition(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);
+
+      // Delete the ProcessDefinition through the PersistenceService
+      PersistenceService persService = engine.getService(PersistenceService.class);
+      persService.deleteProcessDefinition(procDef);
+      procDefs.remove(procDefID);
+      removed = true;
+    }
+    return removed;
   }
 }
\ No newline at end of file




More information about the jbpm-commits mailing list