JBoss JBPM SVN: r2914 - in projects/spec/trunk/modules: api/src/main/java/org/jbpm/api/model and 33 other directories.
by do-not-reply@jboss.org
Author: thomas.diesler(a)jboss.com
Date: 2008-11-13 10:00:05 -0500 (Thu, 13 Nov 2008)
New Revision: 2914
Added:
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Process.java
Removed:
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/ProcessAsync.java
Modified:
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/ProcessDefinition.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Token.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Node.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/builder/ProcessBuilder.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ExecutionService.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessBuilderService.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessInstanceService.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/MessageService.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/PersistenceService.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/exclusive/ExclusiveGatewaySplitTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/process/ProcessDefinitionServiceTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/process/ProcessServiceTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/task/waitstate/WaitStateTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/exclusivechoice/ExclusiveChoiceTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/multichoice/MultiChoiceTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/parallelsplit/ParallelSplitTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/sequence/SequenceTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/simplemerge/SimpleMergeTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/synchronization/SynchronizationTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/data/casedata/CaseDataTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/data/taskdata/TaskDataTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/endevent/EndEventMessageTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/exclusive/ExclusiveGatewayMergeTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/inclusive/InclusiveGatewayMergeTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/inclusive/InclusiveGatewaySplitTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/parallel/ParallelGatewayMergeTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/parallel/ParallelGatewaySplitTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/node/NodeInputSetTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/node/NodeOutputSetTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/node/NodePropertyTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/process/ProcessPropertyTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/startevent/StartEventSignalTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/java/JavaTaskTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/receive/ReceiveTaskTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/send/SendTaskTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/user/UserTaskCallbackTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/user/UserTaskTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/transaction/TxRequiredTest.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/AbstractElementImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/EventImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/NodeImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessDefinitionImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessStructureImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ReceiveTaskImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/SendTaskImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/StartEventImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/UserTaskImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/builder/ProcessBuilderImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingAttachments.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingToken.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/InProcessTokenExecutor.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RunnableToken.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RuntimeProcess.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RuntimeProcessImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/ThreadingTokenExecutor.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TokenImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ExecutionServiceImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/HibernatePersistenceServiceImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/InMemoryPersistenceServiceImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ProcessBuilderServiceImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ProcessServiceImpl.java
projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/ProcessPersistenceTest.java
projects/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/server/AirticketServiceImpl.java
projects/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketTest.java
Log:
Restore Process
Copied: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Process.java (from rev 2913, projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/ProcessAsync.java)
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Process.java (rev 0)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Process.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -0,0 +1,95 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.api.client;
+
+//$Id$
+
+import javax.management.ObjectName;
+
+import org.jbpm.api.model.ProcessStructure;
+import org.jbpm.api.runtime.Attachments;
+
+/**
+ * A Process is any Activity performed within a company or organization.
+ *
+ * @author thomas.diesler(a)jboss.com
+ * @since 08-Jul-2008
+ */
+public interface Process extends ProcessStructure
+{
+ /**
+ * Defines the status a {@link Process} can be in
+ */
+ public enum ProcessStatus
+ {
+ None, Ready, Active, Cancelled, Aborting, Aborted, Completing, Completed
+ }
+
+ /**
+ * Get the associated ProcessEngine
+ */
+ ProcessEngine getProcessEngine();
+
+ /**
+ * Get the associated ProcessDefinition
+ */
+ ProcessDefinition getProcessDefinition();
+
+ /**
+ * Get the process state
+ */
+ ProcessStatus getProcessStatus();
+
+ /**
+ * Start the process
+ */
+ Token startProcess();
+
+ /**
+ * Start the process, with a given execution context
+ */
+ Token startProcess(Attachments att);
+
+ /**
+ * Start the process asynchronously
+ */
+ ObjectName startProcessAsync();
+
+ /**
+ * Start the process asynchronously, with a given execution context
+ */
+ ObjectName startProcessAsync(Attachments att);
+
+ /**
+ * All Tokens that are generated at the Start Event for that Process must eventually arrive at an End Event. The
+ * Process will be in a running state until all Tokens are consumed. <p/> This method until the process ends without
+ * timeout.
+ */
+ ProcessStatus waitForEnd();
+
+ /**
+ * All Tokens that are generated at the Start Event for that Process must eventually arrive at an End Event. The
+ * Process will be in a running state until all Tokens are consumed. <p/> This method until the process ends with a
+ * given timeout.
+ */
+ ProcessStatus waitForEnd(long timeout);
+}
\ No newline at end of file
Deleted: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/ProcessAsync.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/ProcessAsync.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/ProcessAsync.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -1,95 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.api.client;
-
-//$Id$
-
-import javax.management.ObjectName;
-
-import org.jbpm.api.model.ProcessStructure;
-import org.jbpm.api.runtime.Attachments;
-
-/**
- * A Process is any Activity performed within a company or organization.
- *
- * @author thomas.diesler(a)jboss.com
- * @since 08-Jul-2008
- */
-public interface ProcessAsync extends ProcessStructure
-{
- /**
- * Defines the status a {@link ProcessAsync} can be in
- */
- public enum ProcessStatus
- {
- None, Ready, Active, Cancelled, Aborting, Aborted, Completing, Completed
- }
-
- /**
- * Get the associated ProcessEngine
- */
- ProcessEngine getProcessEngine();
-
- /**
- * Get the associated ProcessDefinition
- */
- ProcessDefinition getProcessDefinition();
-
- /**
- * Get the process state
- */
- ProcessStatus getProcessStatus();
-
- /**
- * Start the process
- */
- Token startProcess();
-
- /**
- * Start the process, with a given execution context
- */
- Token startProcess(Attachments att);
-
- /**
- * Start the process asynchronously
- */
- ObjectName startProcessAsync();
-
- /**
- * Start the process asynchronously, with a given execution context
- */
- ObjectName startProcessAsync(Attachments att);
-
- /**
- * All Tokens that are generated at the Start Event for that Process must eventually arrive at an End Event. The
- * Process will be in a running state until all Tokens are consumed. <p/> This method until the process ends without
- * timeout.
- */
- ProcessStatus waitForEnd();
-
- /**
- * All Tokens that are generated at the Start Event for that Process must eventually arrive at an End Event. The
- * Process will be in a running state until all Tokens are consumed. <p/> This method until the process ends with a
- * given timeout.
- */
- ProcessStatus waitForEnd(long timeout);
-}
\ No newline at end of file
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/ProcessDefinition.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/ProcessDefinition.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/ProcessDefinition.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -36,7 +36,7 @@
/**
* Create a new instance of this process definition
*/
- ProcessAsync newInstance();
+ Process newInstance();
/**
* Get the associated ProcessEngine
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Token.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Token.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Token.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -62,9 +62,9 @@
TokenStatus getTokenStatus();
/**
- * Get the associated {@link ProcessAsync}
+ * Get the associated {@link Process}
*/
- ProcessAsync getProcess();
+ Process getProcess();
/**
* Get the associated {@link Attachments}
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Node.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Node.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Node.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -25,7 +25,7 @@
import java.util.List;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.model.preview.Assignment;
import org.jbpm.api.model.preview.Group;
@@ -50,7 +50,7 @@
/**
* Get the associated process
*/
- ProcessAsync getProcess();
+ Process getProcess();
/**
* Get the unique name.
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/builder/ProcessBuilder.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/builder/ProcessBuilder.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/builder/ProcessBuilder.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -23,7 +23,7 @@
//$Id$
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.model.Node;
import org.jbpm.api.model.Event.EventDetailType;
@@ -42,7 +42,7 @@
import org.jbpm.api.runtime.preview.SignalHandler;
/**
- * The ProcessBuilder can be used to build a {@link ProcessAsync} dynamically.
+ * The ProcessBuilder can be used to build a {@link Process} dynamically.
*
* @author thomas.diesler(a)jboss.com
* @since 08-Jul-2008
@@ -50,7 +50,7 @@
public interface ProcessBuilder
{
/**
- * Add a {@link ProcessAsync} with a given name
+ * Add a {@link Process} with a given name
*/
ProcessBuilder addProcess(String name);
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ExecutionService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ExecutionService.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ExecutionService.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -26,8 +26,8 @@
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
-import org.jbpm.api.client.ProcessAsync;
-import org.jbpm.api.client.ProcessAsync.ProcessStatus;
+import org.jbpm.api.client.Process;
+import org.jbpm.api.client.Process.ProcessStatus;
import org.jbpm.api.model.StartEvent;
import org.jbpm.api.runtime.Attachments;
@@ -60,19 +60,19 @@
* @param start The StartEvent that triggers the process
* @param att The Attachments in the ExecutionContext
*/
- public abstract void startProcess(ProcessAsync proc, StartEvent start, Attachments att);
+ public abstract void startProcess(Process proc, StartEvent start, Attachments att);
/**
* All Tokens that are generated at the Start Event for that Process must eventually arrive at an End Event. The
* Process will be in a running state until all Tokens are consumed. <p/> This method until the process ends without
* timeout.
*/
- public abstract ProcessStatus waitForEnd(ProcessAsync proc);
+ public abstract ProcessStatus waitForEnd(Process proc);
/**
* All Tokens that are generated at the Start Event for that Process must eventually arrive at an End Event. The
* Process will be in a running state until all Tokens are consumed. <p/> This method until the process ends with a
* given timeout.
*/
- public abstract ProcessStatus waitForEnd(ProcessAsync proc, long timeout);
+ public abstract ProcessStatus waitForEnd(Process proc, long timeout);
}
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessBuilderService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessBuilderService.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessBuilderService.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -24,12 +24,12 @@
//$Id$
import org.jbpm.api.client.Configuration;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.model.builder.ProcessBuilder;
/**
- * The ProcessBuilder can be used to build a {@link ProcessAsync} dynamically.
+ * The ProcessBuilder can be used to build a {@link Process} dynamically.
*
* @author thomas.diesler(a)jboss.com
* @since 08-Jul-2008
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessInstanceService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessInstanceService.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessInstanceService.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -32,10 +32,10 @@
import javax.management.ObjectName;
import org.jbpm.api.client.Configuration;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.ProcessEngine;
-import org.jbpm.api.client.ProcessAsync.ProcessStatus;
+import org.jbpm.api.client.Process.ProcessStatus;
import org.jbpm.api.service.preview.PersistenceService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -52,7 +52,7 @@
final static Logger log = LoggerFactory.getLogger(ProcessInstanceService.class);
// The set of registered processes
- private Map<ObjectName, ProcessAsync> registeredProcs = new HashMap<ObjectName, ProcessAsync>();
+ private Map<ObjectName, Process> registeredProcs = new HashMap<ObjectName, Process>();
// Hide public constructor
protected ProcessInstanceService()
@@ -71,7 +71,7 @@
/**
* Register a Process.
*/
- public ObjectName registerProcess(ProcessAsync proc)
+ public ObjectName registerProcess(Process proc)
{
log.debug("registerProcess: " + proc);
@@ -103,7 +103,7 @@
public boolean unregisterProcess(ObjectName procID)
{
boolean removed = false;
- ProcessAsync proc = registeredProcs.get(procID);
+ Process proc = registeredProcs.get(procID);
if (proc != null)
{
log.debug("unregisterProcess: " + proc);
@@ -120,9 +120,9 @@
/**
* Get a Process for a given id
*/
- public ProcessAsync getProcess(ObjectName procID)
+ public Process getProcess(ObjectName procID)
{
- ProcessAsync proc = registeredProcs.get(procID);
+ Process proc = registeredProcs.get(procID);
return proc;
}
@@ -144,7 +144,7 @@
public Set<ObjectName> getProcesses(String name, ProcessStatus status)
{
Set<ObjectName> procSet = new HashSet<ObjectName>();
- for (ProcessAsync auxProc : registeredProcs.values())
+ for (Process auxProc : registeredProcs.values())
{
if (auxProc.getName().equals(name))
{
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/MessageService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/MessageService.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/MessageService.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -32,7 +32,7 @@
import javax.management.ObjectName;
import org.jbpm.api.client.Configuration;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.client.preview.MessageListener;
import org.jbpm.api.model.Event;
@@ -137,7 +137,7 @@
public void sendMessage(ObjectName procID, String targetName, Message msg)
{
ProcessInstanceService procService = ProcessInstanceService.locateProcessService();
- ProcessAsync proc = procService.getProcess(procID);
+ Process proc = procService.getProcess(procID);
if (proc == null)
throw new IllegalStateException("Cannot obtain registered process: " + procID);
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/PersistenceService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/PersistenceService.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/PersistenceService.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -27,7 +27,7 @@
import org.hibernate.Session;
import org.jbpm.api.client.Configuration;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.model.Node;
@@ -73,17 +73,17 @@
/**
* Save the Process to persistent storage
*/
- public abstract ObjectName saveProcess(ProcessAsync proc);
+ public abstract ObjectName saveProcess(Process proc);
/**
* Load the Process from persistent storage
*/
- public abstract ProcessAsync loadProcess(ObjectName procID);
+ public abstract Process loadProcess(ObjectName procID);
/**
* Delete the Process from persistent storage
*/
- public abstract void deleteProcess(ProcessAsync proc);
+ public abstract void deleteProcess(Process proc);
/**
* Save the Node to persistent storage
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/exclusive/ExclusiveGatewaySplitTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/exclusive/ExclusiveGatewaySplitTest.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/exclusive/ExclusiveGatewaySplitTest.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -26,7 +26,7 @@
import java.io.IOException;
import java.util.List;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.model.Expression.ExpressionLanguage;
import org.jbpm.api.model.Gateway.GatewayType;
@@ -49,7 +49,7 @@
public void testGateA() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- ProcessAsync proc = procDef.newInstance();
+ Process proc = procDef.newInstance();
BasicAttachments att = new BasicAttachments();
att.addAttachment("foo", "5");
@@ -64,7 +64,7 @@
public void testGateB() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- ProcessAsync proc = procDef.newInstance();
+ Process proc = procDef.newInstance();
BasicAttachments att = new BasicAttachments();
att.addAttachment("foo", "15");
@@ -79,7 +79,7 @@
public void testInvalidGate() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- ProcessAsync proc = procDef.newInstance();
+ Process proc = procDef.newInstance();
BasicAttachments att = new BasicAttachments();
att.addAttachment("foo", "10");
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/process/ProcessDefinitionServiceTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/process/ProcessDefinitionServiceTest.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/process/ProcessDefinitionServiceTest.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -27,7 +27,7 @@
import javax.management.ObjectName;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.service.ProcessDefinitionService;
@@ -66,7 +66,7 @@
ProcessDefinitionService procDefService = engine.getService(ProcessDefinitionService.class);
ProcessInstanceService procService = engine.getService(ProcessInstanceService.class);
- ProcessAsync proc = procDef.newInstance();
+ Process proc = procDef.newInstance();
assertNotNull("Process not null", proc);
assertNull("Process not automatically registered", procService.getProcess(proc.getKey()));
assertNull("ProcessDefinition not automatically registered", procDefService.getProcessDefinition(procDef.getKey()));
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/process/ProcessServiceTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/process/ProcessServiceTest.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/process/ProcessServiceTest.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -25,7 +25,7 @@
import javax.management.ObjectName;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.model.builder.ProcessBuilder;
import org.jbpm.api.service.ProcessBuilderService;
@@ -47,7 +47,7 @@
ProcessInstanceService procService = ProcessInstanceService.locateProcessService();
ProcessDefinition procDef = getProcessDefinition();
- ProcessAsync proc = procDef.newInstance();
+ Process proc = procDef.newInstance();
assertNull("ProcessDefinition not registered automatically", procDefService.getProcessDefinition(procDef.getKey()));
assertNull("Process not registered automatically", procService.getProcess(proc.getKey()));
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/task/waitstate/WaitStateTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/task/waitstate/WaitStateTest.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/task/waitstate/WaitStateTest.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -25,7 +25,7 @@
import java.io.IOException;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.Token;
import org.jbpm.api.client.Token.TokenStatus;
@@ -45,7 +45,7 @@
public void testBasicWaitState() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- ProcessAsync proc = procDef.newInstance();
+ Process proc = procDef.newInstance();
// Start the Process
Token tok = proc.startProcess();
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/exclusivechoice/ExclusiveChoiceTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/exclusivechoice/ExclusiveChoiceTest.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/exclusivechoice/ExclusiveChoiceTest.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -26,7 +26,7 @@
import java.io.IOException;
import java.util.List;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.model.Gateway;
import org.jbpm.api.model.Expression.ExpressionLanguage;
@@ -49,7 +49,7 @@
public void testGateA() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- ProcessAsync proc = procDef.newInstance();
+ Process proc = procDef.newInstance();
BasicAttachments att = new BasicAttachments();
att.addAttachment("foo", "5");
@@ -64,7 +64,7 @@
public void testGateB() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- ProcessAsync proc = procDef.newInstance();
+ Process proc = procDef.newInstance();
BasicAttachments att = new BasicAttachments();
att.addAttachment("foo", "15");
@@ -79,7 +79,7 @@
public void testInvalidGate() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- ProcessAsync proc = procDef.newInstance();
+ Process proc = procDef.newInstance();
BasicAttachments att = new BasicAttachments();
att.addAttachment("foo", "10");
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/multichoice/MultiChoiceTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/multichoice/MultiChoiceTest.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/multichoice/MultiChoiceTest.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -26,7 +26,7 @@
import java.io.IOException;
import java.util.List;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.model.Gateway;
import org.jbpm.api.model.Expression.ExpressionLanguage;
@@ -49,7 +49,7 @@
public void testGateA() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- ProcessAsync proc = procDef.newInstance();
+ Process proc = procDef.newInstance();
BasicAttachments att = new BasicAttachments();
att.addAttachment("foo", "5");
@@ -63,7 +63,7 @@
public void testGateB() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- ProcessAsync proc = procDef.newInstance();
+ Process proc = procDef.newInstance();
BasicAttachments att = new BasicAttachments();
att.addAttachment("foo", "15");
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/parallelsplit/ParallelSplitTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/parallelsplit/ParallelSplitTest.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/parallelsplit/ParallelSplitTest.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -28,7 +28,7 @@
import javax.management.ObjectName;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.model.Gateway;
import org.jbpm.api.model.builder.ProcessBuilder;
@@ -49,7 +49,7 @@
public void testParallelSplit() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- ProcessAsync proc = procDef.newInstance();
+ Process proc = procDef.newInstance();
proc.startProcessAsync();
proc.waitForEnd();
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/sequence/SequenceTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/sequence/SequenceTest.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/sequence/SequenceTest.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -26,7 +26,7 @@
import java.io.IOException;
import java.util.List;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.model.builder.ProcessBuilder;
import org.jbpm.api.model.preview.Signal;
@@ -46,7 +46,7 @@
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- ProcessAsync proc = procDef.newInstance();
+ Process proc = procDef.newInstance();
// Start the Process
proc.startProcessAsync();
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/simplemerge/SimpleMergeTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/simplemerge/SimpleMergeTest.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/simplemerge/SimpleMergeTest.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -26,7 +26,7 @@
import java.io.IOException;
import java.util.List;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.model.Gateway.GatewayType;
import org.jbpm.api.model.builder.ProcessBuilder;
@@ -46,7 +46,7 @@
public void testSimpleMerge() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- ProcessAsync proc = procDef.newInstance();
+ Process proc = procDef.newInstance();
// Start the process
proc.startProcessAsync();
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/synchronization/SynchronizationTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/synchronization/SynchronizationTest.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/synchronization/SynchronizationTest.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -25,7 +25,7 @@
import java.io.IOException;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.model.Event.EventDetailType;
import org.jbpm.api.model.Expression.ExpressionLanguage;
@@ -50,7 +50,7 @@
public void testParallelMerge() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- ProcessAsync proc = procDef.newInstance();
+ Process proc = procDef.newInstance();
// Start the process
proc.startProcessAsync();
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/data/casedata/CaseDataTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/data/casedata/CaseDataTest.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/data/casedata/CaseDataTest.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -25,7 +25,7 @@
import java.io.IOException;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.model.Event.EventDetailType;
import org.jbpm.api.model.Expression.ExpressionLanguage;
@@ -50,7 +50,7 @@
public void testCaseProperties() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- ProcessAsync proc = procDef.newInstance();
+ Process proc = procDef.newInstance();
proc.startProcessAsync();
proc.waitForEnd();
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/data/taskdata/TaskDataTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/data/taskdata/TaskDataTest.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/data/taskdata/TaskDataTest.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -25,7 +25,7 @@
import java.io.IOException;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.model.Event.EventDetailType;
import org.jbpm.api.model.Expression.ExpressionLanguage;
@@ -51,7 +51,7 @@
public void testTaskDataRead() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- ProcessAsync proc = procDef.newInstance();
+ Process proc = procDef.newInstance();
proc.startProcessAsync();
proc.waitForEnd();
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/endevent/EndEventMessageTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/endevent/EndEventMessageTest.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/endevent/EndEventMessageTest.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -25,7 +25,7 @@
import java.io.IOException;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.model.Event.EventDetailType;
import org.jbpm.api.model.builder.ProcessBuilder;
@@ -46,7 +46,7 @@
public void testStart() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- ProcessAsync proc = procDef.newInstance();
+ Process proc = procDef.newInstance();
// Start the process
BasicAttachments att = new BasicAttachments();
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/exclusive/ExclusiveGatewayMergeTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/exclusive/ExclusiveGatewayMergeTest.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/exclusive/ExclusiveGatewayMergeTest.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -26,7 +26,7 @@
import java.io.IOException;
import java.util.List;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.model.Gateway.GatewayType;
import org.jbpm.api.model.builder.ProcessBuilder;
@@ -47,7 +47,7 @@
public void testMerge() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- ProcessAsync proc = procDef.newInstance();
+ Process proc = procDef.newInstance();
// Start the process
proc.startProcessAsync();
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/inclusive/InclusiveGatewayMergeTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/inclusive/InclusiveGatewayMergeTest.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/inclusive/InclusiveGatewayMergeTest.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -26,7 +26,7 @@
import java.io.IOException;
import java.util.List;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.model.Gateway.GatewayType;
import org.jbpm.api.model.builder.ProcessBuilder;
@@ -46,7 +46,7 @@
public void testSimpleMerge() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- ProcessAsync proc = procDef.newInstance();
+ Process proc = procDef.newInstance();
// Start the process
proc.startProcessAsync();
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/inclusive/InclusiveGatewaySplitTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/inclusive/InclusiveGatewaySplitTest.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/inclusive/InclusiveGatewaySplitTest.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -26,7 +26,7 @@
import java.io.IOException;
import java.util.List;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.model.Expression.ExpressionLanguage;
import org.jbpm.api.model.Gateway.GatewayType;
@@ -49,7 +49,7 @@
public void testGateA() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- ProcessAsync proc = procDef.newInstance();
+ Process proc = procDef.newInstance();
BasicAttachments att = new BasicAttachments();
att.addAttachment("foo", "5");
@@ -63,7 +63,7 @@
public void testGateB() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- ProcessAsync proc = procDef.newInstance();
+ Process proc = procDef.newInstance();
BasicAttachments att = new BasicAttachments();
att.addAttachment("foo", "15");
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/parallel/ParallelGatewayMergeTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/parallel/ParallelGatewayMergeTest.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/parallel/ParallelGatewayMergeTest.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -25,7 +25,7 @@
import java.io.IOException;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.model.Event.EventDetailType;
import org.jbpm.api.model.Expression.ExpressionLanguage;
@@ -50,7 +50,7 @@
public void testParallelMerge() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- ProcessAsync proc = procDef.newInstance();
+ Process proc = procDef.newInstance();
// Start the process
proc.startProcessAsync();
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/parallel/ParallelGatewaySplitTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/parallel/ParallelGatewaySplitTest.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/parallel/ParallelGatewaySplitTest.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -28,7 +28,7 @@
import javax.management.ObjectName;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.model.Gateway.GatewayType;
import org.jbpm.api.model.builder.ProcessBuilder;
@@ -49,7 +49,7 @@
public void testParallelSplit() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- ProcessAsync proc = procDef.newInstance();
+ Process proc = procDef.newInstance();
proc.startProcessAsync();
proc.waitForEnd(5000);
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/node/NodeInputSetTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/node/NodeInputSetTest.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/node/NodeInputSetTest.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -25,7 +25,7 @@
import java.io.IOException;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.model.Event.EventDetailType;
import org.jbpm.api.model.builder.ProcessBuilder;
@@ -51,7 +51,7 @@
public void testValidProps() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- ProcessAsync proc = procDef.newInstance();
+ Process proc = procDef.newInstance();
BasicAttachments att = new BasicAttachments();
att.addAttachment("frog", "kermit");
@@ -66,7 +66,7 @@
public void testInvalidProps() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- ProcessAsync proc = procDef.newInstance();
+ Process proc = procDef.newInstance();
BasicAttachments att = new BasicAttachments();
att.addAttachment("pig", "piggy");
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/node/NodeOutputSetTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/node/NodeOutputSetTest.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/node/NodeOutputSetTest.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -25,7 +25,7 @@
import java.io.IOException;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.model.Event.EventDetailType;
import org.jbpm.api.model.builder.ProcessBuilder;
@@ -51,7 +51,7 @@
public void testValidProps() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- ProcessAsync proc = procDef.newInstance();
+ Process proc = procDef.newInstance();
proc.startProcessAsync();
proc.waitForEnd(5000);
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/node/NodePropertyTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/node/NodePropertyTest.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/node/NodePropertyTest.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -25,7 +25,7 @@
import java.io.IOException;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.model.Event.EventDetailType;
import org.jbpm.api.model.Expression.ExpressionLanguage;
@@ -52,7 +52,7 @@
public void testActivityPropertyRead() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- ProcessAsync proc = procDef.newInstance();
+ Process proc = procDef.newInstance();
proc.startProcessAsync();
proc.waitForEnd(5000);
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/process/ProcessPropertyTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/process/ProcessPropertyTest.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/process/ProcessPropertyTest.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -25,7 +25,7 @@
import java.io.IOException;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.model.Event.EventDetailType;
import org.jbpm.api.model.Expression.ExpressionLanguage;
@@ -57,7 +57,7 @@
public void testProcessProperties() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- ProcessAsync proc = procDef.newInstance();
+ Process proc = procDef.newInstance();
proc.startProcessAsync();
proc.waitForEnd(5000);
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/startevent/StartEventSignalTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/startevent/StartEventSignalTest.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/startevent/StartEventSignalTest.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -28,7 +28,7 @@
import javax.management.ObjectName;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.preview.SignalListener;
import org.jbpm.api.model.Event.EventDetailType;
@@ -63,7 +63,7 @@
ProcessDefinitionService procDefService = ProcessDefinitionService.locateProcessDefinitionService();
procDefService.registerProcessDefinition(procDef);
- ProcessAsync proc = procDef.newInstance();
+ Process proc = procDef.newInstance();
try
{
proc.startProcessAsync();
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/java/JavaTaskTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/java/JavaTaskTest.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/java/JavaTaskTest.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -25,7 +25,7 @@
import java.io.IOException;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.Token;
import org.jbpm.api.model.Expression.ExpressionLanguage;
@@ -49,7 +49,7 @@
public void testExecutionHandler() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- ProcessAsync proc = procDef.newInstance();
+ Process proc = procDef.newInstance();
proc.startProcessAsync();
proc.waitForEnd(5000);
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/receive/ReceiveTaskTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/receive/ReceiveTaskTest.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/receive/ReceiveTaskTest.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -28,7 +28,7 @@
import javax.management.ObjectName;
import org.jbpm.api.InvalidProcessException;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.preview.SignalListener;
import org.jbpm.api.model.Event.EventDetailType;
@@ -74,7 +74,7 @@
public void testUnregisteredProcess() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- ProcessAsync proc = procDef.newInstance();
+ Process proc = procDef.newInstance();
MessageService msgService = MessageService.locateMessageService();
try
@@ -94,7 +94,7 @@
ProcessInstanceService procService = ProcessInstanceService.locateProcessService();
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- ProcessAsync proc = procDef.newInstance();
+ Process proc = procDef.newInstance();
ObjectName procID = procService.registerProcess(proc);
try
@@ -119,7 +119,7 @@
public void testSuspendedToken() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- final ProcessAsync proc = procDef.newInstance();
+ final Process proc = procDef.newInstance();
SignalListener sigListener = new SignalListener()
{
private boolean sendMessage = true;
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/send/SendTaskTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/send/SendTaskTest.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/send/SendTaskTest.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -27,7 +27,7 @@
import java.util.List;
import org.jbpm.api.InvalidProcessException;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.model.Task.TaskType;
import org.jbpm.api.model.builder.ProcessBuilder;
@@ -48,7 +48,7 @@
public void testSendTask() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- ProcessAsync proc = procDef.newInstance();
+ Process proc = procDef.newInstance();
BasicAttachments att = new BasicAttachments();
att.addAttachment("foo", "bar");
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/user/UserTaskCallbackTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/user/UserTaskCallbackTest.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/user/UserTaskCallbackTest.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -26,7 +26,7 @@
import java.io.IOException;
import java.util.List;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.preview.UserTaskCallback;
import org.jbpm.api.model.Event.EventDetailType;
@@ -50,7 +50,7 @@
public void testUserTask() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- ProcessAsync proc = procDef.newInstance();
+ Process proc = procDef.newInstance();
// Attach the callback to the UserTask
UserTask userTask = proc.getNode(UserTask.class, "UserTask");
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/user/UserTaskTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/user/UserTaskTest.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/user/UserTaskTest.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -29,7 +29,7 @@
import javax.management.ObjectName;
import org.jbpm.api.Constants;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.preview.MessageListener;
import org.jbpm.api.model.Event.EventDetailType;
@@ -58,7 +58,7 @@
public void testUserTask() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- ProcessAsync proc = procDef.newInstance();
+ Process proc = procDef.newInstance();
// Register the process - this assigns the procID
ProcessInstanceService procService = ProcessInstanceService.locateProcessService();
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/transaction/TxRequiredTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/transaction/TxRequiredTest.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/transaction/TxRequiredTest.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -29,7 +29,7 @@
import org.hibernate.Transaction;
import org.jbpm.api.Constants;
import org.jbpm.api.Constants.TxType;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.Token;
import org.jbpm.api.model.Node;
@@ -66,7 +66,7 @@
assertSame("Group same", group, groupA);
assertSame("Group same", group, groupB);
- ProcessAsync proc = procDef.newInstance();
+ Process proc = procDef.newInstance();
proc.startProcessAsync();
proc.waitForEnd();
@@ -78,7 +78,7 @@
public void testRollback() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- ProcessAsync proc = procDef.newInstance();
+ Process proc = procDef.newInstance();
BasicAttachments att = new BasicAttachments();
att.addAttachment(Boolean.class, "rollback", Boolean.TRUE);
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/AbstractElementImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/AbstractElementImpl.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/AbstractElementImpl.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -29,7 +29,7 @@
import javax.persistence.MappedSuperclass;
import org.hibernate.Session;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.model.AbstractElement;
@@ -87,22 +87,22 @@
// nothing to do
}
- protected void create(ProcessAsync proc)
+ protected void create(Process proc)
{
// nothing to do
}
- protected void register(ProcessAsync proc)
+ protected void register(Process proc)
{
// nothing to do
}
- protected void unregister(ProcessAsync proc)
+ protected void unregister(Process proc)
{
// nothing to do
}
- protected void destroy(ProcessAsync proc)
+ protected void destroy(Process proc)
{
// nothing to do
}
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/EventImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/EventImpl.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/EventImpl.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -32,7 +32,7 @@
import org.jbpm.api.Constants;
import org.jbpm.api.InvalidProcessException;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.client.Token;
@@ -214,7 +214,7 @@
}
@Override
- protected void create(ProcessAsync proc)
+ protected void create(Process proc)
{
super.create(proc);
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/NodeImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/NodeImpl.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/NodeImpl.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -43,7 +43,7 @@
import org.hibernate.annotations.IndexColumn;
import org.jbpm.api.InvalidProcessException;
import org.jbpm.api.NameNotUniqueException;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.client.Token;
@@ -130,7 +130,7 @@
private ProcessDefinition procDef;
@ManyToOne(targetEntity = ProcessImpl.class)
- private ProcessAsync proc;
+ private Process proc;
@ManyToOne(targetEntity = GroupImpl.class)
private Group groupRef;
@@ -153,7 +153,7 @@
}
@Override
- public ProcessAsync getProcess()
+ public Process getProcess()
{
return proc;
}
@@ -397,7 +397,7 @@
}
@Override
- protected void create(ProcessAsync proc)
+ protected void create(Process proc)
{
super.create(proc);
this.proc = proc;
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessDefinitionImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessDefinitionImpl.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessDefinitionImpl.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -41,7 +41,7 @@
import org.hibernate.Hibernate;
import org.hibernate.Session;
import org.jbpm.api.Constants;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.model.Node;
@@ -101,7 +101,7 @@
}
@Override
- public ProcessAsync newInstance()
+ public Process newInstance()
{
// Create a copy of the process structure from raw data
ProcessStructureImpl procStructCopy;
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessImpl.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessImpl.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -39,7 +39,7 @@
import org.hibernate.Session;
import org.jbpm.api.Constants;
import org.jbpm.api.InvalidProcessException;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.client.Token;
@@ -66,7 +66,7 @@
* @since 08-Jul-2008
*/
@Entity(name = "BPMProcess")
-public class ProcessImpl extends AbstractElementImpl implements ProcessAsync
+public class ProcessImpl extends AbstractElementImpl implements Process
{
private static final long serialVersionUID = 1L;
@@ -370,28 +370,28 @@
}
@Override
- protected void create(ProcessAsync proc)
+ protected void create(Process proc)
{
super.create(proc);
procStruct.create(proc);
}
@Override
- public void register(ProcessAsync proc)
+ public void register(Process proc)
{
super.register(proc);
procStruct.register(proc);
}
@Override
- public void unregister(ProcessAsync proc)
+ public void unregister(Process proc)
{
super.unregister(proc);
procStruct.unregister(proc);
}
@Override
- protected void destroy(ProcessAsync proc)
+ protected void destroy(Process proc)
{
super.destroy(proc);
procStruct.destroy(proc);
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessStructureImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessStructureImpl.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessStructureImpl.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -41,7 +41,7 @@
import org.hibernate.annotations.IndexColumn;
import org.jbpm.api.Constants;
import org.jbpm.api.InvalidProcessException;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.model.EndEvent;
@@ -360,7 +360,7 @@
}
@Override
- protected void create(ProcessAsync proc)
+ protected void create(Process proc)
{
super.create(proc);
for (Node node : getNodes())
@@ -371,7 +371,7 @@
}
@Override
- protected void register(ProcessAsync proc)
+ protected void register(Process proc)
{
super.register(proc);
for (Node node : getNodes())
@@ -382,7 +382,7 @@
}
@Override
- protected void unregister(ProcessAsync proc)
+ protected void unregister(Process proc)
{
super.unregister(proc);
for (Node node : getNodes())
@@ -393,7 +393,7 @@
}
@Override
- protected void destroy(ProcessAsync proc)
+ protected void destroy(Process proc)
{
super.destroy(proc);
for (Node node : getNodes())
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ReceiveTaskImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ReceiveTaskImpl.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ReceiveTaskImpl.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -31,7 +31,7 @@
import org.jbpm.api.InvalidProcessException;
import org.jbpm.api.NotImplementedException;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.Token;
import org.jbpm.api.client.preview.MessageListener;
@@ -165,7 +165,7 @@
}
@Override
- protected void create(ProcessAsync proc)
+ protected void create(Process proc)
{
super.create(proc);
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/SendTaskImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/SendTaskImpl.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/SendTaskImpl.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -27,7 +27,7 @@
import javax.persistence.Transient;
import org.jbpm.api.InvalidProcessException;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.Token;
import org.jbpm.api.model.Node;
@@ -119,7 +119,7 @@
}
@Override
- protected void create(ProcessAsync proc)
+ protected void create(Process proc)
{
super.create(proc);
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/StartEventImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/StartEventImpl.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/StartEventImpl.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -29,7 +29,7 @@
import org.jbpm.api.Constants;
import org.jbpm.api.InvalidProcessException;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.client.Token;
@@ -187,7 +187,7 @@
// There MAY be multiple Start Events for a given Process level. Each Start Event is an independent event.
// That is, a Process Instance SHALL be generated when the Start Event is triggered.
- ProcessAsync proc = procDef.newInstance();
+ Process proc = procDef.newInstance();
StartEvent startEvent = proc.getNode(StartEvent.class, startEventName);
ExecutionService execService = engine.getService(ExecutionService.class);
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/UserTaskImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/UserTaskImpl.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/UserTaskImpl.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -33,7 +33,7 @@
import javax.persistence.Transient;
import org.jbpm.api.InvalidProcessException;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.Token;
import org.jbpm.api.client.preview.MessageListener;
@@ -202,7 +202,7 @@
}
@Override
- protected void create(ProcessAsync proc)
+ protected void create(Process proc)
{
super.create(proc);
@@ -212,7 +212,7 @@
}
@Override
- protected void register(ProcessAsync proc)
+ protected void register(Process proc)
{
super.register(proc);
@@ -227,7 +227,7 @@
}
@Override
- protected void unregister(ProcessAsync proc)
+ protected void unregister(Process proc)
{
super.unregister(proc);
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/builder/ProcessBuilderImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/builder/ProcessBuilderImpl.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/builder/ProcessBuilderImpl.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -24,7 +24,7 @@
//$Id$
import org.jbpm.api.NotImplementedException;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.model.Event.EventDetailType;
@@ -64,7 +64,7 @@
import org.jbpm.ri.model.WaitStateImpl;
/**
- * The ProcessBuilder can be used to dynamically build a {@link ProcessAsync}.
+ * The ProcessBuilder can be used to dynamically build a {@link Process}.
*
* @author thomas.diesler(a)jboss.com
* @since 08-Jul-2008
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingAttachments.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingAttachments.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingAttachments.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -28,14 +28,14 @@
import java.util.HashMap;
import java.util.Map;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.model.Node;
import org.jbpm.api.model.preview.Property;
import org.jbpm.api.runtime.Attachments;
/**
- * An ExecutionContext that delegates to the current {@link Node} or {@link ProcessAsync} for property rerieval.
+ * An ExecutionContext that delegates to the current {@link Node} or {@link Process} for property rerieval.
*
* @author Thomas.Diesler(a)jboss.com
* @since 15-Aug-2008
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingToken.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingToken.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingToken.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -24,7 +24,7 @@
//$Id$
import org.hibernate.Session;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.client.Token;
import org.jbpm.api.model.Node;
@@ -88,7 +88,7 @@
}
@Override
- public ProcessAsync getProcess()
+ public Process getProcess()
{
return delegateToken.getProcess();
}
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/InProcessTokenExecutor.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/InProcessTokenExecutor.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/InProcessTokenExecutor.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -23,7 +23,7 @@
//$Id$
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.Token;
import org.jbpm.api.client.Token.TokenStatus;
import org.jbpm.api.model.SequenceFlow;
@@ -43,9 +43,9 @@
final static Logger log = LoggerFactory.getLogger(InProcessTokenExecutor.class);
@SuppressWarnings("unused")
- private ProcessAsync proc;
+ private Process proc;
- public InProcessTokenExecutor(ProcessAsync proc)
+ public InProcessTokenExecutor(Process proc)
{
this.proc = proc;
}
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RunnableToken.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RunnableToken.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RunnableToken.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -21,9 +21,9 @@
*/
package org.jbpm.ri.runtime;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.Token;
-import org.jbpm.api.client.ProcessAsync.ProcessStatus;
+import org.jbpm.api.client.Process.ProcessStatus;
import org.jbpm.api.client.Token.TokenStatus;
import org.jbpm.api.model.Node;
import org.jbpm.api.service.ProcessInstanceService;
@@ -67,7 +67,7 @@
public void run()
{
- ProcessAsync proc = rtProc.getProcess();
+ Process proc = rtProc.getProcess();
try
{
Node node = token.getCurrentNode();
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RuntimeProcess.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RuntimeProcess.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RuntimeProcess.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -23,13 +23,13 @@
//$Id$
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.runtime.preview.TokenExecutor;
/**
- * A RuntimeProcess add runtime behaviour to the {@link ProcessAsync}
+ * A RuntimeProcess add runtime behaviour to the {@link Process}
* <p/>
- * To protect the engine from maligious user code it does not extend {@link ProcessAsync} directly.
+ * To protect the engine from maligious user code it does not extend {@link Process} directly.
*
* @author thomas.diesler(a)jboss.com
* @since 08-Jul-2008
@@ -37,12 +37,12 @@
public interface RuntimeProcess
{
/**
- * Get the associated {@link ProcessAsync}
+ * Get the associated {@link Process}
*/
- ProcessAsync getProcess();
+ Process getProcess();
/**
- * Get the {@link TokenExecutor} for this {@link ProcessAsync}
+ * Get the {@link TokenExecutor} for this {@link Process}
*/
ThreadingTokenExecutor getTokenExecutor();
}
\ No newline at end of file
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RuntimeProcessImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RuntimeProcessImpl.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RuntimeProcessImpl.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -23,26 +23,26 @@
//$Id$
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
/**
- * A RuntimeProcess add runtime behaviour to the {@link ProcessAsync}
+ * A RuntimeProcess add runtime behaviour to the {@link Process}
*
* @author thomas.diesler(a)jboss.com
* @since 08-Jul-2008
*/
public class RuntimeProcessImpl implements RuntimeProcess
{
- private ProcessAsync proc;
+ private Process proc;
private ThreadingTokenExecutor tokenExecutor;
- public RuntimeProcessImpl(ProcessAsync proc)
+ public RuntimeProcessImpl(Process proc)
{
this.proc = proc;
this.tokenExecutor = new ThreadingTokenExecutor(this);
}
- public ProcessAsync getProcess()
+ public Process getProcess()
{
return proc;
}
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/ThreadingTokenExecutor.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/ThreadingTokenExecutor.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/ThreadingTokenExecutor.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -32,7 +32,7 @@
import java.util.concurrent.Executors;
import org.jbpm.api.client.Token;
-import org.jbpm.api.client.ProcessAsync.ProcessStatus;
+import org.jbpm.api.client.Process.ProcessStatus;
import org.jbpm.api.client.Token.TokenStatus;
import org.jbpm.api.model.SequenceFlow;
import org.jbpm.api.runtime.preview.FlowHandler;
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TokenImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TokenImpl.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TokenImpl.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -25,10 +25,10 @@
import org.hibernate.Session;
import org.jboss.util.id.UID;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.client.Token;
-import org.jbpm.api.client.ProcessAsync.ProcessStatus;
+import org.jbpm.api.client.Process.ProcessStatus;
import org.jbpm.api.model.Node;
import org.jbpm.api.model.SequenceFlow;
import org.jbpm.api.model.WaitState;
@@ -57,13 +57,13 @@
private SequenceFlow flow;
private Attachments att;
private TokenStatus status;
- private ProcessAsync proc;
+ private Process proc;
private Session session;
/**
* Construct a Token with given {@link Attachments}
*/
- public TokenImpl(ProcessAsync proc, Attachments att)
+ public TokenImpl(Process proc, Attachments att)
{
this.att = new BasicAttachments(att);
this.id = new UID().toString();
@@ -96,7 +96,7 @@
}
@Override
- public ProcessAsync getProcess()
+ public Process getProcess()
{
return proc;
}
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ExecutionServiceImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ExecutionServiceImpl.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ExecutionServiceImpl.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -30,10 +30,10 @@
import org.jbpm.api.BPMException;
import org.jbpm.api.ProcessTimeoutException;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.client.Token;
-import org.jbpm.api.client.ProcessAsync.ProcessStatus;
+import org.jbpm.api.client.Process.ProcessStatus;
import org.jbpm.api.model.Expression;
import org.jbpm.api.model.StartEvent;
import org.jbpm.api.model.preview.Assignment;
@@ -78,12 +78,12 @@
}
@Override
- public void startProcess(ProcessAsync proc, StartEvent start, Attachments att)
+ public void startProcess(Process proc, StartEvent start, Attachments att)
{
startProcessInternal(proc, start, att);
}
- private synchronized void startProcessInternal(ProcessAsync proc, StartEvent start, Attachments att)
+ private synchronized void startProcessInternal(Process proc, StartEvent start, Attachments att)
{
@SuppressWarnings("serial")
class InitialFlow extends SequenceFlowImpl
@@ -136,7 +136,7 @@
}
// Evaluate the Start time assignments
- private void startTimeAssignments(ProcessAsync proc, Token token)
+ private void startTimeAssignments(Process proc, Token token)
{
DelegatingToken delegatingToken = new DelegatingToken((MutableToken)token);
Attachments atts = token.getAttachments();
@@ -153,12 +153,12 @@
}
}
- public ProcessStatus waitForEnd(ProcessAsync proc)
+ public ProcessStatus waitForEnd(Process proc)
{
return waitForEndInternal(proc, 0);
}
- public ProcessStatus waitForEnd(ProcessAsync proc, long timeout)
+ public ProcessStatus waitForEnd(Process proc, long timeout)
{
return waitForEndInternal(proc, timeout);
}
@@ -168,7 +168,7 @@
* arrive at an End Event. The Process will be in a running state until all Tokens are consumed. If the process was
* aborted this method throws the causing RuntimeException if avaialable.
*/
- private ProcessStatus waitForEndInternal(ProcessAsync proc, long timeout)
+ private ProcessStatus waitForEndInternal(Process proc, long timeout)
{
ProcessImpl procImpl = (ProcessImpl)proc;
@@ -233,13 +233,13 @@
return status;
}
- private boolean isProcessTerminated(ProcessAsync proc)
+ private boolean isProcessTerminated(Process proc)
{
ProcessStatus status = proc.getProcessStatus();
return status == ProcessStatus.Cancelled || status == ProcessStatus.Completed || status == ProcessStatus.Aborted;
}
- private RuntimeProcess getRuntimeProcess(ProcessAsync proc, boolean createNew)
+ private RuntimeProcess getRuntimeProcess(Process proc, boolean createNew)
{
RuntimeProcess rtProcess;
synchronized (runtimeProcesses)
@@ -270,7 +270,7 @@
{
ThreadingTokenExecutor tokenExecutor = rtProc.getTokenExecutor();
ProcessImpl procImpl = (ProcessImpl)rtProc.getProcess();
- ProcessAsync proc = rtProc.getProcess();
+ Process proc = rtProc.getProcess();
ProcessEngine engine = getProcessEngine();
SignalService sigService = engine.getService(SignalService.class);
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/HibernatePersistenceServiceImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/HibernatePersistenceServiceImpl.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/HibernatePersistenceServiceImpl.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -36,7 +36,7 @@
import org.hibernate.cfg.AnnotationConfiguration;
import org.jbpm.api.NodeNotFoundException;
import org.jbpm.api.ProcessNotFoundException;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.model.Node;
@@ -151,7 +151,7 @@
}
@Override
- public ObjectName saveProcess(ProcessAsync proc)
+ public ObjectName saveProcess(Process proc)
{
log.debug("START saveProcess: " + proc.getKey());
Session session = getSessionFactory().openSession();
@@ -170,15 +170,15 @@
}
@Override
- public ProcessAsync loadProcess(ObjectName procID)
+ public Process loadProcess(ObjectName procID)
{
log.debug("START loadProcess: " + procID);
- ProcessAsync proc = null;
+ Process proc = null;
Session session = getSessionFactory().openSession();
try
{
Integer id = Integer.valueOf(procID.getKeyProperty("id"));
- proc = (ProcessAsync)session.load(ProcessImpl.class, id);
+ proc = (Process)session.load(ProcessImpl.class, id);
AbstractElementImpl elImpl = (AbstractElementImpl)proc;
elImpl.initialize(getProcessEngine(), session);
}
@@ -195,7 +195,7 @@
}
@Override
- public void deleteProcess(ProcessAsync proc)
+ public void deleteProcess(Process proc)
{
log.debug("START deleteProcess: " + proc);
Session session = getSessionFactory().openSession();
@@ -204,7 +204,7 @@
{
ObjectName procID = proc.getKey();
Integer id = Integer.valueOf(procID.getKeyProperty("id"));
- proc = (ProcessAsync)session.load(ProcessImpl.class, id);
+ proc = (Process)session.load(ProcessImpl.class, id);
session.delete(proc);
tx.commit();
}
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/InMemoryPersistenceServiceImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/InMemoryPersistenceServiceImpl.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/InMemoryPersistenceServiceImpl.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -30,7 +30,7 @@
import org.hibernate.Session;
import org.jbpm.api.ProcessNotFoundException;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.model.Node;
@@ -50,7 +50,7 @@
final Logger log = LoggerFactory.getLogger(InMemoryPersistenceServiceImpl.class);
private Map<ObjectName, ProcessDefinition> procDefs = new HashMap<ObjectName, ProcessDefinition>();
- private Map<ObjectName, ProcessAsync> procs = new HashMap<ObjectName, ProcessAsync>();
+ private Map<ObjectName, Process> procs = new HashMap<ObjectName, Process>();
private Map<ObjectName, Node> nodes = new HashMap<ObjectName, Node>();
@Override
@@ -89,7 +89,7 @@
}
@Override
- public ObjectName saveProcess(ProcessAsync proc)
+ public ObjectName saveProcess(Process proc)
{
procs.put(proc.getKey(), proc);
@@ -100,9 +100,9 @@
}
@Override
- public ProcessAsync loadProcess(ObjectName procID)
+ public Process loadProcess(ObjectName procID)
{
- ProcessAsync proc = procs.get(procID);
+ Process proc = procs.get(procID);
if (proc == null)
throw new ProcessNotFoundException("Cannot find process: " + procID);
@@ -110,7 +110,7 @@
}
@Override
- public void deleteProcess(ProcessAsync proc)
+ public void deleteProcess(Process proc)
{
procs.remove(proc.getKey());
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ProcessBuilderServiceImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ProcessBuilderServiceImpl.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ProcessBuilderServiceImpl.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -23,14 +23,14 @@
// $Id$
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.model.builder.ProcessBuilder;
import org.jbpm.api.service.ProcessBuilderService;
import org.jbpm.ri.model.builder.ProcessBuilderImpl;
/**
- * The ProcessBuilder can be used to build a {@link ProcessAsync} dynamically.
+ * The ProcessBuilder can be used to build a {@link Process} dynamically.
*
* @author thomas.diesler(a)jboss.com
* @since 18-Jun-2008
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-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ProcessServiceImpl.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -29,9 +29,9 @@
import javax.management.ObjectName;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessEngine;
-import org.jbpm.api.client.ProcessAsync.ProcessStatus;
+import org.jbpm.api.client.Process.ProcessStatus;
import org.jbpm.api.service.ProcessInstanceService;
import org.jbpm.api.service.preview.PersistenceService;
import org.jbpm.ri.model.ProcessImpl;
@@ -73,7 +73,7 @@
}
@Override
- public ObjectName registerProcess(ProcessAsync proc)
+ public ObjectName registerProcess(Process proc)
{
ObjectName procID = super.registerProcess(proc);
Modified: projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/ProcessPersistenceTest.java
===================================================================
--- projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/ProcessPersistenceTest.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/ProcessPersistenceTest.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -26,7 +26,7 @@
import javax.management.ObjectName;
import org.jbpm.api.ProcessNotFoundException;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.model.EndEvent;
@@ -59,12 +59,12 @@
procDefService.registerProcessDefinition(procDef);
// Create and save the Process
- ProcessAsync proc = procDef.newInstance();
+ Process proc = procDef.newInstance();
service.saveProcess(proc);
// Load the process
ObjectName procID = proc.getKey();
- ProcessAsync loadProc = service.loadProcess(procID);
+ Process loadProc = service.loadProcess(procID);
ProcessCatalog.validateDefaultProcess(loadProc.getProcessDefinition());
StartEvent start = loadProc.getNode(StartEvent.class, "Start");
Modified: projects/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/server/AirticketServiceImpl.java
===================================================================
--- projects/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/server/AirticketServiceImpl.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/server/AirticketServiceImpl.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -15,7 +15,7 @@
import org.jboss.bpm.samples.airticket.client.OfferMessage;
import org.jboss.bpm.samples.airticket.client.OrderMessage;
import org.jboss.bpm.samples.airticket.client.RequestMessage;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.preview.MessageListener;
import org.jbpm.api.client.preview.SignalListener;
@@ -65,7 +65,7 @@
System.out.println("Create new Process");
AirticketProcessBuilder procBuilder = new AirticketProcessBuilder(sampleID);
ProcessDefinition procDef = procBuilder.buildProcessDefinition();
- ProcessAsync proc = procDef.newInstance();
+ Process proc = procDef.newInstance();
procService.registerProcess(proc);
procID = proc.startProcessAsync();
httpSession.setAttribute("procID", procID);
Modified: projects/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketTest.java
===================================================================
--- projects/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketTest.java 2008-11-13 14:53:01 UTC (rev 2913)
+++ projects/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketTest.java 2008-11-13 15:00:05 UTC (rev 2914)
@@ -25,7 +25,7 @@
import javax.management.ObjectName;
-import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.preview.MessageListener;
import org.jbpm.api.client.preview.UserTaskCallback;
@@ -53,7 +53,7 @@
private MessageService messageManager = MessageService.locateMessageService();
private AirticketMessageListener msgListener;
- private ProcessAsync proc;
+ private Process proc;
public void testValidData() throws Exception
{
17 years, 5 months
JBoss JBPM SVN: r2913 - in projects/spec/trunk/modules: api/src/main/java/org/jbpm/api/model and 40 other directories.
by do-not-reply@jboss.org
Author: thomas.diesler(a)jboss.com
Date: 2008-11-13 09:53:01 -0500 (Thu, 13 Nov 2008)
New Revision: 2913
Added:
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/ProcessAsync.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/builder/GatewayBuilder.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/exclusive/
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/exclusive/ExclusiveGatewayMergeTest.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingAttachments.java
Removed:
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Process.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/builder/preview/GatewayBuilder.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/preview/BasicExecutionContext.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/preview/ExecutionContext.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/exclusive/ExclusiveGatewayMergeTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/processengine/MockProcessEngine.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingExecutionContext.java
Modified:
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/ProcessDefinition.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Token.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Node.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/builder/ProcessBuilder.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ExecutionService.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessBuilderService.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessInstanceService.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/MessageService.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/PersistenceService.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/exclusive/ExclusiveGatewaySplitTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/process/ProcessDefinitionServiceTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/process/ProcessServiceTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/task/waitstate/WaitStateTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/exclusivechoice/ExclusiveChoiceTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/multichoice/MultiChoiceTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/parallelsplit/ParallelSplitTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/sequence/SequenceTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/simplemerge/SimpleMergeTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/synchronization/SynchronizationTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/data/casedata/CaseDataTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/data/taskdata/TaskDataTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/endevent/EndEventMessageTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/executioncontext/ExecutionContextTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/inclusive/InclusiveGatewayMergeTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/inclusive/InclusiveGatewaySplitTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/parallel/ParallelGatewayMergeTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/parallel/ParallelGatewaySplitTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/node/NodeInputSetTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/node/NodeOutputSetTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/node/NodePropertyTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/process/ProcessPropertyTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/startevent/StartEventSignalTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/java/JavaTaskTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/receive/ReceiveTaskTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/send/SendTaskTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/user/UserTaskCallbackTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/user/UserTaskTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/transaction/TxRequiredTest.java
projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/ProcessUnmarshaller.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/AbstractElementImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/EndEventImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/EventImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GatewayImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/InclusiveGatewayImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/NodeImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessDefinitionImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessStructureImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ReceiveTaskImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/SendTaskImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/StartEventImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/TaskImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/UserTaskImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/builder/GatewayBuilderImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/builder/ProcessBuilderImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/AssignmentInterceptor.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingToken.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/ExpressionEvaluator.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/InProcessTokenExecutor.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/MessageSender.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RunnableToken.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RuntimeProcess.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RuntimeProcessImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/ThreadingTokenExecutor.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TokenImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ExecutionServiceImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/HibernatePersistenceServiceImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/InMemoryPersistenceServiceImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ProcessBuilderServiceImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ProcessServiceImpl.java
projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/ProcessPersistenceTest.java
projects/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AirticketProcessBuilder.java
projects/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/server/AirticketServiceImpl.java
projects/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketTest.java
Log:
Remove ExecutionContext
Deleted: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Process.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Process.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Process.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -1,95 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.api.client;
-
-//$Id$
-
-import javax.management.ObjectName;
-
-import org.jbpm.api.model.ProcessStructure;
-import org.jbpm.api.runtime.Attachments;
-
-/**
- * A Process is any Activity performed within a company or organization.
- *
- * @author thomas.diesler(a)jboss.com
- * @since 08-Jul-2008
- */
-public interface Process extends ProcessStructure
-{
- /**
- * Defines the status a {@link Process} can be in
- */
- public enum ProcessStatus
- {
- None, Ready, Active, Cancelled, Aborting, Aborted, Completing, Completed
- }
-
- /**
- * Get the associated ProcessEngine
- */
- ProcessEngine getProcessEngine();
-
- /**
- * Get the associated ProcessDefinition
- */
- ProcessDefinition getProcessDefinition();
-
- /**
- * Get the process state
- */
- ProcessStatus getProcessStatus();
-
- /**
- * Start the process
- */
- Token startProcess();
-
- /**
- * Start the process, with a given execution context
- */
- Token startProcess(Attachments att);
-
- /**
- * Start the process asynchronously
- */
- ObjectName startProcessAsync();
-
- /**
- * Start the process asynchronously, with a given execution context
- */
- ObjectName startProcessAsync(Attachments att);
-
- /**
- * All Tokens that are generated at the Start Event for that Process must eventually arrive at an End Event. The
- * Process will be in a running state until all Tokens are consumed. <p/> This method until the process ends without
- * timeout.
- */
- ProcessStatus waitForEnd();
-
- /**
- * All Tokens that are generated at the Start Event for that Process must eventually arrive at an End Event. The
- * Process will be in a running state until all Tokens are consumed. <p/> This method until the process ends with a
- * given timeout.
- */
- ProcessStatus waitForEnd(long timeout);
-}
\ No newline at end of file
Copied: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/ProcessAsync.java (from rev 2911, projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Process.java)
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/ProcessAsync.java (rev 0)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/ProcessAsync.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -0,0 +1,95 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.api.client;
+
+//$Id$
+
+import javax.management.ObjectName;
+
+import org.jbpm.api.model.ProcessStructure;
+import org.jbpm.api.runtime.Attachments;
+
+/**
+ * A Process is any Activity performed within a company or organization.
+ *
+ * @author thomas.diesler(a)jboss.com
+ * @since 08-Jul-2008
+ */
+public interface ProcessAsync extends ProcessStructure
+{
+ /**
+ * Defines the status a {@link ProcessAsync} can be in
+ */
+ public enum ProcessStatus
+ {
+ None, Ready, Active, Cancelled, Aborting, Aborted, Completing, Completed
+ }
+
+ /**
+ * Get the associated ProcessEngine
+ */
+ ProcessEngine getProcessEngine();
+
+ /**
+ * Get the associated ProcessDefinition
+ */
+ ProcessDefinition getProcessDefinition();
+
+ /**
+ * Get the process state
+ */
+ ProcessStatus getProcessStatus();
+
+ /**
+ * Start the process
+ */
+ Token startProcess();
+
+ /**
+ * Start the process, with a given execution context
+ */
+ Token startProcess(Attachments att);
+
+ /**
+ * Start the process asynchronously
+ */
+ ObjectName startProcessAsync();
+
+ /**
+ * Start the process asynchronously, with a given execution context
+ */
+ ObjectName startProcessAsync(Attachments att);
+
+ /**
+ * All Tokens that are generated at the Start Event for that Process must eventually arrive at an End Event. The
+ * Process will be in a running state until all Tokens are consumed. <p/> This method until the process ends without
+ * timeout.
+ */
+ ProcessStatus waitForEnd();
+
+ /**
+ * All Tokens that are generated at the Start Event for that Process must eventually arrive at an End Event. The
+ * Process will be in a running state until all Tokens are consumed. <p/> This method until the process ends with a
+ * given timeout.
+ */
+ ProcessStatus waitForEnd(long timeout);
+}
\ No newline at end of file
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/ProcessDefinition.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/ProcessDefinition.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/ProcessDefinition.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -36,7 +36,7 @@
/**
* Create a new instance of this process definition
*/
- Process newInstance();
+ ProcessAsync newInstance();
/**
* Get the associated ProcessEngine
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Token.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Token.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Token.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -25,7 +25,7 @@
import org.jbpm.api.model.Node;
import org.jbpm.api.model.SequenceFlow;
-import org.jbpm.api.runtime.preview.ExecutionContext;
+import org.jbpm.api.runtime.Attachments;
/**
* A Token is a descriptive construct used to describe how the flow of a Process will proceed at runtime.
@@ -62,14 +62,14 @@
TokenStatus getTokenStatus();
/**
- * Get the associated {@link Process}
+ * Get the associated {@link ProcessAsync}
*/
- Process getProcess();
+ ProcessAsync getProcess();
/**
- * Get the associated {@link ExecutionContext}
+ * Get the associated {@link Attachments}
*/
- ExecutionContext getExecutionContext();
+ Attachments getAttachments();
/**
* Get the last {@link SequenceFlow}
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Node.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Node.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Node.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -25,7 +25,7 @@
import java.util.List;
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessAsync;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.model.preview.Assignment;
import org.jbpm.api.model.preview.Group;
@@ -50,7 +50,7 @@
/**
* Get the associated process
*/
- Process getProcess();
+ ProcessAsync getProcess();
/**
* Get the unique name.
Copied: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/builder/GatewayBuilder.java (from rev 2897, projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/builder/preview/GatewayBuilder.java)
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/builder/GatewayBuilder.java (rev 0)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/builder/GatewayBuilder.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -0,0 +1,52 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.api.model.builder;
+
+import org.jbpm.api.model.Gate;
+import org.jbpm.api.model.Expression.ExpressionLanguage;
+
+
+//$Id$
+
+/**
+ * The GatewayBuilder can be used to build a Gateway dynamically.
+ *
+ * @author thomas.diesler(a)jboss.com
+ * @since 08-Jul-2008
+ */
+public interface GatewayBuilder extends ProcessBuilder
+{
+ /**
+ * Add the default {@link Gate}
+ */
+ GatewayBuilder addDefaultGate(String targetName);
+
+ /**
+ * Add a conditional {@link Gate}
+ */
+ GatewayBuilder addConditionalGate(String targetName, ExpressionLanguage exprLang, String exprBody);
+
+ /**
+ * Add an unconditional {@link Gate}
+ */
+ GatewayBuilder addGate(String targetName);
+}
\ No newline at end of file
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/builder/ProcessBuilder.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/builder/ProcessBuilder.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/builder/ProcessBuilder.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -23,7 +23,7 @@
//$Id$
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessAsync;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.model.Node;
import org.jbpm.api.model.Event.EventDetailType;
@@ -31,7 +31,6 @@
import org.jbpm.api.model.Gateway.GatewayType;
import org.jbpm.api.model.Task.TaskType;
import org.jbpm.api.model.builder.preview.EventBuilder;
-import org.jbpm.api.model.builder.preview.GatewayBuilder;
import org.jbpm.api.model.builder.preview.GroupBuilder;
import org.jbpm.api.model.builder.preview.MessageBuilder;
import org.jbpm.api.model.preview.Message;
@@ -43,7 +42,7 @@
import org.jbpm.api.runtime.preview.SignalHandler;
/**
- * The ProcessBuilder can be used to build a {@link Process} dynamically.
+ * The ProcessBuilder can be used to build a {@link ProcessAsync} dynamically.
*
* @author thomas.diesler(a)jboss.com
* @since 08-Jul-2008
@@ -51,7 +50,7 @@
public interface ProcessBuilder
{
/**
- * Add a {@link Process} with a given name
+ * Add a {@link ProcessAsync} with a given name
*/
ProcessBuilder addProcess(String name);
Deleted: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/builder/preview/GatewayBuilder.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/builder/preview/GatewayBuilder.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/builder/preview/GatewayBuilder.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -1,53 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.api.model.builder.preview;
-
-import org.jbpm.api.model.Gate;
-import org.jbpm.api.model.Expression.ExpressionLanguage;
-import org.jbpm.api.model.builder.ProcessBuilder;
-
-
-//$Id$
-
-/**
- * The GatewayBuilder can be used to build a Gateway dynamically.
- *
- * @author thomas.diesler(a)jboss.com
- * @since 08-Jul-2008
- */
-public interface GatewayBuilder extends ProcessBuilder
-{
- /**
- * Add the default {@link Gate}
- */
- GatewayBuilder addDefaultGate(String targetName);
-
- /**
- * Add a conditional {@link Gate}
- */
- GatewayBuilder addConditionalGate(String targetName, ExpressionLanguage exprLang, String exprBody);
-
- /**
- * Add an unconditional {@link Gate}
- */
- GatewayBuilder addGate(String targetName);
-}
\ No newline at end of file
Deleted: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/preview/BasicExecutionContext.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/preview/BasicExecutionContext.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/preview/BasicExecutionContext.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -1,45 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.api.runtime.preview;
-
-import org.jbpm.api.runtime.Attachments;
-import org.jbpm.api.runtime.BasicAttachments;
-
-//$Id$
-
-/**
- * A basic ExecutionContext.
- *
- * @author Thomas.Diesler(a)jboss.com
- * @since 15-Aug-2008
- */
-public class BasicExecutionContext extends BasicAttachments implements ExecutionContext
-{
- public BasicExecutionContext()
- {
- }
-
- public BasicExecutionContext(Attachments att)
- {
- super(att);
- }
-}
\ No newline at end of file
Deleted: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/preview/ExecutionContext.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/preview/ExecutionContext.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/preview/ExecutionContext.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -1,37 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.api.runtime.preview;
-
-import org.jbpm.api.runtime.Attachments;
-
-// $Id$
-
-
-/**
- * An execution context that can take attachments.
- *
- * @author Thomas.Diesler(a)jboss.com
- * @since 20-Apr-2007
- */
-public interface ExecutionContext extends Attachments
-{
-}
\ No newline at end of file
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ExecutionService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ExecutionService.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ExecutionService.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -26,8 +26,8 @@
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
-import org.jbpm.api.client.Process;
-import org.jbpm.api.client.Process.ProcessStatus;
+import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.ProcessAsync.ProcessStatus;
import org.jbpm.api.model.StartEvent;
import org.jbpm.api.runtime.Attachments;
@@ -60,19 +60,19 @@
* @param start The StartEvent that triggers the process
* @param att The Attachments in the ExecutionContext
*/
- public abstract void startProcess(Process proc, StartEvent start, Attachments att);
+ public abstract void startProcess(ProcessAsync proc, StartEvent start, Attachments att);
/**
* All Tokens that are generated at the Start Event for that Process must eventually arrive at an End Event. The
* Process will be in a running state until all Tokens are consumed. <p/> This method until the process ends without
* timeout.
*/
- public abstract ProcessStatus waitForEnd(Process proc);
+ public abstract ProcessStatus waitForEnd(ProcessAsync proc);
/**
* All Tokens that are generated at the Start Event for that Process must eventually arrive at an End Event. The
* Process will be in a running state until all Tokens are consumed. <p/> This method until the process ends with a
* given timeout.
*/
- public abstract ProcessStatus waitForEnd(Process proc, long timeout);
+ public abstract ProcessStatus waitForEnd(ProcessAsync proc, long timeout);
}
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessBuilderService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessBuilderService.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessBuilderService.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -24,12 +24,12 @@
//$Id$
import org.jbpm.api.client.Configuration;
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessAsync;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.model.builder.ProcessBuilder;
/**
- * The ProcessBuilder can be used to build a {@link Process} dynamically.
+ * The ProcessBuilder can be used to build a {@link ProcessAsync} dynamically.
*
* @author thomas.diesler(a)jboss.com
* @since 08-Jul-2008
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessInstanceService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessInstanceService.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessInstanceService.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -32,10 +32,10 @@
import javax.management.ObjectName;
import org.jbpm.api.client.Configuration;
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessAsync;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.ProcessEngine;
-import org.jbpm.api.client.Process.ProcessStatus;
+import org.jbpm.api.client.ProcessAsync.ProcessStatus;
import org.jbpm.api.service.preview.PersistenceService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -52,7 +52,7 @@
final static Logger log = LoggerFactory.getLogger(ProcessInstanceService.class);
// The set of registered processes
- private Map<ObjectName, Process> registeredProcs = new HashMap<ObjectName, Process>();
+ private Map<ObjectName, ProcessAsync> registeredProcs = new HashMap<ObjectName, ProcessAsync>();
// Hide public constructor
protected ProcessInstanceService()
@@ -71,7 +71,7 @@
/**
* Register a Process.
*/
- public ObjectName registerProcess(Process proc)
+ public ObjectName registerProcess(ProcessAsync proc)
{
log.debug("registerProcess: " + proc);
@@ -103,7 +103,7 @@
public boolean unregisterProcess(ObjectName procID)
{
boolean removed = false;
- Process proc = registeredProcs.get(procID);
+ ProcessAsync proc = registeredProcs.get(procID);
if (proc != null)
{
log.debug("unregisterProcess: " + proc);
@@ -120,9 +120,9 @@
/**
* Get a Process for a given id
*/
- public Process getProcess(ObjectName procID)
+ public ProcessAsync getProcess(ObjectName procID)
{
- Process proc = registeredProcs.get(procID);
+ ProcessAsync proc = registeredProcs.get(procID);
return proc;
}
@@ -144,7 +144,7 @@
public Set<ObjectName> getProcesses(String name, ProcessStatus status)
{
Set<ObjectName> procSet = new HashSet<ObjectName>();
- for (Process auxProc : registeredProcs.values())
+ for (ProcessAsync auxProc : registeredProcs.values())
{
if (auxProc.getName().equals(name))
{
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/MessageService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/MessageService.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/MessageService.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -32,7 +32,7 @@
import javax.management.ObjectName;
import org.jbpm.api.client.Configuration;
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessAsync;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.client.preview.MessageListener;
import org.jbpm.api.model.Event;
@@ -137,7 +137,7 @@
public void sendMessage(ObjectName procID, String targetName, Message msg)
{
ProcessInstanceService procService = ProcessInstanceService.locateProcessService();
- Process proc = procService.getProcess(procID);
+ ProcessAsync proc = procService.getProcess(procID);
if (proc == null)
throw new IllegalStateException("Cannot obtain registered process: " + procID);
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/PersistenceService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/PersistenceService.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/PersistenceService.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -27,7 +27,7 @@
import org.hibernate.Session;
import org.jbpm.api.client.Configuration;
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessAsync;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.model.Node;
@@ -73,17 +73,17 @@
/**
* Save the Process to persistent storage
*/
- public abstract ObjectName saveProcess(Process proc);
+ public abstract ObjectName saveProcess(ProcessAsync proc);
/**
* Load the Process from persistent storage
*/
- public abstract Process loadProcess(ObjectName procID);
+ public abstract ProcessAsync loadProcess(ObjectName procID);
/**
* Delete the Process from persistent storage
*/
- public abstract void deleteProcess(Process proc);
+ public abstract void deleteProcess(ProcessAsync proc);
/**
* Save the Node to persistent storage
Deleted: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/exclusive/ExclusiveGatewayMergeTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/exclusive/ExclusiveGatewayMergeTest.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/exclusive/ExclusiveGatewayMergeTest.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -1,74 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.test.cts.gateway.exclusive;
-
-// $Id$
-
-import java.io.IOException;
-import java.util.List;
-
-import org.jbpm.api.client.Process;
-import org.jbpm.api.client.ProcessDefinition;
-import org.jbpm.api.model.Gateway.GatewayType;
-import org.jbpm.api.model.builder.ProcessBuilder;
-import org.jbpm.api.model.preview.Signal;
-import org.jbpm.api.service.ProcessBuilderService;
-import org.jbpm.api.test.CTSTestCase;
-
-/**
- * Exclusive data-based gateway that has multiple incoming sequence flows. The first token arriving from one of the
- * incoming sequence flows proceeds along the outgoing sequence flow. All other token are ignored until a token has
- * arrived from each incoming sequence flow.
- *
- * @author thomas.diesler(a)jboss.com
- * @since 06-Aug-2008
- */
-public class ExclusiveGatewayMergeTest extends CTSTestCase
-{
- public void testMerge() throws Exception
- {
- ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- Process proc = procDef.newInstance();
-
- // Start the process
- proc.startProcessAsync();
-
- // Wait for the process to end
- proc.waitForEnd(5000);
-
- // Verify the result
- List<Signal> endSignals = getSignals(Signal.SignalType.SYSTEM_END_EVENT_EXIT);
- assertEquals(1, endSignals.size());
- }
-
- public ProcessDefinition getProcessDefinition() throws IOException
- {
- ProcessBuilder procBuilder = ProcessBuilderService.locateProcessBuilder();
- procBuilder.addProcess("ExclusiveGatewayMerge").addStartEvent("Start").addSequenceFlow("Split");
- procBuilder.addGateway("Split", GatewayType.Inclusive).addSequenceFlow("TaskA").addSequenceFlow("TaskB");
- procBuilder.addTask("TaskA").addSequenceFlow("Merge");
- procBuilder.addTask("TaskB").addSequenceFlow("Merge");
- procBuilder.addGateway("Merge", GatewayType.Exclusive).addSequenceFlow("End");
- procBuilder.addEndEvent("End");
- return procBuilder.getProcessDefinition();
- }
-}
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/exclusive/ExclusiveGatewaySplitTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/exclusive/ExclusiveGatewaySplitTest.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/exclusive/ExclusiveGatewaySplitTest.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -26,12 +26,12 @@
import java.io.IOException;
import java.util.List;
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessAsync;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.model.Expression.ExpressionLanguage;
import org.jbpm.api.model.Gateway.GatewayType;
+import org.jbpm.api.model.builder.GatewayBuilder;
import org.jbpm.api.model.builder.ProcessBuilder;
-import org.jbpm.api.model.builder.preview.GatewayBuilder;
import org.jbpm.api.model.preview.Signal;
import org.jbpm.api.runtime.BasicAttachments;
import org.jbpm.api.service.ProcessBuilderService;
@@ -49,7 +49,7 @@
public void testGateA() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- Process proc = procDef.newInstance();
+ ProcessAsync proc = procDef.newInstance();
BasicAttachments att = new BasicAttachments();
att.addAttachment("foo", "5");
@@ -64,7 +64,7 @@
public void testGateB() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- Process proc = procDef.newInstance();
+ ProcessAsync proc = procDef.newInstance();
BasicAttachments att = new BasicAttachments();
att.addAttachment("foo", "15");
@@ -79,7 +79,7 @@
public void testInvalidGate() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- Process proc = procDef.newInstance();
+ ProcessAsync proc = procDef.newInstance();
BasicAttachments att = new BasicAttachments();
att.addAttachment("foo", "10");
Deleted: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/processengine/MockProcessEngine.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/processengine/MockProcessEngine.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/processengine/MockProcessEngine.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -1,41 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.test.cts.processengine;
-
-// $Id$
-
-import org.jbpm.api.client.ProcessEngine;
-
-/**
- * A mock ProcessEngine
- *
- * @author thomas.diesler(a)jboss.com
- * @since 24-Sep-2008
- */
-public class MockProcessEngine extends ProcessEngine
-{
- @Override
- public void setName(String name)
- {
- super.setName(name);
- }
-}
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/process/ProcessDefinitionServiceTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/process/ProcessDefinitionServiceTest.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/process/ProcessDefinitionServiceTest.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -27,7 +27,7 @@
import javax.management.ObjectName;
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessAsync;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.service.ProcessDefinitionService;
@@ -66,7 +66,7 @@
ProcessDefinitionService procDefService = engine.getService(ProcessDefinitionService.class);
ProcessInstanceService procService = engine.getService(ProcessInstanceService.class);
- Process proc = procDef.newInstance();
+ ProcessAsync proc = procDef.newInstance();
assertNotNull("Process not null", proc);
assertNull("Process not automatically registered", procService.getProcess(proc.getKey()));
assertNull("ProcessDefinition not automatically registered", procDefService.getProcessDefinition(procDef.getKey()));
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/process/ProcessServiceTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/process/ProcessServiceTest.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/process/ProcessServiceTest.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -25,16 +25,12 @@
import javax.management.ObjectName;
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessAsync;
import org.jbpm.api.client.ProcessDefinition;
-import org.jbpm.api.client.preview.SignalListener;
import org.jbpm.api.model.builder.ProcessBuilder;
-import org.jbpm.api.model.preview.Signal;
-import org.jbpm.api.model.preview.Signal.SignalType;
import org.jbpm.api.service.ProcessBuilderService;
import org.jbpm.api.service.ProcessDefinitionService;
import org.jbpm.api.service.ProcessInstanceService;
-import org.jbpm.api.service.preview.SignalService;
import org.jbpm.api.test.CTSTestCase;
/**
@@ -51,7 +47,7 @@
ProcessInstanceService procService = ProcessInstanceService.locateProcessService();
ProcessDefinition procDef = getProcessDefinition();
- Process proc = procDef.newInstance();
+ ProcessAsync proc = procDef.newInstance();
assertNull("ProcessDefinition not registered automatically", procDefService.getProcessDefinition(procDef.getKey()));
assertNull("Process not registered automatically", procService.getProcess(proc.getKey()));
@@ -71,45 +67,6 @@
assertNull("ProcessDefinition unregistered", procDefService.getProcessDefinition(procDef.getKey()));
}
- public void testStartProcess() throws Exception
- {
- final ProcessDefinitionService procDefService = ProcessDefinitionService.locateProcessDefinitionService();
- final ProcessInstanceService procService = ProcessInstanceService.locateProcessService();
-
- final ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- final Process proc = procDef.newInstance();
- assertNull("Process not registered automatically", procService.getProcess(proc.getKey()));
-
- SignalListener sigListener = new SignalListener()
- {
- public boolean acceptSignal(Signal signal)
- {
- return signal.getSignalType() == SignalType.SYSTEM_TASK_ENTER;
- }
-
- public void catchSignal(Signal signal)
- {
- assertNotNull(procDefService.getProcessDefinition(procDef.getKey()));
- assertNotNull(procService.getProcess(proc.getKey()));
- }
- };
- SignalService sigManager = SignalService.locateSignalService();
- sigManager.addSignalListener(sigListener);
-
- try
- {
- // Start the process, which automatically adds it to the registry
- proc.startProcessAsync();
- proc.waitForEnd(5000);
- }
- finally
- {
- sigManager.removeSignalListener(sigListener);
- }
-
- assertNull("Process is removed", procService.getProcess(proc.getKey()));
- }
-
private ProcessDefinition getProcessDefinition()
{
ProcessBuilder builder = ProcessBuilderService.locateProcessBuilder();
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/task/waitstate/WaitStateTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/task/waitstate/WaitStateTest.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/task/waitstate/WaitStateTest.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -25,7 +25,7 @@
import java.io.IOException;
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessAsync;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.Token;
import org.jbpm.api.client.Token.TokenStatus;
@@ -45,7 +45,7 @@
public void testBasicWaitState() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- Process proc = procDef.newInstance();
+ ProcessAsync proc = procDef.newInstance();
// Start the Process
Token tok = proc.startProcess();
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/exclusivechoice/ExclusiveChoiceTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/exclusivechoice/ExclusiveChoiceTest.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/exclusivechoice/ExclusiveChoiceTest.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -26,12 +26,12 @@
import java.io.IOException;
import java.util.List;
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessAsync;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.model.Gateway;
import org.jbpm.api.model.Expression.ExpressionLanguage;
+import org.jbpm.api.model.builder.GatewayBuilder;
import org.jbpm.api.model.builder.ProcessBuilder;
-import org.jbpm.api.model.builder.preview.GatewayBuilder;
import org.jbpm.api.model.preview.Signal;
import org.jbpm.api.runtime.BasicAttachments;
import org.jbpm.api.service.ProcessBuilderService;
@@ -49,7 +49,7 @@
public void testGateA() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- Process proc = procDef.newInstance();
+ ProcessAsync proc = procDef.newInstance();
BasicAttachments att = new BasicAttachments();
att.addAttachment("foo", "5");
@@ -64,7 +64,7 @@
public void testGateB() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- Process proc = procDef.newInstance();
+ ProcessAsync proc = procDef.newInstance();
BasicAttachments att = new BasicAttachments();
att.addAttachment("foo", "15");
@@ -79,7 +79,7 @@
public void testInvalidGate() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- Process proc = procDef.newInstance();
+ ProcessAsync proc = procDef.newInstance();
BasicAttachments att = new BasicAttachments();
att.addAttachment("foo", "10");
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/multichoice/MultiChoiceTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/multichoice/MultiChoiceTest.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/multichoice/MultiChoiceTest.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -26,12 +26,12 @@
import java.io.IOException;
import java.util.List;
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessAsync;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.model.Gateway;
import org.jbpm.api.model.Expression.ExpressionLanguage;
+import org.jbpm.api.model.builder.GatewayBuilder;
import org.jbpm.api.model.builder.ProcessBuilder;
-import org.jbpm.api.model.builder.preview.GatewayBuilder;
import org.jbpm.api.model.preview.Signal;
import org.jbpm.api.runtime.BasicAttachments;
import org.jbpm.api.service.ProcessBuilderService;
@@ -49,7 +49,7 @@
public void testGateA() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- Process proc = procDef.newInstance();
+ ProcessAsync proc = procDef.newInstance();
BasicAttachments att = new BasicAttachments();
att.addAttachment("foo", "5");
@@ -63,7 +63,7 @@
public void testGateB() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- Process proc = procDef.newInstance();
+ ProcessAsync proc = procDef.newInstance();
BasicAttachments att = new BasicAttachments();
att.addAttachment("foo", "15");
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/parallelsplit/ParallelSplitTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/parallelsplit/ParallelSplitTest.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/parallelsplit/ParallelSplitTest.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -28,7 +28,7 @@
import javax.management.ObjectName;
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessAsync;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.model.Gateway;
import org.jbpm.api.model.builder.ProcessBuilder;
@@ -49,7 +49,7 @@
public void testParallelSplit() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- Process proc = procDef.newInstance();
+ ProcessAsync proc = procDef.newInstance();
proc.startProcessAsync();
proc.waitForEnd();
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/sequence/SequenceTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/sequence/SequenceTest.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/sequence/SequenceTest.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -26,7 +26,7 @@
import java.io.IOException;
import java.util.List;
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessAsync;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.model.builder.ProcessBuilder;
import org.jbpm.api.model.preview.Signal;
@@ -46,7 +46,7 @@
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- Process proc = procDef.newInstance();
+ ProcessAsync proc = procDef.newInstance();
// Start the Process
proc.startProcessAsync();
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/simplemerge/SimpleMergeTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/simplemerge/SimpleMergeTest.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/simplemerge/SimpleMergeTest.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -26,7 +26,7 @@
import java.io.IOException;
import java.util.List;
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessAsync;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.model.Gateway.GatewayType;
import org.jbpm.api.model.builder.ProcessBuilder;
@@ -46,7 +46,7 @@
public void testSimpleMerge() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- Process proc = procDef.newInstance();
+ ProcessAsync proc = procDef.newInstance();
// Start the process
proc.startProcessAsync();
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/synchronization/SynchronizationTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/synchronization/SynchronizationTest.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/synchronization/SynchronizationTest.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -25,7 +25,7 @@
import java.io.IOException;
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessAsync;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.model.Event.EventDetailType;
import org.jbpm.api.model.Expression.ExpressionLanguage;
@@ -50,7 +50,7 @@
public void testParallelMerge() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- Process proc = procDef.newInstance();
+ ProcessAsync proc = procDef.newInstance();
// Start the process
proc.startProcessAsync();
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/data/casedata/CaseDataTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/data/casedata/CaseDataTest.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/data/casedata/CaseDataTest.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -25,7 +25,7 @@
import java.io.IOException;
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessAsync;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.model.Event.EventDetailType;
import org.jbpm.api.model.Expression.ExpressionLanguage;
@@ -50,7 +50,7 @@
public void testCaseProperties() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- Process proc = procDef.newInstance();
+ ProcessAsync proc = procDef.newInstance();
proc.startProcessAsync();
proc.waitForEnd();
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/data/taskdata/TaskDataTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/data/taskdata/TaskDataTest.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/data/taskdata/TaskDataTest.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -25,7 +25,7 @@
import java.io.IOException;
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessAsync;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.model.Event.EventDetailType;
import org.jbpm.api.model.Expression.ExpressionLanguage;
@@ -51,7 +51,7 @@
public void testTaskDataRead() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- Process proc = procDef.newInstance();
+ ProcessAsync proc = procDef.newInstance();
proc.startProcessAsync();
proc.waitForEnd();
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/endevent/EndEventMessageTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/endevent/EndEventMessageTest.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/endevent/EndEventMessageTest.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -25,7 +25,7 @@
import java.io.IOException;
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessAsync;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.model.Event.EventDetailType;
import org.jbpm.api.model.builder.ProcessBuilder;
@@ -46,7 +46,7 @@
public void testStart() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- Process proc = procDef.newInstance();
+ ProcessAsync proc = procDef.newInstance();
// Start the process
BasicAttachments att = new BasicAttachments();
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/executioncontext/ExecutionContextTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/executioncontext/ExecutionContextTest.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/executioncontext/ExecutionContextTest.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -23,8 +23,8 @@
// $Id$
-import org.jbpm.api.runtime.preview.BasicExecutionContext;
-import org.jbpm.api.runtime.preview.ExecutionContext;
+import org.jbpm.api.runtime.Attachments;
+import org.jbpm.api.runtime.BasicAttachments;
import org.jbpm.api.test.CTSTestCase;
/**
@@ -37,36 +37,36 @@
{
public void testStringKey() throws Exception
{
- ExecutionContext exContext = new BasicExecutionContext();
+ Attachments att = new BasicAttachments();
- exContext.addAttachment("foo", "bar");
- assertEquals("bar", exContext.getAttachment("foo"));
- assertNull(exContext.getAttachment(String.class, "foo"));
+ att.addAttachment("foo", "bar");
+ assertEquals("bar", att.getAttachment("foo"));
+ assertNull(att.getAttachment(String.class, "foo"));
- exContext.removeAttachment("foo");
- assertNull(exContext.getAttachment("foo"));
+ att.removeAttachment("foo");
+ assertNull(att.getAttachment("foo"));
}
public void testClassKey() throws Exception
{
- ExecutionContext exContext = new BasicExecutionContext();
+ Attachments att = new BasicAttachments();
- exContext.addAttachment(String.class, "bar");
- assertEquals("bar", exContext.getAttachment(String.class));
+ att.addAttachment(String.class, "bar");
+ assertEquals("bar", att.getAttachment(String.class));
- exContext.removeAttachment(String.class);
- assertNull(exContext.getAttachment(String.class));
+ att.removeAttachment(String.class);
+ assertNull(att.getAttachment(String.class));
}
public void testStringClassKey() throws Exception
{
- ExecutionContext exContext = new BasicExecutionContext();
+ Attachments att = new BasicAttachments();
- exContext.addAttachment(String.class, "foo", "bar");
- assertEquals("bar", exContext.getAttachment(String.class, "foo"));
- assertNull(exContext.getAttachment("foo"));
+ att.addAttachment(String.class, "foo", "bar");
+ assertEquals("bar", att.getAttachment(String.class, "foo"));
+ assertNull(att.getAttachment("foo"));
- exContext.removeAttachment(String.class, "foo");
- assertNull(exContext.getAttachment(String.class, "foo"));
+ att.removeAttachment(String.class, "foo");
+ assertNull(att.getAttachment(String.class, "foo"));
}
}
Copied: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/exclusive/ExclusiveGatewayMergeTest.java (from rev 2897, projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/exclusive/ExclusiveGatewayMergeTest.java)
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/exclusive/ExclusiveGatewayMergeTest.java (rev 0)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/exclusive/ExclusiveGatewayMergeTest.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -0,0 +1,74 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.test.preview.gateway.exclusive;
+
+// $Id$
+
+import java.io.IOException;
+import java.util.List;
+
+import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.ProcessDefinition;
+import org.jbpm.api.model.Gateway.GatewayType;
+import org.jbpm.api.model.builder.ProcessBuilder;
+import org.jbpm.api.model.preview.Signal;
+import org.jbpm.api.service.ProcessBuilderService;
+import org.jbpm.api.test.CTSTestCase;
+
+/**
+ * Exclusive data-based gateway that has multiple incoming sequence flows. The first token arriving from one of the
+ * incoming sequence flows proceeds along the outgoing sequence flow. All other token are ignored until a token has
+ * arrived from each incoming sequence flow.
+ *
+ * @author thomas.diesler(a)jboss.com
+ * @since 06-Aug-2008
+ */
+public class ExclusiveGatewayMergeTest extends CTSTestCase
+{
+ public void testMerge() throws Exception
+ {
+ ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
+ ProcessAsync proc = procDef.newInstance();
+
+ // Start the process
+ proc.startProcessAsync();
+
+ // Wait for the process to end
+ proc.waitForEnd(5000);
+
+ // Verify the result
+ List<Signal> endSignals = getSignals(Signal.SignalType.SYSTEM_END_EVENT_EXIT);
+ assertEquals(1, endSignals.size());
+ }
+
+ public ProcessDefinition getProcessDefinition() throws IOException
+ {
+ ProcessBuilder procBuilder = ProcessBuilderService.locateProcessBuilder();
+ procBuilder.addProcess("ExclusiveGatewayMerge").addStartEvent("Start").addSequenceFlow("Split");
+ procBuilder.addGateway("Split", GatewayType.Inclusive).addSequenceFlow("TaskA").addSequenceFlow("TaskB");
+ procBuilder.addTask("TaskA").addSequenceFlow("Merge");
+ procBuilder.addTask("TaskB").addSequenceFlow("Merge");
+ procBuilder.addGateway("Merge", GatewayType.Exclusive).addSequenceFlow("End");
+ procBuilder.addEndEvent("End");
+ return procBuilder.getProcessDefinition();
+ }
+}
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/inclusive/InclusiveGatewayMergeTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/inclusive/InclusiveGatewayMergeTest.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/inclusive/InclusiveGatewayMergeTest.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -26,7 +26,7 @@
import java.io.IOException;
import java.util.List;
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessAsync;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.model.Gateway.GatewayType;
import org.jbpm.api.model.builder.ProcessBuilder;
@@ -46,7 +46,7 @@
public void testSimpleMerge() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- Process proc = procDef.newInstance();
+ ProcessAsync proc = procDef.newInstance();
// Start the process
proc.startProcessAsync();
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/inclusive/InclusiveGatewaySplitTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/inclusive/InclusiveGatewaySplitTest.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/inclusive/InclusiveGatewaySplitTest.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -26,12 +26,12 @@
import java.io.IOException;
import java.util.List;
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessAsync;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.model.Expression.ExpressionLanguage;
import org.jbpm.api.model.Gateway.GatewayType;
+import org.jbpm.api.model.builder.GatewayBuilder;
import org.jbpm.api.model.builder.ProcessBuilder;
-import org.jbpm.api.model.builder.preview.GatewayBuilder;
import org.jbpm.api.model.preview.Signal;
import org.jbpm.api.runtime.BasicAttachments;
import org.jbpm.api.service.ProcessBuilderService;
@@ -49,7 +49,7 @@
public void testGateA() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- Process proc = procDef.newInstance();
+ ProcessAsync proc = procDef.newInstance();
BasicAttachments att = new BasicAttachments();
att.addAttachment("foo", "5");
@@ -63,7 +63,7 @@
public void testGateB() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- Process proc = procDef.newInstance();
+ ProcessAsync proc = procDef.newInstance();
BasicAttachments att = new BasicAttachments();
att.addAttachment("foo", "15");
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/parallel/ParallelGatewayMergeTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/parallel/ParallelGatewayMergeTest.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/parallel/ParallelGatewayMergeTest.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -25,7 +25,7 @@
import java.io.IOException;
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessAsync;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.model.Event.EventDetailType;
import org.jbpm.api.model.Expression.ExpressionLanguage;
@@ -50,7 +50,7 @@
public void testParallelMerge() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- Process proc = procDef.newInstance();
+ ProcessAsync proc = procDef.newInstance();
// Start the process
proc.startProcessAsync();
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/parallel/ParallelGatewaySplitTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/parallel/ParallelGatewaySplitTest.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/parallel/ParallelGatewaySplitTest.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -28,7 +28,7 @@
import javax.management.ObjectName;
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessAsync;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.model.Gateway.GatewayType;
import org.jbpm.api.model.builder.ProcessBuilder;
@@ -49,7 +49,7 @@
public void testParallelSplit() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- Process proc = procDef.newInstance();
+ ProcessAsync proc = procDef.newInstance();
proc.startProcessAsync();
proc.waitForEnd(5000);
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/node/NodeInputSetTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/node/NodeInputSetTest.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/node/NodeInputSetTest.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -25,7 +25,7 @@
import java.io.IOException;
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessAsync;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.model.Event.EventDetailType;
import org.jbpm.api.model.builder.ProcessBuilder;
@@ -51,7 +51,7 @@
public void testValidProps() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- Process proc = procDef.newInstance();
+ ProcessAsync proc = procDef.newInstance();
BasicAttachments att = new BasicAttachments();
att.addAttachment("frog", "kermit");
@@ -66,7 +66,7 @@
public void testInvalidProps() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- Process proc = procDef.newInstance();
+ ProcessAsync proc = procDef.newInstance();
BasicAttachments att = new BasicAttachments();
att.addAttachment("pig", "piggy");
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/node/NodeOutputSetTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/node/NodeOutputSetTest.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/node/NodeOutputSetTest.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -25,7 +25,7 @@
import java.io.IOException;
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessAsync;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.model.Event.EventDetailType;
import org.jbpm.api.model.builder.ProcessBuilder;
@@ -51,7 +51,7 @@
public void testValidProps() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- Process proc = procDef.newInstance();
+ ProcessAsync proc = procDef.newInstance();
proc.startProcessAsync();
proc.waitForEnd(5000);
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/node/NodePropertyTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/node/NodePropertyTest.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/node/NodePropertyTest.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -25,7 +25,7 @@
import java.io.IOException;
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessAsync;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.model.Event.EventDetailType;
import org.jbpm.api.model.Expression.ExpressionLanguage;
@@ -52,7 +52,7 @@
public void testActivityPropertyRead() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- Process proc = procDef.newInstance();
+ ProcessAsync proc = procDef.newInstance();
proc.startProcessAsync();
proc.waitForEnd(5000);
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/process/ProcessPropertyTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/process/ProcessPropertyTest.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/process/ProcessPropertyTest.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -25,7 +25,7 @@
import java.io.IOException;
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessAsync;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.model.Event.EventDetailType;
import org.jbpm.api.model.Expression.ExpressionLanguage;
@@ -57,7 +57,7 @@
public void testProcessProperties() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- Process proc = procDef.newInstance();
+ ProcessAsync proc = procDef.newInstance();
proc.startProcessAsync();
proc.waitForEnd(5000);
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/startevent/StartEventSignalTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/startevent/StartEventSignalTest.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/startevent/StartEventSignalTest.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -28,7 +28,7 @@
import javax.management.ObjectName;
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessAsync;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.preview.SignalListener;
import org.jbpm.api.model.Event.EventDetailType;
@@ -63,7 +63,7 @@
ProcessDefinitionService procDefService = ProcessDefinitionService.locateProcessDefinitionService();
procDefService.registerProcessDefinition(procDef);
- Process proc = procDef.newInstance();
+ ProcessAsync proc = procDef.newInstance();
try
{
proc.startProcessAsync();
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/java/JavaTaskTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/java/JavaTaskTest.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/java/JavaTaskTest.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -25,15 +25,15 @@
import java.io.IOException;
+import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.Token;
-import org.jbpm.api.client.Process;
-import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.model.Expression.ExpressionLanguage;
import org.jbpm.api.model.builder.ProcessBuilder;
import org.jbpm.api.model.builder.TaskBuilder;
import org.jbpm.api.model.preview.Assignment.AssignTime;
+import org.jbpm.api.runtime.Attachments;
import org.jbpm.api.runtime.preview.BasicNodeHandler;
-import org.jbpm.api.runtime.preview.ExecutionContext;
import org.jbpm.api.runtime.preview.ExecutionHandler;
import org.jbpm.api.service.ProcessBuilderService;
import org.jbpm.api.test.CTSTestCase;
@@ -49,7 +49,7 @@
public void testExecutionHandler() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- Process proc = procDef.newInstance();
+ ProcessAsync proc = procDef.newInstance();
proc.startProcessAsync();
proc.waitForEnd(5000);
@@ -91,11 +91,11 @@
@Override
public void execute(Token token)
{
- ExecutionContext exContext = token.getExecutionContext();
- procProp = (String)exContext.getAttachment("TaskExecutionHandlerTest.procProp");
- taskProp = (String)exContext.getAttachment("TaskExecutionHandlerTest.TaskA.taskProp");
- procAssign = exContext.getAttachment("procAssign");
- taskAssign = exContext.getAttachment("taskAssign");
+ Attachments atts = token.getAttachments();
+ procProp = (String)atts.getAttachment("TaskExecutionHandlerTest.procProp");
+ taskProp = (String)atts.getAttachment("TaskExecutionHandlerTest.TaskA.taskProp");
+ procAssign = atts.getAttachment("procAssign");
+ taskAssign = atts.getAttachment("taskAssign");
}
}
}
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/receive/ReceiveTaskTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/receive/ReceiveTaskTest.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/receive/ReceiveTaskTest.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -28,7 +28,7 @@
import javax.management.ObjectName;
import org.jbpm.api.InvalidProcessException;
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessAsync;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.preview.SignalListener;
import org.jbpm.api.model.Event.EventDetailType;
@@ -74,7 +74,7 @@
public void testUnregisteredProcess() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- Process proc = procDef.newInstance();
+ ProcessAsync proc = procDef.newInstance();
MessageService msgService = MessageService.locateMessageService();
try
@@ -94,7 +94,7 @@
ProcessInstanceService procService = ProcessInstanceService.locateProcessService();
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- Process proc = procDef.newInstance();
+ ProcessAsync proc = procDef.newInstance();
ObjectName procID = procService.registerProcess(proc);
try
@@ -119,7 +119,7 @@
public void testSuspendedToken() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- final Process proc = procDef.newInstance();
+ final ProcessAsync proc = procDef.newInstance();
SignalListener sigListener = new SignalListener()
{
private boolean sendMessage = true;
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/send/SendTaskTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/send/SendTaskTest.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/send/SendTaskTest.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -27,7 +27,7 @@
import java.util.List;
import org.jbpm.api.InvalidProcessException;
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessAsync;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.model.Task.TaskType;
import org.jbpm.api.model.builder.ProcessBuilder;
@@ -48,7 +48,7 @@
public void testSendTask() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- Process proc = procDef.newInstance();
+ ProcessAsync proc = procDef.newInstance();
BasicAttachments att = new BasicAttachments();
att.addAttachment("foo", "bar");
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/user/UserTaskCallbackTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/user/UserTaskCallbackTest.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/user/UserTaskCallbackTest.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -26,7 +26,7 @@
import java.io.IOException;
import java.util.List;
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessAsync;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.preview.UserTaskCallback;
import org.jbpm.api.model.Event.EventDetailType;
@@ -50,7 +50,7 @@
public void testUserTask() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- Process proc = procDef.newInstance();
+ ProcessAsync proc = procDef.newInstance();
// Attach the callback to the UserTask
UserTask userTask = proc.getNode(UserTask.class, "UserTask");
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/user/UserTaskTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/user/UserTaskTest.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/user/UserTaskTest.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -29,7 +29,7 @@
import javax.management.ObjectName;
import org.jbpm.api.Constants;
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessAsync;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.preview.MessageListener;
import org.jbpm.api.model.Event.EventDetailType;
@@ -58,7 +58,7 @@
public void testUserTask() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- Process proc = procDef.newInstance();
+ ProcessAsync proc = procDef.newInstance();
// Register the process - this assigns the procID
ProcessInstanceService procService = ProcessInstanceService.locateProcessService();
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/transaction/TxRequiredTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/transaction/TxRequiredTest.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/transaction/TxRequiredTest.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -29,9 +29,9 @@
import org.hibernate.Transaction;
import org.jbpm.api.Constants;
import org.jbpm.api.Constants.TxType;
+import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.Token;
-import org.jbpm.api.client.Process;
-import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.model.Node;
import org.jbpm.api.model.Task.TaskType;
import org.jbpm.api.model.builder.ProcessBuilder;
@@ -66,7 +66,7 @@
assertSame("Group same", group, groupA);
assertSame("Group same", group, groupB);
- Process proc = procDef.newInstance();
+ ProcessAsync proc = procDef.newInstance();
proc.startProcessAsync();
proc.waitForEnd();
@@ -78,7 +78,7 @@
public void testRollback() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- Process proc = procDef.newInstance();
+ ProcessAsync proc = procDef.newInstance();
BasicAttachments att = new BasicAttachments();
att.addAttachment(Boolean.class, "rollback", Boolean.TRUE);
@@ -113,7 +113,7 @@
public void execute(Token token)
{
Transaction tx = TransactionAssociation.getTransaction();
- Boolean doRollback = token.getExecutionContext().getAttachment(Boolean.class, "rollback");
+ Boolean doRollback = token.getAttachments().getAttachment(Boolean.class, "rollback");
if (doRollback == Boolean.TRUE)
tx.rollback();
}
Modified: projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/ProcessUnmarshaller.java
===================================================================
--- projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/ProcessUnmarshaller.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/ProcessUnmarshaller.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -36,10 +36,10 @@
import org.jbpm.api.model.Gateway;
import org.jbpm.api.model.SequenceFlow.ConditionType;
import org.jbpm.api.model.Task.TaskType;
+import org.jbpm.api.model.builder.GatewayBuilder;
import org.jbpm.api.model.builder.ProcessBuilder;
import org.jbpm.api.model.builder.TaskBuilder;
import org.jbpm.api.model.builder.preview.EventBuilder;
-import org.jbpm.api.model.builder.preview.GatewayBuilder;
import org.jbpm.api.model.builder.preview.GroupBuilder;
import org.jbpm.api.model.builder.preview.MessageBuilder;
import org.jbpm.api.model.builder.preview.ObjectNameFactory;
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/AbstractElementImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/AbstractElementImpl.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/AbstractElementImpl.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -29,7 +29,7 @@
import javax.persistence.MappedSuperclass;
import org.hibernate.Session;
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessAsync;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.model.AbstractElement;
@@ -87,22 +87,22 @@
// nothing to do
}
- protected void create(Process proc)
+ protected void create(ProcessAsync proc)
{
// nothing to do
}
- protected void register(Process proc)
+ protected void register(ProcessAsync proc)
{
// nothing to do
}
- protected void unregister(Process proc)
+ protected void unregister(ProcessAsync proc)
{
// nothing to do
}
- protected void destroy(Process proc)
+ protected void destroy(ProcessAsync proc)
{
// nothing to do
}
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/EndEventImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/EndEventImpl.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/EndEventImpl.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -28,15 +28,15 @@
import org.jbpm.api.Constants;
import org.jbpm.api.InvalidProcessException;
+import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.client.Token;
-import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.model.EndEvent;
import org.jbpm.api.model.Node;
import org.jbpm.api.model.ProcessStructure;
import org.jbpm.api.model.SequenceFlow;
import org.jbpm.api.model.builder.preview.ObjectNameFactory;
import org.jbpm.api.model.preview.Signal;
-import org.jbpm.api.runtime.preview.ExecutionContext;
+import org.jbpm.api.runtime.Attachments;
import org.jbpm.api.runtime.preview.FlowHandler;
import org.jbpm.api.runtime.preview.SignalHandler;
import org.jbpm.api.runtime.preview.TokenExecutor;
@@ -129,8 +129,8 @@
sigService.throwSignal(signal);
// Destroy the token
- ExecutionContext exContext = token.getExecutionContext();
- EndSignalCallback callback = exContext.removeAttachment(EndSignalCallback.class);
+ Attachments att = token.getAttachments();
+ EndSignalCallback callback = att.removeAttachment(EndSignalCallback.class);
callback.destroyToken(token);
}
@@ -158,8 +158,8 @@
public void execute(TokenExecutor tokenExecutor, Token token)
{
log.debug("End reached in: " + getName());
- ExecutionContext exContext = token.getExecutionContext();
- exContext.addAttachment(EndSignalCallback.class, new EndSignalCallback(tokenExecutor));
+ Attachments att = token.getAttachments();
+ att.addAttachment(EndSignalCallback.class, new EndSignalCallback(tokenExecutor));
}
@Override
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/EventImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/EventImpl.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/EventImpl.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -32,10 +32,10 @@
import org.jbpm.api.Constants;
import org.jbpm.api.InvalidProcessException;
-import org.jbpm.api.client.Token;
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessAsync;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.ProcessEngine;
+import org.jbpm.api.client.Token;
import org.jbpm.api.model.Event;
import org.jbpm.api.model.Node;
import org.jbpm.api.model.ProcessStructure;
@@ -214,7 +214,7 @@
}
@Override
- protected void create(Process proc)
+ protected void create(ProcessAsync proc)
{
super.create(proc);
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GatewayImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GatewayImpl.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GatewayImpl.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -34,8 +34,8 @@
import javax.persistence.Transient;
import org.jbpm.api.Constants;
+import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.client.Token;
-import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.model.Gateway;
import org.jbpm.api.model.Node;
import org.jbpm.api.model.ProcessStructure;
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/InclusiveGatewayImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/InclusiveGatewayImpl.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/InclusiveGatewayImpl.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -38,8 +38,8 @@
import org.jbpm.api.model.Expression.ExpressionLanguage;
import org.jbpm.api.model.SequenceFlow.ConditionType;
import org.jbpm.api.model.preview.InclusiveGateway;
+import org.jbpm.api.runtime.Attachments;
import org.jbpm.api.runtime.Attachments.Key;
-import org.jbpm.api.runtime.preview.ExecutionContext;
import org.jbpm.api.runtime.preview.FlowHandler;
import org.jbpm.api.runtime.preview.TokenExecutor;
import org.jbpm.ri.runtime.MutableToken;
@@ -150,12 +150,12 @@
if (expr.getExpressionLanguage() == ExpressionLanguage.MVEL)
{
String mvel = expr.getExpressionBody();
- ExecutionContext exContext = token.getExecutionContext();
+ Attachments atts = token.getAttachments();
Map<String, Object> vars = new HashMap<String, Object>();
- for (Key key : exContext.getAttachmentKeys())
+ for (Key key : atts.getAttachmentKeys())
{
String name = key.getNamePart();
- Object value = exContext.getAttachment(name);
+ Object value = atts.getAttachment(name);
vars.put(name, value);
}
Boolean result = (Boolean)MVEL.eval(mvel, vars);
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/NodeImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/NodeImpl.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/NodeImpl.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -43,7 +43,7 @@
import org.hibernate.annotations.IndexColumn;
import org.jbpm.api.InvalidProcessException;
import org.jbpm.api.NameNotUniqueException;
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessAsync;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.client.Token;
@@ -130,7 +130,7 @@
private ProcessDefinition procDef;
@ManyToOne(targetEntity = ProcessImpl.class)
- private Process proc;
+ private ProcessAsync proc;
@ManyToOne(targetEntity = GroupImpl.class)
private Group groupRef;
@@ -153,7 +153,7 @@
}
@Override
- public Process getProcess()
+ public ProcessAsync getProcess()
{
return proc;
}
@@ -397,7 +397,7 @@
}
@Override
- protected void create(Process proc)
+ protected void create(ProcessAsync proc)
{
super.create(proc);
this.proc = proc;
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessDefinitionImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessDefinitionImpl.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessDefinitionImpl.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -41,7 +41,7 @@
import org.hibernate.Hibernate;
import org.hibernate.Session;
import org.jbpm.api.Constants;
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessAsync;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.model.Node;
@@ -101,7 +101,7 @@
}
@Override
- public Process newInstance()
+ public ProcessAsync newInstance()
{
// Create a copy of the process structure from raw data
ProcessStructureImpl procStructCopy;
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessImpl.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessImpl.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -39,7 +39,7 @@
import org.hibernate.Session;
import org.jbpm.api.Constants;
import org.jbpm.api.InvalidProcessException;
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessAsync;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.client.Token;
@@ -66,7 +66,7 @@
* @since 08-Jul-2008
*/
@Entity(name = "BPMProcess")
-public class ProcessImpl extends AbstractElementImpl implements Process
+public class ProcessImpl extends AbstractElementImpl implements ProcessAsync
{
private static final long serialVersionUID = 1L;
@@ -370,28 +370,28 @@
}
@Override
- protected void create(Process proc)
+ protected void create(ProcessAsync proc)
{
super.create(proc);
procStruct.create(proc);
}
@Override
- public void register(Process proc)
+ public void register(ProcessAsync proc)
{
super.register(proc);
procStruct.register(proc);
}
@Override
- public void unregister(Process proc)
+ public void unregister(ProcessAsync proc)
{
super.unregister(proc);
procStruct.unregister(proc);
}
@Override
- protected void destroy(Process proc)
+ protected void destroy(ProcessAsync proc)
{
super.destroy(proc);
procStruct.destroy(proc);
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessStructureImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessStructureImpl.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessStructureImpl.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -41,7 +41,7 @@
import org.hibernate.annotations.IndexColumn;
import org.jbpm.api.Constants;
import org.jbpm.api.InvalidProcessException;
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessAsync;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.model.EndEvent;
@@ -360,7 +360,7 @@
}
@Override
- protected void create(Process proc)
+ protected void create(ProcessAsync proc)
{
super.create(proc);
for (Node node : getNodes())
@@ -371,7 +371,7 @@
}
@Override
- protected void register(Process proc)
+ protected void register(ProcessAsync proc)
{
super.register(proc);
for (Node node : getNodes())
@@ -382,7 +382,7 @@
}
@Override
- protected void unregister(Process proc)
+ protected void unregister(ProcessAsync proc)
{
super.unregister(proc);
for (Node node : getNodes())
@@ -393,7 +393,7 @@
}
@Override
- protected void destroy(Process proc)
+ protected void destroy(ProcessAsync proc)
{
super.destroy(proc);
for (Node node : getNodes())
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ReceiveTaskImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ReceiveTaskImpl.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ReceiveTaskImpl.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -31,14 +31,14 @@
import org.jbpm.api.InvalidProcessException;
import org.jbpm.api.NotImplementedException;
+import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.Token;
-import org.jbpm.api.client.Process;
-import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.preview.MessageListener;
import org.jbpm.api.model.ProcessStructure;
import org.jbpm.api.model.preview.Message;
import org.jbpm.api.model.preview.ReceiveTask;
-import org.jbpm.api.runtime.preview.ExecutionContext;
+import org.jbpm.api.runtime.Attachments;
import org.jbpm.api.runtime.preview.TokenExecutor;
import org.jbpm.ri.runtime.RuntimeContext;
import org.slf4j.Logger;
@@ -107,11 +107,11 @@
{
// Copy the expected properties from the received message
Message msg = receivedMessages.remove(0);
- ExecutionContext exContext = token.getExecutionContext();
+ Attachments att = token.getAttachments();
for (String key : messageRef.getPropertyNames())
{
Object value = msg.getProperty(key).getValue();
- exContext.addAttachment(key, value);
+ att.addAttachment(key, value);
}
}
else
@@ -165,7 +165,7 @@
}
@Override
- protected void create(Process proc)
+ protected void create(ProcessAsync proc)
{
super.create(proc);
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/SendTaskImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/SendTaskImpl.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/SendTaskImpl.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -27,9 +27,9 @@
import javax.persistence.Transient;
import org.jbpm.api.InvalidProcessException;
+import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.Token;
-import org.jbpm.api.client.Process;
-import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.model.Node;
import org.jbpm.api.model.ProcessStructure;
import org.jbpm.api.model.preview.Message;
@@ -119,7 +119,7 @@
}
@Override
- protected void create(Process proc)
+ protected void create(ProcessAsync proc)
{
super.create(proc);
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/StartEventImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/StartEventImpl.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/StartEventImpl.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -29,10 +29,10 @@
import org.jbpm.api.Constants;
import org.jbpm.api.InvalidProcessException;
-import org.jbpm.api.client.Token;
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessAsync;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.ProcessEngine;
+import org.jbpm.api.client.Token;
import org.jbpm.api.client.preview.SignalListener;
import org.jbpm.api.model.Node;
import org.jbpm.api.model.ProcessStructure;
@@ -187,7 +187,7 @@
// There MAY be multiple Start Events for a given Process level. Each Start Event is an independent event.
// That is, a Process Instance SHALL be generated when the Start Event is triggered.
- Process proc = procDef.newInstance();
+ ProcessAsync proc = procDef.newInstance();
StartEvent startEvent = proc.getNode(StartEvent.class, startEventName);
ExecutionService execService = engine.getService(ExecutionService.class);
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/TaskImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/TaskImpl.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/TaskImpl.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -39,8 +39,8 @@
import org.jbpm.api.Constants;
import org.jbpm.api.InvalidProcessException;
import org.jbpm.api.NotImplementedException;
+import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.client.Token;
-import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.model.Expression;
import org.jbpm.api.model.Node;
import org.jbpm.api.model.ProcessStructure;
@@ -51,7 +51,7 @@
import org.jbpm.api.model.preview.OutputSet;
import org.jbpm.api.model.preview.Property;
import org.jbpm.api.model.preview.Signal;
-import org.jbpm.api.runtime.preview.ExecutionContext;
+import org.jbpm.api.runtime.Attachments;
import org.jbpm.api.runtime.preview.ExecutionHandler;
import org.jbpm.api.runtime.preview.SignalHandler;
import org.jbpm.api.service.preview.SignalService;
@@ -212,7 +212,7 @@
protected InputSet getActiveInputSet(Token token)
{
InputSetImpl inputSet = null;
- ExecutionContext exContext = token.getExecutionContext();
+ Attachments atts = token.getAttachments();
// Find the InputSet that matches the data in the Token
if (inputSets.size() > 0)
@@ -222,7 +222,7 @@
boolean allInputPropsInContext = true;
for (String propName : auxSet.getPropertyNames())
{
- Object att = exContext.getAttachment(propName);
+ Object att = atts.getAttachment(propName);
allInputPropsInContext &= (att != null);
}
if (allInputPropsInContext == true)
@@ -230,7 +230,7 @@
inputSet = new InputSetImpl();
for (String propName : auxSet.getPropertyNames())
{
- Object value = exContext.getAttachment(propName);
+ Object value = atts.getAttachment(propName);
inputSet.addProperty(new PropertyImpl(propName, value));
}
break;
@@ -239,7 +239,7 @@
if (inputSet == null)
{
log.warn("InputSets: " + inputSets);
- throw new IllegalStateException("Cannot find matching inputSet for " + exContext + " in Activity: " + getName());
+ throw new IllegalStateException("Cannot find matching inputSet for " + atts + " in Activity: " + getName());
}
}
@@ -282,7 +282,7 @@
*/
protected void processOutputSet(Token token)
{
- ExecutionContext exContext = token.getExecutionContext();
+ Attachments atts = token.getAttachments();
// Add the outputSet properties to the Token
OutputSet outputSet = getActiveOutputSet();
@@ -294,7 +294,7 @@
String name = outProp.getName();
Object value = outProp.getValue();
- exContext.addAttachment(name, value);
+ atts.addAttachment(name, value);
}
}
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/UserTaskImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/UserTaskImpl.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/UserTaskImpl.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -33,15 +33,15 @@
import javax.persistence.Transient;
import org.jbpm.api.InvalidProcessException;
+import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.Token;
-import org.jbpm.api.client.Process;
-import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.preview.MessageListener;
import org.jbpm.api.client.preview.UserTaskCallback;
import org.jbpm.api.model.ProcessStructure;
import org.jbpm.api.model.preview.Message;
import org.jbpm.api.model.preview.UserTask;
-import org.jbpm.api.runtime.preview.ExecutionContext;
+import org.jbpm.api.runtime.Attachments;
import org.jbpm.api.runtime.preview.TokenExecutor;
import org.jbpm.ri.runtime.MessageSender;
import org.jbpm.ri.runtime.RuntimeContext;
@@ -139,11 +139,11 @@
{
// Copy the expected properties from the received message
Message msg = receivedMessages.remove(0);
- ExecutionContext exContext = token.getExecutionContext();
+ Attachments atts = token.getAttachments();
for (String key : inMessageRef.getPropertyNames())
{
Object value = msg.getProperty(key).getValue();
- exContext.addAttachment(key, value);
+ atts.addAttachment(key, value);
}
}
else
@@ -202,7 +202,7 @@
}
@Override
- protected void create(Process proc)
+ protected void create(ProcessAsync proc)
{
super.create(proc);
@@ -212,7 +212,7 @@
}
@Override
- protected void register(Process proc)
+ protected void register(ProcessAsync proc)
{
super.register(proc);
@@ -227,7 +227,7 @@
}
@Override
- protected void unregister(Process proc)
+ protected void unregister(ProcessAsync proc)
{
super.unregister(proc);
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/builder/GatewayBuilderImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/builder/GatewayBuilderImpl.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/builder/GatewayBuilderImpl.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -26,7 +26,7 @@
import org.jbpm.api.model.Gateway;
import org.jbpm.api.model.Expression.ExpressionLanguage;
import org.jbpm.api.model.SequenceFlow.ConditionType;
-import org.jbpm.api.model.builder.preview.GatewayBuilder;
+import org.jbpm.api.model.builder.GatewayBuilder;
import org.jbpm.ri.model.ExpressionImpl;
import org.jbpm.ri.model.GatewayImpl;
import org.jbpm.ri.model.SequenceFlowImpl;
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/builder/ProcessBuilderImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/builder/ProcessBuilderImpl.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/builder/ProcessBuilderImpl.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -24,17 +24,17 @@
//$Id$
import org.jbpm.api.NotImplementedException;
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessAsync;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.model.Event.EventDetailType;
import org.jbpm.api.model.Expression.ExpressionLanguage;
import org.jbpm.api.model.Gateway.GatewayType;
import org.jbpm.api.model.Task.TaskType;
+import org.jbpm.api.model.builder.GatewayBuilder;
import org.jbpm.api.model.builder.ProcessBuilder;
import org.jbpm.api.model.builder.TaskBuilder;
import org.jbpm.api.model.builder.preview.EventBuilder;
-import org.jbpm.api.model.builder.preview.GatewayBuilder;
import org.jbpm.api.model.builder.preview.GroupBuilder;
import org.jbpm.api.model.builder.preview.MessageBuilder;
import org.jbpm.api.model.preview.Assignment.AssignTime;
@@ -64,7 +64,7 @@
import org.jbpm.ri.model.WaitStateImpl;
/**
- * The ProcessBuilder can be used to dynamically build a {@link Process}.
+ * The ProcessBuilder can be used to dynamically build a {@link ProcessAsync}.
*
* @author thomas.diesler(a)jboss.com
* @since 08-Jul-2008
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/AssignmentInterceptor.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/AssignmentInterceptor.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/AssignmentInterceptor.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -28,7 +28,7 @@
import org.jbpm.api.model.Node;
import org.jbpm.api.model.preview.Assignment;
import org.jbpm.api.model.preview.Assignment.AssignTime;
-import org.jbpm.api.runtime.preview.ExecutionContext;
+import org.jbpm.api.runtime.Attachments;
/**
* An interceptor that invokes the ExecutionHandler.execute
@@ -50,7 +50,7 @@
if (ass.getAssignTime() == AssignTime.Start)
anyTimeAssignment(ass, token);
}
-
+
// Call the next Interceptor
rtContext.next();
@@ -68,7 +68,7 @@
ExpressionEvaluator exprEvaluator = new ExpressionEvaluator(expr);
Object result = exprEvaluator.evaluateExpression(token);
String propName = ass.getTo().getName();
- ExecutionContext exContext = token.getExecutionContext();
- exContext.addAttachment(propName, result);
+ Attachments att = token.getAttachments();
+ att.addAttachment(propName, result);
}
}
\ No newline at end of file
Copied: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingAttachments.java (from rev 2897, projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingExecutionContext.java)
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingAttachments.java (rev 0)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingAttachments.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -0,0 +1,179 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.ri.runtime;
+
+//$Id$
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.jbpm.api.client.ProcessAsync;
+import org.jbpm.api.client.ProcessDefinition;
+import org.jbpm.api.model.Node;
+import org.jbpm.api.model.preview.Property;
+import org.jbpm.api.runtime.Attachments;
+
+/**
+ * An ExecutionContext that delegates to the current {@link Node} or {@link ProcessAsync} for property rerieval.
+ *
+ * @author Thomas.Diesler(a)jboss.com
+ * @since 15-Aug-2008
+ */
+public class DelegatingAttachments implements Attachments
+{
+ private Node node;
+ private Attachments delegate;
+ private String activityPrefix;
+ private String procPrefix;
+ private ProcessDefinition procDef;
+
+ DelegatingAttachments(Node node, Attachments delegate)
+ {
+ this.node = node;
+ this.delegate = delegate;
+
+ procDef = node.getProcessDefinition();
+ procPrefix = procDef.getName() + ".";
+ activityPrefix = procPrefix + node.getName() + ".";
+ }
+
+ public Object getAttachment(String name)
+ {
+ Object value = null;
+
+ // Get activity property
+ if (name.startsWith(activityPrefix))
+ {
+ String key = name.substring(activityPrefix.length());
+ Property prop = node.getProperty(key);
+ if (prop != null)
+ {
+ value = prop.getValue();
+ }
+ }
+
+ // Get process property
+ else if (name.startsWith(procPrefix))
+ {
+ String key = name.substring(procPrefix.length());
+ Property prop = procDef.getProperty(key);
+ if (prop != null)
+ {
+ value = prop.getValue();
+ }
+ }
+
+ // Fallback to execution context
+ if (value == null)
+ {
+ value = delegate.getAttachment(name);
+ }
+
+ return value;
+ }
+
+ public Collection<Key> getAttachmentKeys()
+ {
+ Collection<Key> keys = new ArrayList<Key>(delegate.getAttachmentKeys());
+
+ // Add activity property keys
+ for (String propName : node.getPropertyNames())
+ {
+ Key key = new Key(null, activityPrefix + propName);
+ keys.add(key);
+ }
+
+ // Add process property keys
+ for (String propName : procDef.getPropertyNames())
+ {
+ Key key = new Key(null, procPrefix + propName);
+ keys.add(key);
+ }
+
+ return keys;
+ }
+
+ public <T> T getAttachment(Class<T> clazz)
+ {
+ return delegate.getAttachment(clazz);
+ }
+
+ public <T> T getAttachment(Class<T> clazz, String name)
+ {
+ return delegate.getAttachment(clazz, name);
+ }
+
+ public <T> T addAttachment(Class<T> clazz, Object value)
+ {
+ return delegate.addAttachment(clazz, value);
+ }
+
+ public <T> T addAttachment(Class<T> clazz, String name, Object value)
+ {
+ validateAttachmentKey(name);
+ return delegate.addAttachment(clazz, name, value);
+ }
+
+ public Object addAttachment(String name, Object value)
+ {
+ validateAttachmentKey(name);
+ return delegate.addAttachment(name, value);
+ }
+
+ public <T> T removeAttachment(Class<T> clazz)
+ {
+ return delegate.removeAttachment(clazz);
+ }
+
+ public <T> T removeAttachment(Class<T> clazz, String name)
+ {
+ validateAttachmentKey(name);
+ return delegate.removeAttachment(clazz, name);
+ }
+
+ public Object removeAttachment(String name)
+ {
+ validateAttachmentKey(name);
+ return delegate.removeAttachment(name);
+ }
+
+ private void validateAttachmentKey(String name)
+ {
+ if (name.startsWith(procPrefix) || name.startsWith(activityPrefix))
+ throw new IllegalArgumentException("Invalid attachment key: " + name);
+ }
+
+ public String toString()
+ {
+ Map<Key, Object> combined = new HashMap<Key, Object>();
+ for (Key key : getAttachmentKeys())
+ {
+ if (key.getClassPart() != null)
+ combined.put(key, getAttachment(key.getClassPart(), key.getNamePart()));
+ else
+ combined.put(key, getAttachment(key.getNamePart()));
+ }
+ return combined.toString();
+ }
+}
\ No newline at end of file
Deleted: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingExecutionContext.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingExecutionContext.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingExecutionContext.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -1,179 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.ri.runtime;
-
-//$Id$
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.jbpm.api.client.Process;
-import org.jbpm.api.client.ProcessDefinition;
-import org.jbpm.api.model.Node;
-import org.jbpm.api.model.preview.Property;
-import org.jbpm.api.runtime.preview.ExecutionContext;
-
-/**
- * An ExecutionContext that delegates to the current {@link Node} or {@link Process} for property rerieval.
- *
- * @author Thomas.Diesler(a)jboss.com
- * @since 15-Aug-2008
- */
-public class DelegatingExecutionContext implements ExecutionContext
-{
- private Node node;
- private ExecutionContext delegate;
- private String activityPrefix;
- private String procPrefix;
- private ProcessDefinition procDef;
-
- DelegatingExecutionContext(Node node, ExecutionContext delegate)
- {
- this.node = node;
- this.delegate = delegate;
-
- procDef = node.getProcessDefinition();
- procPrefix = procDef.getName() + ".";
- activityPrefix = procPrefix + node.getName() + ".";
- }
-
- public Object getAttachment(String name)
- {
- Object value = null;
-
- // Get activity property
- if (name.startsWith(activityPrefix))
- {
- String key = name.substring(activityPrefix.length());
- Property prop = node.getProperty(key);
- if (prop != null)
- {
- value = prop.getValue();
- }
- }
-
- // Get process property
- else if (name.startsWith(procPrefix))
- {
- String key = name.substring(procPrefix.length());
- Property prop = procDef.getProperty(key);
- if (prop != null)
- {
- value = prop.getValue();
- }
- }
-
- // Fallback to execution context
- if (value == null)
- {
- value = delegate.getAttachment(name);
- }
-
- return value;
- }
-
- public Collection<Key> getAttachmentKeys()
- {
- Collection<Key> keys = new ArrayList<Key>(delegate.getAttachmentKeys());
-
- // Add activity property keys
- for (String propName : node.getPropertyNames())
- {
- Key key = new Key(null, activityPrefix + propName);
- keys.add(key);
- }
-
- // Add process property keys
- for (String propName : procDef.getPropertyNames())
- {
- Key key = new Key(null, procPrefix + propName);
- keys.add(key);
- }
-
- return keys;
- }
-
- public <T> T getAttachment(Class<T> clazz)
- {
- return delegate.getAttachment(clazz);
- }
-
- public <T> T getAttachment(Class<T> clazz, String name)
- {
- return delegate.getAttachment(clazz, name);
- }
-
- public <T> T addAttachment(Class<T> clazz, Object value)
- {
- return delegate.addAttachment(clazz, value);
- }
-
- public <T> T addAttachment(Class<T> clazz, String name, Object value)
- {
- validateAttachmentKey(name);
- return delegate.addAttachment(clazz, name, value);
- }
-
- public Object addAttachment(String name, Object value)
- {
- validateAttachmentKey(name);
- return delegate.addAttachment(name, value);
- }
-
- public <T> T removeAttachment(Class<T> clazz)
- {
- return delegate.removeAttachment(clazz);
- }
-
- public <T> T removeAttachment(Class<T> clazz, String name)
- {
- validateAttachmentKey(name);
- return delegate.removeAttachment(clazz, name);
- }
-
- public Object removeAttachment(String name)
- {
- validateAttachmentKey(name);
- return delegate.removeAttachment(name);
- }
-
- private void validateAttachmentKey(String name)
- {
- if (name.startsWith(procPrefix) || name.startsWith(activityPrefix))
- throw new IllegalArgumentException("Invalid attachment key: " + name);
- }
-
- public String toString()
- {
- Map<Key, Object> combined = new HashMap<Key, Object>();
- for (Key key : getAttachmentKeys())
- {
- if (key.getClassPart() != null)
- combined.put(key, getAttachment(key.getClassPart(), key.getNamePart()));
- else
- combined.put(key, getAttachment(key.getNamePart()));
- }
- return combined.toString();
- }
-}
\ No newline at end of file
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingToken.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingToken.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingToken.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -24,12 +24,12 @@
//$Id$
import org.hibernate.Session;
+import org.jbpm.api.client.ProcessAsync;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.client.Token;
-import org.jbpm.api.client.Process;
import org.jbpm.api.model.Node;
import org.jbpm.api.model.SequenceFlow;
-import org.jbpm.api.runtime.preview.ExecutionContext;
+import org.jbpm.api.runtime.Attachments;
/**
* A {@link Token} that includes properties from the current {@link Node}
@@ -40,15 +40,15 @@
public class DelegatingToken implements MutableToken
{
private MutableToken delegateToken;
- private ExecutionContext delegateContext;
+ private Attachments delegateContext;
public DelegatingToken(MutableToken token)
{
this.delegateToken = token;
Node targetNode = token.getCurrentNode();
- ExecutionContext exContext = token.getExecutionContext();
- this.delegateContext = new DelegatingExecutionContext(targetNode, exContext);
+ Attachments exContext = token.getAttachments();
+ this.delegateContext = new DelegatingAttachments(targetNode, exContext);
}
@Override
@@ -58,7 +58,7 @@
}
@Override
- public ExecutionContext getExecutionContext()
+ public Attachments getAttachments()
{
return delegateContext;
}
@@ -88,7 +88,7 @@
}
@Override
- public Process getProcess()
+ public ProcessAsync getProcess()
{
return delegateToken.getProcess();
}
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/ExpressionEvaluator.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/ExpressionEvaluator.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/ExpressionEvaluator.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -29,8 +29,8 @@
import org.jbpm.api.client.Token;
import org.jbpm.api.model.Expression;
import org.jbpm.api.model.Expression.ExpressionLanguage;
+import org.jbpm.api.runtime.Attachments;
import org.jbpm.api.runtime.Attachments.Key;
-import org.jbpm.api.runtime.preview.ExecutionContext;
import org.mvel.MVEL;
/**
@@ -58,12 +58,12 @@
if (exprLang == ExpressionLanguage.MVEL)
{
String mvel = expr.getExpressionBody();
- ExecutionContext exContext = token.getExecutionContext();
+ Attachments atts = token.getAttachments();
Map<String, Object> vars = new HashMap<String, Object>();
- for (Key key : exContext.getAttachmentKeys())
+ for (Key key : atts.getAttachmentKeys())
{
String name = key.getNamePart();
- Object value = exContext.getAttachment(name);
+ Object value = atts.getAttachment(name);
vars.put(name.replace(".", "_"), value);
}
return MVEL.eval(mvel, vars);
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/InProcessTokenExecutor.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/InProcessTokenExecutor.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/InProcessTokenExecutor.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -23,7 +23,7 @@
//$Id$
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessAsync;
import org.jbpm.api.client.Token;
import org.jbpm.api.client.Token.TokenStatus;
import org.jbpm.api.model.SequenceFlow;
@@ -43,9 +43,9 @@
final static Logger log = LoggerFactory.getLogger(InProcessTokenExecutor.class);
@SuppressWarnings("unused")
- private Process proc;
+ private ProcessAsync proc;
- public InProcessTokenExecutor(Process proc)
+ public InProcessTokenExecutor(ProcessAsync proc)
{
this.proc = proc;
}
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/MessageSender.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/MessageSender.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/MessageSender.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -25,14 +25,14 @@
import javax.management.ObjectName;
+import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.client.Token;
-import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.model.Node;
import org.jbpm.api.model.builder.preview.MessageBuilder;
import org.jbpm.api.model.preview.Message;
import org.jbpm.api.model.preview.Participant;
import org.jbpm.api.model.preview.Property;
-import org.jbpm.api.runtime.preview.ExecutionContext;
+import org.jbpm.api.runtime.Attachments;
import org.jbpm.api.service.preview.MessageService;
import org.jbpm.ri.model.MessageImpl;
import org.jbpm.ri.model.ParticipantImpl;
@@ -67,7 +67,7 @@
*/
public void sendMessage(Token token)
{
- ExecutionContext exContext = token.getExecutionContext();
+ Attachments atts = token.getAttachments();
MessageBuilder msgBuilder = new MessageBuilderImpl();
Participant toRef = messageRef.getToRef();
@@ -85,7 +85,7 @@
Object value = prop.getValue();
if (prop.isCorrelation())
{
- value = exContext.getAttachment(propName);
+ value = atts.getAttachment(propName);
if (value == null)
throw new IllegalStateException("Cannot obtain property: " + propName);
}
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RunnableToken.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RunnableToken.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RunnableToken.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -21,9 +21,9 @@
*/
package org.jbpm.ri.runtime;
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessAsync;
import org.jbpm.api.client.Token;
-import org.jbpm.api.client.Process.ProcessStatus;
+import org.jbpm.api.client.ProcessAsync.ProcessStatus;
import org.jbpm.api.client.Token.TokenStatus;
import org.jbpm.api.model.Node;
import org.jbpm.api.service.ProcessInstanceService;
@@ -67,7 +67,7 @@
public void run()
{
- Process proc = rtProc.getProcess();
+ ProcessAsync proc = rtProc.getProcess();
try
{
Node node = token.getCurrentNode();
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RuntimeProcess.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RuntimeProcess.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RuntimeProcess.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -23,13 +23,13 @@
//$Id$
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessAsync;
import org.jbpm.api.runtime.preview.TokenExecutor;
/**
- * A RuntimeProcess add runtime behaviour to the {@link Process}
+ * A RuntimeProcess add runtime behaviour to the {@link ProcessAsync}
* <p/>
- * To protect the engine from maligious user code it does not extend {@link Process} directly.
+ * To protect the engine from maligious user code it does not extend {@link ProcessAsync} directly.
*
* @author thomas.diesler(a)jboss.com
* @since 08-Jul-2008
@@ -37,12 +37,12 @@
public interface RuntimeProcess
{
/**
- * Get the associated {@link Process}
+ * Get the associated {@link ProcessAsync}
*/
- Process getProcess();
+ ProcessAsync getProcess();
/**
- * Get the {@link TokenExecutor} for this {@link Process}
+ * Get the {@link TokenExecutor} for this {@link ProcessAsync}
*/
ThreadingTokenExecutor getTokenExecutor();
}
\ No newline at end of file
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RuntimeProcessImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RuntimeProcessImpl.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RuntimeProcessImpl.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -23,26 +23,26 @@
//$Id$
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessAsync;
/**
- * A RuntimeProcess add runtime behaviour to the {@link Process}
+ * A RuntimeProcess add runtime behaviour to the {@link ProcessAsync}
*
* @author thomas.diesler(a)jboss.com
* @since 08-Jul-2008
*/
public class RuntimeProcessImpl implements RuntimeProcess
{
- private Process proc;
+ private ProcessAsync proc;
private ThreadingTokenExecutor tokenExecutor;
- public RuntimeProcessImpl(Process proc)
+ public RuntimeProcessImpl(ProcessAsync proc)
{
this.proc = proc;
this.tokenExecutor = new ThreadingTokenExecutor(this);
}
- public Process getProcess()
+ public ProcessAsync getProcess()
{
return proc;
}
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/ThreadingTokenExecutor.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/ThreadingTokenExecutor.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/ThreadingTokenExecutor.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -32,8 +32,8 @@
import java.util.concurrent.Executors;
import org.jbpm.api.client.Token;
+import org.jbpm.api.client.ProcessAsync.ProcessStatus;
import org.jbpm.api.client.Token.TokenStatus;
-import org.jbpm.api.client.Process.ProcessStatus;
import org.jbpm.api.model.SequenceFlow;
import org.jbpm.api.runtime.preview.FlowHandler;
import org.jbpm.api.runtime.preview.TokenExecutor;
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TokenImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TokenImpl.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TokenImpl.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -25,17 +25,16 @@
import org.hibernate.Session;
import org.jboss.util.id.UID;
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessAsync;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.client.Token;
-import org.jbpm.api.client.Process.ProcessStatus;
+import org.jbpm.api.client.ProcessAsync.ProcessStatus;
import org.jbpm.api.model.Node;
import org.jbpm.api.model.SequenceFlow;
import org.jbpm.api.model.WaitState;
import org.jbpm.api.runtime.Attachments;
+import org.jbpm.api.runtime.BasicAttachments;
import org.jbpm.api.runtime.Attachments.Key;
-import org.jbpm.api.runtime.preview.BasicExecutionContext;
-import org.jbpm.api.runtime.preview.ExecutionContext;
import org.jbpm.api.runtime.preview.TokenExecutor;
import org.jbpm.api.service.ProcessInstanceService;
import org.jbpm.ri.service.ProcessServiceImpl;
@@ -56,17 +55,17 @@
{
private String id;
private SequenceFlow flow;
- private ExecutionContext context;
+ private Attachments att;
private TokenStatus status;
- private Process proc;
+ private ProcessAsync proc;
private Session session;
/**
* Construct a Token with given {@link Attachments}
*/
- public TokenImpl(Process proc, Attachments att)
+ public TokenImpl(ProcessAsync proc, Attachments att)
{
- this.context = new BasicExecutionContext(att);
+ this.att = new BasicAttachments(att);
this.id = new UID().toString();
this.status = TokenStatus.Created;
this.proc = proc;
@@ -97,15 +96,15 @@
}
@Override
- public Process getProcess()
+ public ProcessAsync getProcess()
{
return proc;
}
@Override
- public ExecutionContext getExecutionContext()
+ public Attachments getAttachments()
{
- return context;
+ return att;
}
@Override
@@ -190,26 +189,26 @@
@Override
public MutableToken copyToken()
{
- return new TokenImpl(proc, context);
+ return new TokenImpl(proc, att);
}
@Override
public void mergeToken(Token token)
{
- ExecutionContext mergeContext = token.getExecutionContext();
- for (Key key : mergeContext.getAttachmentKeys())
+ Attachments mergeAtt = token.getAttachments();
+ for (Key key : mergeAtt.getAttachmentKeys())
{
- Object mergeValue = mergeContext.getAttachment(key.getClassPart(), key.getNamePart());
- Object existValue = context.getAttachment(key.getClassPart(), key.getNamePart());
+ Object mergeValue = mergeAtt.getAttachment(key.getClassPart(), key.getNamePart());
+ Object existValue = att.getAttachment(key.getClassPart(), key.getNamePart());
if (existValue != null && existValue.equals(mergeValue) == false)
throw new IllegalStateException("Cannot merge the same key with different values: " + key);
- context.addAttachment(key.getClassPart(), key.getNamePart(), mergeValue);
+ att.addAttachment(key.getClassPart(), key.getNamePart(), mergeValue);
}
}
public String toString()
{
- return "[sf=" + getLastFlow() + ",status=" + getTokenStatus() + ",ctx=" + getExecutionContext() + ",id=" + id + "]";
+ return "[sf=" + getLastFlow() + ",status=" + getTokenStatus() + ",ctx=" + getAttachments() + ",id=" + id + "]";
}
}
\ No newline at end of file
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ExecutionServiceImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ExecutionServiceImpl.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ExecutionServiceImpl.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -30,17 +30,16 @@
import org.jbpm.api.BPMException;
import org.jbpm.api.ProcessTimeoutException;
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessAsync;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.client.Token;
-import org.jbpm.api.client.Process.ProcessStatus;
+import org.jbpm.api.client.ProcessAsync.ProcessStatus;
import org.jbpm.api.model.Expression;
import org.jbpm.api.model.StartEvent;
import org.jbpm.api.model.preview.Assignment;
import org.jbpm.api.model.preview.Assignment.AssignTime;
import org.jbpm.api.model.preview.Signal.SignalType;
import org.jbpm.api.runtime.Attachments;
-import org.jbpm.api.runtime.preview.ExecutionContext;
import org.jbpm.api.runtime.preview.TokenExecutor;
import org.jbpm.api.service.ExecutionService;
import org.jbpm.api.service.ProcessInstanceService;
@@ -79,12 +78,12 @@
}
@Override
- public void startProcess(Process proc, StartEvent start, Attachments att)
+ public void startProcess(ProcessAsync proc, StartEvent start, Attachments att)
{
startProcessInternal(proc, start, att);
}
- private synchronized void startProcessInternal(Process proc, StartEvent start, Attachments att)
+ private synchronized void startProcessInternal(ProcessAsync proc, StartEvent start, Attachments att)
{
@SuppressWarnings("serial")
class InitialFlow extends SequenceFlowImpl
@@ -137,10 +136,10 @@
}
// Evaluate the Start time assignments
- private void startTimeAssignments(Process proc, Token token)
+ private void startTimeAssignments(ProcessAsync proc, Token token)
{
DelegatingToken delegatingToken = new DelegatingToken((MutableToken)token);
- ExecutionContext exContext = token.getExecutionContext();
+ Attachments atts = token.getAttachments();
for (Assignment ass : proc.getAssignments())
{
if (ass.getAssignTime() == AssignTime.Start)
@@ -149,17 +148,17 @@
ExpressionEvaluator exprEvaluator = new ExpressionEvaluator(expr);
Object result = exprEvaluator.evaluateExpression(delegatingToken);
String propName = ass.getTo().getName();
- exContext.addAttachment(propName, result);
+ atts.addAttachment(propName, result);
}
}
}
- public ProcessStatus waitForEnd(Process proc)
+ public ProcessStatus waitForEnd(ProcessAsync proc)
{
return waitForEndInternal(proc, 0);
}
- public ProcessStatus waitForEnd(Process proc, long timeout)
+ public ProcessStatus waitForEnd(ProcessAsync proc, long timeout)
{
return waitForEndInternal(proc, timeout);
}
@@ -169,7 +168,7 @@
* arrive at an End Event. The Process will be in a running state until all Tokens are consumed. If the process was
* aborted this method throws the causing RuntimeException if avaialable.
*/
- private ProcessStatus waitForEndInternal(Process proc, long timeout)
+ private ProcessStatus waitForEndInternal(ProcessAsync proc, long timeout)
{
ProcessImpl procImpl = (ProcessImpl)proc;
@@ -234,13 +233,13 @@
return status;
}
- private boolean isProcessTerminated(Process proc)
+ private boolean isProcessTerminated(ProcessAsync proc)
{
ProcessStatus status = proc.getProcessStatus();
return status == ProcessStatus.Cancelled || status == ProcessStatus.Completed || status == ProcessStatus.Aborted;
}
- private RuntimeProcess getRuntimeProcess(Process proc, boolean createNew)
+ private RuntimeProcess getRuntimeProcess(ProcessAsync proc, boolean createNew)
{
RuntimeProcess rtProcess;
synchronized (runtimeProcesses)
@@ -271,7 +270,7 @@
{
ThreadingTokenExecutor tokenExecutor = rtProc.getTokenExecutor();
ProcessImpl procImpl = (ProcessImpl)rtProc.getProcess();
- Process proc = rtProc.getProcess();
+ ProcessAsync proc = rtProc.getProcess();
ProcessEngine engine = getProcessEngine();
SignalService sigService = engine.getService(SignalService.class);
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/HibernatePersistenceServiceImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/HibernatePersistenceServiceImpl.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/HibernatePersistenceServiceImpl.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -36,7 +36,7 @@
import org.hibernate.cfg.AnnotationConfiguration;
import org.jbpm.api.NodeNotFoundException;
import org.jbpm.api.ProcessNotFoundException;
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessAsync;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.model.Node;
@@ -151,7 +151,7 @@
}
@Override
- public ObjectName saveProcess(Process proc)
+ public ObjectName saveProcess(ProcessAsync proc)
{
log.debug("START saveProcess: " + proc.getKey());
Session session = getSessionFactory().openSession();
@@ -170,15 +170,15 @@
}
@Override
- public Process loadProcess(ObjectName procID)
+ public ProcessAsync loadProcess(ObjectName procID)
{
log.debug("START loadProcess: " + procID);
- Process proc = null;
+ ProcessAsync proc = null;
Session session = getSessionFactory().openSession();
try
{
Integer id = Integer.valueOf(procID.getKeyProperty("id"));
- proc = (Process)session.load(ProcessImpl.class, id);
+ proc = (ProcessAsync)session.load(ProcessImpl.class, id);
AbstractElementImpl elImpl = (AbstractElementImpl)proc;
elImpl.initialize(getProcessEngine(), session);
}
@@ -195,7 +195,7 @@
}
@Override
- public void deleteProcess(Process proc)
+ public void deleteProcess(ProcessAsync proc)
{
log.debug("START deleteProcess: " + proc);
Session session = getSessionFactory().openSession();
@@ -204,7 +204,7 @@
{
ObjectName procID = proc.getKey();
Integer id = Integer.valueOf(procID.getKeyProperty("id"));
- proc = (Process)session.load(ProcessImpl.class, id);
+ proc = (ProcessAsync)session.load(ProcessImpl.class, id);
session.delete(proc);
tx.commit();
}
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/InMemoryPersistenceServiceImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/InMemoryPersistenceServiceImpl.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/InMemoryPersistenceServiceImpl.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -30,7 +30,7 @@
import org.hibernate.Session;
import org.jbpm.api.ProcessNotFoundException;
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessAsync;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.model.Node;
@@ -50,7 +50,7 @@
final Logger log = LoggerFactory.getLogger(InMemoryPersistenceServiceImpl.class);
private Map<ObjectName, ProcessDefinition> procDefs = new HashMap<ObjectName, ProcessDefinition>();
- private Map<ObjectName, Process> procs = new HashMap<ObjectName, Process>();
+ private Map<ObjectName, ProcessAsync> procs = new HashMap<ObjectName, ProcessAsync>();
private Map<ObjectName, Node> nodes = new HashMap<ObjectName, Node>();
@Override
@@ -89,7 +89,7 @@
}
@Override
- public ObjectName saveProcess(Process proc)
+ public ObjectName saveProcess(ProcessAsync proc)
{
procs.put(proc.getKey(), proc);
@@ -100,9 +100,9 @@
}
@Override
- public Process loadProcess(ObjectName procID)
+ public ProcessAsync loadProcess(ObjectName procID)
{
- Process proc = procs.get(procID);
+ ProcessAsync proc = procs.get(procID);
if (proc == null)
throw new ProcessNotFoundException("Cannot find process: " + procID);
@@ -110,7 +110,7 @@
}
@Override
- public void deleteProcess(Process proc)
+ public void deleteProcess(ProcessAsync proc)
{
procs.remove(proc.getKey());
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ProcessBuilderServiceImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ProcessBuilderServiceImpl.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ProcessBuilderServiceImpl.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -23,14 +23,14 @@
// $Id$
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessAsync;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.model.builder.ProcessBuilder;
import org.jbpm.api.service.ProcessBuilderService;
import org.jbpm.ri.model.builder.ProcessBuilderImpl;
/**
- * The ProcessBuilder can be used to build a {@link Process} dynamically.
+ * The ProcessBuilder can be used to build a {@link ProcessAsync} dynamically.
*
* @author thomas.diesler(a)jboss.com
* @since 18-Jun-2008
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-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ProcessServiceImpl.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -29,9 +29,9 @@
import javax.management.ObjectName;
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessAsync;
import org.jbpm.api.client.ProcessEngine;
-import org.jbpm.api.client.Process.ProcessStatus;
+import org.jbpm.api.client.ProcessAsync.ProcessStatus;
import org.jbpm.api.service.ProcessInstanceService;
import org.jbpm.api.service.preview.PersistenceService;
import org.jbpm.ri.model.ProcessImpl;
@@ -73,7 +73,7 @@
}
@Override
- public ObjectName registerProcess(Process proc)
+ public ObjectName registerProcess(ProcessAsync proc)
{
ObjectName procID = super.registerProcess(proc);
Modified: projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/ProcessPersistenceTest.java
===================================================================
--- projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/ProcessPersistenceTest.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/ProcessPersistenceTest.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -26,7 +26,7 @@
import javax.management.ObjectName;
import org.jbpm.api.ProcessNotFoundException;
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessAsync;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.model.EndEvent;
@@ -59,12 +59,12 @@
procDefService.registerProcessDefinition(procDef);
// Create and save the Process
- Process proc = procDef.newInstance();
+ ProcessAsync proc = procDef.newInstance();
service.saveProcess(proc);
// Load the process
ObjectName procID = proc.getKey();
- Process loadProc = service.loadProcess(procID);
+ ProcessAsync loadProc = service.loadProcess(procID);
ProcessCatalog.validateDefaultProcess(loadProc.getProcessDefinition());
StartEvent start = loadProc.getNode(StartEvent.class, "Start");
Modified: projects/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AirticketProcessBuilder.java
===================================================================
--- projects/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AirticketProcessBuilder.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AirticketProcessBuilder.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -30,9 +30,9 @@
import org.jbpm.api.model.Expression.ExpressionLanguage;
import org.jbpm.api.model.Gateway.GatewayType;
import org.jbpm.api.model.Task.TaskType;
+import org.jbpm.api.model.builder.GatewayBuilder;
import org.jbpm.api.model.builder.ProcessBuilder;
import org.jbpm.api.model.builder.TaskBuilder;
-import org.jbpm.api.model.builder.preview.GatewayBuilder;
import org.jbpm.api.model.preview.Assignment.AssignTime;
import org.jbpm.api.service.ProcessBuilderService;
Modified: projects/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/server/AirticketServiceImpl.java
===================================================================
--- projects/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/server/AirticketServiceImpl.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/server/AirticketServiceImpl.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -15,7 +15,7 @@
import org.jboss.bpm.samples.airticket.client.OfferMessage;
import org.jboss.bpm.samples.airticket.client.OrderMessage;
import org.jboss.bpm.samples.airticket.client.RequestMessage;
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessAsync;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.preview.MessageListener;
import org.jbpm.api.client.preview.SignalListener;
@@ -65,7 +65,7 @@
System.out.println("Create new Process");
AirticketProcessBuilder procBuilder = new AirticketProcessBuilder(sampleID);
ProcessDefinition procDef = procBuilder.buildProcessDefinition();
- Process proc = procDef.newInstance();
+ ProcessAsync proc = procDef.newInstance();
procService.registerProcess(proc);
procID = proc.startProcessAsync();
httpSession.setAttribute("procID", procID);
Modified: projects/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketTest.java
===================================================================
--- projects/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketTest.java 2008-11-13 14:40:31 UTC (rev 2912)
+++ projects/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketTest.java 2008-11-13 14:53:01 UTC (rev 2913)
@@ -25,7 +25,7 @@
import javax.management.ObjectName;
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessAsync;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.preview.MessageListener;
import org.jbpm.api.client.preview.UserTaskCallback;
@@ -53,7 +53,7 @@
private MessageService messageManager = MessageService.locateMessageService();
private AirticketMessageListener msgListener;
- private Process proc;
+ private ProcessAsync proc;
public void testValidData() throws Exception
{
17 years, 5 months
JBoss JBPM SVN: r2912 - projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/process.
by do-not-reply@jboss.org
Author: heiko.braun(a)jboss.com
Date: 2008-11-13 09:40:31 -0500 (Thu, 13 Nov 2008)
New Revision: 2912
Modified:
projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/process/ProcessDefinitionListEditor.java
Log:
Logging statments
Modified: projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/process/ProcessDefinitionListEditor.java
===================================================================
--- projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/process/ProcessDefinitionListEditor.java 2008-11-13 14:28:05 UTC (rev 2911)
+++ projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/process/ProcessDefinitionListEditor.java 2008-11-13 14:40:31 UTC (rev 2912)
@@ -33,6 +33,7 @@
import com.gwtext.client.widgets.layout.ColumnLayout;
import com.gwtext.client.widgets.layout.ColumnLayoutData;
import com.gwtext.client.widgets.layout.VerticalLayout;
+import com.allen_sauer.gwt.log.client.Log;
import org.jboss.bpm.console.client.MainView;
import org.jboss.bpm.console.client.Editor;
import org.jboss.bpm.console.client.UIConstants;
@@ -130,7 +131,7 @@
public void onActionFailed(Form form, int i, String string)
{
super.onActionFailed(form, i, string);
- view.setError("Failed to upload process definition: " + string );
+ Log.error("Failed to upload process definition: " + string );
}
}
);
17 years, 5 months
JBoss JBPM SVN: r2911 - in projects/spec/trunk/modules: api/src/main/java/org/jbpm/api/client/internal and 11 other directories.
by do-not-reply@jboss.org
Author: thomas.diesler(a)jboss.com
Date: 2008-11-13 09:28:05 -0500 (Thu, 13 Nov 2008)
New Revision: 2911
Added:
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/ConfigurationProvider.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/internal/MicrocontainerConfigurationProvider.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/preview/PersistenceToken.java
projects/spec/trunk/modules/ri/src/main/resources/org.jbpm.api.client.ConfigurationProvider
Removed:
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/PersistenceToken.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/internal/MicrocontainerConfiguration.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/ProcessEngineRegistry.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/ConfigurationTestCase.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/ConfigurationTestSetup.java
projects/spec/trunk/modules/ri/src/main/resources/org.jbpm.api.client.Configuration
Modified:
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Configuration.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Process.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/ProcessDefinition.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/ProcessEngine.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Token.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/preview/UserTaskCallback.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/AbstractElement.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessBuilderService.java
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/ProcessInstanceService.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/MessageBuilderService.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/MessageService.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/PersistenceService.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/SignalBuilderService.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/SignalService.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/CTSTestCase.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/processengine/ProcessEngineTest.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/AbstractElementImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/NodeImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessDefinitionImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessStructureImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/StartEventImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/TaskImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingToken.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/MutableToken.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/PersistenceSessionInterceptor.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RunnableToken.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TokenImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TransactionInterceptor.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/HibernatePersistenceServiceImpl.java
projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/TaskPersistenceTest.java
Log:
Add ConfigurationProvider
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Configuration.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Configuration.java 2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Configuration.java 2008-11-13 14:28:05 UTC (rev 2911)
@@ -21,27 +21,99 @@
*/
package org.jbpm.api.client;
+//$Id$
-// $Id$
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.net.URL;
/**
- * The Configuration provides a ProcessEngine through a given
- * configuration method
+ * The Configuration provides a ProcessEngine through a ConfigurationProvider
+ * </p>
+ * A ConfigurationProvider is discovered in two stages
+ * <p/>
*
+ * <ol>
+ * <li>Read the configuration provider class name from a system property
+ * <li>Read the configuration provider class name from a resource file
+ * </ol>
+ *
+ * In both cases the key is the fully qalified name of the {@link ConfigurationProvider} interface.
+ *
* @author thomas.diesler(a)jboss.com
* @since 18-Jun-2008
*/
-public interface Configuration
+public abstract class Configuration
{
+ private static ConfigurationProvider provider;
+
/**
* Create a new instance of ProcessEngine for this configuration
+ *
* @return The configured instance of a process engine
*/
- ProcessEngine getProcessEngine();
-
+ public static ProcessEngine getProcessEngine()
+ {
+ return getConfigurationProvider().getProcessEngine();
+ }
+
/**
* Get a ProcessEngine with a given name from this configuration
+ *
* @return The configured instance of a process engine
*/
- ProcessEngine getProcessEngine(String engineName);
+ public static ProcessEngine getProcessEngine(URL cfgURL)
+ {
+ return getConfigurationProvider().getProcessEngine(cfgURL);
+ }
+
+ /**
+ * Get a ProcessEngine with a given name from this configuration
+ *
+ * @return The configured instance of a process engine
+ */
+ public static ProcessEngine getProcessEngine(String cfgXML)
+ {
+ return getConfigurationProvider().getProcessEngine(cfgXML);
+ }
+
+ private static ConfigurationProvider getConfigurationProvider()
+ {
+ if (provider == null)
+ {
+ // Get the provider name from the System property
+ String providerName = System.getProperty(ConfigurationProvider.class.getName());
+
+ // Get the provider name from the resource file
+ if (providerName == null)
+ {
+ ClassLoader ctxLoader = Thread.currentThread().getContextClassLoader();
+ URL providerURL = ctxLoader.getResource(ConfigurationProvider.class.getName());
+ if (providerURL == null)
+ throw new IllegalStateException("Cannot find resource: " + ConfigurationProvider.class.getName());
+
+ try
+ {
+ providerName = new BufferedReader(new InputStreamReader(providerURL.openStream())).readLine();
+ }
+ catch (Exception e)
+ {
+ throw new IllegalStateException("Cannot read configuration provider name from: " + providerURL);
+ }
+ }
+
+ // Load the config provider
+ try
+ {
+ ClassLoader ctxLoader = Thread.currentThread().getContextClassLoader();
+ Class<?> providerClass = ctxLoader.loadClass(providerName);
+ provider = (ConfigurationProvider)providerClass.newInstance();
+ }
+ catch (Exception e)
+ {
+ throw new IllegalStateException("Cannot load configuration provider: " + providerName);
+ }
+ }
+ return provider;
+ }
}
\ No newline at end of file
Added: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/ConfigurationProvider.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/ConfigurationProvider.java (rev 0)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/ConfigurationProvider.java 2008-11-13 14:28:05 UTC (rev 2911)
@@ -0,0 +1,53 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.api.client;
+
+//$Id$
+
+import java.net.URL;
+
+/**
+ * The ConfigurationProvider provides a ProcessEngine
+ *
+ * @author thomas.diesler(a)jboss.com
+ * @since 18-Jun-2008
+ */
+public interface ConfigurationProvider
+{
+ /**
+ * Get a ProcessEngine from this ConfigurationProvider
+ * @return The configured instance of a process engine
+ */
+ ProcessEngine getProcessEngine();
+
+ /**
+ * Get a ProcessEngine that is configured with a given config file
+ * @return The configured instance of a process engine
+ */
+ ProcessEngine getProcessEngine(URL cfgURL);
+
+ /**
+ * Get a ProcessEngine that is configured with a given config string
+ * @return The configured instance of a process engine
+ */
+ ProcessEngine getProcessEngine(String cfgXML);
+}
\ No newline at end of file
Property changes on: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/ConfigurationProvider.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Deleted: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/PersistenceToken.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/PersistenceToken.java 2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/PersistenceToken.java 2008-11-13 14:28:05 UTC (rev 2911)
@@ -1,40 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.api.client;
-
-// $Id$
-
-import org.hibernate.Session;
-
-/**
- * A Token that gives access to the persistence context
- *
- * @author Thomas.Diesler(a)jboss.com
- * @since 20-Apr-2007
- */
-public interface PersistenceToken extends Token
-{
- /**
- * Get the associated persistence session
- */
- Session getSession();
-}
\ No newline at end of file
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Process.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Process.java 2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Process.java 2008-11-13 14:28:05 UTC (rev 2911)
@@ -45,6 +45,11 @@
}
/**
+ * Get the associated ProcessEngine
+ */
+ ProcessEngine getProcessEngine();
+
+ /**
* Get the associated ProcessDefinition
*/
ProcessDefinition getProcessDefinition();
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/ProcessDefinition.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/ProcessDefinition.java 2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/ProcessDefinition.java 2008-11-13 14:28:05 UTC (rev 2911)
@@ -38,4 +38,8 @@
*/
Process newInstance();
+ /**
+ * Get the associated ProcessEngine
+ */
+ ProcessEngine getProcessEngine();
}
\ No newline at end of file
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/ProcessEngine.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/ProcessEngine.java 2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/ProcessEngine.java 2008-11-13 14:28:05 UTC (rev 2911)
@@ -23,15 +23,11 @@
//$Id$
-import java.io.BufferedReader;
-import java.io.InputStream;
-import java.io.InputStreamReader;
import java.util.HashSet;
import java.util.Set;
-import org.jbpm.api.client.internal.MicrocontainerConfiguration;
+import org.jbpm.api.client.internal.MicrocontainerConfigurationProvider;
import org.jbpm.api.service.Service;
-import org.jbpm.api.service.preview.ProcessEngineRegistry;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -41,7 +37,7 @@
* A ProcessEngine is always created via one of the available {@link Configuration} objects. Every implementation of the API has one default
* {@link Configuration} which is configured via a resource file with the fully qualified class name of {@link Configuration}.
* <p/>
- * The API natively supports {@link MicrocontainerConfiguration}. To create and register a ProcessEngine explicitly, you would do
+ * The API natively supports {@link MicrocontainerConfigurationProvider}. To create and register a ProcessEngine explicitly, you would do
*
* <pre>
* MicrocontainerConfiguration config = new MicrocontainerConfiguration();
@@ -88,41 +84,6 @@
}
/**
- * Get the registered default ProcessEngine
- * <p/>
- * If there is no ProcessEngine registered, a call to this method will
- * register the default engine automatically.
- *
- * @return The configured instance of a process engine
- */
- public static ProcessEngine getProcessEngine()
- {
- return getProcessEngine(null);
- }
-
- /**
- * Get a registered ProcessEngine
- *
- * @return null, if there is no ProcessEngine registered by this name
- */
- public static ProcessEngine getProcessEngine(String engineName)
- {
- Set<String> registeredEngines = ProcessEngineRegistry.getEngineNames();
- if (registeredEngines.size() == 0)
- {
- ProcessEngine engine = loadDefaultEngine();
- ProcessEngineRegistry.registerEngine(engine);
- return engine;
- }
-
- if (engineName == null && registeredEngines.size() == 1)
- engineName = registeredEngines.iterator().next();
-
- ProcessEngine engine = ProcessEngineRegistry.getEngine(engineName);
- return engine;
- }
-
- /**
* Get the name of this engine
*/
public String getName()
@@ -136,33 +97,6 @@
this.name = name;
}
- private static ProcessEngine loadDefaultEngine()
- {
- ClassLoader ctxLoader = Thread.currentThread().getContextClassLoader();
- InputStream instream = ctxLoader.getResourceAsStream(Configuration.class.getName());
- if (instream == null)
- throw new IllegalStateException("Cannot find resource: " + Configuration.class.getName());
-
- Configuration config;
- try
- {
- BufferedReader br = new BufferedReader(new InputStreamReader(instream));
- String configurationClassName = br.readLine();
- Class<?> configurationClass = ctxLoader.loadClass(configurationClassName);
- config = (Configuration)configurationClass.newInstance();
- }
- catch (Exception ex)
- {
- throw new IllegalStateException("Cannot obtain configuration", ex);
- }
-
- ProcessEngine engine = config.getProcessEngine();
- if (engine == null)
- throw new IllegalStateException("Cannot obtain engine from configuration: " + config);
-
- return engine;
- }
-
@Override
public String toString()
{
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Token.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Token.java 2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Token.java 2008-11-13 14:28:05 UTC (rev 2911)
@@ -47,6 +47,11 @@
}
/**
+ * Get the associated ProcessEngine
+ */
+ ProcessEngine getProcessEngine();
+
+ /**
* Get the unique token identity
*/
String getTokenID();
Deleted: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/internal/MicrocontainerConfiguration.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/internal/MicrocontainerConfiguration.java 2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/internal/MicrocontainerConfiguration.java 2008-11-13 14:28:05 UTC (rev 2911)
@@ -1,109 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.api.client.internal;
-
-//$Id$
-
-import java.net.URL;
-
-import org.jboss.kernel.Kernel;
-import org.jboss.kernel.plugins.util.KernelLocator;
-import org.jboss.kernel.spi.registry.KernelRegistryEntry;
-import org.jbpm.api.client.Configuration;
-import org.jbpm.api.client.ProcessEngine;
-
-/**
- * The ProcessEngineProvider provides a ProcessEngine through a given configuration method
- *
- * @author thomas.diesler(a)jboss.com
- * @since 18-Jun-2008
- */
-public class MicrocontainerConfiguration implements Configuration
-{
- /** The process engine bean name - jBPMEngine */
- public static final String BEAN_NAME = "jBPMProcessEngine";
- /** The default bean config: jbpm-cfg-beans.xml */
- public static final String JBPM_ENGINE_CONFIG = "jbpm-cfg-beans.xml";
-
- // Everything gets deployed through one deployer
- private static EmbeddedBeansDeployer beansDeployer = new EmbeddedBeansDeployer();
-
- public Configuration deployDefaultConfig()
- {
- URL cfgURL = getDefaultConfigURL();
- beansDeployer.deploy(cfgURL);
- return this;
- }
-
- public void undeployDefaultConfig()
- {
- URL cfgURL = getDefaultConfigURL();
- beansDeployer.undeploy(cfgURL);
- }
-
- public Configuration deployBeansConfig(URL cfgURL)
- {
- beansDeployer.deploy(cfgURL);
- return this;
- }
-
- public void undeployBeansConfig(URL cfgURL)
- {
- beansDeployer.undeploy(cfgURL);
- }
-
- /**
- * Get the default ProcessEngine from this configuration
- * @return The configured instance of a process engine
- */
- public ProcessEngine getProcessEngine()
- {
- return getProcessEngine(BEAN_NAME);
- }
-
- /**
- * Get a ProcessEngine with a given name from this configuration
- * @return The configured instance of a process engine
- */
- @SuppressWarnings("deprecation")
- public ProcessEngine getProcessEngine(String beanName)
- {
- Kernel kernel = KernelLocator.getKernel();
- if (kernel == null)
- {
- deployDefaultConfig();
- kernel = KernelLocator.getKernel();
- }
-
- KernelRegistryEntry entry = kernel.getRegistry().getEntry(beanName);
- ProcessEngine engine = (ProcessEngine)entry.getTarget();
- return engine;
- }
-
- private URL getDefaultConfigURL()
- {
- URL cfgURL = Thread.currentThread().getContextClassLoader().getResource(JBPM_ENGINE_CONFIG);
- if (cfgURL == null)
- throw new IllegalStateException("Cannot find resource: " + JBPM_ENGINE_CONFIG);
- return cfgURL;
- }
-}
\ No newline at end of file
Copied: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/internal/MicrocontainerConfigurationProvider.java (from rev 2897, projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/internal/MicrocontainerConfiguration.java)
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/internal/MicrocontainerConfigurationProvider.java (rev 0)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/internal/MicrocontainerConfigurationProvider.java 2008-11-13 14:28:05 UTC (rev 2911)
@@ -0,0 +1,91 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.api.client.internal;
+
+//$Id$
+
+import java.net.URL;
+
+import org.jboss.kernel.Kernel;
+import org.jboss.kernel.plugins.util.KernelLocator;
+import org.jboss.kernel.spi.registry.KernelRegistryEntry;
+import org.jbpm.api.NotImplementedException;
+import org.jbpm.api.client.ConfigurationProvider;
+import org.jbpm.api.client.ProcessEngine;
+
+/**
+ * The ProcessEngineProvider provides a ProcessEngine through a given configuration method
+ *
+ * @author thomas.diesler(a)jboss.com
+ * @since 18-Jun-2008
+ */
+public class MicrocontainerConfigurationProvider implements ConfigurationProvider
+{
+ /** The process engine bean name - jBPMEngine */
+ public static final String BEAN_NAME = "jBPMProcessEngine";
+ /** The default bean config: jbpm-cfg-beans.xml */
+ public static final String JBPM_ENGINE_CONFIG = "jbpm-cfg-beans.xml";
+
+ private ProcessEngine engine;
+
+ @Override
+ public ProcessEngine getProcessEngine()
+ {
+ if (engine == null)
+ {
+ URL cfgURL = getDefaultConfigURL();
+ engine = getProcessEngine(cfgURL);
+ }
+ return engine;
+ }
+
+ @Override
+ public ProcessEngine getProcessEngine(URL cfgURL)
+ {
+ EmbeddedBeansDeployer deployer = new EmbeddedBeansDeployer();
+ deployer.deploy(cfgURL);
+ return getProcessEngineBean();
+ }
+
+ @Override
+ public ProcessEngine getProcessEngine(String cfgXML)
+ {
+ throw new NotImplementedException();
+ }
+
+ @SuppressWarnings("deprecation")
+ private ProcessEngine getProcessEngineBean()
+ {
+ Kernel kernel = KernelLocator.getKernel();
+ KernelRegistryEntry entry = kernel.getRegistry().getEntry(BEAN_NAME);
+ ProcessEngine engine = (ProcessEngine)entry.getTarget();
+ return engine;
+ }
+
+ private URL getDefaultConfigURL()
+ {
+ URL cfgURL = Thread.currentThread().getContextClassLoader().getResource(JBPM_ENGINE_CONFIG);
+ if (cfgURL == null)
+ throw new IllegalStateException("Cannot find resource: " + JBPM_ENGINE_CONFIG);
+ return cfgURL;
+ }
+}
\ No newline at end of file
Copied: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/preview/PersistenceToken.java (from rev 2897, projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/PersistenceToken.java)
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/preview/PersistenceToken.java (rev 0)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/preview/PersistenceToken.java 2008-11-13 14:28:05 UTC (rev 2911)
@@ -0,0 +1,41 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.api.client.preview;
+
+// $Id$
+
+import org.hibernate.Session;
+import org.jbpm.api.client.Token;
+
+/**
+ * A Token that gives access to the persistence context
+ *
+ * @author Thomas.Diesler(a)jboss.com
+ * @since 20-Apr-2007
+ */
+public interface PersistenceToken extends Token
+{
+ /**
+ * Get the associated persistence session
+ */
+ Session getSession();
+}
\ No newline at end of file
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/preview/UserTaskCallback.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/preview/UserTaskCallback.java 2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/preview/UserTaskCallback.java 2008-11-13 14:28:05 UTC (rev 2911)
@@ -25,6 +25,7 @@
import javax.management.ObjectName;
+import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.model.builder.preview.MessageBuilder;
import org.jbpm.api.model.builder.preview.ObjectNameFactory;
import org.jbpm.api.model.preview.Message;
@@ -65,7 +66,8 @@
messageListener = new CallbackMessageListener(userTask);
- MessageService msgService = userTask.getProcessEngine().getService(MessageService.class);
+ ProcessEngine engine = userTask.getProcessDefinition().getProcessEngine();
+ MessageService msgService = engine.getService(MessageService.class);
msgService.addMessageListener(messageListener);
}
@@ -74,7 +76,8 @@
*/
public void detach(UserTask userTask)
{
- MessageService msgService = userTask.getProcessEngine().getService(MessageService.class);
+ ProcessEngine engine = userTask.getProcessDefinition().getProcessEngine();
+ MessageService msgService = engine.getService(MessageService.class);
msgService.removeMessageListener(messageListener.getKey());
}
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/AbstractElement.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/AbstractElement.java 2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/AbstractElement.java 2008-11-13 14:28:05 UTC (rev 2911)
@@ -27,8 +27,6 @@
import javax.management.ObjectName;
-import org.jbpm.api.client.ProcessEngine;
-
/**
* The parrent of all Elements
*
@@ -41,9 +39,4 @@
* Get the ID of this element
*/
ObjectName getKey();
-
- /**
- * Get the associated ProcessEngine
- */
- ProcessEngine getProcessEngine();
}
\ No newline at end of file
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessBuilderService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessBuilderService.java 2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessBuilderService.java 2008-11-13 14:28:05 UTC (rev 2911)
@@ -23,6 +23,7 @@
//$Id$
+import org.jbpm.api.client.Configuration;
import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.model.builder.ProcessBuilder;
@@ -40,7 +41,7 @@
*/
public static ProcessBuilder locateProcessBuilder()
{
- ProcessEngine engine = ProcessEngine.getProcessEngine();
+ ProcessEngine engine = Configuration.getProcessEngine();
ProcessBuilderService builderService = engine.getService(ProcessBuilderService.class);
return builderService.getProcessBuilder();
}
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-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessDefinitionService.java 2008-11-13 14:28:05 UTC (rev 2911)
@@ -37,6 +37,7 @@
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
+import org.jbpm.api.client.Configuration;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.client.preview.Deployment;
@@ -70,7 +71,7 @@
*/
public static ProcessDefinitionService locateProcessDefinitionService()
{
- ProcessEngine engine = ProcessEngine.getProcessEngine();
+ ProcessEngine engine = Configuration.getProcessEngine();
return engine.getService(ProcessDefinitionService.class);
}
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessInstanceService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessInstanceService.java 2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessInstanceService.java 2008-11-13 14:28:05 UTC (rev 2911)
@@ -31,6 +31,7 @@
import javax.management.ObjectName;
+import org.jbpm.api.client.Configuration;
import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.ProcessEngine;
@@ -63,7 +64,7 @@
*/
public static ProcessInstanceService locateProcessService()
{
- ProcessEngine engine = ProcessEngine.getProcessEngine();
+ ProcessEngine engine = Configuration.getProcessEngine();
return engine.getService(ProcessInstanceService.class);
}
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/MessageBuilderService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/MessageBuilderService.java 2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/MessageBuilderService.java 2008-11-13 14:28:05 UTC (rev 2911)
@@ -23,6 +23,7 @@
//$Id$
+import org.jbpm.api.client.Configuration;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.model.builder.preview.MessageBuilder;
import org.jbpm.api.model.preview.Message;
@@ -41,7 +42,7 @@
*/
public static MessageBuilder locateMessageBuilder()
{
- ProcessEngine engine = ProcessEngine.getProcessEngine();
+ ProcessEngine engine = Configuration.getProcessEngine();
MessageBuilderService builderService = engine.getService(MessageBuilderService.class);
return builderService.getMessageBuilder();
}
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/MessageService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/MessageService.java 2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/MessageService.java 2008-11-13 14:28:05 UTC (rev 2911)
@@ -31,6 +31,7 @@
import javax.management.ObjectName;
+import org.jbpm.api.client.Configuration;
import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.client.preview.MessageListener;
@@ -66,7 +67,7 @@
*/
public static MessageService locateMessageService()
{
- ProcessEngine engine = ProcessEngine.getProcessEngine();
+ ProcessEngine engine = Configuration.getProcessEngine();
return engine.getService(MessageService.class);
}
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/PersistenceService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/PersistenceService.java 2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/PersistenceService.java 2008-11-13 14:28:05 UTC (rev 2911)
@@ -26,6 +26,7 @@
import javax.management.ObjectName;
import org.hibernate.Session;
+import org.jbpm.api.client.Configuration;
import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.ProcessEngine;
@@ -45,7 +46,7 @@
*/
public static PersistenceService locatePersistenceService()
{
- ProcessEngine engine = ProcessEngine.getProcessEngine();
+ ProcessEngine engine = Configuration.getProcessEngine();
return engine.getService(PersistenceService.class);
}
Deleted: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/ProcessEngineRegistry.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/ProcessEngineRegistry.java 2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/ProcessEngineRegistry.java 2008-11-13 14:28:05 UTC (rev 2911)
@@ -1,94 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.api.service.preview;
-
-//$Id$
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
-
-import org.jbpm.api.client.ProcessEngine;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * A registry of ProcessEngine instances per VM
- *
- * @author thomas.diesler(a)jboss.com
- * @since 25-Sep-2008
- */
-public final class ProcessEngineRegistry
-{
- // Provide logging
- final static Logger log = LoggerFactory.getLogger(ProcessEngineRegistry.class);
-
- // The process engine registry
- static Map<String, ProcessEngine> engineRegistry = new HashMap<String, ProcessEngine>();
-
- // Hide constructor
- private ProcessEngineRegistry()
- {
- }
-
- /**
- * Get the set of registered engine names
- */
- public static Set<String> getEngineNames()
- {
- return engineRegistry.keySet();
- }
-
- /**
- * Get a process engine by name
- * @return null, if there is no engine registered under the given name
- */
- public static ProcessEngine getEngine(String engineName)
- {
- return engineRegistry.get(engineName);
- }
-
- /**
- * Register a ProcessEngine
- * @throws IllegalStateException If a ProcessEngine with that name is already registered
- */
- public static void registerEngine(ProcessEngine engine)
- {
- if (engineRegistry.get(engine.getName()) != null)
- throw new IllegalStateException("Process engine already registered: " + engine.getName());
-
- log.debug("Register: " + engine);
- engineRegistry.put(engine.getName(), engine);
- }
-
- /**
- * Unregister a ProcessEngine for a given name
- */
- public static ProcessEngine unregisterEngine(String name)
- {
- ProcessEngine pe = engineRegistry.remove(name);
- log.debug("Unregister: " + name + "=" + pe);
- return pe;
- }
-
-
-}
\ No newline at end of file
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/SignalBuilderService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/SignalBuilderService.java 2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/SignalBuilderService.java 2008-11-13 14:28:05 UTC (rev 2911)
@@ -23,6 +23,7 @@
//$Id$
+import org.jbpm.api.client.Configuration;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.model.builder.preview.SignalBuilder;
import org.jbpm.api.model.preview.Signal;
@@ -41,7 +42,7 @@
*/
public static SignalBuilder locateSignalBuilder()
{
- ProcessEngine engine = ProcessEngine.getProcessEngine();
+ ProcessEngine engine = Configuration.getProcessEngine();
SignalBuilderService builderService = engine.getService(SignalBuilderService.class);
return builderService.getSignalBuilder();
}
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/SignalService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/SignalService.java 2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/SignalService.java 2008-11-13 14:28:05 UTC (rev 2911)
@@ -27,6 +27,7 @@
import java.util.HashSet;
import java.util.Set;
+import org.jbpm.api.client.Configuration;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.client.preview.SignalListener;
import org.jbpm.api.model.preview.Signal;
@@ -54,7 +55,7 @@
*/
public static SignalService locateSignalService()
{
- ProcessEngine engine = ProcessEngine.getProcessEngine();
+ ProcessEngine engine = Configuration.getProcessEngine();
return engine.getService(SignalService.class);
}
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/CTSTestCase.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/CTSTestCase.java 2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/CTSTestCase.java 2008-11-13 14:28:05 UTC (rev 2911)
@@ -35,6 +35,7 @@
import javax.management.ObjectName;
import org.jbpm.api.BPMException;
+import org.jbpm.api.client.Configuration;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.client.preview.MessageListener;
@@ -76,7 +77,7 @@
protected ProcessEngine getProcessEngine()
{
- return ProcessEngine.getProcessEngine();
+ return Configuration.getProcessEngine();
}
protected ProcessDefinition unregisterOnTearDown(ProcessDefinition procDef)
Deleted: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/ConfigurationTestCase.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/ConfigurationTestCase.java 2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/ConfigurationTestCase.java 2008-11-13 14:28:05 UTC (rev 2911)
@@ -1,49 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.api.test;
-
-import org.jbpm.api.client.ProcessEngine;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * A CTS test case
- *
- * @author Thomas.Diesler(a)jboss.org
- * @since 25-Sep-2008
- */
-public class ConfigurationTestCase extends CTSTestCase
-{
- // Provide logging
- final Logger log = LoggerFactory.getLogger(ConfigurationTestCase.class);
-
- // By convention a this test case should have a setup that deployes
- // and registers an engine named CTSTestEngine
- protected ProcessEngine getProcessEngine()
- {
- ProcessEngine engine = ProcessEngine.getProcessEngine(ConfigurationTestSetup.CTS_TEST_ENGINE);
- if (engine == null)
- throw new IllegalStateException("Cannot obtain process engine: " + ConfigurationTestSetup.CTS_TEST_ENGINE);
-
- return engine;
- }
-}
Deleted: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/ConfigurationTestSetup.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/ConfigurationTestSetup.java 2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/ConfigurationTestSetup.java 2008-11-13 14:28:05 UTC (rev 2911)
@@ -1,77 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.api.test;
-
-import java.net.URL;
-
-import org.jbpm.api.client.ProcessEngine;
-import org.jbpm.api.client.internal.MicrocontainerConfiguration;
-import org.jbpm.api.service.preview.ProcessEngineRegistry;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * A CTS test setup
- *
- * @author Thomas.Diesler(a)jboss.org
- * @since 25-Sep-2008
- */
-public class ConfigurationTestSetup extends APITestSetup
-{
- public static final String CTS_TEST_ENGINE = "CTSTestEngine";
-
- // Provide logging
- final Logger log = LoggerFactory.getLogger(ConfigurationTestSetup.class);
-
- private APITestHelper helper = new APITestHelper();
- private String beansConfig;
-
-
- public ConfigurationTestSetup(Class<?> testCase, String beansConfig)
- {
- super(testCase);
- this.beansConfig = beansConfig;
- }
-
- @Override
- protected void setUp() throws Exception
- {
- super.setUp();
-
- // deploy the provided beans config and register the engine
- URL cfgURL = helper.getResourceURL(beansConfig);
- MicrocontainerConfiguration configuration = new MicrocontainerConfiguration();
- configuration.deployBeansConfig(cfgURL);
- ProcessEngine engine = configuration.getProcessEngine(CTS_TEST_ENGINE);
- ProcessEngineRegistry.registerEngine(engine);
- }
-
- @Override
- protected void tearDown() throws Exception
- {
- URL cfgURL = helper.getResourceURL(beansConfig);
- ProcessEngineRegistry.unregisterEngine(CTS_TEST_ENGINE);
- new MicrocontainerConfiguration().undeployBeansConfig(cfgURL);
- super.tearDown();
- }
-
-}
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/processengine/ProcessEngineTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/processengine/ProcessEngineTest.java 2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/processengine/ProcessEngineTest.java 2008-11-13 14:28:05 UTC (rev 2911)
@@ -23,11 +23,8 @@
// $Id$
-import java.net.URL;
-
+import org.jbpm.api.client.Configuration;
import org.jbpm.api.client.ProcessEngine;
-import org.jbpm.api.client.internal.MicrocontainerConfiguration;
-import org.jbpm.api.service.preview.ProcessEngineRegistry;
import org.jbpm.api.test.CTSTestCase;
/**
@@ -40,56 +37,7 @@
{
public void testDefaultProcessEngine() throws Exception
{
- ProcessEngine engine = ProcessEngine.getProcessEngine();
+ ProcessEngine engine = Configuration.getProcessEngine();
assertNotNull("ProcessEngine not null", engine);
}
-
- public void testUnregisteredProcessEngine() throws Exception
- {
- ProcessEngine engine = ProcessEngine.getProcessEngine("bogus");
- assertNull("ProcessEngine null", engine);
- }
-
- public void testMicrocontainerConfiguration() throws Exception
- {
- // create an engine from an MC config
- URL cfgURL = getResourceURL("cts/processengine/test-cfg-beans.xml");
-
- String engineName = "CTSTestEngine";
- MicrocontainerConfiguration config = new MicrocontainerConfiguration();
-
- try
- {
- // test that we can get the engine from the configuration
- ProcessEngine engineOne = config.deployBeansConfig(cfgURL).getProcessEngine(engineName);
- assertNotNull("ProcessEngine not null", engineOne);
- assertEquals("ProcessEngine name", engineName, engineOne.getName());
-
- // the engine is not automatically registered
- ProcessEngine engineTwo = ProcessEngine.getProcessEngine(engineName);
- assertNull("ProcessEngine null", engineTwo);
-
- // register the engine and do the lockup again
- ProcessEngineRegistry.registerEngine(engineOne);
- engineTwo = ProcessEngine.getProcessEngine(engineName);
- assertNotNull("ProcessEngine not null", engineTwo);
- assertSame("ProcessEngine same", engineOne, engineTwo);
-
- // Try to register the engine twice
- try
- {
- ProcessEngineRegistry.registerEngine(engineTwo);
- fail("Expceted IllegalStateException");
- }
- catch (IllegalStateException e)
- {
- // expected
- }
- }
- finally
- {
- ProcessEngineRegistry.unregisterEngine(engineName);
- config.undeployBeansConfig(cfgURL);
- }
- }
}
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/AbstractElementImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/AbstractElementImpl.java 2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/AbstractElementImpl.java 2008-11-13 14:28:05 UTC (rev 2911)
@@ -24,13 +24,11 @@
//$Id$
import javax.management.ObjectName;
-import javax.persistence.Basic;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.MappedSuperclass;
import org.hibernate.Session;
-import org.jbpm.api.InvalidProcessException;
import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.ProcessEngine;
@@ -50,17 +48,6 @@
@Id @GeneratedValue
protected Integer id;
- @Basic
- private String engineName;
-
- protected AbstractElementImpl(ProcessEngine engine)
- {
- if (engine == null)
- throw new InvalidProcessException("Process engine cannot be null");
-
- this.engineName = engine.getName();
- }
-
// Persistence ctor
protected AbstractElementImpl()
{
@@ -71,20 +58,15 @@
return id;
}
- /**
- * Get the key for this element
- */
+ @Override
public abstract ObjectName getKey();
- @Override
- public ProcessEngine getProcessEngine()
+ /** Initializes the persistent object */
+ public void initialize(ProcessEngine engine, Session session)
{
- return ProcessEngine.getProcessEngine(engineName);
+ // nothing to do
}
- /** Initializes the persistent object */
- public abstract void initialize(Session session);
-
protected void create(ProcessDefinition procDef)
{
// nothing to do
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/NodeImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/NodeImpl.java 2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/NodeImpl.java 2008-11-13 14:28:05 UTC (rev 2911)
@@ -43,9 +43,10 @@
import org.hibernate.annotations.IndexColumn;
import org.jbpm.api.InvalidProcessException;
import org.jbpm.api.NameNotUniqueException;
-import org.jbpm.api.client.Token;
import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
+import org.jbpm.api.client.ProcessEngine;
+import org.jbpm.api.client.Token;
import org.jbpm.api.client.Token.TokenStatus;
import org.jbpm.api.model.EndEvent;
import org.jbpm.api.model.Node;
@@ -381,7 +382,7 @@
}
catch (Exception ex)
{
- log.error("Cannot load handler instance: " + className, ex);
+ throw new IllegalStateException("Cannot load handler instance: " + className, ex);
}
}
return handler;
@@ -404,8 +405,10 @@
}
@Override
- public void initialize(Session session)
+ public void initialize(ProcessEngine engine, Session session)
{
+ super.initialize(engine, session);
+
Hibernate.initialize(this);
Hibernate.initialize(propSupport);
Hibernate.initialize(assignments);
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessDefinitionImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessDefinitionImpl.java 2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessDefinitionImpl.java 2008-11-13 14:28:05 UTC (rev 2911)
@@ -73,10 +73,13 @@
@Lob
private byte[] rawProcStruct;
-
+
+ @Transient
+ private transient ProcessEngine engine;
+
public ProcessDefinitionImpl(ProcessEngine engine, ProcessStructureImpl procStruct)
{
- super(engine);
+ this.engine = engine;
this.procStruct = procStruct;
create(this);
}
@@ -87,6 +90,17 @@
}
@Override
+ public ProcessEngine getProcessEngine()
+ {
+ return engine;
+ }
+
+ public void setProcessEngine(ProcessEngine engine)
+ {
+ this.engine = engine;
+ }
+
+ @Override
public Process newInstance()
{
// Create a copy of the process structure from raw data
@@ -233,11 +247,14 @@
}
@Override
- public void initialize(Session session)
+ public void initialize(ProcessEngine engine, Session session)
{
+ super.initialize(engine, session);
+ setProcessEngine(engine);
+
Hibernate.initialize(this);
ProcessStructureImpl procStructImpl = (ProcessStructureImpl)procStruct;
- procStructImpl.initialize(session);
+ procStructImpl.initialize(engine, session);
}
@Override
@@ -246,17 +263,20 @@
super.create(procDef);
// Save the raw process structure
- try
+ if (rawProcStruct == null)
{
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- ObjectOutputStream oos = new ObjectOutputStream(baos);
- oos.writeObject(procStruct);
- rawProcStruct = baos.toByteArray();
+ try
+ {
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ ObjectOutputStream oos = new ObjectOutputStream(baos);
+ oos.writeObject(procStruct);
+ rawProcStruct = baos.toByteArray();
+ }
+ catch (IOException ex)
+ {
+ throw new IllegalStateException("Cannot serialize process structure", ex);
+ }
}
- catch (IOException ex)
- {
- throw new IllegalStateException("Cannot serialize process structure", ex);
- }
ProcessStructureImpl procStructImpl = (ProcessStructureImpl)procStruct;
procStructImpl.create(this);
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessImpl.java 2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessImpl.java 2008-11-13 14:28:05 UTC (rev 2911)
@@ -87,7 +87,7 @@
public ProcessImpl(ProcessEngine engine, ProcessDefinitionImpl procDef, ProcessStructureImpl procStruct)
{
- super(engine);
+ super();
this.procStruct = procStruct;
this.procDef = procDef;
create(this);
@@ -109,6 +109,12 @@
}
@Override
+ public ProcessEngine getProcessEngine()
+ {
+ return procDef.getProcessEngine();
+ }
+
+ @Override
public ProcessDefinition getProcessDefinition()
{
return procDef;
@@ -354,11 +360,13 @@
}
@Override
- public void initialize(Session session)
+ public void initialize(ProcessEngine engine, Session session)
{
+ super.initialize(engine, session);
+
Hibernate.initialize(this);
- procDef.initialize(session);
- procStruct.initialize(session);
+ procDef.initialize(engine, session);
+ procStruct.initialize(engine, session);
}
@Override
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessStructureImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessStructureImpl.java 2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessStructureImpl.java 2008-11-13 14:28:05 UTC (rev 2911)
@@ -95,7 +95,6 @@
public ProcessStructureImpl(ProcessEngine engine, String name)
{
- super(engine);
this.name = name;
if (name == null)
@@ -287,18 +286,20 @@
}
@Override
- public void initialize(Session session)
+ public void initialize(ProcessEngine engine, Session session)
{
+ super.initialize(engine, session);
+
Hibernate.initialize(this);
Hibernate.initialize(propSupport);
Hibernate.initialize(messages);
Hibernate.initialize(assignments);
Hibernate.initialize(groups);
-
+
for (Node node : getNodes())
{
AbstractElementImpl elImpl = (AbstractElementImpl)node;
- elImpl.initialize(session);
+ elImpl.initialize(engine, session);
}
}
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/StartEventImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/StartEventImpl.java 2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/StartEventImpl.java 2008-11-13 14:28:05 UTC (rev 2911)
@@ -153,7 +153,7 @@
{
super.register(procDef);
- final ProcessEngine engine = getProcessEngine();
+ final ProcessEngine engine = procDef.getProcessEngine();
final SignalService sigService = engine.getService(SignalService.class);
if (getTriggerType() == EventDetailType.Signal)
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/TaskImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/TaskImpl.java 2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/TaskImpl.java 2008-11-13 14:28:05 UTC (rev 2911)
@@ -306,7 +306,7 @@
{
private static final long serialVersionUID = 1L;
- ProcessEngine engine = getProcessEngine();
+ ProcessEngine engine = getProcessDefinition().getProcessEngine();
SignalService sigService = engine.getService(SignalService.class);
public void throwEnterSignal(Token token)
{
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingToken.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingToken.java 2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingToken.java 2008-11-13 14:28:05 UTC (rev 2911)
@@ -24,6 +24,7 @@
//$Id$
import org.hibernate.Session;
+import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.client.Token;
import org.jbpm.api.client.Process;
import org.jbpm.api.model.Node;
@@ -51,6 +52,12 @@
}
@Override
+ public ProcessEngine getProcessEngine()
+ {
+ return delegateToken.getProcessEngine();
+ }
+
+ @Override
public ExecutionContext getExecutionContext()
{
return delegateContext;
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/MutableToken.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/MutableToken.java 2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/MutableToken.java 2008-11-13 14:28:05 UTC (rev 2911)
@@ -24,8 +24,8 @@
//$Id$
import org.hibernate.Session;
-import org.jbpm.api.client.PersistenceToken;
import org.jbpm.api.client.Token;
+import org.jbpm.api.client.preview.PersistenceToken;
import org.jbpm.api.model.SequenceFlow;
/**
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/PersistenceSessionInterceptor.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/PersistenceSessionInterceptor.java 2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/PersistenceSessionInterceptor.java 2008-11-13 14:28:05 UTC (rev 2911)
@@ -26,7 +26,6 @@
import org.hibernate.Session;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.client.Token.TokenStatus;
-import org.jbpm.api.model.Node;
import org.jbpm.api.service.preview.PersistenceService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -45,7 +44,6 @@
public void execute(RuntimeContext rtContext)
{
MutableToken token = (MutableToken)rtContext.getToken();
- Node node = token.getCurrentNode();
Session session = token.getSession();
try
@@ -53,7 +51,7 @@
// Create the session if needed
if (session == null)
{
- ProcessEngine engine = node.getProcessEngine();
+ ProcessEngine engine = token.getProcessEngine();
PersistenceService service = engine.getService(PersistenceService.class);
session = service.createSession();
token.setSession(session);
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RunnableToken.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RunnableToken.java 2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RunnableToken.java 2008-11-13 14:28:05 UTC (rev 2911)
@@ -77,7 +77,7 @@
RuntimeContext rtContext = new RuntimeContext(tokenExecutor);
// Add the interceptors that are defined on the ProcessService
- ProcessServiceImpl procService = (ProcessServiceImpl)node.getProcessEngine().getService(ProcessInstanceService.class);
+ ProcessServiceImpl procService = (ProcessServiceImpl)proc.getProcessEngine().getService(ProcessInstanceService.class);
for (NodeInterceptor itor : procService.getNodeInterceptors())
rtContext.addInterceptor(itor);
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TokenImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TokenImpl.java 2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TokenImpl.java 2008-11-13 14:28:05 UTC (rev 2911)
@@ -26,6 +26,7 @@
import org.hibernate.Session;
import org.jboss.util.id.UID;
import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.client.Token;
import org.jbpm.api.client.Process.ProcessStatus;
import org.jbpm.api.model.Node;
@@ -63,15 +64,21 @@
/**
* Construct a Token with given {@link Attachments}
*/
- public TokenImpl(Process process, Attachments att)
+ public TokenImpl(Process proc, Attachments att)
{
this.context = new BasicExecutionContext(att);
this.id = new UID().toString();
this.status = TokenStatus.Created;
- this.proc = process;
+ this.proc = proc;
}
@Override
+ public ProcessEngine getProcessEngine()
+ {
+ return proc.getProcessEngine();
+ }
+
+ @Override
public String getTokenID()
{
return id;
@@ -131,7 +138,7 @@
RuntimeContext rtContext = new RuntimeContext(tokenExecutor);
// Add the interceptors that are defined on the ProcessService
- ProcessServiceImpl procService = (ProcessServiceImpl)node.getProcessEngine().getService(ProcessInstanceService.class);
+ ProcessServiceImpl procService = (ProcessServiceImpl)proc.getProcessEngine().getService(ProcessInstanceService.class);
for (NodeInterceptor itor : procService.getNodeInterceptors())
rtContext.addInterceptor(itor);
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TransactionInterceptor.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TransactionInterceptor.java 2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TransactionInterceptor.java 2008-11-13 14:28:05 UTC (rev 2911)
@@ -82,7 +82,7 @@
try
{
// Load the node
- ProcessEngine engine = node.getProcessEngine();
+ ProcessEngine engine = token.getProcessEngine();
PersistenceService service = engine.getService(PersistenceService.class);
node = service.loadNode(session, node.getClass(), node.getKey());
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/HibernatePersistenceServiceImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/HibernatePersistenceServiceImpl.java 2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/HibernatePersistenceServiceImpl.java 2008-11-13 14:28:05 UTC (rev 2911)
@@ -115,7 +115,7 @@
Integer id = Integer.valueOf(procDefID.getKeyProperty("id"));
procDef = (ProcessDefinition)session.load(ProcessDefinitionImpl.class, id);
AbstractElementImpl elImpl = (AbstractElementImpl)procDef;
- elImpl.initialize(session);
+ elImpl.initialize(getProcessEngine(), session);
}
catch (ObjectNotFoundException ex)
{
@@ -180,7 +180,7 @@
Integer id = Integer.valueOf(procID.getKeyProperty("id"));
proc = (Process)session.load(ProcessImpl.class, id);
AbstractElementImpl elImpl = (AbstractElementImpl)proc;
- elImpl.initialize(session);
+ elImpl.initialize(getProcessEngine(), session);
}
catch (ObjectNotFoundException ex)
{
Deleted: projects/spec/trunk/modules/ri/src/main/resources/org.jbpm.api.client.Configuration
===================================================================
--- projects/spec/trunk/modules/ri/src/main/resources/org.jbpm.api.client.Configuration 2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/ri/src/main/resources/org.jbpm.api.client.Configuration 2008-11-13 14:28:05 UTC (rev 2911)
@@ -1 +0,0 @@
-org.jbpm.api.client.internal.MicrocontainerConfiguration
\ No newline at end of file
Copied: projects/spec/trunk/modules/ri/src/main/resources/org.jbpm.api.client.ConfigurationProvider (from rev 2897, projects/spec/trunk/modules/ri/src/main/resources/org.jbpm.api.client.Configuration)
===================================================================
--- projects/spec/trunk/modules/ri/src/main/resources/org.jbpm.api.client.ConfigurationProvider (rev 0)
+++ projects/spec/trunk/modules/ri/src/main/resources/org.jbpm.api.client.ConfigurationProvider 2008-11-13 14:28:05 UTC (rev 2911)
@@ -0,0 +1 @@
+org.jbpm.api.client.internal.MicrocontainerConfigurationProvider
\ No newline at end of file
Modified: projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/TaskPersistenceTest.java
===================================================================
--- projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/TaskPersistenceTest.java 2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/TaskPersistenceTest.java 2008-11-13 14:28:05 UTC (rev 2911)
@@ -28,9 +28,7 @@
import javax.management.ObjectName;
-import org.jbpm.api.client.Token;
import org.jbpm.api.model.Expression;
-import org.jbpm.api.model.Node;
import org.jbpm.api.model.SequenceFlow;
import org.jbpm.api.model.Task;
import org.jbpm.api.model.SequenceFlow.ConditionType;
@@ -39,10 +37,6 @@
import org.jbpm.api.model.preview.InputSet;
import org.jbpm.api.model.preview.OutputSet;
import org.jbpm.api.model.preview.Assignment.AssignTime;
-import org.jbpm.api.runtime.preview.ExecutionHandler;
-import org.jbpm.api.runtime.preview.FlowHandler;
-import org.jbpm.api.runtime.preview.SignalHandler;
-import org.jbpm.api.runtime.preview.TokenExecutor;
import org.jbpm.ri.model.AssignmentImpl;
import org.jbpm.ri.model.ExpressionImpl;
import org.jbpm.ri.model.InputSetImpl;
@@ -158,122 +152,6 @@
deleteNode(wasB);
}
- public void testExecHandler() throws Exception
- {
- class ExecHandler implements ExecutionHandler
- {
- private static final long serialVersionUID = 1L;
-
- @Override
- public void execute(Token token)
- {
- }
-
- @Override
- public Node getNode()
- {
- return null;
- }
-
- @Override
- public void setNode(Node node)
- {
- }
- }
-
- TaskImpl orgNode = new TaskImpl(null, TaskType.None, "Task");
- orgNode.setExecutionHandler(ExecHandler.class);
-
- ObjectName nodeID = saveNode(orgNode);
-
- Task wasNode = loadNode(TaskImpl.class, nodeID);
-
- ExecutionHandler execHandler = wasNode.getExecutionHandler();
- assertNotNull(execHandler);
- assertTrue(execHandler instanceof ExecutionHandler);
-
- deleteNode(wasNode);
- }
-
- public void testSignalHandler() throws Exception
- {
- class SigHandler implements SignalHandler
- {
- private static final long serialVersionUID = 1L;
-
- @Override
- public Node getNode()
- {
- return null;
- }
-
- @Override
- public void setNode(Node node)
- {
- }
-
- @Override
- public void throwEnterSignal(Token token)
- {
- }
-
- @Override
- public void throwExitSignal(Token token)
- {
- }
- }
-
- TaskImpl orgNode = new TaskImpl(null, TaskType.None, "Task");
- orgNode.setSignalHandler(SigHandler.class);
-
- ObjectName nodeID = saveNode(orgNode);
-
- Task wasNode = loadNode(TaskImpl.class, nodeID);
-
- SignalHandler sigHandler = wasNode.getSignalHandler();
- assertNotNull(sigHandler);
- assertTrue(sigHandler instanceof SignalHandler);
-
- deleteNode(wasNode);
- }
-
- public void testFlowHandler() throws Exception
- {
- class FlowHandlerImpl implements FlowHandler
- {
- private static final long serialVersionUID = 1L;
-
- @Override
- public Node getNode()
- {
- return null;
- }
-
- @Override
- public void setNode(Node node)
- {
- }
-
- @Override
- public void execute(TokenExecutor tokenExecutor, Token token)
- {
- }
- }
-
- TaskImpl orgNode = new TaskImpl(null, TaskType.None, "Task");
- orgNode.setFlowHandler(FlowHandlerImpl.class);
-
- ObjectName nodeID = saveNode(orgNode);
-
- Task wasNode = loadNode(TaskImpl.class, nodeID);
-
- FlowHandler flowHandler = wasNode.getFlowHandler();
- assertNotNull(flowHandler);
- assertTrue(flowHandler instanceof FlowHandler);
-
- deleteNode(wasNode);
- }
-
public void testInputSet() throws Exception
{
TaskImpl orgNode = new TaskImpl(null, TaskType.None, "Task");
17 years, 5 months
JBoss JBPM SVN: r2910 - projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao.
by do-not-reply@jboss.org
Author: heiko.braun(a)jboss.com
Date: 2008-11-13 09:08:35 -0500 (Thu, 13 Nov 2008)
New Revision: 2910
Modified:
projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/DAOProxy.java
Log:
Catch runtime exceptions in DAOProxy. Force setRollbackOnly()
Modified: projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/DAOProxy.java
===================================================================
--- projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/DAOProxy.java 2008-11-13 14:07:45 UTC (rev 2909)
+++ projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/DAOProxy.java 2008-11-13 14:08:35 UTC (rev 2910)
@@ -22,6 +22,8 @@
package org.jboss.bpm.console.server.dao;
import org.jboss.bpm.console.server.util.ServiceLocator;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import javax.transaction.SystemException;
import javax.transaction.UserTransaction;
@@ -34,6 +36,8 @@
*/
public class DAOProxy implements java.lang.reflect.InvocationHandler
{
+ private static final Log log = LogFactory.getLog(DAOProxy.class);
+
private Object obj;
public static Object newInstance(Object obj) {
@@ -65,7 +69,7 @@
tx.commit();
}
- catch (Exception e)
+ catch (Throwable e)
{
if(tx!=null)
{
@@ -73,7 +77,9 @@
{
tx.rollback();
}
- catch (SystemException e1) {}
+ catch (SystemException e1) {
+ log.error("Failed to rollback on " + obj + " -> " + m.getName());
+ }
}
throw new RuntimeException("Unexpected invocation exception: " + e.getMessage(), e);
17 years, 5 months
JBoss JBPM SVN: r2909 - projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server.
by do-not-reply@jboss.org
Author: heiko.braun(a)jboss.com
Date: 2008-11-13 09:07:45 -0500 (Thu, 13 Nov 2008)
New Revision: 2909
Modified:
projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/JBPM3Management.java
Log:
Fix JBPM-1850: Process upload hangs
Modified: projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/JBPM3Management.java
===================================================================
--- projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/JBPM3Management.java 2008-11-13 14:05:05 UTC (rev 2908)
+++ projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/JBPM3Management.java 2008-11-13 14:07:45 UTC (rev 2909)
@@ -80,7 +80,7 @@
@Path("definitions/new")
@Produces("application/json")
@Consumes("multipart/form-data")
- public void postNewDefinition(
+ public Response postNewDefinition(
@Context
HttpServletRequest request
)
@@ -122,11 +122,13 @@
}
- } catch (Exception e)
+ } catch (Throwable e)
{
throw new WebApplicationException(e);
}
+ return Response.ok().build();
+
}
@GET
17 years, 5 months
JBoss JBPM SVN: r2908 - in jbpm4/trunk/modules: task and 18 other directories.
by do-not-reply@jboss.org
Author: tom.baeyens(a)jboss.com
Date: 2008-11-13 09:05:05 -0500 (Thu, 13 Nov 2008)
New Revision: 2908
Added:
jbpm4/trunk/modules/task/
jbpm4/trunk/modules/task/.classpath
jbpm4/trunk/modules/task/.project
jbpm4/trunk/modules/task/pom.xml
jbpm4/trunk/modules/task/src/
jbpm4/trunk/modules/task/src/main/
jbpm4/trunk/modules/task/src/main/docs/
jbpm4/trunk/modules/task/src/main/docs/models.uml
jbpm4/trunk/modules/task/src/main/java/
jbpm4/trunk/modules/task/src/main/java/org/
jbpm4/trunk/modules/task/src/main/java/org/jbpm/
jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/
jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/Assigner.java
jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/Role.java
jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/RoleType.java
jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/Swimlane.java
jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/SwimlaneDefinition.java
jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/TaskDefinition.java
jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/TaskException.java
jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/cmd/
jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/cmd/CreateTask.java
jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/cmd/DeleteTask.java
jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/cmd/GetTask.java
jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/cmd/UpdateTask.java
jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/db/
jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/db/TaskDbSession.java
jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/
jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/LifeCycle.java
jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/LifeCycleParser.java
jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/LifeCycleState.java
jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/RoleImpl.java
jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/SwimlaneDefinitionImpl.java
jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/SwimlaneImpl.java
jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/TaskDefinitionImpl.java
jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/TaskExecution.java
jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/TaskImpl.java
jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/TaskServiceImpl.java
jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/default.lifecycle.xml
jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/task.model.jpg
jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/xml/
jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/xml/TaskDbSessionBinding.java
jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/xml/TaskDbSessionDescriptor.java
jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/xml/TaskServiceBinding.java
jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/xml/TaskServiceDescriptor.java
jbpm4/trunk/modules/task/src/main/resources/
jbpm4/trunk/modules/task/src/main/resources/hibernate.task.hbm.xml
jbpm4/trunk/modules/task/src/main/resources/hibernate.task.queries.hbm.xml
jbpm4/trunk/modules/task/src/main/resources/pvm.hibernate.mappings.xml
jbpm4/trunk/modules/task/src/main/resources/pvm.wire.bindings.xml
jbpm4/trunk/modules/task/src/test/
jbpm4/trunk/modules/task/src/test/java/
jbpm4/trunk/modules/task/src/test/java/org/
jbpm4/trunk/modules/task/src/test/java/org/jbpm/
jbpm4/trunk/modules/task/src/test/java/org/jbpm/task/
jbpm4/trunk/modules/task/src/test/java/org/jbpm/task/TaskDbTest.java
jbpm4/trunk/modules/task/src/test/java/org/jbpm/task/TaskServiceTest.java
jbpm4/trunk/modules/task/src/test/java/org/jbpm/task/TaskTest.java
jbpm4/trunk/modules/task/src/test/resources/
jbpm4/trunk/modules/task/src/test/resources/org.jbpm.task.cfg.xml
Log:
adding task module
Property changes on: jbpm4/trunk/modules/task
___________________________________________________________________
Name: svn:ignore
+ target
Added: jbpm4/trunk/modules/task/.classpath
===================================================================
--- jbpm4/trunk/modules/task/.classpath (rev 0)
+++ jbpm4/trunk/modules/task/.classpath 2008-11-13 14:05:05 UTC (rev 2908)
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" output="target/classes" path="src/main/java"/>
+ <classpathentry kind="src" output="target/classes" path="src/main/resources"/>
+ <classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
+ <classpathentry kind="src" output="target/test-classes" path="src/test/resources"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+ <classpathentry kind="output" path="target/classes"/>
+</classpath>
Added: jbpm4/trunk/modules/task/.project
===================================================================
--- jbpm4/trunk/modules/task/.project (rev 0)
+++ jbpm4/trunk/modules/task/.project 2008-11-13 14:05:05 UTC (rev 2908)
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>task</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.maven.ide.eclipse.maven2Builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.maven.ide.eclipse.maven2Nature</nature>
+ </natures>
+</projectDescription>
Added: jbpm4/trunk/modules/task/pom.xml
===================================================================
--- jbpm4/trunk/modules/task/pom.xml (rev 0)
+++ jbpm4/trunk/modules/task/pom.xml 2008-11-13 14:05:05 UTC (rev 2908)
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+ <!-- ====================================================================== -->
+ <!-- -->
+ <!-- JBoss, the OpenSource J2EE webOS -->
+ <!-- -->
+ <!-- Distributable under LGPL license. -->
+ <!-- See terms of license at http://www.gnu.org. -->
+ <!-- -->
+ <!-- ====================================================================== -->
+
+ <!-- $Id$ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <name>jBPM 4 - Task</name>
+ <groupId>org.jbpm.jbpm4</groupId>
+ <artifactId>jbpm-task</artifactId>
+ <packaging>jar</packaging>
+
+ <!-- Parent -->
+ <parent>
+ <groupId>org.jbpm.jbpm4</groupId>
+ <artifactId>jbpm</artifactId>
+ <version>4.0.0-SNAPSHOT</version>
+ <relativePath>../../pom.xml</relativePath>
+ </parent>
+
+ <!-- Properties -->
+ <properties>
+ </properties>
+
+ <!-- Dependencies -->
+ <dependencies>
+ <dependency>
+ <groupId>org.jbpm.jbpm4</groupId>
+ <artifactId>jbpm-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.jbpm.jbpm4</groupId>
+ <artifactId>jbpm-log</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.jbpm.jbpm4</groupId>
+ <artifactId>jbpm-test-base</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.jbpm.jbpm4</groupId>
+ <artifactId>jbpm-pvm</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>juel</groupId>
+ <artifactId>juel</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>juel</groupId>
+ <artifactId>juel-engine</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>juel</groupId>
+ <artifactId>juel-impl</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>hsqldb</groupId>
+ <artifactId>hsqldb</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <!-- Not in scope test because org.jbpm.pvm.test.base package is in main source: see JBPM-1416 -->
+ <!-- <scope>test</scope> -->
+ </dependency>
+ </dependencies>
+
+ <!-- Plugins -->
+ <build>
+ <plugins>
+ </plugins>
+ </build>
+
+ <!-- Profiles -->
+ <profiles>
+ </profiles>
+
+ <reporting>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <configuration>
+ <quiet>true</quiet>
+ <source>1.5</source>
+ <verbose>false</verbose>
+ <noqualifier>all</noqualifier>
+ <excludePackageNames>*.internal:*.test</excludePackageNames>
+ </configuration>
+ </plugin>
+ </plugins>
+ </reporting>
+
+</project>
\ No newline at end of file
Property changes on: jbpm4/trunk/modules/task/pom.xml
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: jbpm4/trunk/modules/task/src/main/docs/models.uml
===================================================================
--- jbpm4/trunk/modules/task/src/main/docs/models.uml (rev 0)
+++ jbpm4/trunk/modules/task/src/main/docs/models.uml 2008-11-13 14:05:05 UTC (rev 2908)
@@ -0,0 +1,1250 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<XPD:PROJECT xmlns:XPD="http://www.staruml.com" version="1">
+<XPD:HEADER>
+<XPD:SUBUNITS>
+</XPD:SUBUNITS>
+<XPD:PROFILES>
+</XPD:PROFILES>
+</XPD:HEADER>
+<XPD:BODY>
+<XPD:OBJ name="DocumentElement" type="UMLProject" guid="dizqvgl3LkeHjy/ks6kH8wAA">
+<XPD:ATTR name="Title" type="string">Untitled</XPD:ATTR>
+<XPD:ATTR name="#OwnedElements" type="integer">1</XPD:ATTR>
+<XPD:OBJ name="OwnedElements[0]" type="UMLModel" guid="28q8akawHUut/vt9cqGzHQAA">
+<XPD:ATTR name="Name" type="string">Task</XPD:ATTR>
+<XPD:REF name="Namespace">dizqvgl3LkeHjy/ks6kH8wAA</XPD:REF>
+<XPD:ATTR name="#OwnedDiagrams" type="integer">1</XPD:ATTR>
+<XPD:OBJ name="OwnedDiagrams[0]" type="UMLClassDiagram" guid="y2Dig32fuk2qfbzhVMV12gAA">
+<XPD:ATTR name="Name" type="string">Task</XPD:ATTR>
+<XPD:REF name="DiagramOwner">28q8akawHUut/vt9cqGzHQAA</XPD:REF>
+<XPD:OBJ name="DiagramView" type="UMLClassDiagramView" guid="/N3kDxf0DUmenjfOISss4wAA">
+<XPD:REF name="Diagram">y2Dig32fuk2qfbzhVMV12gAA</XPD:REF>
+<XPD:ATTR name="#OwnedViews" type="integer">14</XPD:ATTR>
+<XPD:OBJ name="OwnedViews[0]" type="UMLClassView" guid="BEGpovprr0OpCDXKEafPPAAA">
+<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
+<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
+<XPD:ATTR name="Left" type="integer">452</XPD:ATTR>
+<XPD:ATTR name="Top" type="integer">112</XPD:ATTR>
+<XPD:ATTR name="Width" type="integer">127</XPD:ATTR>
+<XPD:ATTR name="Height" type="integer">56</XPD:ATTR>
+<XPD:REF name="Model">HvFFmfu3EU2Q5JpvC4V1dAAA</XPD:REF>
+<XPD:OBJ name="NameCompartment" type="UMLNameCompartmentView" guid="cb1HAOVGbUGhz+5u0aVooAAA">
+<XPD:OBJ name="NameLabel" type="LabelView" guid="9T7IkvwqGEqMzkPM65WmMAAA">
+<XPD:ATTR name="FontStyle" type="integer">1</XPD:ATTR>
+<XPD:ATTR name="Text" type="string">Task</XPD:ATTR>
+</XPD:OBJ>
+<XPD:OBJ name="StereotypeLabel" type="LabelView" guid="18KTnjDHzEGH+Q+GkR1ClQAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+</XPD:OBJ>
+<XPD:OBJ name="PropertyLabel" type="LabelView" guid="JiknLGb/Z0Cu9nqlyaNn3AAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+</XPD:OBJ>
+</XPD:OBJ>
+<XPD:OBJ name="AttributeCompartment" type="UMLAttributeCompartmentView" guid="Nb2y5cEn8E++FPMih7TpfAAA">
+<XPD:REF name="Model">HvFFmfu3EU2Q5JpvC4V1dAAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="OperationCompartment" type="UMLOperationCompartmentView" guid="9sAfjtNojEiLZ2kkSKHULgAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:REF name="Model">HvFFmfu3EU2Q5JpvC4V1dAAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TemplateParameterCompartment" type="UMLTemplateParameterCompartmentView" guid="UIi+TBpteUG0OFM1uqHsaAAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:REF name="Model">HvFFmfu3EU2Q5JpvC4V1dAAA</XPD:REF>
+</XPD:OBJ>
+</XPD:OBJ>
+<XPD:OBJ name="OwnedViews[1]" type="UMLClassView" guid="fs8kGcLd20yQW3uybthdSwAA">
+<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
+<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
+<XPD:ATTR name="Left" type="integer">268</XPD:ATTR>
+<XPD:ATTR name="Top" type="integer">68</XPD:ATTR>
+<XPD:ATTR name="Width" type="integer">97</XPD:ATTR>
+<XPD:ATTR name="Height" type="integer">30</XPD:ATTR>
+<XPD:REF name="Model">uTvluPMq6EiVrEzIldF+CwAA</XPD:REF>
+<XPD:OBJ name="NameCompartment" type="UMLNameCompartmentView" guid="f5cPYbMir0W8/tl+uePzMAAA">
+<XPD:OBJ name="NameLabel" type="LabelView" guid="Kxi/geJq70m18XV0vWefYwAA">
+<XPD:ATTR name="FontStyle" type="integer">1</XPD:ATTR>
+<XPD:ATTR name="Text" type="string">TaskDefinition</XPD:ATTR>
+</XPD:OBJ>
+<XPD:OBJ name="StereotypeLabel" type="LabelView" guid="MTLywrlLUECL0ZhK/KmVawAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+</XPD:OBJ>
+<XPD:OBJ name="PropertyLabel" type="LabelView" guid="yXGzgAKcbUiqP0djDFiJuQAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+</XPD:OBJ>
+</XPD:OBJ>
+<XPD:OBJ name="AttributeCompartment" type="UMLAttributeCompartmentView" guid="PuerV6iAkkGmjsZdqAJEEAAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:REF name="Model">uTvluPMq6EiVrEzIldF+CwAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="OperationCompartment" type="UMLOperationCompartmentView" guid="M7WkDdTEmkKEx7odnins/gAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:REF name="Model">uTvluPMq6EiVrEzIldF+CwAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TemplateParameterCompartment" type="UMLTemplateParameterCompartmentView" guid="FxIHioj58Ei2Xjj6rcXj8wAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:REF name="Model">uTvluPMq6EiVrEzIldF+CwAA</XPD:REF>
+</XPD:OBJ>
+</XPD:OBJ>
+<XPD:OBJ name="OwnedViews[2]" type="UMLClassView" guid="MH9M/bx8Akm+nfvMLj/xkAAA">
+<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
+<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
+<XPD:ATTR name="Left" type="integer">64</XPD:ATTR>
+<XPD:ATTR name="Top" type="integer">180</XPD:ATTR>
+<XPD:ATTR name="Width" type="integer">118</XPD:ATTR>
+<XPD:ATTR name="Height" type="integer">30</XPD:ATTR>
+<XPD:REF name="Model">GioGPK3R6Ue8w6V2t8TzvgAA</XPD:REF>
+<XPD:OBJ name="NameCompartment" type="UMLNameCompartmentView" guid="JxjsAefJoEmgKonRE54TqAAA">
+<XPD:OBJ name="NameLabel" type="LabelView" guid="f6BUZLh9CU6aYJF1xVRY7gAA">
+<XPD:ATTR name="FontStyle" type="integer">1</XPD:ATTR>
+<XPD:ATTR name="Text" type="string">SwimlaneDefinition</XPD:ATTR>
+</XPD:OBJ>
+<XPD:OBJ name="StereotypeLabel" type="LabelView" guid="Sjax149rckKdVbycxgQpXgAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+</XPD:OBJ>
+<XPD:OBJ name="PropertyLabel" type="LabelView" guid="0dfMlb1+6Ue/2vl1YFxW3QAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+</XPD:OBJ>
+</XPD:OBJ>
+<XPD:OBJ name="AttributeCompartment" type="UMLAttributeCompartmentView" guid="yTCES2vNVUaDe5fVHcuuNwAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:REF name="Model">GioGPK3R6Ue8w6V2t8TzvgAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="OperationCompartment" type="UMLOperationCompartmentView" guid="H4oGMkjhHEyBhi/8rQaD7wAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:REF name="Model">GioGPK3R6Ue8w6V2t8TzvgAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TemplateParameterCompartment" type="UMLTemplateParameterCompartmentView" guid="otxfkH9A4EakNQ1lqnfSRwAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:REF name="Model">GioGPK3R6Ue8w6V2t8TzvgAA</XPD:REF>
+</XPD:OBJ>
+</XPD:OBJ>
+<XPD:OBJ name="OwnedViews[3]" type="UMLClassView" guid="ror19oxT9kuTiijsBoK/bAAA">
+<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
+<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
+<XPD:ATTR name="Left" type="integer">268</XPD:ATTR>
+<XPD:ATTR name="Top" type="integer">168</XPD:ATTR>
+<XPD:ATTR name="Width" type="integer">99</XPD:ATTR>
+<XPD:ATTR name="Height" type="integer">57</XPD:ATTR>
+<XPD:REF name="Model">ijjMqBZ6REK0iCxeAVpgAAAA</XPD:REF>
+<XPD:OBJ name="NameCompartment" type="UMLNameCompartmentView" guid="2kE7oGVvZkyuBlPJ5a/RcAAA">
+<XPD:OBJ name="NameLabel" type="LabelView" guid="GEzmoSK3r0WGznrtX32JzQAA">
+<XPD:ATTR name="FontStyle" type="integer">1</XPD:ATTR>
+<XPD:ATTR name="Text" type="string">Swimlane</XPD:ATTR>
+</XPD:OBJ>
+<XPD:OBJ name="StereotypeLabel" type="LabelView" guid="2YKnNa31ik2ojBUwCEjvpQAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+</XPD:OBJ>
+<XPD:OBJ name="PropertyLabel" type="LabelView" guid="t4P5eBSAJkqqeh3Hg2hmBwAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+</XPD:OBJ>
+</XPD:OBJ>
+<XPD:OBJ name="AttributeCompartment" type="UMLAttributeCompartmentView" guid="4rjyvONTNUiPcfx1G59ibQAA">
+<XPD:REF name="Model">ijjMqBZ6REK0iCxeAVpgAAAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="OperationCompartment" type="UMLOperationCompartmentView" guid="//L9vrH53EOscgK+ByNq7QAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:REF name="Model">ijjMqBZ6REK0iCxeAVpgAAAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TemplateParameterCompartment" type="UMLTemplateParameterCompartmentView" guid="cMsAJi5+eEWIlooBLw2zGQAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:REF name="Model">ijjMqBZ6REK0iCxeAVpgAAAA</XPD:REF>
+</XPD:OBJ>
+</XPD:OBJ>
+<XPD:OBJ name="OwnedViews[4]" type="UMLClassView" guid="gaiFlhWKiUe6Ca6zyb+P9wAA">
+<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
+<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
+<XPD:ATTR name="Left" type="integer">660</XPD:ATTR>
+<XPD:ATTR name="Top" type="integer">120</XPD:ATTR>
+<XPD:ATTR name="Width" type="integer">86</XPD:ATTR>
+<XPD:ATTR name="Height" type="integer">30</XPD:ATTR>
+<XPD:REF name="Model">NKuLMRCxwkeVGSHi+kJ4PAAA</XPD:REF>
+<XPD:OBJ name="NameCompartment" type="UMLNameCompartmentView" guid="lmMUO8llAEOBRgv+t/sDnQAA">
+<XPD:OBJ name="NameLabel" type="LabelView" guid="Vh5aRoisiEWlEtggSfVlAgAA">
+<XPD:ATTR name="FontStyle" type="integer">1</XPD:ATTR>
+<XPD:ATTR name="Text" type="string">Comment</XPD:ATTR>
+</XPD:OBJ>
+<XPD:OBJ name="StereotypeLabel" type="LabelView" guid="Rbp+SfECfEi50IPNbuybxwAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+</XPD:OBJ>
+<XPD:OBJ name="PropertyLabel" type="LabelView" guid="iO3UrPh5+UasGCA9ehmwrAAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+</XPD:OBJ>
+</XPD:OBJ>
+<XPD:OBJ name="AttributeCompartment" type="UMLAttributeCompartmentView" guid="i2nM8GNG40KTTd1cuy4DtQAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:REF name="Model">NKuLMRCxwkeVGSHi+kJ4PAAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="OperationCompartment" type="UMLOperationCompartmentView" guid="nu4ZY/6DP0S6WVnGJAA4PAAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:REF name="Model">NKuLMRCxwkeVGSHi+kJ4PAAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TemplateParameterCompartment" type="UMLTemplateParameterCompartmentView" guid="+CwsKO2rIEie2/cKkqFrtQAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:REF name="Model">NKuLMRCxwkeVGSHi+kJ4PAAA</XPD:REF>
+</XPD:OBJ>
+</XPD:OBJ>
+<XPD:OBJ name="OwnedViews[5]" type="UMLClassView" guid="S4BlySM5kUW/YiK6Pey5zQAA">
+<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
+<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
+<XPD:ATTR name="Left" type="integer">660</XPD:ATTR>
+<XPD:ATTR name="Top" type="integer">172</XPD:ATTR>
+<XPD:ATTR name="Width" type="integer">112</XPD:ATTR>
+<XPD:ATTR name="Height" type="integer">61</XPD:ATTR>
+<XPD:REF name="Model">nDDKC4LElEWTybRg7a79OQAA</XPD:REF>
+<XPD:OBJ name="NameCompartment" type="UMLNameCompartmentView" guid="EG+yjZiZSk6dQYbTSchLIgAA">
+<XPD:OBJ name="NameLabel" type="LabelView" guid="kfnvHZmp/U6vqgIWtfgo+wAA">
+<XPD:ATTR name="FontStyle" type="integer">1</XPD:ATTR>
+<XPD:ATTR name="Text" type="string">Role</XPD:ATTR>
+</XPD:OBJ>
+<XPD:OBJ name="StereotypeLabel" type="LabelView" guid="Dc5QO3PXY0CqLVjbgof6XgAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+</XPD:OBJ>
+<XPD:OBJ name="PropertyLabel" type="LabelView" guid="k5EEwBtSDUKqEQ+8PQDYdgAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+</XPD:OBJ>
+</XPD:OBJ>
+<XPD:OBJ name="AttributeCompartment" type="UMLAttributeCompartmentView" guid="d7UQQXomaUeNgE4YzwfwjAAA">
+<XPD:REF name="Model">nDDKC4LElEWTybRg7a79OQAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="OperationCompartment" type="UMLOperationCompartmentView" guid="VNUc47aFgky/2uiWcvDu+wAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:REF name="Model">nDDKC4LElEWTybRg7a79OQAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TemplateParameterCompartment" type="UMLTemplateParameterCompartmentView" guid="7X2ZbAYJSkq2jDYnXuXq0wAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:REF name="Model">nDDKC4LElEWTybRg7a79OQAA</XPD:REF>
+</XPD:OBJ>
+</XPD:OBJ>
+<XPD:OBJ name="OwnedViews[6]" type="UMLAssociationView" guid="vlPPTxt05ky9R0jdt64xogAA">
+<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
+<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
+<XPD:ATTR name="LineStyle" type="LineStyleKind">lsRectilinear</XPD:ATTR>
+<XPD:ATTR name="Points" type="Points">660,180;608,180;608,160;578,160</XPD:ATTR>
+<XPD:REF name="Model">G9y2XZEWjU+fF6GadfrMNQAA</XPD:REF>
+<XPD:REF name="Head">BEGpovprr0OpCDXKEafPPAAA</XPD:REF>
+<XPD:REF name="Tail">S4BlySM5kUW/YiK6Pey5zQAA</XPD:REF>
+<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="WYg7QywiKEKtk0JHTnhPQAAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">1,5707963267949</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
+<XPD:REF name="Model">G9y2XZEWjU+fF6GadfrMNQAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="xrCsE8KnX0Oh8sZQo4nXUgAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">1,5707963267949</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
+<XPD:REF name="Model">G9y2XZEWjU+fF6GadfrMNQAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="fHicZJt+ckSbT0efOqS9KgAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">-1,5707963267949</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
+<XPD:REF name="Model">G9y2XZEWjU+fF6GadfrMNQAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="HeadRoleNameLabel" type="EdgeLabelView" guid="N1AaoL+Z4ECW6JuSkuWnfAAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">-0,523598775598299</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
+<XPD:REF name="Model">EZ8r6H+KEUOwFX+TBkkkkQAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TailRoleNameLabel" type="EdgeLabelView" guid="zGcniyozykOgAgWYPsbL8AAA">
+<XPD:ATTR name="Alpha" type="real">-0,27829978479133</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">21,8403296678416</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
+<XPD:ATTR name="Text" type="string">+roles</XPD:ATTR>
+<XPD:REF name="Model">j7CvxXw8zUuJA8N8a0/lZwAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="HeadMultiplicityLabel" type="EdgeLabelView" guid="TPkwMum6MEK5T0dcpz4jJAAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">0,523598775598299</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">25</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
+<XPD:REF name="Model">EZ8r6H+KEUOwFX+TBkkkkQAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TailMultiplicityLabel" type="EdgeLabelView" guid="6vZm1k5uTkiVNM7aHsMJswAA">
+<XPD:ATTR name="Alpha" type="real">0,620249823820819</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">17,2046505340853</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
+<XPD:ATTR name="Text" type="string">*</XPD:ATTR>
+<XPD:REF name="Model">j7CvxXw8zUuJA8N8a0/lZwAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="HeadPropertyLabel" type="EdgeLabelView" guid="2/8qn+mwQEC+A0Z7e54FFAAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">-0,785398163397448</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">40</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
+<XPD:REF name="Model">EZ8r6H+KEUOwFX+TBkkkkQAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TailPropertyLabel" type="EdgeLabelView" guid="CTPYQGO6lE+AUGXQx1gMjAAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">0,785398163397448</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">40</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
+<XPD:REF name="Model">j7CvxXw8zUuJA8N8a0/lZwAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="HeadQualifierCompartment" type="UMLQualifierCompartmentView" guid="2LswS62HG0m6CPejDe/PEwAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Left" type="integer">-908</XPD:ATTR>
+<XPD:ATTR name="Top" type="integer">-968</XPD:ATTR>
+<XPD:ATTR name="Width" type="integer">50</XPD:ATTR>
+<XPD:ATTR name="Height" type="integer">8</XPD:ATTR>
+<XPD:REF name="Model">EZ8r6H+KEUOwFX+TBkkkkQAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TailQualifierCompartment" type="UMLQualifierCompartmentView" guid="W6sN09AH1kSIQllKiGn4egAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Left" type="integer">-908</XPD:ATTR>
+<XPD:ATTR name="Top" type="integer">-968</XPD:ATTR>
+<XPD:ATTR name="Width" type="integer">50</XPD:ATTR>
+<XPD:ATTR name="Height" type="integer">8</XPD:ATTR>
+<XPD:REF name="Model">j7CvxXw8zUuJA8N8a0/lZwAA</XPD:REF>
+</XPD:OBJ>
+</XPD:OBJ>
+<XPD:OBJ name="OwnedViews[7]" type="UMLAssociationView" guid="kCEQ989tnUi8utrj1r+WuwAA">
+<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
+<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
+<XPD:ATTR name="LineStyle" type="LineStyleKind">lsRectilinear</XPD:ATTR>
+<XPD:ATTR name="Points" type="Points">660,140;578,140</XPD:ATTR>
+<XPD:REF name="Model">ucLP51aO/EenmVgZ5kHf+gAA</XPD:REF>
+<XPD:REF name="Head">BEGpovprr0OpCDXKEafPPAAA</XPD:REF>
+<XPD:REF name="Tail">gaiFlhWKiUe6Ca6zyb+P9wAA</XPD:REF>
+<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="PVDNxCwBS06I5wevxolefgAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">1,5707963267949</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
+<XPD:REF name="Model">ucLP51aO/EenmVgZ5kHf+gAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="q7l9uyxHbkKezfMiZkEUtwAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">1,5707963267949</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
+<XPD:REF name="Model">ucLP51aO/EenmVgZ5kHf+gAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="Y2oOGzv6QE20GosmIVezrgAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">-1,5707963267949</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
+<XPD:REF name="Model">ucLP51aO/EenmVgZ5kHf+gAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="HeadRoleNameLabel" type="EdgeLabelView" guid="C67aHXPFBk+hpaUbSC5qQwAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">-0,523598775598299</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
+<XPD:REF name="Model">y1D4yhmlCUuZRScC0SWorwAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TailRoleNameLabel" type="EdgeLabelView" guid="asLFqkfz1kOieET4xs6NTwAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">0,523598775598299</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
+<XPD:REF name="Model">otiWB8zxNUWzDwH20HQwxQAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="HeadMultiplicityLabel" type="EdgeLabelView" guid="9a+PmYwA106lZnqm/AD3xwAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">0,523598775598299</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">25</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
+<XPD:REF name="Model">y1D4yhmlCUuZRScC0SWorwAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TailMultiplicityLabel" type="EdgeLabelView" guid="NCcc+zjELUir3iJ7uWwrjwAA">
+<XPD:ATTR name="Alpha" type="real">-0,540419941447379</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">11,6619037896906</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
+<XPD:ATTR name="Text" type="string">*</XPD:ATTR>
+<XPD:REF name="Model">otiWB8zxNUWzDwH20HQwxQAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="HeadPropertyLabel" type="EdgeLabelView" guid="0ib1VsXba06m432Y4S+q/wAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">-0,785398163397448</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">40</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
+<XPD:REF name="Model">y1D4yhmlCUuZRScC0SWorwAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TailPropertyLabel" type="EdgeLabelView" guid="CTg2tLYVQ0uVIrDKnq5wMAAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">0,785398163397448</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">40</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
+<XPD:REF name="Model">otiWB8zxNUWzDwH20HQwxQAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="HeadQualifierCompartment" type="UMLQualifierCompartmentView" guid="YZwZYYU4yk+prP+8GOLHNQAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Left" type="integer">-908</XPD:ATTR>
+<XPD:ATTR name="Top" type="integer">-968</XPD:ATTR>
+<XPD:ATTR name="Width" type="integer">50</XPD:ATTR>
+<XPD:ATTR name="Height" type="integer">8</XPD:ATTR>
+<XPD:REF name="Model">y1D4yhmlCUuZRScC0SWorwAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TailQualifierCompartment" type="UMLQualifierCompartmentView" guid="mVHxvbQtUUa5+NHlAOUrQwAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Left" type="integer">-908</XPD:ATTR>
+<XPD:ATTR name="Top" type="integer">-968</XPD:ATTR>
+<XPD:ATTR name="Width" type="integer">50</XPD:ATTR>
+<XPD:ATTR name="Height" type="integer">8</XPD:ATTR>
+<XPD:REF name="Model">otiWB8zxNUWzDwH20HQwxQAA</XPD:REF>
+</XPD:OBJ>
+</XPD:OBJ>
+<XPD:OBJ name="OwnedViews[8]" type="UMLAssociationView" guid="/4J9gJdnhE2I6S8pR8e8CwAA">
+<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
+<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
+<XPD:ATTR name="LineStyle" type="LineStyleKind">lsRectilinear</XPD:ATTR>
+<XPD:ATTR name="Points" type="Points">452,148;396,148;396,176;366,176</XPD:ATTR>
+<XPD:REF name="Model">gPaQ+DIN6EWZ4BdgEPOxBAAA</XPD:REF>
+<XPD:REF name="Head">ror19oxT9kuTiijsBoK/bAAA</XPD:REF>
+<XPD:REF name="Tail">BEGpovprr0OpCDXKEafPPAAA</XPD:REF>
+<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="rd3R8mu5OUu9cvZ6Z/4NggAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">1,5707963267949</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
+<XPD:REF name="Model">gPaQ+DIN6EWZ4BdgEPOxBAAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="GY3pM5HSK0iI2veru1WgUwAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">1,5707963267949</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
+<XPD:REF name="Model">gPaQ+DIN6EWZ4BdgEPOxBAAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="DsV6M80A20K/A48wJowMVAAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">-1,5707963267949</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
+<XPD:REF name="Model">gPaQ+DIN6EWZ4BdgEPOxBAAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="HeadRoleNameLabel" type="EdgeLabelView" guid="2Hiiw/pWfUCivqUfdBW8OwAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">-0,523598775598299</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
+<XPD:REF name="Model">pIDN0gCe306T092GLUvstgAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TailRoleNameLabel" type="EdgeLabelView" guid="4EX0iPgXT0WYxWFInd77KQAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">0,523598775598299</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
+<XPD:REF name="Model">hKHk5PnDTkKXfRG2jmcJJAAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="HeadMultiplicityLabel" type="EdgeLabelView" guid="+KVkT8ozQkemNWISCynPpQAA">
+<XPD:ATTR name="Alpha" type="real">0,463647323286684</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">15,6524758424985</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
+<XPD:ATTR name="Text" type="string">0..1</XPD:ATTR>
+<XPD:REF name="Model">pIDN0gCe306T092GLUvstgAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TailMultiplicityLabel" type="EdgeLabelView" guid="34tfoxrPFkqQ6azctOeNhgAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">-0,523598775598299</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">25</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
+<XPD:REF name="Model">hKHk5PnDTkKXfRG2jmcJJAAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="HeadPropertyLabel" type="EdgeLabelView" guid="Ma86Ms4jpU6yL/qb2Bb7CQAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">-0,785398163397448</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">40</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
+<XPD:REF name="Model">pIDN0gCe306T092GLUvstgAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TailPropertyLabel" type="EdgeLabelView" guid="RTUJ+/IcmkmU5J4z/G0vWAAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">0,785398163397448</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">40</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
+<XPD:REF name="Model">hKHk5PnDTkKXfRG2jmcJJAAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="HeadQualifierCompartment" type="UMLQualifierCompartmentView" guid="C2iw/esZgEmhWgrr+NZg+QAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Left" type="integer">-948</XPD:ATTR>
+<XPD:ATTR name="Top" type="integer">-972</XPD:ATTR>
+<XPD:ATTR name="Width" type="integer">50</XPD:ATTR>
+<XPD:ATTR name="Height" type="integer">8</XPD:ATTR>
+<XPD:REF name="Model">pIDN0gCe306T092GLUvstgAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TailQualifierCompartment" type="UMLQualifierCompartmentView" guid="Q/HJJURAq0OyhISJkhdf6wAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Left" type="integer">-948</XPD:ATTR>
+<XPD:ATTR name="Top" type="integer">-972</XPD:ATTR>
+<XPD:ATTR name="Width" type="integer">50</XPD:ATTR>
+<XPD:ATTR name="Height" type="integer">8</XPD:ATTR>
+<XPD:REF name="Model">hKHk5PnDTkKXfRG2jmcJJAAA</XPD:REF>
+</XPD:OBJ>
+</XPD:OBJ>
+<XPD:OBJ name="OwnedViews[9]" type="UMLAssociationView" guid="l0EW19sL+k++O39a+OyjxQAA">
+<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
+<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
+<XPD:ATTR name="LineStyle" type="LineStyleKind">lsRectilinear</XPD:ATTR>
+<XPD:ATTR name="Points" type="Points">660,216;366,216</XPD:ATTR>
+<XPD:REF name="Model">+Ae9qqvOAEiQr4SuowB4xgAA</XPD:REF>
+<XPD:REF name="Head">ror19oxT9kuTiijsBoK/bAAA</XPD:REF>
+<XPD:REF name="Tail">S4BlySM5kUW/YiK6Pey5zQAA</XPD:REF>
+<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="Hzr4oQcJrkuoVCYMb8ik2QAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">1,5707963267949</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
+<XPD:REF name="Model">+Ae9qqvOAEiQr4SuowB4xgAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="Dd5BXxX0k0uHTHP6wlvpSgAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">1,5707963267949</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
+<XPD:REF name="Model">+Ae9qqvOAEiQr4SuowB4xgAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="Tpgj7+i4REuc+JlFB3AxGAAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">-1,5707963267949</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
+<XPD:REF name="Model">+Ae9qqvOAEiQr4SuowB4xgAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="HeadRoleNameLabel" type="EdgeLabelView" guid="Iz0U5YCBrka8yPUrXxKlCgAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">-0,523598775598299</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
+<XPD:REF name="Model">qhpWc/+HW0SLBBtfjX4WFwAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TailRoleNameLabel" type="EdgeLabelView" guid="3DFnlxZwKkOSCvZ3x80JIAAA">
+<XPD:ATTR name="Alpha" type="real">-0,191184519777575</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">31,5753068076939</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
+<XPD:ATTR name="Text" type="string">+candidates</XPD:ATTR>
+<XPD:REF name="Model">Y3XN0KcISUujsCKot7FRwQAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="HeadMultiplicityLabel" type="EdgeLabelView" guid="PN0Z99QsQ0aA06SWVhrzdgAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">0,523598775598299</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">25</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
+<XPD:REF name="Model">qhpWc/+HW0SLBBtfjX4WFwAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TailMultiplicityLabel" type="EdgeLabelView" guid="ZVJgTp3++0aX2CB2R8hCuQAA">
+<XPD:ATTR name="Alpha" type="real">0,785398663397698</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">14,142135623731</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
+<XPD:ATTR name="Text" type="string">*</XPD:ATTR>
+<XPD:REF name="Model">Y3XN0KcISUujsCKot7FRwQAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="HeadPropertyLabel" type="EdgeLabelView" guid="wAtztCseO0m7PZc49MG+agAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">-0,785398163397448</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">40</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
+<XPD:REF name="Model">qhpWc/+HW0SLBBtfjX4WFwAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TailPropertyLabel" type="EdgeLabelView" guid="AnVW30FHVU+3Ccfw7YrxnAAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">0,785398163397448</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">40</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
+<XPD:REF name="Model">Y3XN0KcISUujsCKot7FRwQAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="HeadQualifierCompartment" type="UMLQualifierCompartmentView" guid="ft42mcFsHECO0yQKn8iDQQAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Left" type="integer">-948</XPD:ATTR>
+<XPD:ATTR name="Top" type="integer">-972</XPD:ATTR>
+<XPD:ATTR name="Width" type="integer">50</XPD:ATTR>
+<XPD:ATTR name="Height" type="integer">8</XPD:ATTR>
+<XPD:REF name="Model">qhpWc/+HW0SLBBtfjX4WFwAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TailQualifierCompartment" type="UMLQualifierCompartmentView" guid="Ooz9JUM66E+ASSUnOnh1KwAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Left" type="integer">-948</XPD:ATTR>
+<XPD:ATTR name="Top" type="integer">-972</XPD:ATTR>
+<XPD:ATTR name="Width" type="integer">50</XPD:ATTR>
+<XPD:ATTR name="Height" type="integer">8</XPD:ATTR>
+<XPD:REF name="Model">Y3XN0KcISUujsCKot7FRwQAA</XPD:REF>
+</XPD:OBJ>
+</XPD:OBJ>
+<XPD:OBJ name="OwnedViews[10]" type="UMLAssociationView" guid="s97DNIncIUyqxXbneTudIQAA">
+<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
+<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
+<XPD:ATTR name="LineStyle" type="LineStyleKind">lsRectilinear</XPD:ATTR>
+<XPD:ATTR name="Points" type="Points">364,88;392,88;392,120;452,120</XPD:ATTR>
+<XPD:REF name="Model">u9wX0QGdzEKXDMUSuMeSlAAA</XPD:REF>
+<XPD:REF name="Head">BEGpovprr0OpCDXKEafPPAAA</XPD:REF>
+<XPD:REF name="Tail">fs8kGcLd20yQW3uybthdSwAA</XPD:REF>
+<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="5nJJhIKfP0aphx/wCbPj8QAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">1,5707963267949</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
+<XPD:REF name="Model">u9wX0QGdzEKXDMUSuMeSlAAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="GF15CGpxb0ihKLCpqEgiPwAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">1,5707963267949</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
+<XPD:REF name="Model">u9wX0QGdzEKXDMUSuMeSlAAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="mQ03MxKHVEGf7/sHqs6UNQAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">-1,5707963267949</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
+<XPD:REF name="Model">u9wX0QGdzEKXDMUSuMeSlAAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="HeadRoleNameLabel" type="EdgeLabelView" guid="TFju0xnXzUeFLEfbHAgvxwAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">-0,523598775598299</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
+<XPD:REF name="Model">0vFa396IN0SfuCWKBLJF0AAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TailRoleNameLabel" type="EdgeLabelView" guid="ABsrUukx4UKDMLhPlPcXaAAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">0,523598775598299</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
+<XPD:REF name="Model">zekdyR8yEUmNFK08gWI5UgAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="HeadMultiplicityLabel" type="EdgeLabelView" guid="6pSDVmO3RUiGwA0KZzySZgAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">0,523598775598299</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">25</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
+<XPD:REF name="Model">0vFa396IN0SfuCWKBLJF0AAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TailMultiplicityLabel" type="EdgeLabelView" guid="llvYWWfx/E6vLX4zQ9IOHwAA">
+<XPD:ATTR name="Alpha" type="real">0,620249148145143</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">17,2046505340853</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
+<XPD:ATTR name="Text" type="string">0..1</XPD:ATTR>
+<XPD:REF name="Model">zekdyR8yEUmNFK08gWI5UgAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="HeadPropertyLabel" type="EdgeLabelView" guid="ZP18gpDXvEaqIO5x2PK4vwAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">-0,785398163397448</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">40</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
+<XPD:REF name="Model">0vFa396IN0SfuCWKBLJF0AAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TailPropertyLabel" type="EdgeLabelView" guid="6oYASua5iUi3jt++CaJaRgAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">0,785398163397448</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">40</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
+<XPD:REF name="Model">zekdyR8yEUmNFK08gWI5UgAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="HeadQualifierCompartment" type="UMLQualifierCompartmentView" guid="LrU5/QaN5kabGVbUYT2uVwAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Left" type="integer">-948</XPD:ATTR>
+<XPD:ATTR name="Top" type="integer">-972</XPD:ATTR>
+<XPD:ATTR name="Width" type="integer">50</XPD:ATTR>
+<XPD:ATTR name="Height" type="integer">8</XPD:ATTR>
+<XPD:REF name="Model">0vFa396IN0SfuCWKBLJF0AAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TailQualifierCompartment" type="UMLQualifierCompartmentView" guid="fncRPs0eyUay6gLlnfmaoAAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Left" type="integer">-948</XPD:ATTR>
+<XPD:ATTR name="Top" type="integer">-972</XPD:ATTR>
+<XPD:ATTR name="Width" type="integer">50</XPD:ATTR>
+<XPD:ATTR name="Height" type="integer">8</XPD:ATTR>
+<XPD:REF name="Model">zekdyR8yEUmNFK08gWI5UgAA</XPD:REF>
+</XPD:OBJ>
+</XPD:OBJ>
+<XPD:OBJ name="OwnedViews[11]" type="UMLAssociationView" guid="hEfg3zF9T0KZqM6LoHkeywAA">
+<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
+<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
+<XPD:ATTR name="LineStyle" type="LineStyleKind">lsRectilinear</XPD:ATTR>
+<XPD:ATTR name="Points" type="Points">181,193;268,193</XPD:ATTR>
+<XPD:REF name="Model">lT1ML7PzwUGLyiBN6ZM9ewAA</XPD:REF>
+<XPD:REF name="Head">ror19oxT9kuTiijsBoK/bAAA</XPD:REF>
+<XPD:REF name="Tail">MH9M/bx8Akm+nfvMLj/xkAAA</XPD:REF>
+<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="Xp9wRzdQwUiqwJCNI5b4JQAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">1,5707963267949</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
+<XPD:REF name="Model">lT1ML7PzwUGLyiBN6ZM9ewAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="dQQcX7/IbUGZGP/exqC6OQAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">1,5707963267949</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
+<XPD:REF name="Model">lT1ML7PzwUGLyiBN6ZM9ewAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="wowPjb5qSEiE1UD8gtsPVAAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">-1,5707963267949</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
+<XPD:REF name="Model">lT1ML7PzwUGLyiBN6ZM9ewAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="HeadRoleNameLabel" type="EdgeLabelView" guid="fZzGyZZt1US3pySjYdbe3AAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">-0,523598775598299</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
+<XPD:REF name="Model">xnq3//AvmkaNPVRDsIkseAAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TailRoleNameLabel" type="EdgeLabelView" guid="kerBdAuXP0qGhUBsKsaVBgAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">0,523598775598299</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
+<XPD:REF name="Model">gXiNnV7a90+F3ShZ01TMFAAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="HeadMultiplicityLabel" type="EdgeLabelView" guid="AmXw2BgBNk+PLXzTBtMTqgAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">0,523598775598299</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">25</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
+<XPD:REF name="Model">xnq3//AvmkaNPVRDsIkseAAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TailMultiplicityLabel" type="EdgeLabelView" guid="24szT2Qfg0uwuXHurF5FawAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">-0,523598775598299</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">25</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
+<XPD:REF name="Model">gXiNnV7a90+F3ShZ01TMFAAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="HeadPropertyLabel" type="EdgeLabelView" guid="UHz2AHAHTk6b0UBy27uYsgAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">-0,785398163397448</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">40</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
+<XPD:REF name="Model">xnq3//AvmkaNPVRDsIkseAAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TailPropertyLabel" type="EdgeLabelView" guid="4pcy4Hj8vUuVJIBH55+G8wAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">0,785398163397448</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">40</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
+<XPD:REF name="Model">gXiNnV7a90+F3ShZ01TMFAAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="HeadQualifierCompartment" type="UMLQualifierCompartmentView" guid="oiGUCSbvcE2jf8t3N6P8eAAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Left" type="integer">-948</XPD:ATTR>
+<XPD:ATTR name="Top" type="integer">-972</XPD:ATTR>
+<XPD:ATTR name="Width" type="integer">50</XPD:ATTR>
+<XPD:ATTR name="Height" type="integer">8</XPD:ATTR>
+<XPD:REF name="Model">xnq3//AvmkaNPVRDsIkseAAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TailQualifierCompartment" type="UMLQualifierCompartmentView" guid="n+zAECOm3kuPp0U6fGa9qQAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Left" type="integer">-948</XPD:ATTR>
+<XPD:ATTR name="Top" type="integer">-972</XPD:ATTR>
+<XPD:ATTR name="Width" type="integer">50</XPD:ATTR>
+<XPD:ATTR name="Height" type="integer">8</XPD:ATTR>
+<XPD:REF name="Model">gXiNnV7a90+F3ShZ01TMFAAA</XPD:REF>
+</XPD:OBJ>
+</XPD:OBJ>
+<XPD:OBJ name="OwnedViews[12]" type="UMLAssociationView" guid="0Q8MZMRv3keC5G0P3jqvLgAA">
+<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
+<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
+<XPD:ATTR name="LineStyle" type="LineStyleKind">lsRectilinear</XPD:ATTR>
+<XPD:ATTR name="Points" type="Points">540,112;540,92;612,92;612,120;578,120</XPD:ATTR>
+<XPD:REF name="Model">AVjFcKW/SkGrDDjIOVRD+gAA</XPD:REF>
+<XPD:REF name="Head">BEGpovprr0OpCDXKEafPPAAA</XPD:REF>
+<XPD:REF name="Tail">BEGpovprr0OpCDXKEafPPAAA</XPD:REF>
+<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="d3Kypc5e9USTEK3RieUIQgAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">1,5707963267949</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
+<XPD:REF name="Model">AVjFcKW/SkGrDDjIOVRD+gAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="uD+JnEzcwkSPAPXtxxC+uQAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">1,5707963267949</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
+<XPD:REF name="Model">AVjFcKW/SkGrDDjIOVRD+gAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="rnjCjREV6kK6FI664NzbmQAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">-1,5707963267949</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
+<XPD:REF name="Model">AVjFcKW/SkGrDDjIOVRD+gAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="HeadRoleNameLabel" type="EdgeLabelView" guid="cfgsL9WLv0C08ZQHcVaKFAAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">-0,523598775598299</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
+<XPD:REF name="Model">wi5BJHl4RkiqqqtC44D95QAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TailRoleNameLabel" type="EdgeLabelView" guid="GDNhCHzLh0WvJJ1jxSWCbAAA">
+<XPD:ATTR name="Alpha" type="real">-0,765792532386477</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">36,0693775937429</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
+<XPD:ATTR name="Text" type="string">+subTasks</XPD:ATTR>
+<XPD:REF name="Model">s0hHwXTeU02e7YGLMAX0PAAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="HeadMultiplicityLabel" type="EdgeLabelView" guid="5qWWjDhi90uAUXDD5YSGkAAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">0,523598775598299</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">25</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
+<XPD:REF name="Model">wi5BJHl4RkiqqqtC44D95QAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TailMultiplicityLabel" type="EdgeLabelView" guid="X0imqN7kTUWC5VgPlkJ00gAA">
+<XPD:ATTR name="Alpha" type="real">-0,519146152707896</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">16,1245154965971</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
+<XPD:ATTR name="Text" type="string">*</XPD:ATTR>
+<XPD:REF name="Model">s0hHwXTeU02e7YGLMAX0PAAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="HeadPropertyLabel" type="EdgeLabelView" guid="L1KmK8JoRUSHUwvrb5aMcQAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">-0,785398163397448</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">40</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
+<XPD:REF name="Model">wi5BJHl4RkiqqqtC44D95QAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TailPropertyLabel" type="EdgeLabelView" guid="qjcLVMn3yEiW/FQqSOppuwAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">0,785398163397448</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">40</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
+<XPD:REF name="Model">s0hHwXTeU02e7YGLMAX0PAAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="HeadQualifierCompartment" type="UMLQualifierCompartmentView" guid="ghdCa3kzQUCEmb8k45FU/AAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Left" type="integer">-924</XPD:ATTR>
+<XPD:ATTR name="Top" type="integer">-972</XPD:ATTR>
+<XPD:ATTR name="Width" type="integer">50</XPD:ATTR>
+<XPD:ATTR name="Height" type="integer">8</XPD:ATTR>
+<XPD:REF name="Model">wi5BJHl4RkiqqqtC44D95QAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TailQualifierCompartment" type="UMLQualifierCompartmentView" guid="poFTZVOeaUWdQnmYEjp2JgAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Left" type="integer">-924</XPD:ATTR>
+<XPD:ATTR name="Top" type="integer">-972</XPD:ATTR>
+<XPD:ATTR name="Width" type="integer">50</XPD:ATTR>
+<XPD:ATTR name="Height" type="integer">8</XPD:ATTR>
+<XPD:REF name="Model">s0hHwXTeU02e7YGLMAX0PAAA</XPD:REF>
+</XPD:OBJ>
+</XPD:OBJ>
+<XPD:OBJ name="OwnedViews[13]" type="UMLAssociationView" guid="9vrgDuSQRkuGM2KpgQ681wAA">
+<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
+<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
+<XPD:ATTR name="LineStyle" type="LineStyleKind">lsRectilinear</XPD:ATTR>
+<XPD:ATTR name="Points" type="Points">712,120;712,96;774,96;774,132;745,132</XPD:ATTR>
+<XPD:REF name="Model">3DEhC+Nv0kK7uqtxV6JcZwAA</XPD:REF>
+<XPD:REF name="Head">gaiFlhWKiUe6Ca6zyb+P9wAA</XPD:REF>
+<XPD:REF name="Tail">gaiFlhWKiUe6Ca6zyb+P9wAA</XPD:REF>
+<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="HPgV9SBY2kahngUOTUUnqgAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">1,5707963267949</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
+<XPD:REF name="Model">3DEhC+Nv0kK7uqtxV6JcZwAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="4xtJRUX4cUW2j7LzmJ71HgAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">1,5707963267949</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
+<XPD:REF name="Model">3DEhC+Nv0kK7uqtxV6JcZwAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="cOI/0aN4FEmtKry1i0zsGgAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">-1,5707963267949</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
+<XPD:REF name="Model">3DEhC+Nv0kK7uqtxV6JcZwAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="HeadRoleNameLabel" type="EdgeLabelView" guid="mJSLnpapqEe+JCw/l9ZrWgAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">-0,523598775598299</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
+<XPD:REF name="Model">9l7hGk4Y/kqJrk9GldzJ6QAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TailRoleNameLabel" type="EdgeLabelView" guid="MRGwgnyuZkenbLrSBgMGowAA">
+<XPD:ATTR name="Alpha" type="real">-0,564569214907821</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">35,5105618091294</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
+<XPD:ATTR name="Text" type="string">+replies</XPD:ATTR>
+<XPD:REF name="Model">zWDSiZ7kIEKvhXHKxmicAwAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="HeadMultiplicityLabel" type="EdgeLabelView" guid="mbaATlJxY064398AzNkbrAAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">0,523598775598299</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">25</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
+<XPD:REF name="Model">9l7hGk4Y/kqJrk9GldzJ6QAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TailMultiplicityLabel" type="EdgeLabelView" guid="NDIxC9Q5bUq5Bq5jTTb6DAAA">
+<XPD:ATTR name="Alpha" type="real">-0,463647636778485</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">20,1246117974981</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
+<XPD:ATTR name="Text" type="string">*</XPD:ATTR>
+<XPD:REF name="Model">zWDSiZ7kIEKvhXHKxmicAwAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="HeadPropertyLabel" type="EdgeLabelView" guid="vQr9dU7oMkScUooE1diouQAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">-0,785398163397448</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">40</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
+<XPD:REF name="Model">9l7hGk4Y/kqJrk9GldzJ6QAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TailPropertyLabel" type="EdgeLabelView" guid="E7w5n6j9t02OUqefF5g+GQAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">0,785398163397448</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">40</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
+<XPD:REF name="Model">zWDSiZ7kIEKvhXHKxmicAwAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="HeadQualifierCompartment" type="UMLQualifierCompartmentView" guid="v+lh/JYNEk2ckddRKkYMqgAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Left" type="integer">-908</XPD:ATTR>
+<XPD:ATTR name="Top" type="integer">-976</XPD:ATTR>
+<XPD:ATTR name="Width" type="integer">50</XPD:ATTR>
+<XPD:ATTR name="Height" type="integer">8</XPD:ATTR>
+<XPD:REF name="Model">9l7hGk4Y/kqJrk9GldzJ6QAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TailQualifierCompartment" type="UMLQualifierCompartmentView" guid="Hccf2ZoTsUGJM1WkqVxZHAAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Left" type="integer">-908</XPD:ATTR>
+<XPD:ATTR name="Top" type="integer">-976</XPD:ATTR>
+<XPD:ATTR name="Width" type="integer">50</XPD:ATTR>
+<XPD:ATTR name="Height" type="integer">8</XPD:ATTR>
+<XPD:REF name="Model">zWDSiZ7kIEKvhXHKxmicAwAA</XPD:REF>
+</XPD:OBJ>
+</XPD:OBJ>
+</XPD:OBJ>
+</XPD:OBJ>
+<XPD:ATTR name="#OwnedElements" type="integer">15</XPD:ATTR>
+<XPD:OBJ name="OwnedElements[0]" type="UMLClass" guid="HvFFmfu3EU2Q5JpvC4V1dAAA">
+<XPD:ATTR name="Name" type="string">Task</XPD:ATTR>
+<XPD:REF name="Namespace">28q8akawHUut/vt9cqGzHQAA</XPD:REF>
+<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
+<XPD:REF name="Views[0]">BEGpovprr0OpCDXKEafPPAAA</XPD:REF>
+<XPD:REF name="Views[1]">Nb2y5cEn8E++FPMih7TpfAAA</XPD:REF>
+<XPD:REF name="Views[2]">9sAfjtNojEiLZ2kkSKHULgAA</XPD:REF>
+<XPD:REF name="Views[3]">UIi+TBpteUG0OFM1uqHsaAAA</XPD:REF>
+<XPD:ATTR name="#Associations" type="integer">6</XPD:ATTR>
+<XPD:REF name="Associations[0]">EZ8r6H+KEUOwFX+TBkkkkQAA</XPD:REF>
+<XPD:REF name="Associations[1]">y1D4yhmlCUuZRScC0SWorwAA</XPD:REF>
+<XPD:REF name="Associations[2]">hKHk5PnDTkKXfRG2jmcJJAAA</XPD:REF>
+<XPD:REF name="Associations[3]">0vFa396IN0SfuCWKBLJF0AAA</XPD:REF>
+<XPD:REF name="Associations[4]">s0hHwXTeU02e7YGLMAX0PAAA</XPD:REF>
+<XPD:REF name="Associations[5]">wi5BJHl4RkiqqqtC44D95QAA</XPD:REF>
+<XPD:ATTR name="#Attributes" type="integer">1</XPD:ATTR>
+<XPD:OBJ name="Attributes[0]" type="UMLAttribute" guid="j/qyRKyyK0yfML2GQCwouQAA">
+<XPD:ATTR name="Name" type="string">assignee</XPD:ATTR>
+<XPD:ATTR name="TypeExpression" type="string">String</XPD:ATTR>
+<XPD:REF name="Owner">HvFFmfu3EU2Q5JpvC4V1dAAA</XPD:REF>
+</XPD:OBJ>
+</XPD:OBJ>
+<XPD:OBJ name="OwnedElements[1]" type="UMLClass" guid="uTvluPMq6EiVrEzIldF+CwAA">
+<XPD:ATTR name="Name" type="string">TaskDefinition</XPD:ATTR>
+<XPD:REF name="Namespace">28q8akawHUut/vt9cqGzHQAA</XPD:REF>
+<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
+<XPD:REF name="Views[0]">fs8kGcLd20yQW3uybthdSwAA</XPD:REF>
+<XPD:REF name="Views[1]">PuerV6iAkkGmjsZdqAJEEAAA</XPD:REF>
+<XPD:REF name="Views[2]">M7WkDdTEmkKEx7odnins/gAA</XPD:REF>
+<XPD:REF name="Views[3]">FxIHioj58Ei2Xjj6rcXj8wAA</XPD:REF>
+<XPD:ATTR name="#Associations" type="integer">1</XPD:ATTR>
+<XPD:REF name="Associations[0]">zekdyR8yEUmNFK08gWI5UgAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="OwnedElements[2]" type="UMLClass" guid="GioGPK3R6Ue8w6V2t8TzvgAA">
+<XPD:ATTR name="Name" type="string">SwimlaneDefinition</XPD:ATTR>
+<XPD:REF name="Namespace">28q8akawHUut/vt9cqGzHQAA</XPD:REF>
+<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
+<XPD:REF name="Views[0]">MH9M/bx8Akm+nfvMLj/xkAAA</XPD:REF>
+<XPD:REF name="Views[1]">yTCES2vNVUaDe5fVHcuuNwAA</XPD:REF>
+<XPD:REF name="Views[2]">H4oGMkjhHEyBhi/8rQaD7wAA</XPD:REF>
+<XPD:REF name="Views[3]">otxfkH9A4EakNQ1lqnfSRwAA</XPD:REF>
+<XPD:ATTR name="#Associations" type="integer">2</XPD:ATTR>
+<XPD:REF name="Associations[0]">zKLAXgKQ/02weDYbKw8WmwAA</XPD:REF>
+<XPD:REF name="Associations[1]">gXiNnV7a90+F3ShZ01TMFAAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="OwnedElements[3]" type="UMLClass" guid="ijjMqBZ6REK0iCxeAVpgAAAA">
+<XPD:ATTR name="Name" type="string">Swimlane</XPD:ATTR>
+<XPD:REF name="Namespace">28q8akawHUut/vt9cqGzHQAA</XPD:REF>
+<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
+<XPD:REF name="Views[0]">ror19oxT9kuTiijsBoK/bAAA</XPD:REF>
+<XPD:REF name="Views[1]">4rjyvONTNUiPcfx1G59ibQAA</XPD:REF>
+<XPD:REF name="Views[2]">//L9vrH53EOscgK+ByNq7QAA</XPD:REF>
+<XPD:REF name="Views[3]">cMsAJi5+eEWIlooBLw2zGQAA</XPD:REF>
+<XPD:ATTR name="#Associations" type="integer">4</XPD:ATTR>
+<XPD:REF name="Associations[0]">pIDN0gCe306T092GLUvstgAA</XPD:REF>
+<XPD:REF name="Associations[1]">qhpWc/+HW0SLBBtfjX4WFwAA</XPD:REF>
+<XPD:REF name="Associations[2]">YROrTOuSWkmpMzIJdfaf/QAA</XPD:REF>
+<XPD:REF name="Associations[3]">xnq3//AvmkaNPVRDsIkseAAA</XPD:REF>
+<XPD:ATTR name="#Attributes" type="integer">1</XPD:ATTR>
+<XPD:OBJ name="Attributes[0]" type="UMLAttribute" guid="UrpmYKHol0y1p0QVb2Y+KQAA">
+<XPD:ATTR name="Name" type="string">assignee</XPD:ATTR>
+<XPD:ATTR name="TypeExpression" type="string">String</XPD:ATTR>
+<XPD:REF name="Owner">ijjMqBZ6REK0iCxeAVpgAAAA</XPD:REF>
+</XPD:OBJ>
+</XPD:OBJ>
+<XPD:OBJ name="OwnedElements[4]" type="UMLClass" guid="NKuLMRCxwkeVGSHi+kJ4PAAA">
+<XPD:ATTR name="Name" type="string">Comment</XPD:ATTR>
+<XPD:REF name="Namespace">28q8akawHUut/vt9cqGzHQAA</XPD:REF>
+<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
+<XPD:REF name="Views[0]">gaiFlhWKiUe6Ca6zyb+P9wAA</XPD:REF>
+<XPD:REF name="Views[1]">i2nM8GNG40KTTd1cuy4DtQAA</XPD:REF>
+<XPD:REF name="Views[2]">nu4ZY/6DP0S6WVnGJAA4PAAA</XPD:REF>
+<XPD:REF name="Views[3]">+CwsKO2rIEie2/cKkqFrtQAA</XPD:REF>
+<XPD:ATTR name="#Associations" type="integer">3</XPD:ATTR>
+<XPD:REF name="Associations[0]">otiWB8zxNUWzDwH20HQwxQAA</XPD:REF>
+<XPD:REF name="Associations[1]">zWDSiZ7kIEKvhXHKxmicAwAA</XPD:REF>
+<XPD:REF name="Associations[2]">9l7hGk4Y/kqJrk9GldzJ6QAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="OwnedElements[5]" type="UMLClass" guid="nDDKC4LElEWTybRg7a79OQAA">
+<XPD:ATTR name="Name" type="string">Role</XPD:ATTR>
+<XPD:REF name="Namespace">28q8akawHUut/vt9cqGzHQAA</XPD:REF>
+<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
+<XPD:REF name="Views[0]">S4BlySM5kUW/YiK6Pey5zQAA</XPD:REF>
+<XPD:REF name="Views[1]">d7UQQXomaUeNgE4YzwfwjAAA</XPD:REF>
+<XPD:REF name="Views[2]">VNUc47aFgky/2uiWcvDu+wAA</XPD:REF>
+<XPD:REF name="Views[3]">7X2ZbAYJSkq2jDYnXuXq0wAA</XPD:REF>
+<XPD:ATTR name="#Associations" type="integer">2</XPD:ATTR>
+<XPD:REF name="Associations[0]">j7CvxXw8zUuJA8N8a0/lZwAA</XPD:REF>
+<XPD:REF name="Associations[1]">Y3XN0KcISUujsCKot7FRwQAA</XPD:REF>
+<XPD:ATTR name="#Attributes" type="integer">2</XPD:ATTR>
+<XPD:OBJ name="Attributes[0]" type="UMLAttribute" guid="R6W0j/ihTUmtVv3QsErV3wAA">
+<XPD:ATTR name="Name" type="string">userId</XPD:ATTR>
+<XPD:ATTR name="TypeExpression" type="string">String</XPD:ATTR>
+<XPD:REF name="Owner">nDDKC4LElEWTybRg7a79OQAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="Attributes[1]" type="UMLAttribute" guid="0OEKBDLZWUKGfeR2HVdi8wAA">
+<XPD:ATTR name="Name" type="string">roleType</XPD:ATTR>
+<XPD:ATTR name="TypeExpression" type="string">RoleType</XPD:ATTR>
+<XPD:REF name="Owner">nDDKC4LElEWTybRg7a79OQAA</XPD:REF>
+</XPD:OBJ>
+</XPD:OBJ>
+<XPD:OBJ name="OwnedElements[6]" type="UMLAssociation" guid="G9y2XZEWjU+fF6GadfrMNQAA">
+<XPD:REF name="Namespace">28q8akawHUut/vt9cqGzHQAA</XPD:REF>
+<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
+<XPD:REF name="Views[0]">vlPPTxt05ky9R0jdt64xogAA</XPD:REF>
+<XPD:REF name="Views[1]">WYg7QywiKEKtk0JHTnhPQAAA</XPD:REF>
+<XPD:REF name="Views[2]">xrCsE8KnX0Oh8sZQo4nXUgAA</XPD:REF>
+<XPD:REF name="Views[3]">fHicZJt+ckSbT0efOqS9KgAA</XPD:REF>
+<XPD:ATTR name="#Connections" type="integer">2</XPD:ATTR>
+<XPD:OBJ name="Connections[0]" type="UMLAssociationEnd" guid="j7CvxXw8zUuJA8N8a0/lZwAA">
+<XPD:ATTR name="Name" type="string">roles</XPD:ATTR>
+<XPD:ATTR name="Multiplicity" type="string">*</XPD:ATTR>
+<XPD:REF name="Association">G9y2XZEWjU+fF6GadfrMNQAA</XPD:REF>
+<XPD:REF name="Participant">nDDKC4LElEWTybRg7a79OQAA</XPD:REF>
+<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
+<XPD:REF name="Views[0]">zGcniyozykOgAgWYPsbL8AAA</XPD:REF>
+<XPD:REF name="Views[1]">6vZm1k5uTkiVNM7aHsMJswAA</XPD:REF>
+<XPD:REF name="Views[2]">CTPYQGO6lE+AUGXQx1gMjAAA</XPD:REF>
+<XPD:REF name="Views[3]">W6sN09AH1kSIQllKiGn4egAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="Connections[1]" type="UMLAssociationEnd" guid="EZ8r6H+KEUOwFX+TBkkkkQAA">
+<XPD:ATTR name="Aggregation" type="UMLAggregationKind">akAggregate</XPD:ATTR>
+<XPD:REF name="Association">G9y2XZEWjU+fF6GadfrMNQAA</XPD:REF>
+<XPD:REF name="Participant">HvFFmfu3EU2Q5JpvC4V1dAAA</XPD:REF>
+<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
+<XPD:REF name="Views[0]">N1AaoL+Z4ECW6JuSkuWnfAAA</XPD:REF>
+<XPD:REF name="Views[1]">TPkwMum6MEK5T0dcpz4jJAAA</XPD:REF>
+<XPD:REF name="Views[2]">2/8qn+mwQEC+A0Z7e54FFAAA</XPD:REF>
+<XPD:REF name="Views[3]">2LswS62HG0m6CPejDe/PEwAA</XPD:REF>
+</XPD:OBJ>
+</XPD:OBJ>
+<XPD:OBJ name="OwnedElements[7]" type="UMLAssociation" guid="ucLP51aO/EenmVgZ5kHf+gAA">
+<XPD:REF name="Namespace">28q8akawHUut/vt9cqGzHQAA</XPD:REF>
+<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
+<XPD:REF name="Views[0]">kCEQ989tnUi8utrj1r+WuwAA</XPD:REF>
+<XPD:REF name="Views[1]">PVDNxCwBS06I5wevxolefgAA</XPD:REF>
+<XPD:REF name="Views[2]">q7l9uyxHbkKezfMiZkEUtwAA</XPD:REF>
+<XPD:REF name="Views[3]">Y2oOGzv6QE20GosmIVezrgAA</XPD:REF>
+<XPD:ATTR name="#Connections" type="integer">2</XPD:ATTR>
+<XPD:OBJ name="Connections[0]" type="UMLAssociationEnd" guid="otiWB8zxNUWzDwH20HQwxQAA">
+<XPD:ATTR name="Multiplicity" type="string">*</XPD:ATTR>
+<XPD:REF name="Association">ucLP51aO/EenmVgZ5kHf+gAA</XPD:REF>
+<XPD:REF name="Participant">NKuLMRCxwkeVGSHi+kJ4PAAA</XPD:REF>
+<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
+<XPD:REF name="Views[0]">asLFqkfz1kOieET4xs6NTwAA</XPD:REF>
+<XPD:REF name="Views[1]">NCcc+zjELUir3iJ7uWwrjwAA</XPD:REF>
+<XPD:REF name="Views[2]">CTg2tLYVQ0uVIrDKnq5wMAAA</XPD:REF>
+<XPD:REF name="Views[3]">mVHxvbQtUUa5+NHlAOUrQwAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="Connections[1]" type="UMLAssociationEnd" guid="y1D4yhmlCUuZRScC0SWorwAA">
+<XPD:ATTR name="Aggregation" type="UMLAggregationKind">akAggregate</XPD:ATTR>
+<XPD:REF name="Association">ucLP51aO/EenmVgZ5kHf+gAA</XPD:REF>
+<XPD:REF name="Participant">HvFFmfu3EU2Q5JpvC4V1dAAA</XPD:REF>
+<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
+<XPD:REF name="Views[0]">C67aHXPFBk+hpaUbSC5qQwAA</XPD:REF>
+<XPD:REF name="Views[1]">9a+PmYwA106lZnqm/AD3xwAA</XPD:REF>
+<XPD:REF name="Views[2]">0ib1VsXba06m432Y4S+q/wAA</XPD:REF>
+<XPD:REF name="Views[3]">YZwZYYU4yk+prP+8GOLHNQAA</XPD:REF>
+</XPD:OBJ>
+</XPD:OBJ>
+<XPD:OBJ name="OwnedElements[8]" type="UMLAssociation" guid="gPaQ+DIN6EWZ4BdgEPOxBAAA">
+<XPD:REF name="Namespace">28q8akawHUut/vt9cqGzHQAA</XPD:REF>
+<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
+<XPD:REF name="Views[0]">/4J9gJdnhE2I6S8pR8e8CwAA</XPD:REF>
+<XPD:REF name="Views[1]">rd3R8mu5OUu9cvZ6Z/4NggAA</XPD:REF>
+<XPD:REF name="Views[2]">GY3pM5HSK0iI2veru1WgUwAA</XPD:REF>
+<XPD:REF name="Views[3]">DsV6M80A20K/A48wJowMVAAA</XPD:REF>
+<XPD:ATTR name="#Connections" type="integer">2</XPD:ATTR>
+<XPD:OBJ name="Connections[0]" type="UMLAssociationEnd" guid="hKHk5PnDTkKXfRG2jmcJJAAA">
+<XPD:REF name="Association">gPaQ+DIN6EWZ4BdgEPOxBAAA</XPD:REF>
+<XPD:REF name="Participant">HvFFmfu3EU2Q5JpvC4V1dAAA</XPD:REF>
+<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
+<XPD:REF name="Views[0]">4EX0iPgXT0WYxWFInd77KQAA</XPD:REF>
+<XPD:REF name="Views[1]">34tfoxrPFkqQ6azctOeNhgAA</XPD:REF>
+<XPD:REF name="Views[2]">RTUJ+/IcmkmU5J4z/G0vWAAA</XPD:REF>
+<XPD:REF name="Views[3]">Q/HJJURAq0OyhISJkhdf6wAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="Connections[1]" type="UMLAssociationEnd" guid="pIDN0gCe306T092GLUvstgAA">
+<XPD:ATTR name="Multiplicity" type="string">0..1</XPD:ATTR>
+<XPD:REF name="Association">gPaQ+DIN6EWZ4BdgEPOxBAAA</XPD:REF>
+<XPD:REF name="Participant">ijjMqBZ6REK0iCxeAVpgAAAA</XPD:REF>
+<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
+<XPD:REF name="Views[0]">2Hiiw/pWfUCivqUfdBW8OwAA</XPD:REF>
+<XPD:REF name="Views[1]">+KVkT8ozQkemNWISCynPpQAA</XPD:REF>
+<XPD:REF name="Views[2]">Ma86Ms4jpU6yL/qb2Bb7CQAA</XPD:REF>
+<XPD:REF name="Views[3]">C2iw/esZgEmhWgrr+NZg+QAA</XPD:REF>
+</XPD:OBJ>
+</XPD:OBJ>
+<XPD:OBJ name="OwnedElements[9]" type="UMLAssociation" guid="+Ae9qqvOAEiQr4SuowB4xgAA">
+<XPD:REF name="Namespace">28q8akawHUut/vt9cqGzHQAA</XPD:REF>
+<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
+<XPD:REF name="Views[0]">l0EW19sL+k++O39a+OyjxQAA</XPD:REF>
+<XPD:REF name="Views[1]">Hzr4oQcJrkuoVCYMb8ik2QAA</XPD:REF>
+<XPD:REF name="Views[2]">Dd5BXxX0k0uHTHP6wlvpSgAA</XPD:REF>
+<XPD:REF name="Views[3]">Tpgj7+i4REuc+JlFB3AxGAAA</XPD:REF>
+<XPD:ATTR name="#Connections" type="integer">2</XPD:ATTR>
+<XPD:OBJ name="Connections[0]" type="UMLAssociationEnd" guid="Y3XN0KcISUujsCKot7FRwQAA">
+<XPD:ATTR name="Name" type="string">candidates</XPD:ATTR>
+<XPD:ATTR name="Multiplicity" type="string">*</XPD:ATTR>
+<XPD:REF name="Association">+Ae9qqvOAEiQr4SuowB4xgAA</XPD:REF>
+<XPD:REF name="Participant">nDDKC4LElEWTybRg7a79OQAA</XPD:REF>
+<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
+<XPD:REF name="Views[0]">3DFnlxZwKkOSCvZ3x80JIAAA</XPD:REF>
+<XPD:REF name="Views[1]">ZVJgTp3++0aX2CB2R8hCuQAA</XPD:REF>
+<XPD:REF name="Views[2]">AnVW30FHVU+3Ccfw7YrxnAAA</XPD:REF>
+<XPD:REF name="Views[3]">Ooz9JUM66E+ASSUnOnh1KwAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="Connections[1]" type="UMLAssociationEnd" guid="qhpWc/+HW0SLBBtfjX4WFwAA">
+<XPD:ATTR name="Aggregation" type="UMLAggregationKind">akAggregate</XPD:ATTR>
+<XPD:REF name="Association">+Ae9qqvOAEiQr4SuowB4xgAA</XPD:REF>
+<XPD:REF name="Participant">ijjMqBZ6REK0iCxeAVpgAAAA</XPD:REF>
+<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
+<XPD:REF name="Views[0]">Iz0U5YCBrka8yPUrXxKlCgAA</XPD:REF>
+<XPD:REF name="Views[1]">PN0Z99QsQ0aA06SWVhrzdgAA</XPD:REF>
+<XPD:REF name="Views[2]">wAtztCseO0m7PZc49MG+agAA</XPD:REF>
+<XPD:REF name="Views[3]">ft42mcFsHECO0yQKn8iDQQAA</XPD:REF>
+</XPD:OBJ>
+</XPD:OBJ>
+<XPD:OBJ name="OwnedElements[10]" type="UMLAssociation" guid="u9wX0QGdzEKXDMUSuMeSlAAA">
+<XPD:REF name="Namespace">28q8akawHUut/vt9cqGzHQAA</XPD:REF>
+<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
+<XPD:REF name="Views[0]">s97DNIncIUyqxXbneTudIQAA</XPD:REF>
+<XPD:REF name="Views[1]">5nJJhIKfP0aphx/wCbPj8QAA</XPD:REF>
+<XPD:REF name="Views[2]">GF15CGpxb0ihKLCpqEgiPwAA</XPD:REF>
+<XPD:REF name="Views[3]">mQ03MxKHVEGf7/sHqs6UNQAA</XPD:REF>
+<XPD:ATTR name="#Connections" type="integer">2</XPD:ATTR>
+<XPD:OBJ name="Connections[0]" type="UMLAssociationEnd" guid="zekdyR8yEUmNFK08gWI5UgAA">
+<XPD:ATTR name="Multiplicity" type="string">0..1</XPD:ATTR>
+<XPD:REF name="Association">u9wX0QGdzEKXDMUSuMeSlAAA</XPD:REF>
+<XPD:REF name="Participant">uTvluPMq6EiVrEzIldF+CwAA</XPD:REF>
+<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
+<XPD:REF name="Views[0]">ABsrUukx4UKDMLhPlPcXaAAA</XPD:REF>
+<XPD:REF name="Views[1]">llvYWWfx/E6vLX4zQ9IOHwAA</XPD:REF>
+<XPD:REF name="Views[2]">6oYASua5iUi3jt++CaJaRgAA</XPD:REF>
+<XPD:REF name="Views[3]">fncRPs0eyUay6gLlnfmaoAAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="Connections[1]" type="UMLAssociationEnd" guid="0vFa396IN0SfuCWKBLJF0AAA">
+<XPD:REF name="Association">u9wX0QGdzEKXDMUSuMeSlAAA</XPD:REF>
+<XPD:REF name="Participant">HvFFmfu3EU2Q5JpvC4V1dAAA</XPD:REF>
+<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
+<XPD:REF name="Views[0]">TFju0xnXzUeFLEfbHAgvxwAA</XPD:REF>
+<XPD:REF name="Views[1]">6pSDVmO3RUiGwA0KZzySZgAA</XPD:REF>
+<XPD:REF name="Views[2]">ZP18gpDXvEaqIO5x2PK4vwAA</XPD:REF>
+<XPD:REF name="Views[3]">LrU5/QaN5kabGVbUYT2uVwAA</XPD:REF>
+</XPD:OBJ>
+</XPD:OBJ>
+<XPD:OBJ name="OwnedElements[11]" type="UMLAssociation" guid="VOv3sCvVzEOalgoa+JC9YgAA">
+<XPD:REF name="Namespace">28q8akawHUut/vt9cqGzHQAA</XPD:REF>
+<XPD:ATTR name="#Connections" type="integer">2</XPD:ATTR>
+<XPD:OBJ name="Connections[0]" type="UMLAssociationEnd" guid="YROrTOuSWkmpMzIJdfaf/QAA">
+<XPD:REF name="Association">VOv3sCvVzEOalgoa+JC9YgAA</XPD:REF>
+<XPD:REF name="Participant">ijjMqBZ6REK0iCxeAVpgAAAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="Connections[1]" type="UMLAssociationEnd" guid="zKLAXgKQ/02weDYbKw8WmwAA">
+<XPD:ATTR name="Aggregation" type="UMLAggregationKind">akAggregate</XPD:ATTR>
+<XPD:REF name="Association">VOv3sCvVzEOalgoa+JC9YgAA</XPD:REF>
+<XPD:REF name="Participant">GioGPK3R6Ue8w6V2t8TzvgAA</XPD:REF>
+</XPD:OBJ>
+</XPD:OBJ>
+<XPD:OBJ name="OwnedElements[12]" type="UMLAssociation" guid="lT1ML7PzwUGLyiBN6ZM9ewAA">
+<XPD:REF name="Namespace">28q8akawHUut/vt9cqGzHQAA</XPD:REF>
+<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
+<XPD:REF name="Views[0]">hEfg3zF9T0KZqM6LoHkeywAA</XPD:REF>
+<XPD:REF name="Views[1]">Xp9wRzdQwUiqwJCNI5b4JQAA</XPD:REF>
+<XPD:REF name="Views[2]">dQQcX7/IbUGZGP/exqC6OQAA</XPD:REF>
+<XPD:REF name="Views[3]">wowPjb5qSEiE1UD8gtsPVAAA</XPD:REF>
+<XPD:ATTR name="#Connections" type="integer">2</XPD:ATTR>
+<XPD:OBJ name="Connections[0]" type="UMLAssociationEnd" guid="gXiNnV7a90+F3ShZ01TMFAAA">
+<XPD:REF name="Association">lT1ML7PzwUGLyiBN6ZM9ewAA</XPD:REF>
+<XPD:REF name="Participant">GioGPK3R6Ue8w6V2t8TzvgAA</XPD:REF>
+<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
+<XPD:REF name="Views[0]">kerBdAuXP0qGhUBsKsaVBgAA</XPD:REF>
+<XPD:REF name="Views[1]">24szT2Qfg0uwuXHurF5FawAA</XPD:REF>
+<XPD:REF name="Views[2]">4pcy4Hj8vUuVJIBH55+G8wAA</XPD:REF>
+<XPD:REF name="Views[3]">n+zAECOm3kuPp0U6fGa9qQAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="Connections[1]" type="UMLAssociationEnd" guid="xnq3//AvmkaNPVRDsIkseAAA">
+<XPD:REF name="Association">lT1ML7PzwUGLyiBN6ZM9ewAA</XPD:REF>
+<XPD:REF name="Participant">ijjMqBZ6REK0iCxeAVpgAAAA</XPD:REF>
+<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
+<XPD:REF name="Views[0]">fZzGyZZt1US3pySjYdbe3AAA</XPD:REF>
+<XPD:REF name="Views[1]">AmXw2BgBNk+PLXzTBtMTqgAA</XPD:REF>
+<XPD:REF name="Views[2]">UHz2AHAHTk6b0UBy27uYsgAA</XPD:REF>
+<XPD:REF name="Views[3]">oiGUCSbvcE2jf8t3N6P8eAAA</XPD:REF>
+</XPD:OBJ>
+</XPD:OBJ>
+<XPD:OBJ name="OwnedElements[13]" type="UMLAssociation" guid="AVjFcKW/SkGrDDjIOVRD+gAA">
+<XPD:REF name="Namespace">28q8akawHUut/vt9cqGzHQAA</XPD:REF>
+<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
+<XPD:REF name="Views[0]">0Q8MZMRv3keC5G0P3jqvLgAA</XPD:REF>
+<XPD:REF name="Views[1]">d3Kypc5e9USTEK3RieUIQgAA</XPD:REF>
+<XPD:REF name="Views[2]">uD+JnEzcwkSPAPXtxxC+uQAA</XPD:REF>
+<XPD:REF name="Views[3]">rnjCjREV6kK6FI664NzbmQAA</XPD:REF>
+<XPD:ATTR name="#Connections" type="integer">2</XPD:ATTR>
+<XPD:OBJ name="Connections[0]" type="UMLAssociationEnd" guid="s0hHwXTeU02e7YGLMAX0PAAA">
+<XPD:ATTR name="Name" type="string">subTasks</XPD:ATTR>
+<XPD:ATTR name="Multiplicity" type="string">*</XPD:ATTR>
+<XPD:REF name="Association">AVjFcKW/SkGrDDjIOVRD+gAA</XPD:REF>
+<XPD:REF name="Participant">HvFFmfu3EU2Q5JpvC4V1dAAA</XPD:REF>
+<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
+<XPD:REF name="Views[0]">GDNhCHzLh0WvJJ1jxSWCbAAA</XPD:REF>
+<XPD:REF name="Views[1]">X0imqN7kTUWC5VgPlkJ00gAA</XPD:REF>
+<XPD:REF name="Views[2]">qjcLVMn3yEiW/FQqSOppuwAA</XPD:REF>
+<XPD:REF name="Views[3]">poFTZVOeaUWdQnmYEjp2JgAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="Connections[1]" type="UMLAssociationEnd" guid="wi5BJHl4RkiqqqtC44D95QAA">
+<XPD:ATTR name="Aggregation" type="UMLAggregationKind">akAggregate</XPD:ATTR>
+<XPD:REF name="Association">AVjFcKW/SkGrDDjIOVRD+gAA</XPD:REF>
+<XPD:REF name="Participant">HvFFmfu3EU2Q5JpvC4V1dAAA</XPD:REF>
+<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
+<XPD:REF name="Views[0]">cfgsL9WLv0C08ZQHcVaKFAAA</XPD:REF>
+<XPD:REF name="Views[1]">5qWWjDhi90uAUXDD5YSGkAAA</XPD:REF>
+<XPD:REF name="Views[2]">L1KmK8JoRUSHUwvrb5aMcQAA</XPD:REF>
+<XPD:REF name="Views[3]">ghdCa3kzQUCEmb8k45FU/AAA</XPD:REF>
+</XPD:OBJ>
+</XPD:OBJ>
+<XPD:OBJ name="OwnedElements[14]" type="UMLAssociation" guid="3DEhC+Nv0kK7uqtxV6JcZwAA">
+<XPD:REF name="Namespace">28q8akawHUut/vt9cqGzHQAA</XPD:REF>
+<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
+<XPD:REF name="Views[0]">9vrgDuSQRkuGM2KpgQ681wAA</XPD:REF>
+<XPD:REF name="Views[1]">HPgV9SBY2kahngUOTUUnqgAA</XPD:REF>
+<XPD:REF name="Views[2]">4xtJRUX4cUW2j7LzmJ71HgAA</XPD:REF>
+<XPD:REF name="Views[3]">cOI/0aN4FEmtKry1i0zsGgAA</XPD:REF>
+<XPD:ATTR name="#Connections" type="integer">2</XPD:ATTR>
+<XPD:OBJ name="Connections[0]" type="UMLAssociationEnd" guid="zWDSiZ7kIEKvhXHKxmicAwAA">
+<XPD:ATTR name="Name" type="string">replies</XPD:ATTR>
+<XPD:ATTR name="Multiplicity" type="string">*</XPD:ATTR>
+<XPD:REF name="Association">3DEhC+Nv0kK7uqtxV6JcZwAA</XPD:REF>
+<XPD:REF name="Participant">NKuLMRCxwkeVGSHi+kJ4PAAA</XPD:REF>
+<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
+<XPD:REF name="Views[0]">MRGwgnyuZkenbLrSBgMGowAA</XPD:REF>
+<XPD:REF name="Views[1]">NDIxC9Q5bUq5Bq5jTTb6DAAA</XPD:REF>
+<XPD:REF name="Views[2]">E7w5n6j9t02OUqefF5g+GQAA</XPD:REF>
+<XPD:REF name="Views[3]">Hccf2ZoTsUGJM1WkqVxZHAAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="Connections[1]" type="UMLAssociationEnd" guid="9l7hGk4Y/kqJrk9GldzJ6QAA">
+<XPD:ATTR name="Aggregation" type="UMLAggregationKind">akAggregate</XPD:ATTR>
+<XPD:REF name="Association">3DEhC+Nv0kK7uqtxV6JcZwAA</XPD:REF>
+<XPD:REF name="Participant">NKuLMRCxwkeVGSHi+kJ4PAAA</XPD:REF>
+<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
+<XPD:REF name="Views[0]">mJSLnpapqEe+JCw/l9ZrWgAA</XPD:REF>
+<XPD:REF name="Views[1]">mbaATlJxY064398AzNkbrAAA</XPD:REF>
+<XPD:REF name="Views[2]">vQr9dU7oMkScUooE1diouQAA</XPD:REF>
+<XPD:REF name="Views[3]">v+lh/JYNEk2ckddRKkYMqgAA</XPD:REF>
+</XPD:OBJ>
+</XPD:OBJ>
+</XPD:OBJ>
+</XPD:OBJ>
+</XPD:BODY>
+</XPD:PROJECT>
Added: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/Assigner.java
===================================================================
--- jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/Assigner.java (rev 0)
+++ jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/Assigner.java 2008-11-13 14:05:05 UTC (rev 2908)
@@ -0,0 +1,35 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.task;
+
+import java.io.Serializable;
+
+import org.jbpm.Task;
+
+/** interface to delegate {@link Task} or {@link Swimlane} assignment.
+ * @author Tom Baeyens
+ */
+public interface Assigner extends Serializable {
+
+ /** sets the actorId and candidates for the given task. */
+ void assign(Task task) throws Exception;
+}
Property changes on: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/Assigner.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/Role.java
===================================================================
--- jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/Role.java (rev 0)
+++ jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/Role.java 2008-11-13 14:05:05 UTC (rev 2908)
@@ -0,0 +1,46 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.task;
+
+import org.jbpm.Task;
+
+/** a role that a person fullfills for a task.
+ *
+ * @author Tom Baeyens
+ */
+public interface Role {
+
+ long getDbid();
+
+ String getIdentityId();
+ void setIdentityId(String identityId);
+
+ RoleType getRoleType();
+ void setRoleType(RoleType roleType);
+
+ String getDescription();
+ void setDescription(String description);
+
+ Task getTask();
+
+ Swimlane getSwimlane();
+}
\ No newline at end of file
Property changes on: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/Role.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/RoleType.java
===================================================================
--- jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/RoleType.java (rev 0)
+++ jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/RoleType.java 2008-11-13 14:05:05 UTC (rev 2908)
@@ -0,0 +1,30 @@
+package org.jbpm.task;
+
+/** roleType of a person that is related to a task determines the
+ * privileges that are granted on the task. */
+public enum RoleType {
+
+ /** can do anything with the task */
+ OWNER,
+
+ /** alternative owner, but as long as this person is not the owner.
+ * This person is allowed to make comments, but nothing else. */
+ CANDIDATE,
+
+ /** person that will be using the result of this task. This person is
+ * allowed to make comments, but nothing else. */
+ CLIENT,
+
+ /** person that is allowed to watch-but-not-touch this task */
+ VIEWER,
+
+ /** a person that was assigned to a task, but got replaced because of
+ * absence or another reason. This way, a trace can be left in case
+ * This person returns and wants to take back his tasks that got
+ * reassigned. */
+ REPLACED_ASSIGNEE;
+
+ public String toString() {
+ return super.toString().toLowerCase().replace('_', '-');
+ }
+}
\ No newline at end of file
Property changes on: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/RoleType.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/Swimlane.java
===================================================================
--- jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/Swimlane.java (rev 0)
+++ jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/Swimlane.java 2008-11-13 14:05:05 UTC (rev 2908)
@@ -0,0 +1,46 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.task;
+
+import java.io.Serializable;
+import java.util.Collection;
+
+/** a runtime process role that can store an assignment so that
+ * multiple related tasks are assigned to the same actor.
+ *
+ * @author Tom Baeyens
+ */
+public interface Swimlane extends Serializable {
+
+ long getDbid();
+
+ String getName();
+
+ String getAssignee();
+ void setAssignee(String assignee);
+
+ Collection<Role> getCandidates();
+ Role createCandidate(String identityId);
+ void removeCandidate(Role candidate);
+
+ SwimlaneDefinition getSwimlaneDefinition();
+}
\ No newline at end of file
Property changes on: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/Swimlane.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/SwimlaneDefinition.java
===================================================================
--- jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/SwimlaneDefinition.java (rev 0)
+++ jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/SwimlaneDefinition.java 2008-11-13 14:05:05 UTC (rev 2908)
@@ -0,0 +1,39 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.task;
+
+import java.io.Serializable;
+
+/** design-time declaration of a swimlane.
+ *
+ * @author Tom Baeyens
+ */
+public interface SwimlaneDefinition extends Serializable {
+
+ long getDbid();
+
+ String getName();
+
+ String getActorIdExpression();
+ String getCandidatesExpression();
+ String getAssignmentExpression();
+}
\ No newline at end of file
Property changes on: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/SwimlaneDefinition.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/TaskDefinition.java
===================================================================
--- jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/TaskDefinition.java (rev 0)
+++ jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/TaskDefinition.java 2008-11-13 14:05:05 UTC (rev 2908)
@@ -0,0 +1,65 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.task;
+
+import java.util.List;
+
+import org.jbpm.pvm.internal.wire.Descriptor;
+import org.jbpm.pvm.model.ObservableElement;
+import org.jbpm.task.impl.SwimlaneDefinitionImpl;
+import org.jbpm.task.impl.TaskDefinitionImpl;
+
+/** design-time declaration of a task.
+ *
+ * @author Tom Baeyens
+ */
+public interface TaskDefinition extends ObservableElement {
+
+ String getForm();
+
+ String getAssigneeExpression();
+
+ Descriptor getAssignerDescriptor();
+
+ String getCandidatesExpression();
+
+ String getDueDateDuration();
+
+ /** indicates whether the process must be blocked as long as this task is
+ * not completed. blocking should be turned off by default (isBlocking=false).
+ * but if a user (through the process language) sets isBlocking to true, then
+ * the process cannot be signalled until all blocking tasks are completed first. */
+ boolean isBlocking();
+
+ /** indicates if completion of this task causes a signal on the related execution.
+ * This is to support n-out-of-m. Whenever an execution leaves a task node, all the
+ * tasks that are not completed, related to that execution should loose their
+ * signalling power. */
+ boolean isSignalling();
+
+ int getPriority();
+
+ List<TaskDefinitionImpl> getSubTaskDefinitions();
+
+ SwimlaneDefinitionImpl getSwimlaneDefinition();
+
+}
\ No newline at end of file
Property changes on: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/TaskDefinition.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/TaskException.java
===================================================================
--- jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/TaskException.java (rev 0)
+++ jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/TaskException.java 2008-11-13 14:05:05 UTC (rev 2908)
@@ -0,0 +1,40 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.task;
+
+public class TaskException extends RuntimeException {
+
+ private static final long serialVersionUID = 1L;
+
+ public TaskException() {
+ super();
+ }
+ public TaskException(String msg, Throwable cause) {
+ super(msg, cause);
+ }
+ public TaskException(String msg) {
+ super(msg);
+ }
+ public TaskException(Throwable cause) {
+ super(cause);
+ }
+}
Property changes on: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/TaskException.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/cmd/CreateTask.java
===================================================================
--- jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/cmd/CreateTask.java (rev 0)
+++ jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/cmd/CreateTask.java 2008-11-13 14:05:05 UTC (rev 2908)
@@ -0,0 +1,79 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.task.cmd;
+
+import org.jbpm.Task;
+import org.jbpm.cmd.Command;
+import org.jbpm.pvm.env.Environment;
+import org.jbpm.pvm.internal.model.ExecutionImpl;
+import org.jbpm.pvm.session.DbSession;
+import org.jbpm.task.impl.TaskDefinitionImpl;
+import org.jbpm.task.impl.TaskImpl;
+
+/**
+ * @author Tom Baeyens
+ */
+public class CreateTask implements Command<Task> {
+
+ private static final long serialVersionUID = 1L;
+
+ protected Long taskDefinitionDbid;
+ protected Long executionDbid;
+
+ public CreateTask() {
+ }
+
+ public CreateTask(long taskDefinitionDbid) {
+ this.taskDefinitionDbid = taskDefinitionDbid;
+ }
+
+ public CreateTask(long taskDefinitionDbid, long executionDbid) {
+ this.taskDefinitionDbid = taskDefinitionDbid;
+ this.executionDbid = executionDbid;
+ }
+
+ public Task execute(Environment environment) throws Exception {
+ TaskDefinitionImpl taskDefinition = null;
+ ExecutionImpl execution = null;
+
+ if (taskDefinitionDbid!=null) {
+ DbSession dbSession = environment.get(DbSession.class);
+ taskDefinition = dbSession.get(TaskDefinitionImpl.class, taskDefinitionDbid);
+ }
+
+ if (executionDbid!=null) {
+ DbSession dbSession = environment.get(DbSession.class);
+ execution = dbSession.get(ExecutionImpl.class, executionDbid);
+ }
+
+ Task task = null;
+ if (taskDefinition==null) {
+ task = TaskImpl.create();
+ } else if (execution==null) {
+ task = TaskImpl.create(taskDefinition);
+ } else {
+ task = TaskImpl.create(taskDefinition, execution);
+ }
+
+ return task;
+ }
+}
Property changes on: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/cmd/CreateTask.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/cmd/DeleteTask.java
===================================================================
--- jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/cmd/DeleteTask.java (rev 0)
+++ jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/cmd/DeleteTask.java 2008-11-13 14:05:05 UTC (rev 2908)
@@ -0,0 +1,49 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.task.cmd;
+
+import org.jbpm.cmd.Command;
+import org.jbpm.pvm.env.Environment;
+import org.jbpm.pvm.session.DbSession;
+import org.jbpm.task.impl.TaskImpl;
+
+/**
+ * @author Tom Baeyens
+ */
+public class DeleteTask implements Command<Void> {
+
+ private static final long serialVersionUID = 1L;
+
+ protected long taskDbid;
+
+ public DeleteTask(long taskDbid) {
+ this.taskDbid = taskDbid;
+ }
+
+ public Void execute(Environment environment) throws Exception {
+ DbSession dbSession = environment.get(DbSession.class);
+ TaskImpl task = dbSession.get(TaskImpl.class, taskDbid);
+ dbSession.delete(task);
+ return null;
+ }
+
+}
Property changes on: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/cmd/DeleteTask.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/cmd/GetTask.java
===================================================================
--- jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/cmd/GetTask.java (rev 0)
+++ jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/cmd/GetTask.java 2008-11-13 14:05:05 UTC (rev 2908)
@@ -0,0 +1,47 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.task.cmd;
+
+import org.jbpm.Task;
+import org.jbpm.cmd.Command;
+import org.jbpm.pvm.env.Environment;
+import org.jbpm.pvm.session.DbSession;
+import org.jbpm.task.impl.TaskImpl;
+
+/**
+ * @author Tom Baeyens
+ */
+public class GetTask implements Command<Task> {
+
+ private static final long serialVersionUID = 1L;
+
+ protected long taskDbid;
+
+ public GetTask(long taskDbid) {
+ this.taskDbid = taskDbid;
+ }
+
+ public Task execute(Environment environment) throws Exception {
+ DbSession dbSession = environment.get(DbSession.class);
+ return dbSession.get(TaskImpl.class, taskDbid);
+ }
+}
Property changes on: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/cmd/GetTask.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/cmd/UpdateTask.java
===================================================================
--- jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/cmd/UpdateTask.java (rev 0)
+++ jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/cmd/UpdateTask.java 2008-11-13 14:05:05 UTC (rev 2908)
@@ -0,0 +1,49 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.task.cmd;
+
+import org.jbpm.Task;
+import org.jbpm.cmd.Command;
+import org.jbpm.pvm.env.Environment;
+import org.jbpm.pvm.session.DbSession;
+
+
+/**
+ * @author Tom Baeyens
+ */
+public class UpdateTask implements Command<Void> {
+
+ private static final long serialVersionUID = 1L;
+
+ protected Task task;
+
+ public UpdateTask(Task task) {
+ this.task = task;
+ }
+
+ public Void execute(Environment environment) throws Exception {
+ DbSession dbSession = environment.get(DbSession.class);
+ dbSession.save(task);
+ return null;
+ }
+
+}
Property changes on: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/cmd/UpdateTask.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/db/TaskDbSession.java
===================================================================
--- jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/db/TaskDbSession.java (rev 0)
+++ jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/db/TaskDbSession.java 2008-11-13 14:05:05 UTC (rev 2908)
@@ -0,0 +1,34 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.task.db;
+
+import org.jbpm.pvm.internal.hibernate.HibernateDbSession;
+import org.jbpm.pvm.session.DbSession;
+
+/** persistence interface for tasks.
+ *
+ * @author Tom Baeyens
+ */
+public class TaskDbSession extends HibernateDbSession implements DbSession {
+
+ // TODO
+}
Property changes on: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/db/TaskDbSession.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/LifeCycle.java
===================================================================
--- jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/LifeCycle.java (rev 0)
+++ jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/LifeCycle.java 2008-11-13 14:05:05 UTC (rev 2908)
@@ -0,0 +1,89 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.task.impl;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.jbpm.Execution;
+import org.jbpm.pvm.client.ClientProcessInstance;
+import org.jbpm.pvm.internal.model.ExecutionImpl;
+import org.jbpm.pvm.internal.model.NodeImpl;
+import org.jbpm.pvm.internal.model.ProcessDefinitionImpl;
+import org.jbpm.pvm.internal.xml.Parse;
+import org.jbpm.pvm.model.Node;
+import org.jbpm.task.TaskException;
+
+/**
+ * @author Tom Baeyens
+ */
+public class LifeCycle {
+
+ private static LifeCycleParser lifeCycleParser = new LifeCycleParser();
+ private static Map<String, ProcessDefinitionImpl> lifeCycleProcesses = new HashMap<String, ProcessDefinitionImpl>();
+
+ public static String initialise(TaskImpl task) {
+ ProcessDefinitionImpl lifeCycle = getLifeCycle(task);
+ Map<String, Object> lifeCycleVariables = new HashMap<String, Object>();
+ lifeCycleVariables.put("task", task);
+ ClientProcessInstance lifeCycleExecution = lifeCycle.createProcessInstance();
+ lifeCycleExecution.setVariables(lifeCycleVariables);
+ lifeCycleExecution.start();
+ return lifeCycleExecution.getNode().getName();
+ }
+
+ public static ProcessDefinitionImpl getLifeCycle(TaskImpl task) {
+ if (task==null) {
+ throw new TaskException("task is null");
+ }
+ String resource = task.getLifeCycleResource();
+ if (resource==null) {
+ throw new TaskException("task "+task.getClass().getName()+" did'nt return a lifecycle");
+ }
+ ProcessDefinitionImpl lifeCycleProcess = null;
+ synchronized (lifeCycleProcesses) {
+ lifeCycleProcess = lifeCycleProcesses.get(resource);
+ if (lifeCycleProcess==null) {
+ lifeCycleProcess = (ProcessDefinitionImpl) lifeCycleParser
+ .createParse()
+ .setResource(resource)
+ .execute()
+ .checkProblems("task lifecycle")
+ .getDocumentObject();
+ lifeCycleProcesses.put(resource, lifeCycleProcess);
+ }
+ }
+ return lifeCycleProcess;
+ }
+
+ protected void fireLifeCycleEvent(String eventName, TaskImpl task) {
+ ExecutionImpl lifeCycleExecution = new ExecutionImpl();
+ ProcessDefinitionImpl lifeCycleProcess = getLifeCycle(task);
+ lifeCycleExecution.setProcessDefinition(lifeCycleProcess);
+ String state = task.getState();
+ Node node = lifeCycleProcess.getNode(state);
+ lifeCycleExecution.setNode((NodeImpl) node);
+ lifeCycleExecution.signal(eventName);
+ task.state = lifeCycleExecution.getNode().getName();
+ }
+
+}
Property changes on: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/LifeCycle.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/LifeCycleParser.java
===================================================================
--- jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/LifeCycleParser.java (rev 0)
+++ jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/LifeCycleParser.java 2008-11-13 14:05:05 UTC (rev 2908)
@@ -0,0 +1,109 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.task.impl;
+
+import java.util.List;
+
+import org.jbpm.pvm.internal.model.NodeImpl;
+import org.jbpm.pvm.internal.model.ProcessDefinitionImpl;
+import org.jbpm.pvm.internal.util.XmlUtil;
+import org.jbpm.pvm.internal.xml.Parse;
+import org.jbpm.pvm.internal.xml.Parser;
+import org.w3c.dom.Element;
+
+/**
+ * @author Tom Baeyens
+ */
+public class LifeCycleParser extends Parser {
+
+ public Object parseDocumentElement(Element element, Parse parse) {
+ ProcessDefinitionImpl lifeCycleProcess = new ProcessDefinitionImpl();
+
+ List<Element> stateElements = XmlUtil.elements(element, "state");
+ if (stateElements!=null) {
+ for (Element stateElement: stateElements) {
+ parseState(stateElement, lifeCycleProcess, parse);
+ }
+ for (Element stateElement: stateElements) {
+ parseTransitions(stateElement, lifeCycleProcess, parse);
+ }
+ }
+
+ String initialStateName = null;
+ if (element.hasAttribute("initial")) {
+ initialStateName = element.getAttribute("initial");
+ NodeImpl initial = (NodeImpl) lifeCycleProcess.getNode(initialStateName);
+ if (initial!=null) {
+ lifeCycleProcess.setInitial(initial);
+ } else {
+ parse.addProblem("initial "+initialStateName+" doesn't exist");
+ }
+ }
+
+ return lifeCycleProcess;
+ }
+
+ public void parseTransitions(Element element, ProcessDefinitionImpl lifeCycleProcess, Parse parse) {
+ if (! element.hasAttribute("name")) {
+ parse.addProblem("state doesn't have a name: "+XmlUtil.toString(element));
+ return;
+ }
+ String stateName = element.getAttribute("name");
+ NodeImpl state = (NodeImpl) lifeCycleProcess.getNode(stateName);
+
+ List<Element> transitionElements = XmlUtil.elements(element, "transition");
+ if (transitionElements!=null) {
+ for (Element transitionElement: transitionElements) {
+ parseTransition(transitionElement, state, parse);
+ }
+ }
+ }
+
+ public void parseTransition(Element element, NodeImpl state, Parse parse) {
+ if (! element.hasAttribute("name")) {
+ parse.addProblem("transition doesn't have a name: "+XmlUtil.toString(element));
+ return;
+ }
+ String transitionName = element.getAttribute("name");
+ if (! element.hasAttribute("to")) {
+ parse.addProblem("transition "+transitionName+" doesn't have a to attribute indicating the destination state: "+XmlUtil.toString(element));
+ return;
+ }
+ String destinationName = element.getAttribute("to");
+ NodeImpl destination = (NodeImpl) state.getProcessDefinition().getNode(destinationName);
+ if (destination!=null) {
+ state.createOutgoingTransition(destination, transitionName);
+ } else {
+ parse.addProblem("destination "+destinationName+" of "+transitionName+" is unknown");
+ }
+ }
+
+ public void parseState(Element element, ProcessDefinitionImpl lifeCycleProcess, Parse parse) {
+ if (! element.hasAttribute("name")) {
+ parse.addProblem("state doesn't have an id: "+XmlUtil.toString(element));
+ return;
+ }
+ String stateName = element.getAttribute("name");
+ NodeImpl state = lifeCycleProcess.createNode(stateName);
+ state.setBehaviour(new LifeCycleState());
+ }
+}
Property changes on: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/LifeCycleParser.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/LifeCycleState.java
===================================================================
--- jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/LifeCycleState.java (rev 0)
+++ jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/LifeCycleState.java 2008-11-13 14:05:05 UTC (rev 2908)
@@ -0,0 +1,41 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.task.impl;
+
+import java.util.Map;
+
+import org.jbpm.pvm.activity.ActivityExecution;
+import org.jbpm.pvm.activity.ExternalActivity;
+
+/**
+ * @author Tom Baeyens
+ */
+public class LifeCycleState implements ExternalActivity {
+
+ private static final long serialVersionUID = 1L;
+
+ public void signal(ActivityExecution execution, String signalName, Map<String, Object> parameters) throws Exception {
+ }
+
+ public void execute(ActivityExecution execution) throws Exception {
+ }
+}
Property changes on: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/LifeCycleState.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/RoleImpl.java
===================================================================
--- jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/RoleImpl.java (rev 0)
+++ jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/RoleImpl.java 2008-11-13 14:05:05 UTC (rev 2908)
@@ -0,0 +1,82 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.task.impl;
+
+import java.io.Serializable;
+
+import org.jbpm.task.Role;
+import org.jbpm.task.RoleType;
+
+
+/** the relation between a task and a person.
+ * @author Tom Baeyens
+ */
+public class RoleImpl implements Serializable, Role {
+
+ private static final long serialVersionUID = 1L;
+
+ protected long dbid;
+ protected int dbversion;
+ protected String identityId;
+ protected RoleType roleType;
+ protected String description;
+ protected TaskImpl task;
+ protected SwimlaneImpl swimlane;
+
+ public String toString() {
+ return roleType.toString()+"("+identityId+")";
+ }
+
+ public TaskImpl getTask() {
+ return task;
+ }
+ public void setTask(TaskImpl task) {
+ this.task = task;
+ }
+ public String getDescription() {
+ return description;
+ }
+ public void setDescription(String description) {
+ this.description = description;
+ }
+ public long getDbid() {
+ return dbid;
+ }
+ public SwimlaneImpl getSwimlane() {
+ return swimlane;
+ }
+ public void setSwimlane(SwimlaneImpl swimlane) {
+ this.swimlane = swimlane;
+ }
+ public RoleType getRoleType() {
+ return roleType;
+ }
+ public void setRoleType(RoleType roleType) {
+ this.roleType = roleType;
+ }
+ public String getIdentityId() {
+ return identityId;
+ }
+ public void setIdentityId(String identityId) {
+ this.identityId = identityId;
+ }
+}
Property changes on: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/RoleImpl.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/SwimlaneDefinitionImpl.java
===================================================================
--- jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/SwimlaneDefinitionImpl.java (rev 0)
+++ jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/SwimlaneDefinitionImpl.java 2008-11-13 14:05:05 UTC (rev 2908)
@@ -0,0 +1,99 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.task.impl;
+
+import java.io.Serializable;
+
+import org.jbpm.pvm.internal.util.EqualsUtil;
+import org.jbpm.task.SwimlaneDefinition;
+
+/**
+ * is a process role (aka participant).
+ */
+public class SwimlaneDefinitionImpl implements Serializable, SwimlaneDefinition {
+
+ private static final long serialVersionUID = 1L;
+
+ protected long dbid;
+ protected int dbversion;
+ protected String name = null;
+
+ /**
+ * expression that resolves to 1 single actorId.
+ */
+ protected String actorIdExpression = null;
+
+ /**
+ * expression that resolves to a comma separated list of actorIds.
+ */
+ protected String candidatesExpression = null;
+
+ /**
+ * expression that resolves to an AssignmentHandler implementation.
+ */
+ protected String assignmentExpression = null;
+
+ // equals ///////////////////////////////////////////////////////////////////
+ // hack to support comparing hibernate proxies against the real objects
+ // since this always falls back to ==, we don't need to overwrite the hashcode
+ public boolean equals(Object o) {
+ return EqualsUtil.equals(this, o);
+ }
+
+ public void setActorIdExpression(String actorIdExpression) {
+ // Note: combination of actorIdExpression and candidatesExpression is allowed
+ this.actorIdExpression = actorIdExpression;
+ this.assignmentExpression = null;
+ }
+ public void setCandidatesExpression(String pooledActorsExpression) {
+ // Note: combination of actorIdExpression and pooledActorsExpression is allowed
+ this.candidatesExpression = pooledActorsExpression;
+ this.assignmentExpression = null;
+ }
+ public void setAssignmentExpression(String assignmentExpression) {
+ // assignment expressions and assignmentDelegation are mutually exclusive
+ this.actorIdExpression = null;
+ this.candidatesExpression = null;
+ this.assignmentExpression = assignmentExpression;
+ }
+
+ // getters and setters //////////////////////////////////////////////////////
+
+ public long getDbid() {
+ return dbid;
+ }
+ public void setName(String name) {
+ this.name = name;
+ }
+ public String getName() {
+ return name;
+ }
+ public String getActorIdExpression() {
+ return actorIdExpression;
+ }
+ public String getCandidatesExpression() {
+ return candidatesExpression;
+ }
+ public String getAssignmentExpression() {
+ return assignmentExpression;
+ }
+}
Property changes on: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/SwimlaneDefinitionImpl.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/SwimlaneImpl.java
===================================================================
--- jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/SwimlaneImpl.java (rev 0)
+++ jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/SwimlaneImpl.java 2008-11-13 14:05:05 UTC (rev 2908)
@@ -0,0 +1,120 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.task.impl;
+
+import java.io.Serializable;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
+
+import org.jbpm.pvm.internal.util.EqualsUtil;
+import org.jbpm.task.Role;
+import org.jbpm.task.RoleType;
+import org.jbpm.task.Swimlane;
+import org.jbpm.task.SwimlaneDefinition;
+import org.jbpm.task.TaskException;
+
+/**
+ * runtime process role for a specific process instance.
+ */
+public class SwimlaneImpl implements Serializable, Swimlane {
+
+ private static final long serialVersionUID = 1L;
+
+ protected long dbid;
+ protected int dbversion;
+ protected String name = null;
+ protected String assignee = null;
+ protected Set<RoleImpl> candidates = null;
+ protected SwimlaneDefinition swimlaneDefinition = null;
+
+ // assignment methods ///////////////////////////////////////////////////////
+
+ public String getAssignee() {
+ return assignee;
+ }
+
+ public void setAssignee(String assignee) {
+ this.assignee = assignee;
+ }
+
+ // candidates ///////////////////////////////////////////////////////////////
+
+ public Collection<Role> getCandidates() {
+ if (candidates==null) {
+ return Collections.EMPTY_LIST;
+ }
+ return (Collection)candidates;
+ }
+
+ public Role createCandidate(String identityId) {
+ if (identityId==null) {
+ throw new TaskException("identityId is null");
+ }
+ RoleImpl role = new RoleImpl();
+ role.setIdentityId(identityId);
+ role.setRoleType(RoleType.CANDIDATE);
+ role.setSwimlane(this);
+ if (candidates==null) {
+ candidates = new HashSet<RoleImpl>();
+ }
+ candidates.add(role);
+ return role;
+ }
+
+ public void removeCandidate(Role candidate) {
+ if (candidate==null) {
+ throw new TaskException("candidate is null");
+ }
+ if ( (candidates!=null)
+ && (candidates.remove(candidate))
+ ) {
+ ((RoleImpl)candidate).setTask(null);
+ }
+ }
+
+ // equals ///////////////////////////////////////////////////////////////////
+ // hack to support comparing hibernate proxies against the real objects
+ // since this always falls back to ==, we don't need to overwrite the hashcode
+ public boolean equals(Object o) {
+ return EqualsUtil.equals(this, o);
+ }
+
+ // getters and setters //////////////////////////////////////////////////////
+
+ public long getDbid() {
+ return dbid;
+ }
+ public String getName() {
+ return name;
+ }
+ public SwimlaneDefinition getSwimlaneDefinition() {
+ return swimlaneDefinition;
+ }
+ public void setSwimlaneDefinition(SwimlaneDefinition swimlaneDefinition) {
+ this.swimlaneDefinition = swimlaneDefinition;
+ }
+ public void setName(String name) {
+ this.name = name;
+ }
+}
Property changes on: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/SwimlaneImpl.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/TaskDefinitionImpl.java
===================================================================
--- jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/TaskDefinitionImpl.java (rev 0)
+++ jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/TaskDefinitionImpl.java 2008-11-13 14:05:05 UTC (rev 2908)
@@ -0,0 +1,144 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.task.impl;
+
+import java.io.Serializable;
+import java.util.List;
+
+import org.jbpm.pvm.internal.model.ProcessElementImpl;
+import org.jbpm.pvm.internal.util.Priority;
+import org.jbpm.pvm.internal.wire.Descriptor;
+import org.jbpm.pvm.model.ObservableElement;
+import org.jbpm.task.TaskDefinition;
+
+/**
+ * defines a task and how the actor(s) must be calculated at runtime.
+ */
+public class TaskDefinitionImpl extends ProcessElementImpl implements Serializable, TaskDefinition {
+
+ private static final long serialVersionUID = 1L;
+
+ protected String name;
+ protected String description;
+
+ /** @see #isBlocking() */
+ protected boolean isBlocking;
+
+ /** @see #isSignalling() */
+ protected boolean isSignalling = true;
+
+ protected String dueDateDuration;
+ protected List<TaskDefinitionImpl> subTaskDefinitions;
+ protected int priority = Priority.NORMAL;
+ protected SwimlaneDefinitionImpl swimlaneDefinition;
+ protected String assigneeExpression;
+ protected String candidatesExpression;
+ protected Descriptor assignerDescriptor;
+
+
+ public String getForm() {
+ return (String) (properties!=null ? properties.get("form") : null);
+ }
+
+ public ObservableElement getParent() {
+ // TODO Auto-generated method stub
+ // huh ?
+ return null;
+ }
+
+ public boolean hasEvent(String eventName) {
+ // TODO Auto-generated method stub
+ // huh ?
+ return false;
+ }
+
+
+ // getters and setters //////////////////////////////////////////////////////
+
+ public String getAssigneeExpression() {
+ return assigneeExpression;
+ }
+ public void setAssigneeExpression(String assigneeExpression) {
+ this.assigneeExpression = assigneeExpression;
+ }
+ public Descriptor getAssignerDescriptor() {
+ return assignerDescriptor;
+ }
+ public void setAssignerDescriptor(Descriptor assignerDescriptor) {
+ this.assignerDescriptor = assignerDescriptor;
+ }
+ public String getCandidatesExpression() {
+ return candidatesExpression;
+ }
+ public void setCandidatesExpression(String candidatesExpression) {
+ this.candidatesExpression = candidatesExpression;
+ }
+ public boolean isBlocking() {
+ return isBlocking;
+ }
+ public void setBlocking(boolean isBlocking) {
+ this.isBlocking = isBlocking;
+ }
+ public boolean isSignalling() {
+ return isSignalling;
+ }
+ public void setSignalling(boolean isSignalling) {
+ this.isSignalling = isSignalling;
+ }
+ public int getPriority() {
+ return priority;
+ }
+ public void setPriority(int priority) {
+ this.priority = priority;
+ }
+ public List<TaskDefinitionImpl> getSubTaskDefinitions() {
+ return subTaskDefinitions;
+ }
+ public void setSubTaskDefinitions(List<TaskDefinitionImpl> subTaskDefinitions) {
+ this.subTaskDefinitions = subTaskDefinitions;
+ }
+ public SwimlaneDefinitionImpl getSwimlaneDefinition() {
+ return swimlaneDefinition;
+ }
+ public void setSwimlaneDefinition(SwimlaneDefinitionImpl swimlaneDefinition) {
+ this.swimlaneDefinition = swimlaneDefinition;
+ }
+ public String getName() {
+ return name;
+ }
+ public void setName(String name) {
+ this.name = name;
+ }
+ public String getDescription() {
+ return description;
+ }
+ public void setDescription(String description) {
+ this.description = description;
+ }
+ public String getDueDateDuration() {
+ return dueDateDuration;
+ }
+ public void setDueDateDuration(String dueDateDuration) {
+ this.dueDateDuration = dueDateDuration;
+ }
+
+}
Property changes on: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/TaskDefinitionImpl.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/TaskExecution.java
===================================================================
--- jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/TaskExecution.java (rev 0)
+++ jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/TaskExecution.java 2008-11-13 14:05:05 UTC (rev 2908)
@@ -0,0 +1,36 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.task.impl;
+
+import java.util.Map;
+
+import org.jbpm.Task;
+import org.jbpm.task.Swimlane;
+
+/**
+ * @author Tom Baeyens
+ */
+public interface TaskExecution {
+
+ Map<String, ? extends Task> getTasks();
+ Map<String, ? extends Swimlane> getSwimlanes();
+}
Property changes on: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/TaskExecution.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/TaskImpl.java
===================================================================
--- jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/TaskImpl.java (rev 0)
+++ jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/TaskImpl.java 2008-11-13 14:05:05 UTC (rev 2908)
@@ -0,0 +1,404 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.task.impl;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Date;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.jbpm.Execution;
+import org.jbpm.Task;
+import org.jbpm.pvm.env.Environment;
+import org.jbpm.pvm.internal.cal.Duration;
+import org.jbpm.pvm.internal.model.CommentImpl;
+import org.jbpm.pvm.internal.model.ExecutionImpl;
+import org.jbpm.pvm.internal.util.Clock;
+import org.jbpm.pvm.internal.util.EqualsUtil;
+import org.jbpm.pvm.internal.util.Priority;
+import org.jbpm.pvm.internal.util.ReflectUtil;
+import org.jbpm.pvm.model.Comment;
+import org.jbpm.task.Role;
+import org.jbpm.task.RoleType;
+import org.jbpm.task.Swimlane;
+import org.jbpm.task.TaskDefinition;
+import org.jbpm.task.TaskException;
+
+/**
+ * is one task instance that can be assigned to an actor (read: put in
+ * someones task list) and that can trigger the continuation of execution
+ * of the token upon completion.
+ */
+public class TaskImpl implements Serializable, Task {
+
+ private static final long serialVersionUID = 1L;
+ // private static final Logger log = Logger.getLogger(TaskImpl.class.getName());
+
+ // could be made configurable:
+ public static final String CONTEXTKEY_TASK_CLASS_NAME = "taskClassName";
+ public static final String[] SEARCHORDER_TASK_CLASS_NAME = new String[]{
+ // PvmEnvironment.CONTEXTNAME_APPLICATION
+ };
+
+ protected long dbid;
+ protected int dbversion;
+ protected String name;
+ protected String description;
+
+ protected String assignee;
+ protected Set<RoleImpl> roles;
+
+ protected Date create;
+ protected Date dueDate;
+ protected Integer progress;
+
+ // protected VariableMap variableMap;
+ protected List<CommentImpl> comments;
+
+ protected int priority = Priority.NORMAL;
+
+ protected String state;
+
+ protected Execution execution;
+ protected boolean isSignalling = true;
+ protected boolean isBlocking;
+
+ protected TaskDefinitionImpl taskDefinition;
+ protected SwimlaneImpl swimlane;
+
+ protected TaskImpl superTask;
+ protected Set<TaskImpl> subTasks;
+
+ protected TaskImpl() {
+ }
+
+ // creating a task
+
+ public static TaskImpl create() {
+ return create(null, null);
+ }
+
+ public static TaskImpl create(TaskDefinitionImpl taskDefinition) {
+ return create(taskDefinition, null);
+ }
+
+ public static TaskImpl create(TaskDefinitionImpl taskDefinition, ExecutionImpl execution) {
+ TaskImpl task = null;
+ // if a task class name is configured
+ Environment environment = Environment.getCurrent();
+ String taskClassName = (environment!=null ? (String) environment.get(TaskImpl.CONTEXTKEY_TASK_CLASS_NAME, TaskImpl.SEARCHORDER_TASK_CLASS_NAME) : null);
+ if (taskClassName!=null) {
+ // dynamically instantiate it
+ ClassLoader classLoader = environment.getClassLoader();
+ Class<?> taskClass = ReflectUtil.loadClass(classLoader, taskClassName);
+ task = (TaskImpl) ReflectUtil.newInstance(taskClass);
+
+ // otherwise just use the default task implementation type
+ } else {
+ task = new TaskImpl();
+ }
+
+ task.create = Clock.getCurrentTime();
+
+ task.setTaskDefinition(taskDefinition);
+ task.setExecution(execution);
+
+ // initialise the task state
+ task.state = LifeCycle.initialise(task);
+
+ return task;
+ }
+
+ public void setTaskDefinition(TaskDefinitionImpl taskDefinition) {
+ this.taskDefinition = taskDefinition;
+ if (taskDefinition!=null) {
+ this.name = taskDefinition.getName();
+ this.description = taskDefinition.getDescription();
+ this.isBlocking = taskDefinition.isBlocking();
+ this.isSignalling = taskDefinition.isSignalling();
+ this.priority = taskDefinition.getPriority();
+
+ String durationText = taskDefinition.getDueDateDuration();
+ if (durationText!=null) {
+ this.dueDate = calculateDueDate(new Duration(durationText));
+ }
+ }
+ }
+
+ protected static Date calculateDueDate(Duration dueDate) {
+ // TODO
+ return null;
+ }
+
+ // assigning a task /////////////////////////////////////////////////////////
+
+ public String getAssignee() {
+ return assignee;
+ }
+
+ public void setAssignee(String assignee) {
+ this.assignee = assignee;
+ // TODO fire the assignment event
+ }
+
+ // roles ////////////////////////////////////////////////////////////////////
+
+ public Set<RoleImpl> getRoles() {
+ if (roles==null) {
+ return Collections.EMPTY_SET;
+ }
+ return roles;
+ }
+
+ public Set<RoleImpl> getAllRoles() {
+ Set<RoleImpl> allRoles = null;
+ if (roles!=null) {
+ allRoles = new HashSet<RoleImpl>(roles);
+ } else {
+ allRoles = new HashSet<RoleImpl>();
+ }
+ if (swimlane!=null) {
+ allRoles.addAll((Set)swimlane.getCandidates());
+ }
+ return allRoles;
+ }
+
+ public Role addRole(String identityId, RoleType roleType) {
+ if (identityId==null) {
+ throw new TaskException("userId is null");
+ }
+ if (roleType==null) {
+ throw new TaskException("roleType is null");
+ }
+ RoleImpl role = new RoleImpl();
+ role.setIdentityId(identityId);
+ role.setTask(this);
+ role.setRoleType(roleType);
+ if (roles==null) {
+ roles = new HashSet<RoleImpl>();
+ }
+ roles.add(role);
+ return role;
+ }
+
+ public void removeRole(Role role) {
+ if (role==null) {
+ throw new TaskException("role is null");
+ }
+ if ( (roles!=null)
+ && (roles.remove(role))
+ ) {
+ ((RoleImpl)role).setTask(null);
+ }
+ }
+
+ // completion ///////////////////////////////////////////////////////////////
+
+ public void submit() {
+ submit(null);
+ }
+
+ public void submit(Map<String, Object> variables) {
+ }
+
+ // comments /////////////////////////////////////////////////////////////////
+
+ public List<Comment> getComments() {
+ if (comments==null) {
+ return Collections.EMPTY_LIST;
+ }
+ return (List) comments;
+ }
+
+ public Comment createComment(String commentText) {
+ if (comments==null) {
+ comments = new ArrayList<CommentImpl>();
+ }
+ CommentImpl comment = new CommentImpl(commentText);
+ comments.add(comment);
+ return comment;
+ }
+
+ public void removeComment(Comment comment) {
+ if (comment==null) {
+ throw new TaskException("comment is null");
+ }
+ if (comments!=null) {
+ comments.remove(comment);
+ }
+ }
+
+ // subtasks /////////////////////////////////////////////////////////////////
+
+ public Set<Task> getSubTasks() {
+ if (subTasks==null) {
+ return Collections.EMPTY_SET;
+ }
+ return (Set) subTasks;
+ }
+
+ public Task createSubTask(String name) {
+ if (subTasks==null) {
+ subTasks = new HashSet<TaskImpl>();
+ }
+ TaskImpl subtask = new TaskImpl();
+ subtask.setName(name);
+ addSubTask(subtask);
+ return subtask;
+ }
+
+ public Task createSubTask(TaskDefinition subtaskDefinition) {
+ if (subtaskDefinition==null) {
+ throw new TaskException("subtaskDefinition is null");
+ }
+ if (subTasks==null) {
+ subTasks = new HashSet<TaskImpl>();
+ }
+ TaskImpl subtask = create(taskDefinition);
+ addSubTask(subtask);
+ return subtask;
+ }
+
+ public Task addSubTask(TaskImpl subtask) {
+ if (subTasks==null) {
+ subTasks = new HashSet<TaskImpl>();
+ }
+ subtask.setSuperTask(this);
+ subTasks.add(subtask);
+ return subtask;
+ }
+
+ public void removeSubTask(Task subtask) {
+ if (subtask==null) {
+ throw new TaskException("subtask is null");
+ }
+ if ( (subTasks!=null)
+ && (subTasks.remove(subtask))
+ ) {
+ ((TaskImpl)subtask).setSuperTask(null);
+ }
+ }
+
+ // equals ///////////////////////////////////////////////////////////////////
+ // hack to support comparing hibernate proxies against the real objects
+ // since this always falls back to ==, we don't need to overwrite the hashcode
+ public boolean equals(Object o) {
+ return EqualsUtil.equals(this, o);
+ }
+
+ public String getLifeCycleResource() {
+ // the default lifecycle can be overridden in subclasses
+ return "org/jbpm/task/impl/default.lifecycle.xml";
+ }
+
+ // modified getters and setters /////////////////////////////////////////////
+ public void setProgress(Integer progress) {
+ if ( (progress<0)
+ || (progress>100)
+ ) {
+ throw new TaskException("task progress is a percentage (integer) and must be expressed between 0 and 100");
+ }
+ this.progress = progress;
+ }
+
+ // getters and setters //////////////////////////////////////////////////////
+
+ public String getDescription() {
+ return description;
+ }
+ public void setDescription(String description) {
+ this.description = description;
+ }
+ public String getName() {
+ return name;
+ }
+ public void setName(String name) {
+ this.name = name;
+ }
+ public boolean isBlocking() {
+ return isBlocking;
+ }
+ public void setBlocking(boolean isBlocking) {
+ this.isBlocking = isBlocking;
+ }
+ public boolean isSignalling() {
+ return isSignalling;
+ }
+ public void setSignalling(boolean isSignalling) {
+ this.isSignalling = isSignalling;
+ }
+ public int getPriority() {
+ return priority;
+ }
+ public void setPriority(int priority) {
+ this.priority = priority;
+ }
+ public void setComments(List<CommentImpl> comments) {
+ this.comments = comments;
+ }
+ public Date getCreate() {
+ return create;
+ }
+ public void setCreate(Date create) {
+ this.create = create;
+ }
+ public Date getDueDate() {
+ return dueDate;
+ }
+ public void setDueDate(Date dueDate) {
+ this.dueDate = dueDate;
+ }
+ public Execution getExecution() {
+ return execution;
+ }
+ public void setExecution(Execution execution) {
+ this.execution = execution;
+ }
+ public String getState() {
+ return state;
+ }
+ public Swimlane getSwimlane() {
+ return swimlane;
+ }
+ public void setSwimlane(SwimlaneImpl swimlane) {
+ this.swimlane = swimlane;
+ }
+ public long getDbid() {
+ return dbid;
+ }
+ public TaskDefinition getTaskDefinition() {
+ return taskDefinition;
+ }
+ public TaskImpl getSuperTask() {
+ return superTask;
+ }
+ public void setSuperTask(TaskImpl superTask) {
+ this.superTask = superTask;
+ }
+ public Integer getProgress() {
+ return progress;
+ }
+}
Property changes on: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/TaskImpl.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/TaskServiceImpl.java
===================================================================
--- jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/TaskServiceImpl.java (rev 0)
+++ jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/TaskServiceImpl.java 2008-11-13 14:05:05 UTC (rev 2908)
@@ -0,0 +1,91 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.task.impl;
+
+import java.util.List;
+
+import org.jbpm.Task;
+import org.jbpm.TaskService;
+import org.jbpm.cmd.CommandService;
+import org.jbpm.task.cmd.CreateTask;
+import org.jbpm.task.cmd.DeleteTask;
+import org.jbpm.task.cmd.GetTask;
+import org.jbpm.task.cmd.UpdateTask;
+
+
+/**
+ * @author Tom Baeyens
+ */
+public class TaskServiceImpl implements TaskService {
+
+ protected CommandService commandService;
+
+ public TaskServiceImpl() {
+ }
+
+ public TaskServiceImpl(CommandService commandService) {
+ this.commandService = commandService;
+ }
+
+ public Task createTask() {
+ return (Task) commandService.execute(new CreateTask());
+ }
+
+ public Task createTask(long taskDefinitionDbid) {
+ return (Task) commandService.execute(new CreateTask(taskDefinitionDbid));
+ }
+
+ public Task createTask(long taskDefinitionDbid, long executionDbid) {
+ return (Task) commandService.execute(new CreateTask(taskDefinitionDbid, executionDbid));
+ }
+
+ public void deleteTask(long taskDbid) {
+ commandService.execute(new DeleteTask(taskDbid));
+ }
+
+ public Task getTask(long taskDbid) {
+ return (Task) commandService.execute(new GetTask(taskDbid));
+ }
+
+ public void updateTask(Task task) {
+ commandService.execute(new UpdateTask(task));
+ }
+
+ public List<Task> getGroupTaskListPage(List<String> identityIds, int firstResult, int maxResults) {
+ throw new UnsupportedOperationException("TODO");
+ }
+
+ public List<Task> getPersonalTaskListPage(int firstResult, int maxResults) {
+ throw new UnsupportedOperationException("TODO");
+ }
+
+ public List<Task> getPersonalTaskListPage(String userId, int firstResult, int maxResults) {
+ throw new UnsupportedOperationException("TODO");
+ }
+
+ public CommandService getCommandService() {
+ return commandService;
+ }
+ public void setCommandService(CommandService commandService) {
+ this.commandService = commandService;
+ }
+}
Property changes on: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/TaskServiceImpl.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/default.lifecycle.xml
===================================================================
--- jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/default.lifecycle.xml (rev 0)
+++ jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/default.lifecycle.xml 2008-11-13 14:05:05 UTC (rev 2908)
@@ -0,0 +1,13 @@
+<task-lifecycle initial="open">
+ <state name="open">
+ <transition name="complete" to="completed" />
+ <transition name="suspend" to="suspended" />
+ <transition name="cancel" to="cancelled" />
+ </state>
+ <state name="suspended">
+ <transition name="resume" to="open" />
+ <transition name="cancel" to="cancelled" />
+ </state>
+ <state name="cancelled" />
+ <state name="completed" />
+</task-lifecycle>
Property changes on: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/impl/default.lifecycle.xml
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/task.model.jpg
===================================================================
(Binary files differ)
Property changes on: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/task.model.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/xml/TaskDbSessionBinding.java
===================================================================
--- jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/xml/TaskDbSessionBinding.java (rev 0)
+++ jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/xml/TaskDbSessionBinding.java 2008-11-13 14:05:05 UTC (rev 2908)
@@ -0,0 +1,49 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.task.xml;
+
+import org.jbpm.pvm.internal.xml.Binding;
+import org.jbpm.pvm.internal.xml.Parse;
+import org.jbpm.pvm.internal.xml.Parser;
+import org.w3c.dom.Element;
+
+
+/**
+ * @author Tom Baeyens
+ */
+public class TaskDbSessionBinding implements Binding {
+
+ public Object parse(Element element, Parse parse, Parser parser) {
+ return new TaskDbSessionDescriptor();
+ }
+
+ public String getCategory() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public boolean matches(Element element) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+}
Property changes on: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/xml/TaskDbSessionBinding.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/xml/TaskDbSessionDescriptor.java
===================================================================
--- jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/xml/TaskDbSessionDescriptor.java (rev 0)
+++ jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/xml/TaskDbSessionDescriptor.java 2008-11-13 14:05:05 UTC (rev 2908)
@@ -0,0 +1,51 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.task.xml;
+
+import org.hibernate.Session;
+import org.jbpm.pvm.internal.wire.WireContext;
+import org.jbpm.pvm.internal.wire.WireDefinition;
+import org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor;
+import org.jbpm.task.db.TaskDbSession;
+
+
+/**
+ * @author Tom Baeyens
+ */
+public class TaskDbSessionDescriptor extends AbstractDescriptor {
+
+ private static final long serialVersionUID = 1L;
+
+ public Object construct(WireContext wireContext) {
+ return new TaskDbSession();
+ }
+
+ public void initialize(Object object, WireContext wireContext) {
+ Session session = wireContext.get(Session.class);
+ TaskDbSession taskDbSession = (TaskDbSession) object;
+ taskDbSession.setSession(session);
+ }
+
+ public Class< ? > getType(WireDefinition wireDefinition) {
+ return TaskDbSession.class;
+ }
+}
Property changes on: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/xml/TaskDbSessionDescriptor.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/xml/TaskServiceBinding.java
===================================================================
--- jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/xml/TaskServiceBinding.java (rev 0)
+++ jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/xml/TaskServiceBinding.java 2008-11-13 14:05:05 UTC (rev 2908)
@@ -0,0 +1,49 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.task.xml;
+
+import org.jbpm.pvm.internal.xml.Binding;
+import org.jbpm.pvm.internal.xml.Parse;
+import org.jbpm.pvm.internal.xml.Parser;
+import org.w3c.dom.Element;
+
+
+/**
+ * @author Tom Baeyens
+ */
+public class TaskServiceBinding implements Binding {
+
+ public Object parse(Element element, Parse parse, Parser parser) {
+ return new TaskServiceDescriptor();
+ }
+
+ public String getCategory() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public boolean matches(Element element) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+}
Property changes on: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/xml/TaskServiceBinding.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/xml/TaskServiceDescriptor.java
===================================================================
--- jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/xml/TaskServiceDescriptor.java (rev 0)
+++ jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/xml/TaskServiceDescriptor.java 2008-11-13 14:05:05 UTC (rev 2908)
@@ -0,0 +1,50 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.task.xml;
+
+import org.jbpm.cmd.CommandService;
+import org.jbpm.pvm.internal.wire.WireContext;
+import org.jbpm.pvm.internal.wire.WireDefinition;
+import org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor;
+import org.jbpm.task.impl.TaskServiceImpl;
+
+/**
+ * @author Tom Baeyens
+ */
+public class TaskServiceDescriptor extends AbstractDescriptor {
+
+ private static final long serialVersionUID = 1L;
+
+ public Object construct(WireContext wireContext) {
+ return new TaskServiceImpl();
+ }
+
+ public void initialize(Object object, WireContext wireContext) {
+ CommandService commandService = wireContext.get(CommandService.class);
+ TaskServiceImpl taskService = (TaskServiceImpl) object;
+ taskService.setCommandService(commandService);
+ }
+
+ public Class< ? > getType(WireDefinition wireDefinition) {
+ return TaskServiceImpl.class;
+ }
+}
Property changes on: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/xml/TaskServiceDescriptor.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: jbpm4/trunk/modules/task/src/main/resources/hibernate.task.hbm.xml
===================================================================
--- jbpm4/trunk/modules/task/src/main/resources/hibernate.task.hbm.xml (rev 0)
+++ jbpm4/trunk/modules/task/src/main/resources/hibernate.task.hbm.xml 2008-11-13 14:05:05 UTC (rev 2908)
@@ -0,0 +1,152 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC
+ "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+ "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+<hibernate-mapping auto-import="false" package="org.jbpm.task.impl" default-access="field">
+
+ <!-- ### TASK DEFINITION ################################################ -->
+ <class name="TaskDefinitionImpl" discriminator-value="T">
+ <id name="dbid" column="DBID_">
+ <generator class="native" />
+ </id>
+ <discriminator type="char" column="CLASS_"/>
+ <version name="dbversion" column="DBVERSION_" />
+
+ <property name="name" column="NAME_"/>
+ <property name="description" column="DESCR_"/>
+
+ <property name="priority" column="PRIORITY_"/>
+ <property name="dueDateDuration" column="DUEDATE_"/>
+ <property name="isBlocking" column="BLOCK_"/>
+ <property name="isSignalling" column="SIGNAL_"/>
+ <property name="assigneeExpression" column="ASSIGNEE_EXPR_"/>
+ <property name="candidatesExpression" column="CANDIDATES_EXPR_"/>
+
+ <many-to-one name="assignerDescriptor"
+ column="ASSIGNER_DESCR_"
+ cascade="all"
+ class="org.jbpm.wire.descriptor.AbstractDescriptor"
+ foreign-key="FK_TSK_ASIG_DESCR"
+ index="IDX_TSK_ASIG_DESCR" />
+
+ <many-to-one name="swimlaneDefinition"
+ column="SWIMLANE_DEF_"
+ cascade="all"
+ class="SwimlaneDefinitionImpl"
+ foreign-key="FK_TSK_SWIML_DEF"
+ index="IDX_TSK_SWIML_DEF" />
+
+ <list name="subTaskDefinitions" cascade="all-delete-orphan">
+ <key column="TASKDEF_" />
+ <list-index column="TASKDEF_IDX_" />
+ <one-to-many class="TaskDefinitionImpl" />
+ </list>
+ </class>
+
+ <!-- ### TASK ########################################################### -->
+ <class name="TaskImpl"
+ discriminator-value="T">
+ <id name="dbid" column="DBID_">
+ <generator class="native" />
+ </id>
+ <discriminator type="char" column="CLASS_"/>
+ <version name="dbversion" column="DBVERSION_" />
+
+ <property name="name" column="NAME_"/>
+ <property name="description" column="DESCR_"/>
+ <property name="assignee" column="ASSIGNEE_"/>
+
+ <set name="roles" cascade="all-delete-orphan">
+ <key column="TASK_" foreign-key="FK_ROLE_TASK" />
+ <one-to-many class="RoleImpl" />
+ </set>
+
+ <property name="priority" column="PRIORITY_"/>
+ <property name="create" column="CREATE_"/>
+ <property name="dueDate" column="DUEDATE_"/>
+ <property name="progress" column="PROGRESS_"/>
+
+ <many-to-one name="variableMap"
+ class="org.jbpm.pvm.impl.VariableMap"
+ column="VARMAP_"
+ foreign-key="FK_TASK_VARMAP"
+ cascade="all" />
+
+ <many-to-one name="swimlane"
+ class="SwimlaneImpl"
+ column="SWIMLANE_"
+ foreign-key="FK_TASK_SWIML" />
+
+ <many-to-one name="taskDefinition"
+ column="TASK_DEF_"
+ class="TaskDefinitionImpl"
+ foreign-key="FK_TSK_DEF"
+ index="IDX_TSK_DEF" />
+
+ <list name="comments" cascade="all-delete-orphan">
+ <key column="TASK_" />
+ <list-index column="TASK_IDX_" />
+ <one-to-many class="org.jbpm.pvm.impl.CommentImpl" />
+ </list>
+
+ <set name="subTasks" cascade="all-delete-orphan">
+ <key column="SUPERTASK_" foreign-key="FK_TASK_SUPERTASK" />
+ <one-to-many class="TaskImpl" />
+ </set>
+
+ </class>
+
+ <!-- ### ROLE ########################################################### -->
+ <class name="RoleImpl"
+ discriminator-value="R">
+ <id name="dbid" column="DBID_">
+ <generator class="native" />
+ </id>
+ <discriminator type="char" column="CLASS_"/>
+ <version name="dbversion" column="DBVERSION_" />
+
+ <property name="identityId" column="IDENTITYID_"/>
+ <property name="roleType" type="org.jbpm.task.RoleType" column="ROLETYPE_" />
+ <property name="description" column="DESCR_"/>
+
+ <many-to-one name="task"
+ class="TaskImpl"
+ column="TASK_"
+ foreign-key="FK_ROLE_TASK" />
+
+ </class>
+
+ <!-- ### SWIMLANE DEFINITION ############################################ -->
+ <class name="SwimlaneDefinitionImpl">
+ <id name="dbid" column="DBID_">
+ <generator class="native" />
+ </id>
+ <version name="dbversion" column="DBVERSION_" />
+
+ <property name="name" column="NAME_"/>
+ </class>
+
+
+ <!-- ### SWIMLANE ####################################################### -->
+ <class name="SwimlaneImpl">
+ <id name="dbid" column="DBID_">
+ <generator class="native" />
+ </id>
+ <version name="dbversion" column="DBVERSION_" />
+
+ <property name="name" column="NAME_"/>
+ <property name="assignee" column="ASSIGNEE_"/>
+
+ <many-to-one name="swimlaneDefinition"
+ class="SwimlaneDefinitionImpl"
+ column="SWIMLANEDEF_"
+ foreign-key="FK_SWIMLANE_DEF" />
+
+ <set name="candidates" cascade="all-delete-orphan">
+ <key column="SWIMLANE_" foreign-key="FK_ROLE_SWIMLANE" />
+ <one-to-many class="RoleImpl" />
+ </set>
+
+ </class>
+
+</hibernate-mapping>
Property changes on: jbpm4/trunk/modules/task/src/main/resources/hibernate.task.hbm.xml
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: jbpm4/trunk/modules/task/src/main/resources/hibernate.task.queries.hbm.xml
===================================================================
--- jbpm4/trunk/modules/task/src/main/resources/hibernate.task.queries.hbm.xml (rev 0)
+++ jbpm4/trunk/modules/task/src/main/resources/hibernate.task.queries.hbm.xml 2008-11-13 14:05:05 UTC (rev 2908)
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+
+<!DOCTYPE hibernate-mapping PUBLIC
+ "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+ "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+
+<hibernate-mapping>
+
+
+ <query name="findTasks">
+ <![CDATA[
+ select task
+ from org.jbpm.task.impl.TaskImpl as task
+ ]]>
+ </query>
+
+
+</hibernate-mapping>
\ No newline at end of file
Property changes on: jbpm4/trunk/modules/task/src/main/resources/hibernate.task.queries.hbm.xml
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Added: jbpm4/trunk/modules/task/src/main/resources/pvm.hibernate.mappings.xml
===================================================================
--- jbpm4/trunk/modules/task/src/main/resources/pvm.hibernate.mappings.xml (rev 0)
+++ jbpm4/trunk/modules/task/src/main/resources/pvm.hibernate.mappings.xml 2008-11-13 14:05:05 UTC (rev 2908)
@@ -0,0 +1,4 @@
+<mappings>
+ <mapping resource="hibernate.task.hbm.xml" />
+ <mapping resource="hibernate.task.queries.hbm.xml" />
+</mappings>
Property changes on: jbpm4/trunk/modules/task/src/main/resources/pvm.hibernate.mappings.xml
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: jbpm4/trunk/modules/task/src/main/resources/pvm.wire.bindings.xml
===================================================================
--- jbpm4/trunk/modules/task/src/main/resources/pvm.wire.bindings.xml (rev 0)
+++ jbpm4/trunk/modules/task/src/main/resources/pvm.wire.bindings.xml 2008-11-13 14:05:05 UTC (rev 2908)
@@ -0,0 +1,6 @@
+<wire-bindings>
+
+ <binding tag="task-db-session" class="org.jbpm.task.xml.TaskDbSessionBinding" category="descriptor" />
+ <binding tag="task-service" class="org.jbpm.task.xml.TaskServiceBinding" category="descriptor" />
+
+</wire-bindings>
Property changes on: jbpm4/trunk/modules/task/src/main/resources/pvm.wire.bindings.xml
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: jbpm4/trunk/modules/task/src/test/java/org/jbpm/task/TaskDbTest.java
===================================================================
--- jbpm4/trunk/modules/task/src/test/java/org/jbpm/task/TaskDbTest.java (rev 0)
+++ jbpm4/trunk/modules/task/src/test/java/org/jbpm/task/TaskDbTest.java 2008-11-13 14:05:05 UTC (rev 2908)
@@ -0,0 +1,399 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.task;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.jbpm.Task;
+import org.jbpm.pvm.env.Environment;
+import org.jbpm.pvm.env.EnvironmentFactory;
+import org.jbpm.pvm.internal.util.Clock;
+import org.jbpm.pvm.internal.util.Priority;
+import org.jbpm.pvm.model.Comment;
+import org.jbpm.pvm.session.DbSession;
+import org.jbpm.task.impl.RoleImpl;
+import org.jbpm.task.impl.SwimlaneImpl;
+import org.jbpm.task.impl.TaskDefinitionImpl;
+import org.jbpm.task.impl.TaskImpl;
+import org.jbpm.test.DbTestCase;
+import org.jbpm.test.EnvironmentDbTestCase;
+
+/**
+ * @author Tom Baeyens
+ */
+public class TaskDbTest extends EnvironmentDbTestCase {
+
+ public void testTask() {
+ Date now = new Date();
+ Date inFiveMinutes = new Date(now.getTime()+ (5*60*1000));
+
+ TaskImpl task;
+ try {
+ Clock.setCurrentTime(now);
+ task = TaskImpl.create();
+ } finally {
+ Clock.setCurrentTime(null);
+ }
+ task.setName("hello");
+ task.setDescription("say hello to your neighbour developer");
+ task.setDueDate(inFiveMinutes);
+ task.setPriority(Priority.HIGHEST);
+
+ task = reload(task, TaskImpl.class);
+
+ assertEquals("hello", task.getName());
+ assertEquals("say hello to your neighbour developer", task.getDescription());
+ assertEquals(now, task.getCreate());
+ assertEquals(inFiveMinutes, task.getDueDate());
+ assertEquals(Priority.HIGHEST, task.getPriority());
+ }
+
+ public void testTaskAssignment() {
+ TaskImpl task = TaskImpl.create();
+ task.setAssignee("john doe");
+
+ task = reload(task, TaskImpl.class);
+
+ assertEquals("john doe", task.getAssignee());
+ }
+
+ public void testTaskReassignmentAssignment() {
+ TaskImpl task = TaskImpl.create();
+ task.setAssignee("johndoe");
+ assertEquals("johndoe", task.getAssignee());
+
+ task = reload(task, TaskImpl.class);
+
+ task.setAssignee("joesmoe");
+
+ task = reload(task, TaskImpl.class);
+
+ assertEquals("joesmoe", task.getAssignee());
+ }
+
+ public void testTaskRoles() {
+ TaskImpl task = TaskImpl.create();
+
+ assertNotNull(task.getRoles());
+ assertEquals(0, task.getRoles().size());
+
+ task.addRole("john doe", RoleType.CLIENT).setDescription("uses the result");
+ task.addRole("joe smoe", RoleType.OWNER).setDescription("does what he wants");
+ task.addRole("jack black", RoleType.CANDIDATE).setDescription("can take this task");
+ task.addRole("jim slim", RoleType.VIEWER).setDescription("is allowed to see");
+ task.addRole("jeff nef", RoleType.REPLACED_ASSIGNEE).setDescription("is sick");
+
+ task = reload(task, TaskImpl.class);
+
+ Map<String, RoleImpl> roleMap = getRoleMap(task.getRoles());
+
+ assertEquals(RoleType.CLIENT, roleMap.get("john doe").getRoleType());
+ assertEquals("uses the result", roleMap.get("john doe").getDescription());
+
+ assertEquals(RoleType.OWNER, roleMap.get("joe smoe").getRoleType());
+ assertEquals("does what he wants", roleMap.get("joe smoe").getDescription());
+
+ assertEquals(RoleType.CANDIDATE, roleMap.get("jack black").getRoleType());
+ assertEquals("can take this task", roleMap.get("jack black").getDescription());
+
+ assertEquals(RoleType.VIEWER, roleMap.get("jim slim").getRoleType());
+ assertEquals("is allowed to see", roleMap.get("jim slim").getDescription());
+
+ assertEquals(RoleType.REPLACED_ASSIGNEE, roleMap.get("jeff nef").getRoleType());
+ assertEquals("is sick", roleMap.get("jeff nef").getDescription());
+
+ assertEquals(5, roleMap.size());
+
+ task.removeRole(roleMap.get("john doe"));
+
+ task = reload(task, TaskImpl.class);
+
+ assertEquals(4, task.getRoles().size());
+ task.removeRole(getRoleMap(task.getRoles()).get("joe smoe"));
+
+ task = reload(task, TaskImpl.class);
+
+ assertEquals(3, task.getRoles().size());
+ task.removeRole(getRoleMap(task.getRoles()).get("jack black"));
+
+ task = reload(task, TaskImpl.class);
+
+ assertEquals(2, task.getRoles().size());
+ task.removeRole(getRoleMap(task.getRoles()).get("jim slim"));
+
+ task = reload(task, TaskImpl.class);
+
+ assertEquals(1, task.getRoles().size());
+ task.removeRole(getRoleMap(task.getRoles()).get("jeff nef"));
+
+ task = reload(task, TaskImpl.class);
+
+ assertEquals(0, getRoleMap(task.getRoles()).size());
+ }
+
+ public static Map<String, RoleImpl> getRoleMap(Set<RoleImpl> roles) {
+ Map<String, RoleImpl> roleMap = new HashMap<String, RoleImpl>();
+ for (RoleImpl role: roles) {
+ roleMap.put(role.getIdentityId(), role);
+ }
+ return roleMap;
+ }
+
+ public void testTaskAllRoles() {
+ SwimlaneImpl manager = new SwimlaneImpl();
+
+ manager.createCandidate("joe smoe").setDescription("too much tostesteron");
+ manager.createCandidate("jack black").setDescription("the pigeon");
+ manager.createCandidate("jim slim").setDescription("lame duck");
+
+ manager = reload(manager, SwimlaneImpl.class);
+
+ TaskImpl task = TaskImpl.create();
+ assertNotNull(task.getAllRoles());
+ assertEquals(0, task.getAllRoles().size());
+
+ task.addRole("john doe", RoleType.CLIENT).setDescription("uses the result");
+ assertEquals(1, task.getAllRoles().size());
+
+ task.addRole("jeff nef", RoleType.REPLACED_ASSIGNEE).setDescription("is sick");
+ task.setSwimlane(manager);
+
+ task = reload(task, TaskImpl.class);
+
+ Map<String, RoleImpl> roleMap = getRoleMap(task.getAllRoles());
+
+ assertEquals(RoleType.CLIENT, roleMap.get("john doe").getRoleType());
+ assertEquals("uses the result", roleMap.get("john doe").getDescription());
+
+ assertEquals(RoleType.CANDIDATE, roleMap.get("joe smoe").getRoleType());
+ assertEquals("too much tostesteron", roleMap.get("joe smoe").getDescription());
+
+ assertEquals(RoleType.CANDIDATE, roleMap.get("jack black").getRoleType());
+ assertEquals("the pigeon", roleMap.get("jack black").getDescription());
+
+ assertEquals(RoleType.CANDIDATE, roleMap.get("jim slim").getRoleType());
+ assertEquals("lame duck", roleMap.get("jim slim").getDescription());
+
+ assertEquals(RoleType.REPLACED_ASSIGNEE, roleMap.get("jeff nef").getRoleType());
+ assertEquals("is sick", roleMap.get("jeff nef").getDescription());
+
+ assertEquals(5, roleMap.size());
+
+ task.removeRole(roleMap.get("john doe"));
+
+ task = reload(task, TaskImpl.class);
+ manager = environment.get(DbSession.class).get(SwimlaneImpl.class, manager.getDbid());
+
+ assertEquals(4, task.getAllRoles().size());
+ manager.removeCandidate(getRoleMap(task.getAllRoles()).get("joe smoe"));
+
+ task = reload(task, TaskImpl.class);
+ manager = environment.get(DbSession.class).get(SwimlaneImpl.class, manager.getDbid());
+
+ assertEquals(3, task.getAllRoles().size());
+ manager.removeCandidate(getRoleMap(task.getAllRoles()).get("jack black"));
+
+ task = reload(task, TaskImpl.class);
+ manager = environment.get(DbSession.class).get(SwimlaneImpl.class, manager.getDbid());
+
+ assertEquals(2, task.getAllRoles().size());
+ manager.removeCandidate(getRoleMap(task.getAllRoles()).get("jim slim"));
+
+ task = reload(task, TaskImpl.class);
+ manager = environment.get(DbSession.class).get(SwimlaneImpl.class, manager.getDbid());
+
+ assertEquals(1, task.getAllRoles().size());
+ task.removeRole(getRoleMap(task.getAllRoles()).get("jeff nef"));
+
+ task = reload(task, TaskImpl.class);
+
+ assertEquals(0, task.getAllRoles().size());
+ }
+
+ /*
+ public void testTaskComment() {
+ EnvironmentFactory environmentFactory = EnvironmentFactory.parseXmlString("<environment/>");
+ TaskImpl task = TaskImpl.create();
+
+ Environment environment = environmentFactory.openEnvironment();
+ try {
+ environment.setUserId("john doe");
+ task.createComment("should I really do this ? yuk.");
+ } finally {
+ environment.close();
+ }
+
+ task = reload(task, TaskImpl.class);
+
+ environment = environmentFactory.openEnvironment();
+ try {
+ environment.setUserId("joe smoe");
+ task.createComment("yes, you should really do it.");
+ } finally {
+ environment.close();
+ }
+
+ task = reload(task, TaskImpl.class);
+
+ List<Comment> comments = task.getComments();
+ assertNotNull(comments);
+
+ assertEquals("should I really do this ? yuk.", comments.get(0).getMessage());
+ assertEquals("john doe", comments.get(0).getUserId());
+
+ assertEquals("yes, you should really do it.", comments.get(1).getMessage());
+ assertEquals("joe smoe", comments.get(1).getUserId());
+ }
+
+ public void testTaskCommentReplies() {
+ TaskImpl task = TaskImpl.create();
+ Comment comment = task.createComment("hi, how are you?");
+ Comment reply = comment.createReply("i'm fine, thanks");
+ reply = reply.createReply("nice wheather, huh");
+ reply.createReply("snow's great fun");
+
+ task = reload(task, TaskImpl.class);
+
+ comment = task.createComment("are you going to the office?");
+ reply = comment.createReply("no not now");
+ reply = reply.createReply("when are you going");
+ reply.createReply("later");
+
+ task = reload(task, TaskImpl.class);
+
+ List<Comment> comments = task.getComments();
+ assertEquals("hi, how are you?", comments.get(0).getMessage());
+ assertEquals("i'm fine, thanks", comments.get(0).getReplies().get(0).getMessage());
+ assertEquals("nice wheather, huh", comments.get(0).getReplies().get(0).getReplies().get(0).getMessage());
+ assertEquals("snow's great fun", comments.get(0).getReplies().get(0).getReplies().get(0).getReplies().get(0).getMessage());
+
+ assertEquals("are you going to the office?", comments.get(1).getMessage());
+ assertEquals("no not now", comments.get(1).getReplies().get(0).getMessage());
+ assertEquals("when are you going", comments.get(1).getReplies().get(0).getReplies().get(0).getMessage());
+ assertEquals("later", comments.get(1).getReplies().get(0).getReplies().get(0).getReplies().get(0).getMessage());
+
+ comment = task.getComments().get(0);
+ comment.removeReply(comment.getReplies().get(0));
+
+ task = reload(task, TaskImpl.class);
+
+ assertEquals("hi, how are you?", comment.getMessage());
+ assertTrue(comment.getReplies().isEmpty());
+ assertEquals(2, task.getComments().size());
+
+ task.removeComment(task.getComments().get(1));
+
+ task = reload(task, TaskImpl.class);
+
+ assertEquals(1, task.getComments().size());
+ assertEquals("hi, how are you?", comment.getMessage());
+ }
+
+ public void testTaskWithDefinition() {
+ TaskDefinitionImpl taskDefinition = new TaskDefinitionImpl();
+ taskDefinition.setName("hello");
+ taskDefinition.setPriority(Priority.HIGH);
+
+ taskDefinition = reload(taskDefinition, TaskDefinitionImpl.class);
+
+ TaskImpl task = TaskImpl.create(taskDefinition);
+
+ task = reload(task, TaskImpl.class);
+
+ assertEquals("hello", task.getName());
+ assertEquals(Priority.HIGH, task.getPriority());
+ assertEquals("hello", task.getTaskDefinition().getName());
+ }
+
+ public void testSubTasks() {
+ TaskImpl improveWorld = TaskImpl.create();
+ improveWorld.setName("improve the world");
+
+ improveWorld.createSubTask("try to automate everything");
+
+ improveWorld = reload(improveWorld, TaskImpl.class);
+
+ improveWorld.createSubTask("discover the problem is in the workflow part");
+ TaskImpl writeWorkflowEngine = (TaskImpl) improveWorld.createSubTask("write an open source workflow engine");
+ writeWorkflowEngine.createSubTask("create a sf.net project");
+ Task commitCode = writeWorkflowEngine.createSubTask("commit code to cvs");
+ writeWorkflowEngine.createSubTask("nurture it and grow it");
+ writeWorkflowEngine.createSubTask("harvest a beautiful project");
+
+ improveWorld.createSubTask("automate everything with workflow");
+ improveWorld.createSubTask("create peace everywhere");
+
+ improveWorld = reload(improveWorld, TaskImpl.class);
+
+ writeWorkflowEngine = environment.get(DbSession.class).get(TaskImpl.class, writeWorkflowEngine.getDbid());
+
+ Set<String> expectedSubtaskNames = new HashSet<String>();
+ expectedSubtaskNames.add("try to automate everything");
+ expectedSubtaskNames.add("discover the problem is in the workflow part");
+ expectedSubtaskNames.add("write an open source workflow engine");
+ expectedSubtaskNames.add("automate everything with workflow");
+ expectedSubtaskNames.add("create peace everywhere");
+
+ Set<Task> subtasks = improveWorld.getSubTasks();
+ Set<String> subtaskNames = new HashSet<String>();
+ for (Task subtask: subtasks) {
+ subtaskNames.add(subtask.getName());
+ }
+
+ assertEquals(expectedSubtaskNames, subtaskNames);
+
+ expectedSubtaskNames = new HashSet<String>();
+ expectedSubtaskNames.add("create a sf.net project");
+ expectedSubtaskNames.add("commit code to cvs");
+ expectedSubtaskNames.add("nurture it and grow it");
+ expectedSubtaskNames.add("harvest a beautiful project");
+
+ subtasks = writeWorkflowEngine.getSubTasks();
+ subtaskNames = new HashSet<String>();
+ for (Task subtask: subtasks) {
+ subtaskNames.add(subtask.getName());
+ }
+
+ assertEquals(expectedSubtaskNames, subtaskNames);
+
+ writeWorkflowEngine = reload(writeWorkflowEngine, TaskImpl.class);
+ commitCode = environment.get(DbSession.class).get(TaskImpl.class, commitCode.getDbid());
+ writeWorkflowEngine.removeSubTask(commitCode);
+ expectedSubtaskNames.remove("commit code to cvs");
+
+ writeWorkflowEngine = reload(writeWorkflowEngine, TaskImpl.class);
+
+ subtasks = writeWorkflowEngine.getSubTasks();
+ subtaskNames = new HashSet<String>();
+ for (Task subtask: subtasks) {
+ subtaskNames.add(subtask.getName());
+ }
+
+ assertEquals(expectedSubtaskNames, subtaskNames);
+ }
+ */
+}
Property changes on: jbpm4/trunk/modules/task/src/test/java/org/jbpm/task/TaskDbTest.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: jbpm4/trunk/modules/task/src/test/java/org/jbpm/task/TaskServiceTest.java
===================================================================
--- jbpm4/trunk/modules/task/src/test/java/org/jbpm/task/TaskServiceTest.java (rev 0)
+++ jbpm4/trunk/modules/task/src/test/java/org/jbpm/task/TaskServiceTest.java 2008-11-13 14:05:05 UTC (rev 2908)
@@ -0,0 +1,66 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.task;
+
+import java.util.Date;
+import java.util.List;
+
+import org.hibernate.Session;
+import org.jbpm.Task;
+import org.jbpm.cmd.Command;
+import org.jbpm.cmd.CommandService;
+import org.jbpm.pvm.env.Environment;
+import org.jbpm.task.impl.TaskImpl;
+import org.jbpm.test.DbTestCase;
+
+/**
+ * @author Tom Baeyens
+ */
+public class TaskServiceTest extends DbTestCase {
+
+ public void testTaskService() {
+ Task task = taskService.createTask();
+ task.setName("doing the dishes");
+ Date now = new Date();
+ task.setDueDate(now);
+ taskService.updateTask(task);
+
+ long taskDbid = task.getDbid();
+ task = taskService.getTask(taskDbid);
+ assertEquals("doing the dishes", task.getName());
+ assertEquals(now, task.getDueDate());
+
+ taskService.deleteTask(taskDbid);
+
+ // verify that the task table is empty
+ CommandService commandService = null;
+ commandService.execute(new Command() {
+ public Object execute(Environment environment) throws Exception {
+ Session session = environment.get(Session.class);
+ List tasks = session.createQuery("from "+TaskImpl.class.getName()).list();
+ assertEquals(0, tasks.size());
+ return null;
+ }
+ });
+ }
+
+}
Property changes on: jbpm4/trunk/modules/task/src/test/java/org/jbpm/task/TaskServiceTest.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: jbpm4/trunk/modules/task/src/test/java/org/jbpm/task/TaskTest.java
===================================================================
--- jbpm4/trunk/modules/task/src/test/java/org/jbpm/task/TaskTest.java (rev 0)
+++ jbpm4/trunk/modules/task/src/test/java/org/jbpm/task/TaskTest.java 2008-11-13 14:05:05 UTC (rev 2908)
@@ -0,0 +1,319 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.task;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.jbpm.Task;
+import org.jbpm.pvm.env.Environment;
+import org.jbpm.pvm.env.EnvironmentFactory;
+import org.jbpm.pvm.internal.util.Clock;
+import org.jbpm.pvm.internal.util.Priority;
+import org.jbpm.pvm.model.Comment;
+import org.jbpm.task.impl.RoleImpl;
+import org.jbpm.task.impl.SwimlaneImpl;
+import org.jbpm.task.impl.TaskDefinitionImpl;
+import org.jbpm.task.impl.TaskImpl;
+import org.jbpm.test.JbpmTestCase;
+
+/**
+ * @author Tom Baeyens
+ */
+public class TaskTest extends JbpmTestCase {
+
+ public void testTask() {
+ Date now = new Date();
+ Date inFiveMinutes = new Date(now.getTime()+ (5*60*1000));
+
+ TaskImpl task;
+ try {
+ Clock.setCurrentTime(now);
+ task = TaskImpl.create();
+ } finally {
+ Clock.setCurrentTime(null);
+ }
+ task.setName("hello");
+ task.setDescription("say hello to your neighbour developer");
+ task.setDueDate(inFiveMinutes);
+ task.setPriority(Priority.HIGHEST);
+
+ assertEquals("hello", task.getName());
+ assertEquals("say hello to your neighbour developer", task.getDescription());
+ assertEquals(now, task.getCreate());
+ assertEquals(inFiveMinutes, task.getDueDate());
+ assertEquals(Priority.HIGHEST, task.getPriority());
+ }
+
+ public void testTaskAssignment() {
+ TaskImpl task = TaskImpl.create();
+ task.setAssignee("john doe");
+ assertEquals("john doe", task.getAssignee());
+ }
+
+ public void testTaskReassignmentAssignment() {
+ TaskImpl task = TaskImpl.create();
+ task.setAssignee("johndoe");
+ assertEquals("johndoe", task.getAssignee());
+ task.setAssignee("joesmoe");
+ assertEquals("joesmoe", task.getAssignee());
+ }
+
+ public void testTaskRoles() {
+ TaskImpl task = TaskImpl.create();
+
+ assertNotNull(task.getRoles());
+ assertEquals(0, task.getRoles().size());
+
+ task.addRole("john doe", RoleType.CLIENT).setDescription("uses the result");
+ task.addRole("joe smoe", RoleType.OWNER).setDescription("does what he wants");
+ task.addRole("jack black", RoleType.CANDIDATE).setDescription("can take this task");
+ task.addRole("jim slim", RoleType.VIEWER).setDescription("is allowed to see");
+ task.addRole("jeff nef", RoleType.REPLACED_ASSIGNEE).setDescription("is sick");
+
+ Set<RoleImpl> roles = task.getRoles();
+ Map<String, RoleImpl> roleMap = new HashMap<String, RoleImpl>();
+ for (RoleImpl role: roles) {
+ roleMap.put(role.getIdentityId(), role);
+ }
+
+ assertEquals(RoleType.CLIENT, roleMap.get("john doe").getRoleType());
+ assertEquals("uses the result", roleMap.get("john doe").getDescription());
+
+ assertEquals(RoleType.OWNER, roleMap.get("joe smoe").getRoleType());
+ assertEquals("does what he wants", roleMap.get("joe smoe").getDescription());
+
+ assertEquals(RoleType.CANDIDATE, roleMap.get("jack black").getRoleType());
+ assertEquals("can take this task", roleMap.get("jack black").getDescription());
+
+ assertEquals(RoleType.VIEWER, roleMap.get("jim slim").getRoleType());
+ assertEquals("is allowed to see", roleMap.get("jim slim").getDescription());
+
+ assertEquals(RoleType.REPLACED_ASSIGNEE, roleMap.get("jeff nef").getRoleType());
+ assertEquals("is sick", roleMap.get("jeff nef").getDescription());
+
+ assertEquals(5, roles.size());
+
+ task.removeRole(roleMap.get("john doe"));
+ assertEquals(4, task.getRoles().size());
+ task.removeRole(roleMap.get("joe smoe"));
+ assertEquals(3, task.getRoles().size());
+ task.removeRole(roleMap.get("jack black"));
+ assertEquals(2, task.getRoles().size());
+ task.removeRole(roleMap.get("jim slim"));
+ assertEquals(1, task.getRoles().size());
+ task.removeRole(roleMap.get("jeff nef"));
+ assertEquals(0, roles.size());
+ }
+
+ public void testTaskAllRoles() {
+ TaskImpl task = TaskImpl.create();
+
+ assertNotNull(task.getAllRoles());
+ assertEquals(0, task.getAllRoles().size());
+
+ task.addRole("john doe", RoleType.CLIENT).setDescription("uses the result");
+
+ SwimlaneImpl manager = new SwimlaneImpl();
+ task.setSwimlane(manager);
+
+ manager.createCandidate("joe smoe").setDescription("tostesteron ambition");
+ manager.createCandidate("jack black").setDescription("the pigeon");
+ manager.createCandidate("jim slim").setDescription("lame duck");
+
+ task.addRole("jeff nef", RoleType.REPLACED_ASSIGNEE).setDescription("is sick");
+
+ Set<RoleImpl> roles = task.getAllRoles();
+ Map<String, RoleImpl> roleMap = new HashMap<String, RoleImpl>();
+ for (RoleImpl role: roles) {
+ roleMap.put(role.getIdentityId(), role);
+ }
+
+ assertEquals(RoleType.CLIENT, roleMap.get("john doe").getRoleType());
+ assertEquals("uses the result", roleMap.get("john doe").getDescription());
+
+ assertEquals(RoleType.CANDIDATE, roleMap.get("joe smoe").getRoleType());
+ assertEquals("tostesteron ambition", roleMap.get("joe smoe").getDescription());
+
+ assertEquals(RoleType.CANDIDATE, roleMap.get("jack black").getRoleType());
+ assertEquals("the pigeon", roleMap.get("jack black").getDescription());
+
+ assertEquals(RoleType.CANDIDATE, roleMap.get("jim slim").getRoleType());
+ assertEquals("lame duck", roleMap.get("jim slim").getDescription());
+
+ assertEquals(RoleType.REPLACED_ASSIGNEE, roleMap.get("jeff nef").getRoleType());
+ assertEquals("is sick", roleMap.get("jeff nef").getDescription());
+
+ assertEquals(5, roles.size());
+
+ task.removeRole(roleMap.get("john doe"));
+ assertEquals(4, task.getAllRoles().size());
+ manager.removeCandidate(roleMap.get("joe smoe"));
+ assertEquals(3, task.getAllRoles().size());
+ manager.removeCandidate(roleMap.get("jack black"));
+ assertEquals(2, task.getAllRoles().size());
+ manager.removeCandidate(roleMap.get("jim slim"));
+ assertEquals(1, task.getAllRoles().size());
+ task.removeRole(roleMap.get("jeff nef"));
+ assertEquals(0, task.getAllRoles().size());
+ }
+
+ /*
+ public void testTaskComment() {
+ EnvironmentFactory environmentFactory = EnvironmentFactory.parseXmlString("<environment/>");
+ TaskImpl task = TaskImpl.create();
+
+ Environment environment = environmentFactory.openEnvironment();
+ try {
+ environment.setUserId("john doe");
+ task.createComment("should I really do this ? yuk.");
+ } finally {
+ environment.close();
+ }
+
+ environment = environmentFactory.openEnvironment();
+ try {
+ environment.setUserId("joe smoe");
+ task.createComment("yes, you should really do it.");
+ } finally {
+ environment.close();
+ }
+
+ List<Comment> comments = task.getComments();
+ assertNotNull(comments);
+
+ assertEquals("should I really do this ? yuk.", comments.get(0).getMessage());
+ assertEquals("john doe", comments.get(0).getUserId());
+
+ assertEquals("yes, you should really do it.", comments.get(1).getMessage());
+ assertEquals("joe smoe", comments.get(1).getUserId());
+ }
+
+ public void testTaskCommentReplies() {
+ TaskImpl task = TaskImpl.create();
+ Comment comment = task.createComment("hi, how are you?");
+ Comment reply = comment.createReply("i'm fine, thanks");
+ reply = reply.createReply("nice wheather, huh");
+ reply.createReply("snow's great fun");
+
+ comment = task.createComment("are you going to the office?");
+ reply = comment.createReply("no not now");
+ reply = reply.createReply("when are you going");
+ reply.createReply("later");
+
+ List<Comment> comments = task.getComments();
+ assertEquals("hi, how are you?", comments.get(0).getMessage());
+ assertEquals("i'm fine, thanks", comments.get(0).getReplies().get(0).getMessage());
+ assertEquals("nice wheather, huh", comments.get(0).getReplies().get(0).getReplies().get(0).getMessage());
+ assertEquals("snow's great fun", comments.get(0).getReplies().get(0).getReplies().get(0).getReplies().get(0).getMessage());
+
+ assertEquals("are you going to the office?", comments.get(1).getMessage());
+ assertEquals("no not now", comments.get(1).getReplies().get(0).getMessage());
+ assertEquals("when are you going", comments.get(1).getReplies().get(0).getReplies().get(0).getMessage());
+ assertEquals("later", comments.get(1).getReplies().get(0).getReplies().get(0).getReplies().get(0).getMessage());
+
+ comment = task.getComments().get(0);
+ comment.removeReply(comment.getReplies().get(0));
+
+ assertEquals("hi, how are you?", comment.getMessage());
+ assertTrue(comment.getReplies().isEmpty());
+ assertEquals(2, task.getComments().size());
+
+ task.removeComment(task.getComments().get(1));
+
+ assertEquals(1, task.getComments().size());
+ assertEquals("hi, how are you?", comment.getMessage());
+ }
+
+ public void testTaskWithDefinition() {
+ TaskDefinitionImpl taskDefinition = new TaskDefinitionImpl();
+ taskDefinition.setName("hello");
+ taskDefinition.setPriority(Priority.HIGH);
+
+ TaskImpl task = TaskImpl.create(taskDefinition);
+ assertEquals("hello", task.getName());
+ assertEquals(Priority.HIGH, task.getPriority());
+ assertEquals("hello", task.getTaskDefinition().getName());
+ }
+
+ public void testSubTasks() {
+ TaskImpl improveWorld = TaskImpl.create();
+ improveWorld.setName("improve the world");
+
+ improveWorld.createSubTask("try to automate everything");
+ improveWorld.createSubTask("discover the problem is in the workflow part");
+ Task writeWorkflowEngine = improveWorld.createSubTask("write an open source workflow engine");
+ writeWorkflowEngine.createSubTask("create a sf.net project");
+ Task commitCode = writeWorkflowEngine.createSubTask("commit code to cvs");
+ writeWorkflowEngine.createSubTask("nurture it and grow it");
+ writeWorkflowEngine.createSubTask("harvest a beautiful project");
+
+ improveWorld.createSubTask("automate everything with workflow");
+ improveWorld.createSubTask("create peace everywhere");
+
+ Set<String> expectedSubtaskNames = new HashSet<String>();
+ expectedSubtaskNames.add("try to automate everything");
+ expectedSubtaskNames.add("discover the problem is in the workflow part");
+ expectedSubtaskNames.add("write an open source workflow engine");
+ expectedSubtaskNames.add("automate everything with workflow");
+ expectedSubtaskNames.add("create peace everywhere");
+
+ Set<Task> subtasks = improveWorld.getSubTasks();
+ Set<String> subtaskNames = new HashSet<String>();
+ for (Task subtask: subtasks) {
+ subtaskNames.add(subtask.getName());
+ }
+
+ assertEquals(expectedSubtaskNames, subtaskNames);
+
+ expectedSubtaskNames = new HashSet<String>();
+ expectedSubtaskNames.add("create a sf.net project");
+ expectedSubtaskNames.add("commit code to cvs");
+ expectedSubtaskNames.add("nurture it and grow it");
+ expectedSubtaskNames.add("harvest a beautiful project");
+
+ subtasks = writeWorkflowEngine.getSubTasks();
+ subtaskNames = new HashSet<String>();
+ for (Task subtask: subtasks) {
+ subtaskNames.add(subtask.getName());
+ }
+
+ assertEquals(expectedSubtaskNames, subtaskNames);
+
+ writeWorkflowEngine.removeSubTask(commitCode);
+
+ expectedSubtaskNames.remove("commit code to cvs");
+
+ subtasks = writeWorkflowEngine.getSubTasks();
+ subtaskNames = new HashSet<String>();
+ for (Task subtask: subtasks) {
+ subtaskNames.add(subtask.getName());
+ }
+
+ assertEquals(expectedSubtaskNames, subtaskNames);
+ }
+ */
+}
Property changes on: jbpm4/trunk/modules/task/src/test/java/org/jbpm/task/TaskTest.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: jbpm4/trunk/modules/task/src/test/resources/org.jbpm.task.cfg.xml
===================================================================
--- jbpm4/trunk/modules/task/src/test/resources/org.jbpm.task.cfg.xml (rev 0)
+++ jbpm4/trunk/modules/task/src/test/resources/org.jbpm.task.cfg.xml 2008-11-13 14:05:05 UTC (rev 2908)
@@ -0,0 +1,31 @@
+<environment>
+
+ <application>
+
+ <pvm-service />
+ <task-service />
+
+ <standard-command-service>
+ <retry-interceptor />
+ <environment-interceptor />
+ <transaction-interceptor />
+ </standard-command-service>
+
+ <hibernate-configuration>
+ <properties resource="hibernate.properties" />
+ <mappings resources="pvm.hibernate.mappings.xml" />
+ <cache-configuration resource="pvm.definition.cache.xml" usage="nonstrict-read-write" />
+ </hibernate-configuration>
+ <hibernate-session-factory />
+ <variable-types resource="pvm.variable.types.xml" />
+
+ </application>
+
+ <block>
+ <standard-transaction />
+ <hibernate-session />
+ <pvm-db-session />
+ <task-db-session />
+ </block>
+
+</environment>
Property changes on: jbpm4/trunk/modules/task/src/test/resources/org.jbpm.task.cfg.xml
___________________________________________________________________
Name: svn:keywords
+ Id Revision
17 years, 5 months
JBoss JBPM SVN: r2907 - in projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client: process and 1 other directories.
by do-not-reply@jboss.org
Author: heiko.braun(a)jboss.com
Date: 2008-11-13 08:00:35 -0500 (Thu, 13 Nov 2008)
New Revision: 2907
Modified:
projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/URLBuilder.java
projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/process/ProcessInstanceListEditor.java
projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/widgets/TokenEditor.java
projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/widgets/TokenForm.java
Log:
Properly reset ProcessInstanceListEditor and sub components
Modified: projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/URLBuilder.java
===================================================================
--- projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/URLBuilder.java 2008-11-13 12:59:48 UTC (rev 2906)
+++ projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/URLBuilder.java 2008-11-13 13:00:35 UTC (rev 2907)
@@ -131,9 +131,14 @@
return getBaseUrl() + "/rs/tasks/"+id+"/assignment/"+URL.encode(actualActor);
}
+ public String getTokenSignalUrl(TokenReference tok)
+ {
+ return getBaseUrl() + "/rs/jbpm3/tokens/"+tok.getId()+"/transition/default";
+ }
+
public String getTokenSignalUrl(TokenReference tok, String signal)
{
String encodedSignal = URL.encode(signal);
- return getBaseUrl() + "/rs/jbpm3/tokens/"+tok.getId()+"?signal="+encodedSignal;
+ return getBaseUrl() + "/rs/jbpm3/tokens/"+tok.getId()+"/transition?signal="+encodedSignal;
}
}
Modified: projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/process/ProcessInstanceListEditor.java
===================================================================
--- projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/process/ProcessInstanceListEditor.java 2008-11-13 12:59:48 UTC (rev 2906)
+++ projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/process/ProcessInstanceListEditor.java 2008-11-13 13:00:35 UTC (rev 2907)
@@ -47,6 +47,7 @@
import org.jboss.bpm.console.client.widgets.HelpPanel;
import org.jboss.bpm.console.client.widgets.TeaserPanel;
import org.jboss.bpm.console.client.widgets.TokenEditor;
+import org.jboss.bpm.console.client.widgets.TokenForm;
/**
* @author Heiko.Braun <heiko.braun(a)jboss.com>
@@ -59,9 +60,13 @@
private ProcessDefinition parent;
private ProcessInstanceList instanceList;
+ private FormPanel detailsForm;
private Panel tokenEditorPanel;
private ProcessInstance selectedInstance;
+ private TokenEditor currentTokenEditor;
+ private TabPanel tabPanel;
+
public ProcessInstanceListEditor(ProcessDefinition proc, MainView view)
{
super();
@@ -88,7 +93,7 @@
// ---------------
- TabPanel tabPanel = new TabPanel();
+ tabPanel = new TabPanel();
tabPanel.setPaddings(10);
tabPanel.setPlain(true);
tabPanel.setActiveTab(0);
@@ -132,14 +137,22 @@
// ---------------
- final FormPanel detailsForm = createBaseFormPanel();
+ detailsForm = createBaseFormPanel();
// ---------------
- detailsForm.add(new TextField("Id", "instanceId", 230));
- detailsForm.add(new TextField("Key", "key", 230));
- detailsForm.add(new TextField("State", "state", 230));
- detailsForm.add(new DateField("Start Date", "startDate", 230));
+ TextField idField = new TextField("Id", "instanceId", 230);
+ idField.setReadOnly(true);
+ detailsForm.add(idField);
+ TextField keyField = new TextField("Key", "key", 230);
+ keyField.setReadOnly(true);
+ detailsForm.add(keyField);
+ TextField stateField = new TextField("State", "state", 230);
+ stateField.setReadOnly(true);
+ detailsForm.add(stateField);
+ DateField startDateField = new DateField("Start Date", "startDate", 230);
+ startDateField.setReadOnly(true);
+ detailsForm.add(startDateField);
//detailsForm.add(new DateField("End Date", "endDate", 230));
final Button suspendButton = new Button("Suspend",
@@ -203,8 +216,9 @@
// token form update
tokenEditorPanel.clear();
+ currentTokenEditor = new TokenEditor(selectedInstance, callback);
tokenEditorPanel.add( // TODO: LRU caching (i.e. last 5)
- new TokenEditor(selectedInstance, callback)
+ currentTokenEditor
);
tokenEditorPanel.doLayout();
}
@@ -231,7 +245,11 @@
private void remoteSignal(TokenReference tok, String signal)
{
- String url = view.getUrlBuilder().getTokenSignalUrl(tok, signal);
+
+ String url = signal.equals(TokenForm.DEFAULT_TRANSITION) ?
+ view.getUrlBuilder().getTokenSignalUrl(tok) :
+ view.getUrlBuilder().getTokenSignalUrl(tok, signal);
+
RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, url);
try
@@ -313,6 +331,16 @@
{
instanceList.reloadStore();
selectedInstance = null;
+
+ detailsForm.getForm().reset();
+
+ if(currentTokenEditor!=null)
+ currentTokenEditor.resetEditor();
+
+ tokenEditorPanel.clear();
+ tokenEditorPanel.doLayout();
+
+ //tabPanel.setActiveTab(0);
}
}
Modified: projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/widgets/TokenEditor.java
===================================================================
--- projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/widgets/TokenEditor.java 2008-11-13 12:59:48 UTC (rev 2906)
+++ projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/widgets/TokenEditor.java 2008-11-13 13:00:35 UTC (rev 2907)
@@ -77,6 +77,11 @@
this.add(tokenForm, new ColumnLayoutData(0.7));
}
+ public void resetEditor()
+ {
+ tokenForm.resetForm();
+ }
+
class TokenTree extends TreePanel
{
private TokenSelectionCallback callback;
Modified: projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/widgets/TokenForm.java
===================================================================
--- projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/widgets/TokenForm.java 2008-11-13 12:59:48 UTC (rev 2906)
+++ projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/widgets/TokenForm.java 2008-11-13 13:00:35 UTC (rev 2907)
@@ -54,6 +54,7 @@
));
private TokenReference lastSelectedToken;
+ public static final String DEFAULT_TRANSITION = "(Default transition)";
public TokenForm(final TokenEditor.SignalCallback callback)
{
@@ -107,12 +108,12 @@
public void onClick(Button button, EventObject eventObject)
{
ComboBox cb = (ComboBox)tokenForm.getForm().findField("signal");
+
String signalValue = cb.getValueAsString();
if(signalValue.equals(""))
MessageBox.alert("Please select a signal");
else
callback.onSignalToken(lastSelectedToken, signalValue);
-
}
};
@@ -172,8 +173,15 @@
private MemoryProxy createMemoryProxy(List signals)
{
+ if(signals.isEmpty())
+ signals.add(DEFAULT_TRANSITION);
return new MemoryProxy(
new Object[][]{ signals.toArray()}
);
}
+
+ public void resetForm()
+ {
+ tokenForm.getForm().reset();
+ }
}
17 years, 5 months
JBoss JBPM SVN: r2906 - projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server.
by do-not-reply@jboss.org
Author: heiko.braun(a)jboss.com
Date: 2008-11-13 07:59:48 -0500 (Thu, 13 Nov 2008)
New Revision: 2906
Modified:
projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/JBPM3Management.java
Log:
Added default transition resource
Modified: projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/JBPM3Management.java
===================================================================
--- projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/JBPM3Management.java 2008-11-13 12:27:38 UTC (rev 2905)
+++ projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/JBPM3Management.java 2008-11-13 12:59:48 UTC (rev 2906)
@@ -81,8 +81,8 @@
@Produces("application/json")
@Consumes("multipart/form-data")
public void postNewDefinition(
- @Context
- HttpServletRequest request
+ @Context
+ HttpServletRequest request
)
{
try
@@ -133,8 +133,8 @@
@Path("definitions/{id}/image")
@Produces("image/jpeg")
public Response getProcessImage(
- @PathParam("id")
- long id
+ @PathParam("id")
+ long id
)
{
byte[] image = getExtensionDAO().getProcessImage(id);
@@ -148,8 +148,8 @@
@Path("definitions/{id}/diagramInfo")
@Produces("application/json")
public DiagramInfo getDiagramInfo(
- @PathParam("id")
- long id
+ @PathParam("id")
+ long id
)
{
return getExtensionDAO().getDiagramInfo(id);
@@ -159,8 +159,8 @@
@Path("instances/{id}/activeNodeInfo")
@Produces("application/json")
public ActiveNodeInfo getActiveNodeInfo(
- @PathParam("id")
- long id
+ @PathParam("id")
+ long id
)
{
ActiveNodeInfo activNodeInfo = getExtensionDAO().getActivNodeInfo(id);
@@ -168,31 +168,31 @@
}
@POST
- @Path("tokens/{id}")
+ @Path("tokens/{id}/transition")
@Produces("application/json")
public Response signalToken(
- @PathParam("id")
- long id,
- @QueryParam("signal")
- String signalName)
+ @PathParam("id")
+ long id,
+ @QueryParam("signal")
+ String signalName)
{
log.debug("Signal token " + id + " -> " + signalName);
-
+
getExtensionDAO().signalToken(id, signalName);
return Response.ok().type("application/json").build();
}
- /*@GET
- @Path("token/{tokenId}/signal")
+ @POST
+ @Path("tokens/{id}/transition/default")
@Produces("application/json")
public Response signalTokenDefault(
- @PathParam("tokenId")
- long tokenId
-
- )
+ @PathParam("id")
+ long id)
{
- // take default transition
- return signalToken(tokenId, null);
- } */
+ log.debug("Signal token " + id);
+ getExtensionDAO().signalToken(id, null);
+ return Response.ok().type("application/json").build();
+ }
+
}
17 years, 5 months
JBoss JBPM SVN: r2905 - in projects/gwt-console/trunk: war/src/main/java/org/jboss/bpm/console/client and 1 other directories.
by do-not-reply@jboss.org
Author: heiko.braun(a)jboss.com
Date: 2008-11-13 07:27:38 -0500 (Thu, 13 Nov 2008)
New Revision: 2905
Modified:
projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/JBPM3Management.java
projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/ProcessManagement.java
projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/URLBuilder.java
projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/util/JSONWalk.java
Log:
More work on signaling
Modified: projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/JBPM3Management.java
===================================================================
--- projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/JBPM3Management.java 2008-11-13 11:47:13 UTC (rev 2904)
+++ projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/JBPM3Management.java 2008-11-13 12:27:38 UTC (rev 2905)
@@ -168,16 +168,18 @@
}
@POST
- @Path("tokens/{id}/signal/{signalName}")
+ @Path("tokens/{id}")
@Produces("application/json")
public Response signalToken(
@PathParam("id")
long id,
- @PathParam("signalName")
+ @QueryParam("signal")
String signalName)
{
+ log.debug("Signal token " + id + " -> " + signalName);
+
getExtensionDAO().signalToken(id, signalName);
- return Response.ok().build();
+ return Response.ok().type("application/json").build();
}
/*@GET
Modified: projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/ProcessManagement.java
===================================================================
--- projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/ProcessManagement.java 2008-11-13 11:47:13 UTC (rev 2904)
+++ projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/ProcessManagement.java 2008-11-13 12:27:38 UTC (rev 2905)
@@ -125,7 +125,7 @@
{
log.debug("Change instance (ID "+instanceId+") to state " +next);
getProcessDAO().changeState(instanceId, next);
- return Response.ok().build();
+ return Response.ok().type("application/json").build();
}
private Response createJsonResponse(Object wrapper)
Modified: projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/URLBuilder.java
===================================================================
--- projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/URLBuilder.java 2008-11-13 11:47:13 UTC (rev 2904)
+++ projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/URLBuilder.java 2008-11-13 12:27:38 UTC (rev 2905)
@@ -134,6 +134,6 @@
public String getTokenSignalUrl(TokenReference tok, String signal)
{
String encodedSignal = URL.encode(signal);
- return getBaseUrl() + "/rs/tokens/"+tok.getId()+"/signal/"+encodedSignal;
+ return getBaseUrl() + "/rs/jbpm3/tokens/"+tok.getId()+"?signal="+encodedSignal;
}
}
Modified: projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/util/JSONWalk.java
===================================================================
--- projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/util/JSONWalk.java 2008-11-13 11:47:13 UTC (rev 2904)
+++ projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/util/JSONWalk.java 2008-11-13 12:27:38 UTC (rev 2905)
@@ -29,6 +29,7 @@
import java.util.Date;
import java.util.Iterator;
+import java.util.Set;
/**
* @author Heiko.Braun <heiko.braun(a)jboss.com>
@@ -54,7 +55,9 @@
JSONObject rootObject = root.isObject();
JSONWrapper match = null;
- Iterator it = rootObject.keySet().iterator();
+ Set<String> keySet = rootObject.keySet();
+
+ Iterator it = keySet.iterator();
while(it.hasNext())
{
String s = (String)it.next();
@@ -70,9 +73,6 @@
}
}
- if(null==match)
- throw new IllegalArgumentException("No such element '" + name +"'");
-
return match;
}
17 years, 5 months