[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