[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