[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