[jbpm-commits] JBoss JBPM SVN: r2948 - 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
Mon Nov 17 03:53:11 EST 2008


Author: thomas.diesler at jboss.com
Date: 2008-11-17 03:53:10 -0500 (Mon, 17 Nov 2008)
New Revision: 2948

Modified:
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessService.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ProcessServiceImpl.java
Log:
Make ProcessService methods abstract

Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessService.java	2008-11-17 08:42:04 UTC (rev 2947)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessService.java	2008-11-17 08:53:10 UTC (rev 2948)
@@ -23,10 +23,6 @@
 
 //$Id$
 
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
 import java.util.Set;
 
 import javax.management.ObjectName;
@@ -34,10 +30,7 @@
 import org.jbpm.api.client.Configuration;
 import org.jbpm.api.client.ProcessEngine;
 import org.jbpm.api.model.Process;
-import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.model.Process.ProcessStatus;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 /**
  * The ProcessService is the entry point to create, find and otherwise manage processes.
@@ -47,12 +40,6 @@
  */
 public abstract class ProcessService extends AbstractService
 {
-  // Provide logging
-  final static Logger log = LoggerFactory.getLogger(ProcessService.class);
-
-  // The set of registered processes
-  private Map<ObjectName, Process> registeredProcs = new HashMap<ObjectName, Process>();
-
   // Hide public constructor
   protected ProcessService()
   {
@@ -70,68 +57,22 @@
   /**
    * Register a Process.
    */
-  public ObjectName registerProcess(Process proc)
-  {
-    log.debug("registerProcess: " + proc);
+  public abstract ObjectName registerProcess(Process proc);
 
-    if (getProcess(proc.getKey()) != null)
-      throw new IllegalStateException("Process already registered: " + proc);
-
-    ProcessStatus procStatus = proc.getProcessStatus();
-    ProcessDefinition procDef = proc.getProcessDefinition();
-    ProcessEngine engine = getProcessEngine();
-
-    if (procStatus != ProcessStatus.None)
-      throw new IllegalStateException("Cannot register process in state: " + procStatus);
-
-    // Register the process definition if needed
-    ProcessDefinitionService procDefService = engine.getService(ProcessDefinitionService.class);
-    if (procDefService.getProcessDefinition(procDef.getKey()) == null)
-      procDefService.registerProcessDefinition(procDef);
-
-    // Save the process through the PersistenceService
-    PersistenceService persService = getProcessEngine().getService(PersistenceService.class);
-    ObjectName procID = persService.saveProcess(proc);
-    registeredProcs.put(procID, proc);
-    return procID;
-  }
-
   /**
    * Unregister a Process.
    */
-  public boolean unregisterProcess(ObjectName procID)
-  {
-    boolean removed = false;
-    Process proc = registeredProcs.get(procID);
-    if (proc != null)
-    {
-      log.debug("unregisterProcess: " + proc);
+  public abstract boolean unregisterProcess(ObjectName procID);
 
-      // Delete the process through the PersistenceService
-      PersistenceService persService = getProcessEngine().getService(PersistenceService.class);
-      persService.deleteProcess(proc);
-      registeredProcs.remove(procID);
-      removed = true;
-    }
-    return removed;
-  }
-
   /**
    * Get a Process for a given id
    */
-  public Process getProcess(ObjectName procID)
-  {
-    Process proc = registeredProcs.get(procID);
-    return proc;
-  }
+  public abstract Process getProcess(ObjectName procID);
 
   /**
    * Get the set of registered Processes
    */
-  public Set<ObjectName> getProcesses()
-  {
-    return Collections.unmodifiableSet(registeredProcs.keySet());
-  }
+  public abstract Set<ObjectName> getProcesses();
 
   /**
    * Find the set of Processes for a given name
@@ -140,17 +81,5 @@
    * @param status The optional process status
    * @return An empty set if the process cannot be found
    */
-  public Set<ObjectName> getProcesses(String name, ProcessStatus status)
-  {
-    Set<ObjectName> procSet = new HashSet<ObjectName>();
-    for (Process auxProc : registeredProcs.values())
-    {
-      if (auxProc.getName().equals(name))
-      {
-        if (status == null || auxProc.getProcessStatus() == status)
-          procSet.add(auxProc.getKey());
-      }
-    }
-    return procSet;
-  }
+  public abstract Set<ObjectName> getProcesses(String name, ProcessStatus status);
 }
\ No newline at end of file

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ProcessServiceImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ProcessServiceImpl.java	2008-11-17 08:42:04 UTC (rev 2947)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ProcessServiceImpl.java	2008-11-17 08:53:10 UTC (rev 2948)
@@ -25,14 +25,20 @@
 
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
 import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
 import javax.management.ObjectName;
 
 import org.jbpm.api.client.ProcessEngine;
 import org.jbpm.api.model.Process;
+import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.model.Process.ProcessStatus;
 import org.jbpm.api.service.PersistenceService;
+import org.jbpm.api.service.ProcessDefinitionService;
 import org.jbpm.api.service.ProcessService;
 import org.jbpm.ri.model.ProcessImpl;
 import org.jbpm.ri.runtime.NodeInterceptor;
@@ -50,6 +56,7 @@
   // Provide logging
   final static Logger log = LoggerFactory.getLogger(ProcessServiceImpl.class);
   
+  private Map<ObjectName, Process> registeredProcs = new HashMap<ObjectName, Process>();
   private List<NodeInterceptor> nodeInterceptors = new ArrayList<NodeInterceptor>();
   
   @Override
@@ -72,33 +79,104 @@
     return Collections.unmodifiableList(nodeInterceptors);
   }
 
+  /**
+   * Get a Process for a given id
+   */
   @Override
+  public Process getProcess(ObjectName procID)
+  {
+    Process proc = registeredProcs.get(procID);
+    return proc;
+  }
+
+  /**
+   * Get the set of registered Processes
+   */
+  @Override
+  public Set<ObjectName> getProcesses()
+  {
+    return Collections.unmodifiableSet(registeredProcs.keySet());
+  }
+
+  /**
+   * Find the set of Processes for a given name
+   * 
+   * @param name The process name
+   * @param status The optional process status
+   * @return An empty set if the process cannot be found
+   */
+  @Override
+  public Set<ObjectName> getProcesses(String name, ProcessStatus status)
+  {
+    Set<ObjectName> procSet = new HashSet<ObjectName>();
+    for (Process auxProc : registeredProcs.values())
+    {
+      if (auxProc.getName().equals(name))
+      {
+        if (status == null || auxProc.getProcessStatus() == status)
+          procSet.add(auxProc.getKey());
+      }
+    }
+    return procSet;
+  }
+
+  /**
+   * Register a Process.
+   */
   public ObjectName registerProcess(Process proc)
   {
-    ObjectName procID = super.registerProcess(proc);
+    log.debug("registerProcess: " + proc);
+
+    if (getProcess(proc.getKey()) != null)
+      throw new IllegalStateException("Process already registered: " + proc);
+
+    ProcessStatus procStatus = proc.getProcessStatus();
+    ProcessDefinition procDef = proc.getProcessDefinition();
+    ProcessEngine engine = getProcessEngine();
+
+    if (procStatus != ProcessStatus.None)
+      throw new IllegalStateException("Cannot register process in state: " + procStatus);
+
+    // Register the process definition if needed
+    ProcessDefinitionService procDefService = engine.getService(ProcessDefinitionService.class);
+    if (procDefService.getProcessDefinition(procDef.getKey()) == null)
+      procDefService.registerProcessDefinition(procDef);
+
+    // Save the process through the PersistenceService
+    PersistenceService persService = getProcessEngine().getService(PersistenceService.class);
+    ObjectName procID = persService.saveProcess(proc);
+    registeredProcs.put(procID, proc);
     
     ProcessImpl procImpl = (ProcessImpl)proc;
     procImpl.register(proc);
     
     procImpl.setProcessStatus(ProcessStatus.Ready);
-    
-    // Save the process through the PersistenceService
-    PersistenceService persService = getProcessEngine().getService(PersistenceService.class);
-    persService.saveProcess(proc);
-    
     return procID;
   }
 
-  @Override
+  /**
+   * Unregister a Process.
+   */
   public boolean unregisterProcess(ObjectName procID)
   {
-    ProcessImpl procImpl = (ProcessImpl)getProcess(procID);
-    if (procImpl != null)
+    boolean removed = false;
+    Process proc = registeredProcs.get(procID);
+    if (proc != null)
+    {
+      log.debug("unregisterProcess: " + proc);
+
+      ProcessImpl procImpl = (ProcessImpl)proc;
       procImpl.unregister(procImpl);
-    
-    return super.unregisterProcess(procID);
+      
+      // Delete the process through the PersistenceService
+      PersistenceService persService = getProcessEngine().getService(PersistenceService.class);
+      persService.deleteProcess(proc);
+      registeredProcs.remove(procID);
+      removed = true;
+    }
+    return removed;
   }
-  
+
   private NodeInterceptor loadNodeInterceptor(String className)
   {
     NodeInterceptor itor = null;




More information about the jbpm-commits mailing list