[jbpm-commits] JBoss JBPM SVN: r1864 - in jbossbpm/spec/trunk/modules: api/src/main/java/org/jboss/bpm/model and 18 other directories.
do-not-reply at jboss.org
do-not-reply at jboss.org
Mon Aug 11 06:56:42 EDT 2008
Author: thomas.diesler at jboss.com
Date: 2008-08-11 06:56:42 -0400 (Mon, 11 Aug 2008)
New Revision: 1864
Added:
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/EventBuilder.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/EventBuilderImpl.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/SignalEventDetailImpl.java
Removed:
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/NoneEventDetail.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/NoneEventDetailImpl.java
Modified:
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/MessageManager.java
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/ProcessManager.java
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Activity.java
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/EndEvent.java
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/EventDetail.java
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/FlowObject.java
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Gateway.java
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/IntermediateEvent.java
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Process.java
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ProcessBuilder.java
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Signal.java
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/FlowHandler.java
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/test/AbstractAPITestCase.java
jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/ProcessUnmarshaller.java
jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/include/ProcessIncludeTest.java
jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/message/ProcessMessageTest.java
jbossbpm/spec/trunk/modules/dialects/jpdl32/src/main/java/org/jboss/bpm/dialect/jpdl32/ProcessDefinitionAdapter.java
jbossbpm/spec/trunk/modules/dialects/stp/src/main/java/org/jboss/bpm/dialect/stp/ProcessUnmarshaller.java
jbossbpm/spec/trunk/modules/dialects/xpdl21/src/main/java/org/jboss/bpm/dialect/xpdl21/WorkflowProcessAdapter.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/client/internal/ExecutionManagerImpl.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/client/internal/ProcessManagerImpl.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ActivityImpl.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/EndEventImpl.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/EventImpl.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ExclusiveGatewayImpl.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/FlowObjectImpl.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/GatewayBuilderImpl.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/GatewayImpl.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/IntermediateEventImpl.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ParallelGatewayImpl.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ProcessBuilderImpl.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ProcessImpl.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/SequenceFlowImpl.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/StartEventImpl.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/SubProcessImpl.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/TaskImpl.java
jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AirticketProcessBuilder.java
jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/gateway/exclusive/ExclusiveMergeTest.java
jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/gateway/exclusive/ExclusiveSplitTest.java
jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/process/ProcessIntegrityTest.java
jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/process/ProcessStartTest.java
jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/processmanager/ProcessRegistryTest.java
jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/task/TaskMessageTest.java
jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/parallelsplit/ParallelSplitTest.java
jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/sequence/BasicSequenceTest.java
jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/task/BasicTaskTest.java
Log:
More work on Gateway CTS
Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/MessageManager.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/MessageManager.java 2008-08-11 10:47:13 UTC (rev 1863)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/MessageManager.java 2008-08-11 10:56:42 UTC (rev 1864)
@@ -96,7 +96,7 @@
{
ProcessManager pm = getProcessEngine().getProcessManager();
Process proc = pm.getProcessByID(procID);
- FlowObject target = proc.getFlowObjectByName(targetName);
+ FlowObject target = proc.getFlowObject(targetName);
if (target == null)
throw new IllegalArgumentException("Cannot find message target: " + targetName);
if (target instanceof MessageListener == false)
Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/ProcessManager.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/ProcessManager.java 2008-08-11 10:47:13 UTC (rev 1863)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/ProcessManager.java 2008-08-11 10:56:42 UTC (rev 1864)
@@ -40,7 +40,6 @@
import org.apache.commons.logging.LogFactory;
import org.jboss.bpm.BPMException;
import org.jboss.bpm.EngineShutdownException;
-import org.jboss.bpm.ProcessTimeoutException;
import org.jboss.bpm.model.Process;
import org.jboss.bpm.model.Process.Status;
import org.jboss.bpm.runtime.Attachments;
@@ -70,14 +69,14 @@
{
}
- /**
+ /**
* Get the ProcessEngine
*/
public ProcessEngine getProcessEngine()
{
return ProcessEngineLocator.locateProcessEngine();
}
-
+
/**
* Locate the ProcessManager
*/
@@ -86,7 +85,7 @@
ProcessEngine engine = ProcessEngineLocator.locateProcessEngine();
return engine.getProcessManager();
}
-
+
/**
* Create a Process from a XML string in one of the supported formats
*/
@@ -130,7 +129,7 @@
* @param status The optional process status
* @return An empty set if the process cannot be found
*/
- public Set<Process> findProcessByName(String name, Process.Status status)
+ public Set<Process> getProcesses(String name, Process.Status status)
{
Set<Process> procSet = new HashSet<Process>();
for (Process aux : procs)
@@ -160,17 +159,16 @@
}
/**
- * Register a Process.
- * This is not part of the API.
+ * Register a Process. This is not part of the API.
*/
protected void registerProcess(Process proc)
{
+ log.debug("registerProcess: " + proc);
procs.add(proc);
}
/**
- * Remove a Process
- * This is not part of the API.
+ * Remove a Process This is not part of the API.
*/
protected void removeProcess(Process proc)
{
@@ -182,60 +180,6 @@
*/
public abstract ObjectName startProcess(String name, Attachments att);
- /**
- * Wait for the Process to end. 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/>
- * If the process was aborted this method throws the causing RuntimeException if avaialable.
- *
- */
- public Status waitForEnd(ObjectName procID, long timeout)
- {
- Process proc = getProcessByID(procID);
- Status status = proc.getStatus();
-
- if (status == Status.None || status == Status.Ready)
- throw new IllegalStateException("Cannot wait for process in state: " + status);
-
- // Wait a little for the process to end
- boolean forever = (timeout < 1);
- long now = System.currentTimeMillis();
- long until = now + timeout;
- try
- {
- while (forever || now < until)
- {
- status = proc.getStatus();
- if (status == Status.Cancelled || status == Status.Completed)
- {
- return status;
- }
- else if (status == Status.Aborted)
- {
- RuntimeException rte = proc.getRuntimeException();
- if (rte == null)
- return status;
- else
- throw rte;
- }
- Thread.sleep(100);
- now = System.currentTimeMillis();
- }
- }
- catch (InterruptedException ex)
- {
- log.warn(ex);
- }
- finally
- {
- // Remove the process
- removeProcess(proc);
- }
-
- // Throw timeout exception if it took too long
- throw new ProcessTimeoutException("Process timeout for: " + procID);
- }
-
private String getNamespaceURI(InputStream inStream)
{
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
@@ -259,9 +203,17 @@
return nsURI;
}
- /**
- * Get the handler for the dialect with the given namespace URI
+ /**
+ * Wait for the Process to end. 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/> If the process
+ * was aborted this method throws the causing RuntimeException if avaialable.
+ *
*/
+ public abstract Status waitForEnd(ObjectName procID, long timeout);
+
+ /**
+ * Get the handler for the dialect with the given namespace URI
+ */
public DialectHandler getDialectHandler(String nsURI)
{
String dialectId = dialectRegistry.getDialect(nsURI);
Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Activity.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Activity.java 2008-08-11 10:47:13 UTC (rev 1863)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Activity.java 2008-08-11 10:56:42 UTC (rev 1864)
@@ -32,7 +32,7 @@
* @author thomas.diesler at jboss.com
* @since 08-Jul-2008
*/
-public interface Activity extends FlowObject, NameSupport, PropertySupport
+public interface Activity extends FlowObject, PropertySupport
{
/**
* The ActivityType MUST be of type Task or Sub-Process.
Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/EndEvent.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/EndEvent.java 2008-08-11 10:47:13 UTC (rev 1863)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/EndEvent.java 2008-08-11 10:56:42 UTC (rev 1864)
@@ -35,7 +35,7 @@
* @author thomas.diesler at jboss.com
* @since 08-Jul-2008
*/
-public interface EndEvent extends Event, NameSupport, SingleInFlowSupport
+public interface EndEvent extends Event, SingleInFlowSupport
{
/**
* Result defines the type of result expected for an End Event.
Copied: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/EventBuilder.java (from rev 1863, jbossbpm/spec/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/EventBuilder.java)
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/EventBuilder.java (rev 0)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/EventBuilder.java 2008-08-11 10:56:42 UTC (rev 1864)
@@ -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.jboss.bpm.model;
+
+//$Id$
+
+import org.jboss.bpm.model.Signal.SignalType;
+
+/**
+ * The EventBuilder can be used to build an {@link Event} dynamically.
+ *
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+public interface EventBuilder extends ProcessBuilder
+{
+ /**
+ * Add a signal trigger to the last added {@link Event}
+ */
+ EventBuilder addSignalTrigger(String fromRef, SignalType signalType, String signalMessage);
+}
\ No newline at end of file
Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/EventDetail.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/EventDetail.java 2008-08-11 10:47:13 UTC (rev 1863)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/EventDetail.java 2008-08-11 10:56:42 UTC (rev 1864)
@@ -36,7 +36,7 @@
*/
public enum EventDetailType
{
- None, Message, Timer, Error, Conditional, Link, Signal, Compensate, Cancel, Terminate
+ Message, Timer, Error, Conditional, Link, Signal, Compensate, Cancel, Terminate
};
/**
Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/FlowObject.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/FlowObject.java 2008-08-11 10:47:13 UTC (rev 1863)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/FlowObject.java 2008-08-11 10:56:42 UTC (rev 1864)
@@ -30,7 +30,7 @@
* @author thomas.diesler at jboss.com
* @since 08-Jul-2008
*/
-public interface FlowObject extends GraphicalElement
+public interface FlowObject extends GraphicalElement, NameSupport
{
/**
* Get the associated Process
Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Gateway.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Gateway.java 2008-08-11 10:47:13 UTC (rev 1863)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Gateway.java 2008-08-11 10:56:42 UTC (rev 1864)
@@ -35,7 +35,7 @@
* @author thomas.diesler at jboss.com
* @since 08-Jul-2008
*/
-public interface Gateway extends FlowObject, NameSupport, MultipleInFlowSupport
+public interface Gateway extends FlowObject, MultipleInFlowSupport
{
/**
* The GatewayType
Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/IntermediateEvent.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/IntermediateEvent.java 2008-08-11 10:47:13 UTC (rev 1863)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/IntermediateEvent.java 2008-08-11 10:56:42 UTC (rev 1864)
@@ -33,6 +33,6 @@
* @author thomas.diesler at jboss.com
* @since 08-Jul-2008
*/
-public interface IntermediateEvent extends Event, NameSupport, SingleInFlowSupport, SingleOutFlowSupport
+public interface IntermediateEvent extends Event, SingleInFlowSupport, SingleOutFlowSupport
{
}
\ No newline at end of file
Deleted: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/NoneEventDetail.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/NoneEventDetail.java 2008-08-11 10:47:13 UTC (rev 1863)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/NoneEventDetail.java 2008-08-11 10:56:42 UTC (rev 1864)
@@ -1,35 +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.jboss.bpm.model;
-
-//$Id$
-
-/**
- * The Cancel event detail
- *
- * @author thomas.diesler at jboss.com
- * @since 21-Jul-2008
- */
-public interface NoneEventDetail extends EventDetail
-{
-
-}
Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Process.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Process.java 2008-08-11 10:47:13 UTC (rev 1863)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Process.java 2008-08-11 10:56:42 UTC (rev 1864)
@@ -27,7 +27,6 @@
import javax.management.ObjectName;
-import org.jboss.bpm.BPMException;
import org.jboss.bpm.runtime.Attachments;
/**
@@ -70,6 +69,17 @@
List<FlowObject> getFlowObjects();
/**
+ * Get a list of flow objects of a given type.
+ */
+ <T extends FlowObject> List<T> getFlowObjects(Class<T> clazz);
+
+ /**
+ * Get a flow object by name.
+ * @return null if not found
+ */
+ FlowObject getFlowObject(String name);
+
+ /**
* One or more Performers MAY be entered. The Performers attribute defines the resource that will be responsible for
* the Process. The Performers entry could be in the form of a specific individual, a group, an organization role or
* position, or an organization.
@@ -97,42 +107,26 @@
*/
List<OutputSet> getOutputSets();
- // Not Part of BPMN ========================================================================
-
/**
- * Make a deep copy of the process
+ * Get the list of associated {@link Message} objects.
+ * @return An empty list if there are none
*/
- Process copyProcess();
-
- /**
- * Get the possible runtime exception when the process was aborted.
- */
- RuntimeException getRuntimeException();
+ List<Message> getMessages();
/**
- * Get the start event
- * @throws BPMException if there are other than exactly one start event of type None
+ * Get an associated {@link Message} by name.
+ * @return null if not found
*/
- StartEvent getStartEvent();
+ Message getMessage(String msgName);
+
+ // Not Part of BPMN ========================================================================
/**
- * Get a start event by name
- * @return null if there is none
+ * Make a deep copy of the process
*/
- StartEvent getStartEvent(String name);
-
+ Process copyProcess();
+
/**
- * Get the set of end events
- */
- List<EndEvent> getEndEvents();
-
- /**
- * Get an end event by name
- * @return null if there is none
- */
- EndEvent getEndEvent(String name);
-
- /**
* Start the process
*/
ObjectName startProcess();
@@ -143,24 +137,6 @@
ObjectName startProcess(Attachments att);
/**
- * Find a flow object by name
- * @return null if not found
- */
- FlowObject getFlowObjectByName(String name);
-
- /**
- * Get the list of associated {@link Message} objects.
- * @return An empty list if there are none
- */
- List<Message> getMessages();
-
- /**
- * Get an associated {@link Message} by name.
- * @return null if not found
- */
- Message getMessageByName(String msgName);
-
- /**
* 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/>
Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ProcessBuilder.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ProcessBuilder.java 2008-08-11 10:47:13 UTC (rev 1863)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ProcessBuilder.java 2008-08-11 10:56:42 UTC (rev 1864)
@@ -76,19 +76,19 @@
ProcessBuilder addMessageFlow(String targetName);
/**
- * Add a {@link StartEvent}
+ * Add a {@link StartEvent} with a given name
*/
- ProcessBuilder addStartEvent();
+ EventBuilder addStartEvent(String name);
/**
* Add an {@link IntermediateEvent} with a given name
*/
- ProcessBuilder addEvent(String name);
+ EventBuilder addEvent(String name);
/**
* Add an {@link EndEvent} with a given name
*/
- ProcessBuilder addEndEvent(String name);
+ EventBuilder addEndEvent(String name);
/**
* Add a {@link Task} of {@link TaskType} NONE with a given name
Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Signal.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Signal.java 2008-08-11 10:47:13 UTC (rev 1863)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Signal.java 2008-08-11 10:56:42 UTC (rev 1864)
@@ -34,17 +34,24 @@
/**
* Defines the types of supported Signals
*/
- public enum Type
+ public enum SignalType
{
- ENTER_START_EVENT, EXIT_START_EVENT, ENTER_EVENT, EXIT_EVENT, ENTER_END_EVENT, EXIT_END_EVENT, ENTER_GATEWAY, EXIT_GATEWAY, ENTER_PROCESS, EXIT_PROCESS, ENTER_SUB_PROCESS, EXIT_SUB_PROCESS, ENTER_TASK, EXIT_TASK, USER_SIGNAL
+ ENTER_START_EVENT, EXIT_START_EVENT, START_TRIGGER,
+ ENTER_EVENT, EXIT_EVENT, EVENT_TRIGGER,
+ ENTER_END_EVENT, EXIT_END_EVENT, END_TRIGGER,
+ ENTER_GATEWAY, EXIT_GATEWAY,
+ ENTER_PROCESS, EXIT_PROCESS,
+ ENTER_SUB_PROCESS, EXIT_SUB_PROCESS,
+ ENTER_TASK, EXIT_TASK, TASK_TRIGGER,
+ USER_SIGNAL
}
- private Type type;
+ private SignalType type;
private String message;
private String fromRef;
/** Create the signal for a given process */
- public Signal(String fromRef, Type type)
+ public Signal(String fromRef, SignalType type)
{
this.fromRef = fromRef;
this.type = type;
@@ -55,7 +62,7 @@
}
/** Create the signal for a given process */
- public Signal(String fromRef, Type type, String message)
+ public Signal(String fromRef, SignalType type, String message)
{
this(fromRef, type);
this.message = message;
@@ -66,7 +73,7 @@
return fromRef;
}
- public Type getType()
+ public SignalType getType()
{
return type;
}
Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/FlowHandler.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/FlowHandler.java 2008-08-11 10:47:13 UTC (rev 1863)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/FlowHandler.java 2008-08-11 10:56:42 UTC (rev 1864)
@@ -24,8 +24,8 @@
//$Id$
import org.jboss.bpm.client.ProcessEngine;
-import org.jboss.bpm.model.ConnectingObject;
import org.jboss.bpm.model.FlowObject;
+import org.jboss.bpm.model.SequenceFlow;
/**
* The {@link ProcessEngine} invokes the FlowHandler on an {@link HandlerSupport}
@@ -39,8 +39,8 @@
/**
* Execute the the FlowHandler.
* <p/>
- * The FlowHandler will add the active outgoing {@link ConnectingObject}s to
- * some {@link ConnectingObject} queue for the {@link ProcessEngine} to execute.
+ * The FlowHandler will add the active outgoing {@link SequenceFlow}s to
+ * the the {@link FlowScheduler} for the {@link ProcessEngine} to execute.
*/
void execute(FlowScheduler scheduler, Token token);
Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/test/AbstractAPITestCase.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/test/AbstractAPITestCase.java 2008-08-11 10:47:13 UTC (rev 1863)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/test/AbstractAPITestCase.java 2008-08-11 10:56:42 UTC (rev 1864)
@@ -121,7 +121,7 @@
return Collections.unmodifiableList(signals);
}
- public List<Signal> getSignals(Signal.Type type)
+ public List<Signal> getSignals(Signal.SignalType type)
{
List<Signal> retSignals = new ArrayList<Signal>();
for (Signal sig : signals)
Modified: jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/ProcessUnmarshaller.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/ProcessUnmarshaller.java 2008-08-11 10:47:13 UTC (rev 1863)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/ProcessUnmarshaller.java 2008-08-11 10:56:42 UTC (rev 1864)
@@ -184,7 +184,7 @@
{
if (jaxb instanceof JAXBStartEvent)
{
- procBuilder.addStartEvent();
+ procBuilder.addStartEvent("Start");
JAXBStartEvent jaxbStart = (JAXBStartEvent)jaxb;
addOutFlow(procBuilder, jaxbStart.getOutFlow());
}
Modified: jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/include/ProcessIncludeTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/include/ProcessIncludeTest.java 2008-08-11 10:47:13 UTC (rev 1863)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/include/ProcessIncludeTest.java 2008-08-11 10:56:42 UTC (rev 1864)
@@ -42,7 +42,7 @@
ProcessManager pm = ProcessManager.locateProcessManager();
Process proc = pm.createProcess(getResourceURL("include/proc-api10.xml"));
- ReceiveTask recTask = (ReceiveTask)proc.getFlowObjectByName("A");
+ ReceiveTask recTask = (ReceiveTask)proc.getFlowObject("A");
Message msg = recTask.getMessageRef();
assertEquals("FooMsg", msg.getName());
assertEquals("bar", msg.getPropertyValue("foo"));
Modified: jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/message/ProcessMessageTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/message/ProcessMessageTest.java 2008-08-11 10:47:13 UTC (rev 1863)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/message/ProcessMessageTest.java 2008-08-11 10:56:42 UTC (rev 1864)
@@ -48,7 +48,7 @@
public void testProcessMessage() throws Exception
{
ProcessBuilder procBuilder = ProcessBuilderFactory.newInstance().newProcessBuilder();
- procBuilder.addProcess(getName()).addStartEvent().addSequenceFlow("End").addEndEvent("End");
+ procBuilder.addProcess(getName()).addStartEvent("Start").addSequenceFlow("End").addEndEvent("End");
MessageBuilder msgBuilder = procBuilder.addMessage("FooMsg");
msgBuilder.addProperty("foo", "bar");
Process expProc = procBuilder.getProcess();
@@ -60,14 +60,14 @@
dh.marshallProcess(expProc, strwr);
Process wasProc = dh.createProcess(strwr.toString(), false);
- Message msg = wasProc.getMessageByName("FooMsg");
+ Message msg = wasProc.getMessage("FooMsg");
assertEquals("bar", msg.getPropertyValue("foo"));
}
public void testReceiveTaskWithMessage() throws Exception
{
ProcessBuilder procBuilder = ProcessBuilderFactory.newInstance().newProcessBuilder();
- procBuilder.addProcess(getName()).addStartEvent().addSequenceFlow("A");
+ procBuilder.addProcess(getName()).addStartEvent("Start").addSequenceFlow("A");
TaskBuilder taskBuilder = procBuilder.addTask("A", TaskType.Receive);
MessageBuilder msgBuilder = taskBuilder.addMessage("FooMsg");
msgBuilder.addProperty("foo", "bar");
@@ -81,7 +81,7 @@
dh.marshallProcess(expProc, strwr);
Process wasProc = dh.createProcess(strwr.toString(), false);
- ReceiveTask recTask = (ReceiveTask)wasProc.getFlowObjectByName("A");
+ ReceiveTask recTask = (ReceiveTask)wasProc.getFlowObject("A");
Message msg = recTask.getMessageRef();
assertEquals("FooMsg", msg.getName());
assertEquals("bar", msg.getPropertyValue("foo"));
@@ -90,7 +90,7 @@
public void testReceiveTaskWithMessageRef() throws Exception
{
ProcessBuilder procBuilder = ProcessBuilderFactory.newInstance().newProcessBuilder();
- procBuilder.addProcess(getName()).addStartEvent().addSequenceFlow("A");
+ procBuilder.addProcess(getName()).addStartEvent("Start").addSequenceFlow("A");
MessageBuilder msgBuilder = procBuilder.addMessage("FooMsg");
msgBuilder.addProperty("foo", "bar");
TaskBuilder taskBuilder = procBuilder.addTask("A", TaskType.Receive);
@@ -105,7 +105,7 @@
dh.marshallProcess(expProc, strwr);
Process wasProc = dh.createProcess(strwr.toString(), false);
- ReceiveTask recTask = (ReceiveTask)wasProc.getFlowObjectByName("A");
+ ReceiveTask recTask = (ReceiveTask)wasProc.getFlowObject("A");
Message msg = recTask.getMessageRef();
assertEquals("FooMsg", msg.getName());
assertEquals("bar", msg.getPropertyValue("foo"));
Modified: jbossbpm/spec/trunk/modules/dialects/jpdl32/src/main/java/org/jboss/bpm/dialect/jpdl32/ProcessDefinitionAdapter.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/jpdl32/src/main/java/org/jboss/bpm/dialect/jpdl32/ProcessDefinitionAdapter.java 2008-08-11 10:47:13 UTC (rev 1863)
+++ jbossbpm/spec/trunk/modules/dialects/jpdl32/src/main/java/org/jboss/bpm/dialect/jpdl32/ProcessDefinitionAdapter.java 2008-08-11 10:56:42 UTC (rev 1864)
@@ -84,7 +84,7 @@
private void adaptStartState(ProcessBuilder builder, JPDL32StartState jpdlStart)
{
- builder.addStartEvent();
+ builder.addStartEvent("Start");
adaptTransitions(builder, jpdlStart.getDescriptionOrTaskOrTransition());
}
Modified: jbossbpm/spec/trunk/modules/dialects/stp/src/main/java/org/jboss/bpm/dialect/stp/ProcessUnmarshaller.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/stp/src/main/java/org/jboss/bpm/dialect/stp/ProcessUnmarshaller.java 2008-08-11 10:47:13 UTC (rev 1863)
+++ jbossbpm/spec/trunk/modules/dialects/stp/src/main/java/org/jboss/bpm/dialect/stp/ProcessUnmarshaller.java 2008-08-11 10:56:42 UTC (rev 1864)
@@ -157,7 +157,7 @@
ActivityType activityType = stpActivity.getActivityType();
if (activityType == ActivityType.EVENT_START_EMPTY)
{
- builder.addStartEvent();
+ builder.addStartEvent("Start");
adaptOutgoingEdges(builder, stpActivity);
}
else if (activityType == ActivityType.EVENT_END_EMPTY)
Modified: jbossbpm/spec/trunk/modules/dialects/xpdl21/src/main/java/org/jboss/bpm/dialect/xpdl21/WorkflowProcessAdapter.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/xpdl21/src/main/java/org/jboss/bpm/dialect/xpdl21/WorkflowProcessAdapter.java 2008-08-11 10:47:13 UTC (rev 1863)
+++ jbossbpm/spec/trunk/modules/dialects/xpdl21/src/main/java/org/jboss/bpm/dialect/xpdl21/WorkflowProcessAdapter.java 2008-08-11 10:56:42 UTC (rev 1864)
@@ -53,7 +53,7 @@
{
if (xpdlEvent.getStartEvent() != null)
{
- builder.addStartEvent();
+ builder.addStartEvent("Start");
}
else if (xpdlEvent.getEndEvent() != null)
{
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/client/internal/ExecutionManagerImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/client/internal/ExecutionManagerImpl.java 2008-08-11 10:47:13 UTC (rev 1863)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/client/internal/ExecutionManagerImpl.java 2008-08-11 10:56:42 UTC (rev 1864)
@@ -33,6 +33,7 @@
import org.jboss.bpm.model.Signal;
import org.jboss.bpm.model.StartEvent;
import org.jboss.bpm.model.Process.Status;
+import org.jboss.bpm.model.Signal.SignalType;
import org.jboss.bpm.model.internal.ProcessImpl;
import org.jboss.bpm.model.internal.RuntimeProcessImpl;
import org.jboss.bpm.model.internal.SequenceFlowImpl;
@@ -74,7 +75,7 @@
String procName = proc.getName();
SignalManager signalManager = getProcessEngine().getSignalManager();
- signalManager.throwSignal(procName, new Signal(procName, Signal.Type.ENTER_PROCESS));
+ signalManager.throwSignal(procName, new Signal(procName, SignalType.ENTER_PROCESS));
MutableFlowScheduler flowScheduler = rtProc.getFlowScheduler();
try
{
@@ -121,7 +122,7 @@
}
finally
{
- signalManager.throwSignal(procName, new Signal(procName, Signal.Type.EXIT_PROCESS));
+ signalManager.throwSignal(procName, new Signal(procName, Signal.SignalType.EXIT_PROCESS));
}
}
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/client/internal/ProcessManagerImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/client/internal/ProcessManagerImpl.java 2008-08-11 10:47:13 UTC (rev 1863)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/client/internal/ProcessManagerImpl.java 2008-08-11 10:56:42 UTC (rev 1864)
@@ -28,11 +28,15 @@
import javax.management.ObjectName;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.jboss.bpm.ProcessTimeoutException;
import org.jboss.bpm.client.DialectHandler;
import org.jboss.bpm.client.DialectRegistry;
import org.jboss.bpm.client.ExecutionManager;
import org.jboss.bpm.client.ProcessManager;
import org.jboss.bpm.model.Process;
+import org.jboss.bpm.model.internal.ProcessImpl;
import org.jboss.bpm.model.Process.Status;
import org.jboss.bpm.runtime.Attachments;
@@ -44,6 +48,9 @@
*/
public class ProcessManagerImpl extends ProcessManager
{
+ // provide logging
+ private static final Log log = LogFactory.getLog(ProcessManagerImpl.class);
+
public void setDialectHandlers(Map<String, DialectHandler> dialectHandlers)
{
this.dialectHandlers = dialectHandlers;
@@ -70,7 +77,7 @@
public ObjectName startProcess(String name, Attachments att)
{
- Set<Process> procSet = findProcessByName(name, Status.Ready);
+ Set<Process> procSet = getProcesses(name, Status.Ready);
if (procSet.size() == 0)
throw new IllegalStateException("Cannot obtain process with name: " + name);
if (procSet.size() > 1)
@@ -91,4 +98,52 @@
return proc.getID();
}
+
+ @Override
+ public Status waitForEnd(ObjectName procID, long timeout)
+ {
+ ProcessImpl proc = (ProcessImpl)getProcessByID(procID);
+ Status status = proc.getStatus();
+
+ if (status == Status.None || status == Status.Ready)
+ throw new IllegalStateException("Cannot wait for process in state: " + status);
+
+ // Wait a little for the process to end
+ boolean forever = (timeout < 1);
+ long now = System.currentTimeMillis();
+ long until = now + timeout;
+ try
+ {
+ while (forever || now < until)
+ {
+ status = proc.getStatus();
+ if (status == Status.Cancelled || status == Status.Completed)
+ {
+ return status;
+ }
+ else if (status == Status.Aborted)
+ {
+ RuntimeException rte = proc.getRuntimeException();
+ if (rte == null)
+ return status;
+ else
+ throw rte;
+ }
+ Thread.sleep(100);
+ now = System.currentTimeMillis();
+ }
+ }
+ catch (InterruptedException ex)
+ {
+ log.warn(ex);
+ }
+ finally
+ {
+ // Remove the process
+ removeProcess(proc);
+ }
+
+ // Throw timeout exception if it took too long
+ throw new ProcessTimeoutException("Process timeout for: " + procID);
+ }
}
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ActivityImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ActivityImpl.java 2008-08-11 10:47:13 UTC (rev 1863)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ActivityImpl.java 2008-08-11 10:56:42 UTC (rev 1864)
@@ -56,7 +56,6 @@
public abstract class ActivityImpl extends FlowObjectImpl implements Activity, MutablePropertySupport,
SingleInFlowSetterSupport, SingleOutFlowSetterSupport
{
- private String name;
private List<InputSet> inputSets = new ArrayList<InputSet>();
private List<OutputSet> outputSets = new ArrayList<OutputSet>();
private List<Expression> ioRules = new ArrayList<Expression>();
@@ -66,19 +65,9 @@
public ActivityImpl(String name)
{
- this.name = name;
+ super(name);
}
- public String getName()
- {
- return name;
- }
-
- public void setName(String name)
- {
- this.name = name;
- }
-
public int getStartQuantity()
{
throw new NotImplementedException();
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/EndEventImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/EndEventImpl.java 2008-08-11 10:47:13 UTC (rev 1863)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/EndEventImpl.java 2008-08-11 10:56:42 UTC (rev 1864)
@@ -51,20 +51,14 @@
// provide logging
private static final Log log = LogFactory.getLog(EndEventImpl.class);
- private String name;
private Set<EventDetail> result;
private ConnectingObject inFlow;
public EndEventImpl(String name)
{
- this.name = name;
+ super(name);
}
- public String getName()
- {
- return name;
- }
-
public ConnectingObject getInFlow()
{
return inFlow;
@@ -108,12 +102,12 @@
{
public Signal getEnterSignal()
{
- return new Signal(getName(), Signal.Type.ENTER_END_EVENT);
+ return new Signal(getName(), Signal.SignalType.ENTER_END_EVENT);
}
public Signal getExitSignal()
{
- return new Signal(getName(), Signal.Type.EXIT_END_EVENT);
+ return new Signal(getName(), Signal.SignalType.EXIT_END_EVENT);
}
};
}
Copied: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/EventBuilderImpl.java (from rev 1863, jbossbpm/spec/branches/tdiesler/modules/ri/src/main/java/org/jboss/bpm/model/internal/EventBuilderImpl.java)
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/EventBuilderImpl.java (rev 0)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/EventBuilderImpl.java 2008-08-11 10:56:42 UTC (rev 1864)
@@ -0,0 +1,68 @@
+/*
+ * 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.jboss.bpm.model.internal;
+
+//$Id$
+
+import org.jboss.bpm.NotImplementedException;
+import org.jboss.bpm.model.Event;
+import org.jboss.bpm.model.EventBuilder;
+import org.jboss.bpm.model.Signal;
+import org.jboss.bpm.model.StartEvent;
+import org.jboss.bpm.model.Signal.SignalType;
+
+/**
+ * The EventBuilder can be used to build an {@link Event} dynamically.
+ *
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+public class EventBuilderImpl extends ProcessBuilderImpl implements EventBuilder
+{
+ public EventBuilderImpl(ProcessImpl proc, FlowObjectImpl flowObject)
+ {
+ super(proc, flowObject);
+ }
+
+ public EventBuilder addSignalTrigger(String fromRef, SignalType signalType, String message)
+ {
+ EventImpl event = getEvent();
+ if (event instanceof StartEvent)
+ {
+ StartEventImpl start = (StartEventImpl)event;
+ Signal signal = new Signal(fromRef, signalType, message);
+ start.addTrigger(new SignalEventDetailImpl(signal));
+ }
+ else
+ {
+ throw new NotImplementedException("Trigger on: " + event);
+ }
+ return this;
+ }
+
+ private EventImpl getEvent()
+ {
+ if (flowObject instanceof Event == false)
+ throw new IllegalStateException("Last added flow object is not an Event: " + flowObject);
+ return (EventImpl)flowObject;
+ }
+}
\ No newline at end of file
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/EventImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/EventImpl.java 2008-08-11 10:47:13 UTC (rev 1863)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/EventImpl.java 2008-08-11 10:56:42 UTC (rev 1864)
@@ -36,5 +36,8 @@
@SuppressWarnings("serial")
public abstract class EventImpl extends FlowObjectImpl implements Event
{
-
+ public EventImpl(String name)
+ {
+ super(name);
+ }
}
\ No newline at end of file
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ExclusiveGatewayImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ExclusiveGatewayImpl.java 2008-08-11 10:47:13 UTC (rev 1863)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ExclusiveGatewayImpl.java 2008-08-11 10:56:42 UTC (rev 1864)
@@ -26,12 +26,12 @@
import java.util.HashMap;
import java.util.Map;
-import org.jboss.bpm.NotImplementedException;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.jboss.bpm.model.ConnectingObject;
import org.jboss.bpm.model.ExclusiveGateway;
import org.jboss.bpm.model.Expression;
-import org.jboss.bpm.model.ConnectingObject;
import org.jboss.bpm.model.Gate;
-import org.jboss.bpm.model.Gateway;
import org.jboss.bpm.model.SequenceFlow;
import org.jboss.bpm.model.Expression.ExpressionLanguage;
import org.jboss.bpm.model.SequenceFlow.ConditionType;
@@ -52,6 +52,9 @@
@SuppressWarnings("serial")
public abstract class ExclusiveGatewayImpl extends GatewayImpl implements ExclusiveGateway
{
+ // provide logging
+ private static final Log log = LogFactory.getLog(ExclusiveGatewayImpl.class);
+
public ExclusiveGatewayImpl(String name)
{
super(name);
@@ -65,80 +68,101 @@
@Override
public void addInFlow(ConnectingObject inFlow)
{
- if (getInFlows().size() > 0)
- throw new NotImplementedException("ExclusiveGateway with multiple inFlows");
-
super.addInFlow(inFlow);
}
@Override
public FlowHandler getFlowHandler()
{
- final Gateway gateway = this;
FlowHandler handler = super.getFlowHandler();
- if (handler == null && getGates().size() > 1)
+ if (handler == null)
{
handler = new FlowHandler()
{
public void execute(FlowScheduler scheduler, Token token)
{
- Gate selectedGate = null;
- for (Gate auxGate : getGates())
+ // Schedule the first token that arrives
+ if (receivedTokens.size() == 1)
{
- SequenceFlow seqFlow = auxGate.getOutgoingSequenceFlow();
- if (seqFlow.getConditionType() == ConditionType.Expression)
- {
- Expression expr = seqFlow.getConditionExpression();
- if (expr.getExpressionLanguage() == ExpressionLanguage.MVEL)
- {
- String mvel = expr.getExpressionBody();
- ExecutionContext exContext = token.getExecutionContext();
- Map<String, Object> vars = new HashMap<String, Object>();
- for (Key key : exContext.getAttachmentKeys())
- {
- String name = key.getNamePart();
- Object value = exContext.getAttachment(name);
- vars.put(name, value);
- }
- Boolean result = (Boolean)MVEL.eval(mvel, vars);
- if (result == true)
- {
- selectedGate = auxGate;
- break;
- }
- }
- else
- {
- throw new IllegalStateException("Unsupported expression language: " + expr.getExpressionLanguage());
- }
- }
+ Gate selectedGate = getSelectedGate(token);
+ SequenceFlow outFlow = selectedGate.getOutgoingSequenceFlow();
+ scheduler.scheduleTuple(outFlow, token);
}
-
- // Fallback to the default gate if there is one
- if (selectedGate == null)
+ // Ignore all other tokens
+ else
{
- for (Gate auxGate : getGates())
- {
- SequenceFlow seqFlow = auxGate.getOutgoingSequenceFlow();
- if (seqFlow.getConditionType() == ConditionType.Default)
- {
- selectedGate = auxGate;
- break;
- }
- }
+ log.debug("Ignore token: " + token);
}
- if (selectedGate == null)
- throw new IllegalStateException("Cannot select applicable gate in: " + gateway);
-
- SequenceFlow outFlow = selectedGate.getOutgoingSequenceFlow();
- scheduler.scheduleTuple(outFlow, token);
+ // Reset the gateway
+ if (expectedFlows.size() == 0)
+ {
+ expectedFlows.addAll(inFlows);
+ receivedTokens.clear();
+ }
}
};
}
return handler;
}
+ // Get a single selected gate which' condition evaluates to TRUE
+ // Fall back to the default gate if there is one
+ // Choke if there is no selected gate
+ private Gate getSelectedGate(Token token)
+ {
+ Gate selectedGate = null;
+ for (Gate auxGate : getGates())
+ {
+ SequenceFlow seqFlow = auxGate.getOutgoingSequenceFlow();
+ if (seqFlow.getConditionType() == ConditionType.Expression)
+ {
+ Expression expr = seqFlow.getConditionExpression();
+ if (expr.getExpressionLanguage() == ExpressionLanguage.MVEL)
+ {
+ String mvel = expr.getExpressionBody();
+ ExecutionContext exContext = token.getExecutionContext();
+ Map<String, Object> vars = new HashMap<String, Object>();
+ for (Key key : exContext.getAttachmentKeys())
+ {
+ String name = key.getNamePart();
+ Object value = exContext.getAttachment(name);
+ vars.put(name, value);
+ }
+ Boolean result = (Boolean)MVEL.eval(mvel, vars);
+ if (result == true)
+ {
+ selectedGate = auxGate;
+ break;
+ }
+ }
+ else
+ {
+ throw new IllegalStateException("Unsupported expression language: " + expr.getExpressionLanguage());
+ }
+ }
+ }
+
+ // Fallback to the default gate if there is one
+ if (selectedGate == null)
+ {
+ for (Gate auxGate : getGates())
+ {
+ SequenceFlow seqFlow = auxGate.getOutgoingSequenceFlow();
+ if (seqFlow.getConditionType() == ConditionType.Default)
+ {
+ selectedGate = auxGate;
+ break;
+ }
+ }
+ }
+
+ if (selectedGate == null)
+ throw new IllegalStateException("Cannot select applicable gate in: " + this);
+
+ return selectedGate;
+ }
+
public String toString()
{
return "ExclusiveGateway[" + getName() + "]";
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/FlowObjectImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/FlowObjectImpl.java 2008-08-11 10:47:13 UTC (rev 1863)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/FlowObjectImpl.java 2008-08-11 10:56:42 UTC (rev 1864)
@@ -50,16 +50,32 @@
@SuppressWarnings("serial")
public abstract class FlowObjectImpl extends GraphicalElementImpl implements FlowObject, HandlerSetterSupport, Executable
{
+ private String name;
private Process proc;
private FlowHandler flowHandler;
private SignalHandler signalHandler;
private ExecutionHandler executionHandler;
+ public FlowObjectImpl(String name)
+ {
+ this.name = name;
+ }
+
public Process getProcess()
{
return proc;
}
+ public String getName()
+ {
+ return name;
+ }
+
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+
public ExecutionHandler getExecutionHandler()
{
return executionHandler;
@@ -171,7 +187,7 @@
if (flow != null)
{
String name = flow.getTargetName();
- FlowObject target = proc.getFlowObjectByName(name);
+ FlowObject target = proc.getFlowObject(name);
if (target == null)
throw new InvalidProcessException("Cannot find target for out flow: " + name);
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/GatewayBuilderImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/GatewayBuilderImpl.java 2008-08-11 10:47:13 UTC (rev 1863)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/GatewayBuilderImpl.java 2008-08-11 10:56:42 UTC (rev 1864)
@@ -68,7 +68,7 @@
private GatewayImpl getGateway()
{
if (flowObject instanceof Gateway == false)
- throw new IllegalStateException("Last added flow object is not a Gateway");
+ throw new IllegalStateException("Last added flow object is not a Gateway: " + flowObject);
return (GatewayImpl)flowObject;
}
}
\ No newline at end of file
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/GatewayImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/GatewayImpl.java 2008-08-11 10:47:13 UTC (rev 1863)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/GatewayImpl.java 2008-08-11 10:56:42 UTC (rev 1864)
@@ -25,28 +25,22 @@
import java.util.ArrayList;
import java.util.Collections;
-import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
-import java.util.Set;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jboss.bpm.model.ConnectingObject;
import org.jboss.bpm.model.Gate;
import org.jboss.bpm.model.Gateway;
-import org.jboss.bpm.model.GraphicalElement;
-import org.jboss.bpm.model.NameSupport;
+import org.jboss.bpm.model.Process;
import org.jboss.bpm.model.SequenceFlow;
import org.jboss.bpm.model.Signal;
import org.jboss.bpm.model.SequenceFlow.ConditionType;
import org.jboss.bpm.runtime.ExecutionHandler;
-import org.jboss.bpm.runtime.FlowHandler;
-import org.jboss.bpm.runtime.FlowScheduler;
import org.jboss.bpm.runtime.SignalHandler;
import org.jboss.bpm.runtime.Token;
-import org.jboss.bpm.runtime.internal.TokenImpl;
/**
* Gateways are modelling elements that are used to control how Sequence Flow interact as they converge and diverge
@@ -61,24 +55,20 @@
// provide logging
private static final Log log = LogFactory.getLog(GatewayImpl.class);
- private String name;
+ // The list of incomming flows
protected List<ConnectingObject> inFlows = new ArrayList<ConnectingObject>();
+ // The list of outgoing gates
private Map<String, Gate> gates = new LinkedHashMap<String, Gate>();
+ // The list of flows from which a token is expected
+ protected List<ConnectingObject> expectedFlows;
+ // The list of received tokens
+ protected List<Token> receivedTokens;
- // Sync management
- private Set<ConnectingObject> outstandingFlows;
- private Set<Token> mergeTokens;
-
public GatewayImpl(String name)
{
- this.name = name;
+ super(name);
}
- public String getName()
- {
- return name;
- }
-
public List<Gate> getGates()
{
return Collections.unmodifiableList(new ArrayList<Gate>(gates.values()));
@@ -124,28 +114,27 @@
@Override
public void execute(Token token)
{
- // Multiple incomingFlows must be synchronized
- if (getInFlows().size() > 1)
+ // Initialize the gateway
+ if (expectedFlows == null)
{
- if (outstandingFlows == null)
- {
- outstandingFlows = new HashSet<ConnectingObject>(inFlows);
- mergeTokens = new HashSet<Token>();
- }
-
- ConnectingObject flow = token.getFlow();
- outstandingFlows.remove(flow);
-
- if (outstandingFlows.size() > 0)
- mergeTokens.add(token);
+ expectedFlows = new ArrayList<ConnectingObject>(inFlows);
+ receivedTokens = new ArrayList<Token>();
}
+
+ // Check that token from flow is valid
+ ConnectingObject flow = token.getFlow();
+ if (expectedFlows.contains(flow) == false)
+ throw new IllegalStateException("Unexpected token from: " + flow);
+
+ // Call execution handler
+ ExecutionHandler exHandler = getExecutionHandler();
+ exHandler.execute(token);
- // Call the execution handler with the InputSet
- ExecutionHandler handler = getExecutionHandler();
- if (handler != null)
- {
- handler.execute(token);
- }
+ // Remove the flow from the expected list
+ expectedFlows.remove(flow);
+
+ // Store the received token for processing in the FlowHandler
+ receivedTokens.add(token);
}
public ExecutionHandler getExecutionHandler()
@@ -164,60 +153,6 @@
return handler;
}
- public FlowHandler getFlowHandler()
- {
- FlowHandler handler = super.getFlowHandler();
- if (handler == null && gates.size() == 1)
- {
- Gate onlyGate = gates.values().iterator().next();
- final SequenceFlow outFlow = onlyGate.getOutgoingSequenceFlow();
- handler = new FlowHandler()
- {
- public void execute(FlowScheduler scheduler, Token token)
- {
- if (getInFlows().size() > 1)
- {
- if (outstandingFlows.size() == 0)
- {
- Token mergedToken = mergeTokens(token);
- scheduler.scheduleTuple(outFlow, mergedToken);
- outstandingFlows = null;
- mergeTokens = null;
- }
- else
- {
- // Log the list of outstanding flows
- Set<String> sourceNames = new HashSet<String>();
- for (ConnectingObject flow : outstandingFlows)
- {
- GraphicalElement sourceRef = flow.getSourceRef();
- if (sourceRef instanceof NameSupport)
- sourceNames.add(((NameSupport)sourceRef).getName());
- else
- sourceNames.add(sourceRef.getID().getCanonicalName());
- }
- log.debug("Waiting for " + outstandingFlows + " in gateway: " + sourceNames);
- }
- }
- else
- {
- scheduler.scheduleTuple(outFlow, token);
- }
- }
- };
- }
- return handler;
- }
-
- private Token mergeTokens(Token token)
- {
- TokenImpl mergedToken = new TokenImpl(null);
- for (Token auxToken : mergeTokens)
- mergedToken.mergeToken(auxToken);
-
- return mergedToken;
- }
-
public SignalHandler getSignalHandler()
{
SignalHandler handler = super.getSignalHandler();
@@ -227,12 +162,12 @@
{
public Signal getEnterSignal()
{
- return new Signal(getName(), Signal.Type.ENTER_GATEWAY);
+ return new Signal(getName(), Signal.SignalType.ENTER_GATEWAY);
}
public Signal getExitSignal()
{
- return new Signal(getName(), Signal.Type.EXIT_GATEWAY);
+ return new Signal(getName(), Signal.SignalType.EXIT_GATEWAY);
}
};
}
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/IntermediateEventImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/IntermediateEventImpl.java 2008-08-11 10:47:13 UTC (rev 1863)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/IntermediateEventImpl.java 2008-08-11 10:56:42 UTC (rev 1864)
@@ -48,20 +48,14 @@
// provide logging
private static final Log log = LogFactory.getLog(IntermediateEventImpl.class);
- private String name;
private ConnectingObject inFlow;
private ConnectingObject outFlow;
public IntermediateEventImpl(String name)
{
- this.name = name;
+ super(name);
}
- public String getName()
- {
- return name;
- }
-
public ConnectingObject getInFlow()
{
return inFlow;
@@ -123,12 +117,12 @@
{
public Signal getEnterSignal()
{
- return new Signal(getName(), Signal.Type.ENTER_EVENT);
+ return new Signal(getName(), Signal.SignalType.ENTER_EVENT);
}
public Signal getExitSignal()
{
- return new Signal(getName(), Signal.Type.EXIT_EVENT);
+ return new Signal(getName(), Signal.SignalType.EXIT_EVENT);
}
};
}
Deleted: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/NoneEventDetailImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/NoneEventDetailImpl.java 2008-08-11 10:47:13 UTC (rev 1863)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/NoneEventDetailImpl.java 2008-08-11 10:56:42 UTC (rev 1864)
@@ -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.jboss.bpm.model.internal;
-
-//$Id$
-
-import org.jboss.bpm.model.NoneEventDetail;
-
-/**
- * The None event detail.
- *
- * @author thomas.diesler at jboss.com
- * @since 08-Jul-2008
- */
- at SuppressWarnings("serial")
-public class NoneEventDetailImpl extends EventDetailImpl implements NoneEventDetail
-{
- public EventDetailType getEventDetailType()
- {
- return EventDetailType.None;
- }
-}
\ No newline at end of file
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ParallelGatewayImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ParallelGatewayImpl.java 2008-08-11 10:47:13 UTC (rev 1863)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ParallelGatewayImpl.java 2008-08-11 10:56:42 UTC (rev 1864)
@@ -23,12 +23,22 @@
//$Id$
+import java.util.HashSet;
+import java.util.Set;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.jboss.bpm.model.ConnectingObject;
import org.jboss.bpm.model.Gate;
+import org.jboss.bpm.model.GraphicalElement;
+import org.jboss.bpm.model.NameSupport;
import org.jboss.bpm.model.ParallelGateway;
import org.jboss.bpm.model.SequenceFlow;
+import org.jboss.bpm.runtime.ExecutionHandler;
import org.jboss.bpm.runtime.FlowHandler;
import org.jboss.bpm.runtime.FlowScheduler;
import org.jboss.bpm.runtime.Token;
+import org.jboss.bpm.runtime.internal.TokenImpl;
/**
@@ -40,6 +50,13 @@
@SuppressWarnings("serial")
public class ParallelGatewayImpl extends GatewayImpl implements ParallelGateway
{
+ // provide logging
+ private static final Log log = LogFactory.getLog(ParallelGatewayImpl.class);
+
+ // Sync management
+ private Set<ConnectingObject> outstandingFlows;
+ private Set<Token> mergeTokens;
+
public ParallelGatewayImpl(String name)
{
super(name);
@@ -50,18 +67,81 @@
return GatewayType.Parallel;
}
- /**
- * The default FlowHandler adds all out flows to the queue
- */
+ @Override
+ public void execute(Token token)
+ {
+ // Multiple incomingFlows must be synchronized
+ if (getInFlows().size() > 1)
+ {
+ if (outstandingFlows == null)
+ {
+ outstandingFlows = new HashSet<ConnectingObject>(inFlows);
+ mergeTokens = new HashSet<Token>();
+ }
+
+ ConnectingObject flow = token.getFlow();
+ outstandingFlows.remove(flow);
+
+ if (outstandingFlows.size() > 0)
+ mergeTokens.add(token);
+ }
+
+ // Call the execution handler with the InputSet
+ ExecutionHandler handler = getExecutionHandler();
+ if (handler != null)
+ {
+ handler.execute(token);
+ }
+ }
+
public FlowHandler getFlowHandler()
{
FlowHandler handler = super.getFlowHandler();
- if (handler == null)
+ if (handler == null && getGates().size() == 1)
{
+ Gate onlyGate = getGates().iterator().next();
+ final SequenceFlow outFlow = onlyGate.getOutgoingSequenceFlow();
handler = new FlowHandler()
{
public void execute(FlowScheduler scheduler, Token token)
{
+ if (getInFlows().size() > 1)
+ {
+ if (outstandingFlows.size() == 0)
+ {
+ Token mergedToken = mergeTokens(token);
+ scheduler.scheduleTuple(outFlow, mergedToken);
+ outstandingFlows = null;
+ mergeTokens = null;
+ }
+ else
+ {
+ // Log the list of outstanding flows
+ Set<String> sourceNames = new HashSet<String>();
+ for (ConnectingObject flow : outstandingFlows)
+ {
+ GraphicalElement sourceRef = flow.getSourceRef();
+ if (sourceRef instanceof NameSupport)
+ sourceNames.add(((NameSupport)sourceRef).getName());
+ else
+ sourceNames.add(sourceRef.getID().getCanonicalName());
+ }
+ log.debug("Waiting for " + outstandingFlows + " in gateway: " + sourceNames);
+ }
+ }
+ else
+ {
+ scheduler.scheduleTuple(outFlow, token);
+ }
+ }
+ };
+ }
+ else if (handler == null && getGates().size() > 1)
+ {
+ handler = new FlowHandler()
+ {
+ public void execute(FlowScheduler scheduler, Token token)
+ {
for(Gate gate : getGates())
{
SequenceFlow outFlow = gate.getOutgoingSequenceFlow();
@@ -73,6 +153,15 @@
return handler;
}
+ private Token mergeTokens(Token token)
+ {
+ TokenImpl mergedToken = new TokenImpl(null);
+ for (Token auxToken : mergeTokens)
+ mergedToken.mergeToken(auxToken);
+
+ return mergedToken;
+ }
+
public String toString()
{
return "ParallelGateway[" + getName() + "]";
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ProcessBuilderImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ProcessBuilderImpl.java 2008-08-11 10:47:13 UTC (rev 1863)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ProcessBuilderImpl.java 2008-08-11 10:56:42 UTC (rev 1864)
@@ -24,6 +24,7 @@
//$Id$
import org.jboss.bpm.NotImplementedException;
+import org.jboss.bpm.model.EventBuilder;
import org.jboss.bpm.model.FlowObject;
import org.jboss.bpm.model.Gateway;
import org.jboss.bpm.model.GatewayBuilder;
@@ -136,26 +137,26 @@
return this;
}
- public ProcessBuilder addStartEvent()
+ public EventBuilder addStartEvent(String name)
{
- flowObject = addFlowObject(new StartEventImpl());
- return this;
+ flowObject = addFlowObject(new StartEventImpl(name));
+ return new EventBuilderImpl(proc, flowObject);
}
- public ProcessBuilder addEvent(String name)
+ public EventBuilder addEvent(String name)
{
- flowObject = (FlowObjectImpl)proc.getFlowObjectByName(name);
+ flowObject = (FlowObjectImpl)proc.getFlowObject(name);
if (flowObject == null)
flowObject = addFlowObject(new IntermediateEventImpl(name));
- return this;
+ return new EventBuilderImpl(proc, flowObject);
}
- public ProcessBuilder addEndEvent(String name)
+ public EventBuilder addEndEvent(String name)
{
- flowObject = (FlowObjectImpl)proc.getFlowObjectByName(name);
+ flowObject = (FlowObjectImpl)proc.getFlowObject(name);
if (flowObject == null)
flowObject = addFlowObject(new EndEventImpl(name));
- return this;
+ return new EventBuilderImpl(proc, flowObject);
}
public TaskBuilder addTask(String name)
@@ -165,7 +166,7 @@
public TaskBuilder addTask(String name, TaskType type)
{
- flowObject = (FlowObjectImpl)proc.getFlowObjectByName(name);
+ flowObject = (FlowObjectImpl)proc.getFlowObject(name);
if (flowObject == null)
{
if (type == TaskType.None || type == null)
@@ -191,7 +192,7 @@
public GatewayBuilder addGateway(String name, GatewayType type)
{
- flowObject = (FlowObjectImpl)proc.getFlowObjectByName(name);
+ flowObject = (FlowObjectImpl)proc.getFlowObject(name);
if (flowObject == null)
{
if (GatewayType.Exclusive == type)
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ProcessImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ProcessImpl.java 2008-08-11 10:47:13 UTC (rev 1863)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ProcessImpl.java 2008-08-11 10:56:42 UTC (rev 1864)
@@ -180,7 +180,7 @@
public StartEvent getStartEvent(String name)
{
- FlowObject fo = getFlowObjectByName(name);
+ FlowObject fo = getFlowObject(name);
if (fo instanceof StartEvent == false)
throw new IllegalArgumentException("Is not a start event: " + fo);
@@ -202,7 +202,7 @@
public EndEvent getEndEvent(String name)
{
- FlowObject fo = getFlowObjectByName(name);
+ FlowObject fo = getFlowObject(name);
if (fo instanceof EndEvent == false)
throw new IllegalArgumentException("Is not an end event: " + fo);
@@ -253,7 +253,7 @@
throw new IllegalStateException("Cannot start process in state: " + getStatus());
// Register the process if needed
- if (pm.findProcessByName(getName(), null).size() == 0)
+ if (pm.getProcesses(getName(), null).size() == 0)
{
pm.registerProcess(this);
}
@@ -273,7 +273,7 @@
pm.waitForEnd(getID(), timeout);
}
- public FlowObject getFlowObjectByName(String name)
+ public FlowObject getFlowObject(String name)
{
if (name == null)
throw new IllegalArgumentException("Cannot find flow object with name: null");
@@ -294,6 +294,18 @@
return flowObject;
}
+ @SuppressWarnings("unchecked")
+ public <T extends FlowObject> List<T> getFlowObjects(Class<T> clazz)
+ {
+ List<T> retFlowObjects = new ArrayList<T>();
+ for (FlowObject fo : flowObjects)
+ {
+ if (clazz.isAssignableFrom(fo.getClass()))
+ retFlowObjects.add((T)fo);
+ }
+ return retFlowObjects;
+ }
+
public Status getStatus()
{
return status;
@@ -311,13 +323,13 @@
public void addMessage(Message msg)
{
- if (getMessageByName(msg.getName()) != null)
+ if (getMessage(msg.getName()) != null)
throw new InvalidProcessException("Duplicate message: " + msg);
messages.add(msg);
}
- public Message getMessageByName(String msgName)
+ public Message getMessage(String msgName)
{
for (Message msg : messages)
{
@@ -342,10 +354,10 @@
this.name = "AnonymousProcess#" + pm.getProcesses().size();
}
- if (getStartEvent() == null)
+ if (getFlowObjects(StartEvent.class).size() == 0)
throw new InvalidProcessException("Process does not have a start event");
- if (getEndEvents().size() == 0)
+ if (getFlowObjects(EndEvent.class).size() == 0)
throw new InvalidProcessException("Process does not have end events");
// Set the associated process
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/SequenceFlowImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/SequenceFlowImpl.java 2008-08-11 10:47:13 UTC (rev 1863)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/SequenceFlowImpl.java 2008-08-11 10:56:42 UTC (rev 1864)
@@ -24,6 +24,8 @@
//$Id$
import org.jboss.bpm.model.Expression;
+import org.jboss.bpm.model.GraphicalElement;
+import org.jboss.bpm.model.NameSupport;
import org.jboss.bpm.model.SequenceFlow;
/**
@@ -60,4 +62,13 @@
{
return conditionExpression;
}
+
+ public String toString()
+ {
+ GraphicalElement sourceRef = getSourceRef();
+ GraphicalElement targetRef = getTargetRef();
+ String srcName = (sourceRef instanceof NameSupport ? ((NameSupport)sourceRef).getName() : sourceRef.getID().getCanonicalName());
+ String tarName = (targetRef instanceof NameSupport ? ((NameSupport)targetRef).getName() : targetRef.getID().getCanonicalName());
+ return "SequenceFlow[" + srcName + "->" + tarName + "]";
+ }
}
\ No newline at end of file
Copied: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/SignalEventDetailImpl.java (from rev 1863, jbossbpm/spec/branches/tdiesler/modules/ri/src/main/java/org/jboss/bpm/model/internal/SignalEventDetailImpl.java)
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/SignalEventDetailImpl.java (rev 0)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/SignalEventDetailImpl.java 2008-08-11 10:56:42 UTC (rev 1864)
@@ -0,0 +1,54 @@
+/*
+ * 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.jboss.bpm.model.internal;
+
+//$Id$
+
+import org.jboss.bpm.model.Signal;
+import org.jboss.bpm.model.SignalEventDetail;
+
+/**
+ * The Signal event detail
+ *
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+ at SuppressWarnings("serial")
+public class SignalEventDetailImpl extends SupportingElementImpl implements SignalEventDetail
+{
+ private Signal signal;
+
+ public SignalEventDetailImpl(Signal signal)
+ {
+ this.signal = signal;
+ }
+
+ public EventDetailType getEventDetailType()
+ {
+ return EventDetailType.Signal;
+ }
+
+ public Signal getSignalRef()
+ {
+ return signal;
+ }
+}
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/StartEventImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/StartEventImpl.java 2008-08-11 10:47:13 UTC (rev 1863)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/StartEventImpl.java 2008-08-11 10:56:42 UTC (rev 1864)
@@ -56,11 +56,21 @@
private ConnectingObject outFlow;
private List<EventDetail> triggers = new ArrayList<EventDetail>();
+ public StartEventImpl(String name)
+ {
+ super(name);
+ }
+
public List<EventDetail> getTrigger()
{
return Collections.unmodifiableList(triggers);
}
+ public void addTrigger(EventDetail eventDetail)
+ {
+ triggers.add(eventDetail);
+ }
+
public ConnectingObject getOutFlow()
{
return outFlow;
@@ -112,12 +122,12 @@
{
public Signal getEnterSignal()
{
- return new Signal("Start", Signal.Type.ENTER_START_EVENT);
+ return new Signal("Start", Signal.SignalType.ENTER_START_EVENT);
}
public Signal getExitSignal()
{
- return new Signal("Start", Signal.Type.EXIT_START_EVENT);
+ return new Signal("Start", Signal.SignalType.EXIT_START_EVENT);
}
};
}
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/SubProcessImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/SubProcessImpl.java 2008-08-11 10:47:13 UTC (rev 1863)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/SubProcessImpl.java 2008-08-11 10:56:42 UTC (rev 1864)
@@ -55,12 +55,12 @@
{
public Signal getEnterSignal()
{
- return new Signal(getName(), Signal.Type.ENTER_SUB_PROCESS);
+ return new Signal(getName(), Signal.SignalType.ENTER_SUB_PROCESS);
}
public Signal getExitSignal()
{
- return new Signal(getName(), Signal.Type.EXIT_SUB_PROCESS);
+ return new Signal(getName(), Signal.SignalType.EXIT_SUB_PROCESS);
}
};
}
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/TaskImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/TaskImpl.java 2008-08-11 10:47:13 UTC (rev 1863)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/TaskImpl.java 2008-08-11 10:56:42 UTC (rev 1864)
@@ -63,12 +63,12 @@
{
public Signal getEnterSignal()
{
- return new Signal(getName(), Signal.Type.ENTER_TASK);
+ return new Signal(getName(), Signal.SignalType.ENTER_TASK);
}
public Signal getExitSignal()
{
- return new Signal(getName(), Signal.Type.EXIT_TASK);
+ return new Signal(getName(), Signal.SignalType.EXIT_TASK);
}
};
}
@@ -83,7 +83,7 @@
protected void initializeMessageRef(Process proc, Message msg)
{
String msgName = msg.getName();
- MessageImpl procMsg = (MessageImpl)proc.getMessageByName(msgName);
+ MessageImpl procMsg = (MessageImpl)proc.getMessage(msgName);
if (procMsg != null)
{
MessageImpl msgImpl = (MessageImpl)msg;
Modified: jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AirticketProcessBuilder.java
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AirticketProcessBuilder.java 2008-08-11 10:47:13 UTC (rev 1863)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AirticketProcessBuilder.java 2008-08-11 10:56:42 UTC (rev 1864)
@@ -98,7 +98,7 @@
procBuilder.addProcess(PROCESS_NAME);
// Add Start Event
- procBuilder.addStartEvent().addSequenceFlow(TASK_RECEIVE_REQUEST);
+ procBuilder.addStartEvent("Start").addSequenceFlow(TASK_RECEIVE_REQUEST);
// Build the ReceiveReqTask
TaskBuilder taskBuilder = procBuilder.addTask(TASK_RECEIVE_REQUEST, TaskType.Receive);
Modified: jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/gateway/exclusive/ExclusiveMergeTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/gateway/exclusive/ExclusiveMergeTest.java 2008-08-11 10:47:13 UTC (rev 1863)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/gateway/exclusive/ExclusiveMergeTest.java 2008-08-11 10:56:42 UTC (rev 1864)
@@ -24,6 +24,12 @@
// $Id$
import org.jboss.bpm.client.SignalManager;
+import org.jboss.bpm.model.EventBuilder;
+import org.jboss.bpm.model.Process;
+import org.jboss.bpm.model.ProcessBuilder;
+import org.jboss.bpm.model.ProcessBuilderFactory;
+import org.jboss.bpm.model.Gateway.GatewayType;
+import org.jboss.bpm.model.Signal.SignalType;
import org.jboss.bpm.test.DefaultEngineTestCase;
/**
@@ -46,6 +52,20 @@
public void testGateA() throws Exception
{
- System.out.println("FIXME: ExclusiveMergeTest");
+ Process proc = getProcess();
+ assertNotNull(proc);
}
+
+ private Process getProcess()
+ {
+ ProcessBuilder procBuilder = ProcessBuilderFactory.newInstance().newProcessBuilder();
+ EventBuilder eventBuilder = procBuilder.addProcess(getName()).addStartEvent("StartA");
+ eventBuilder.addSignalTrigger(getName(), SignalType.START_TRIGGER, "A").addSequenceFlow("Merge");
+ eventBuilder = procBuilder.addStartEvent("StartB");
+ eventBuilder.addSignalTrigger(getName(), SignalType.START_TRIGGER, "B").addSequenceFlow("Merge");
+ procBuilder.addGateway("Merge", GatewayType.Exclusive);
+ procBuilder.addSequenceFlow("End").addEndEvent("End");
+ Process proc = procBuilder.getProcess();
+ return proc;
+ }
}
Modified: jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/gateway/exclusive/ExclusiveSplitTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/gateway/exclusive/ExclusiveSplitTest.java 2008-08-11 10:47:13 UTC (rev 1863)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/gateway/exclusive/ExclusiveSplitTest.java 2008-08-11 10:56:42 UTC (rev 1864)
@@ -62,7 +62,7 @@
proc.startProcess(att);
proc.waitForEnd();
- List<Signal> endSignals = getSignals(Signal.Type.EXIT_END_EVENT);
+ List<Signal> endSignals = getSignals(Signal.SignalType.EXIT_END_EVENT);
assertEquals(1, endSignals.size());
assertEquals("EndA", endSignals.get(0).getFromRef());
}
@@ -76,7 +76,7 @@
proc.startProcess(att);
proc.waitForEnd();
- List<Signal> endSignals = getSignals(Signal.Type.EXIT_END_EVENT);
+ List<Signal> endSignals = getSignals(Signal.SignalType.EXIT_END_EVENT);
assertEquals(1, endSignals.size());
assertEquals("EndB", endSignals.get(0).getFromRef());
}
@@ -102,7 +102,7 @@
private Process getProcess()
{
ProcessBuilder procBuilder = ProcessBuilderFactory.newInstance().newProcessBuilder();
- procBuilder.addProcess(getName()).addStartEvent().addSequenceFlow("Split");
+ procBuilder.addProcess(getName()).addStartEvent("Start").addSequenceFlow("Split");
GatewayBuilder gatewayBuilder = procBuilder.addGateway("Split", GatewayType.Exclusive);
gatewayBuilder.addConditionalGate("EndA", ExpressionLanguage.MVEL, "foo < 10");
gatewayBuilder.addConditionalGate("EndB", ExpressionLanguage.MVEL, "foo > 10");
Modified: jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/process/ProcessIntegrityTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/process/ProcessIntegrityTest.java 2008-08-11 10:47:13 UTC (rev 1863)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/process/ProcessIntegrityTest.java 2008-08-11 10:56:42 UTC (rev 1864)
@@ -23,8 +23,6 @@
// $Id$
-import java.util.List;
-
import org.jboss.bpm.InvalidProcessException;
import org.jboss.bpm.model.EndEvent;
import org.jboss.bpm.model.FlowObject;
@@ -47,19 +45,19 @@
{
// Create a Process through the ProcessBuilder
ProcessBuilder builder = ProcessBuilderFactory.newInstance().newProcessBuilder();
- Process proc = builder.addProcess(null).addStartEvent().addSequenceFlow("taskA").addTask("taskA").
- addSequenceFlow("end").addEndEvent("end").getProcess();
+ Process proc = builder.addProcess(null).addStartEvent("Start").addSequenceFlow("taskA").addTask("taskA").
+ addSequenceFlow("End").addEndEvent("End").getProcess();
assertEquals("AnonymousProcess#0", proc.getName());
- StartEvent start = proc.getStartEvent();
+ StartEvent start = (StartEvent)proc.getFlowObject("Start");
assertNotNull("Start expected", start);
- FlowObject nfo = proc.getFlowObjectByName("taskA");
+ FlowObject nfo = proc.getFlowObject("taskA");
assertNotNull("FlowObject expected", nfo);
assertTrue("Task expected", nfo instanceof Task);
- List<EndEvent> ends = proc.getEndEvents();
- assertEquals(1, ends.size());
+ EndEvent end = (EndEvent)proc.getFlowObject("End");
+ assertNotNull(end);
}
public void testNoStartState() throws Exception
@@ -83,7 +81,7 @@
{
// Create a Process through the ProcessBuilder
ProcessBuilder builder = ProcessBuilderFactory.newInstance().newProcessBuilder();
- builder.addProcess(null).addStartEvent().addSequenceFlow("taskA").addTask("taskA").addSequenceFlow("end").
+ builder.addProcess(null).addStartEvent("Start").addSequenceFlow("taskA").addTask("taskA").addSequenceFlow("end").
addTask("end").getProcess();
fail("InvalidProcessException expected");
}
Modified: jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/process/ProcessStartTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/process/ProcessStartTest.java 2008-08-11 10:47:13 UTC (rev 1863)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/process/ProcessStartTest.java 2008-08-11 10:56:42 UTC (rev 1864)
@@ -65,7 +65,7 @@
private Process getProcess()
{
ProcessBuilder builder = ProcessBuilderFactory.newInstance().newProcessBuilder();
- Process proc = builder.addProcess(getName()).addStartEvent().addSequenceFlow("taskA").
+ Process proc = builder.addProcess(getName()).addStartEvent("Start").addSequenceFlow("taskA").
addTask("taskA").addSequenceFlow("end").addEndEvent("end").getProcess();
return proc;
}
Modified: jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/processmanager/ProcessRegistryTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/processmanager/ProcessRegistryTest.java 2008-08-11 10:47:13 UTC (rev 1863)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/processmanager/ProcessRegistryTest.java 2008-08-11 10:56:42 UTC (rev 1864)
@@ -75,7 +75,7 @@
private Process getProcess()
{
ProcessBuilder builder = ProcessBuilderFactory.newInstance().newProcessBuilder();
- Process proc = builder.addProcess(getName()).addStartEvent().addSequenceFlow("taskA").
+ Process proc = builder.addProcess(getName()).addStartEvent("Start").addSequenceFlow("taskA").
addTask("taskA").addSequenceFlow("end").addEndEvent("end").getProcess();
return proc;
}
Modified: jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/task/TaskMessageTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/task/TaskMessageTest.java 2008-08-11 10:47:13 UTC (rev 1863)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/task/TaskMessageTest.java 2008-08-11 10:56:42 UTC (rev 1864)
@@ -40,7 +40,7 @@
public void testReceiveTaskWithNoMessage() throws Exception
{
ProcessBuilder procBuilder = ProcessBuilderFactory.newInstance().newProcessBuilder();
- procBuilder.addProcess(getName()).addStartEvent().addSequenceFlow("A");
+ procBuilder.addProcess(getName()).addStartEvent("Start").addSequenceFlow("A");
procBuilder.addTask("A", TaskType.Receive).addSequenceFlow("End").addEndEvent("End");
try
{
@@ -56,7 +56,7 @@
public void testSendTaskWithNoMessage() throws Exception
{
ProcessBuilder procBuilder = ProcessBuilderFactory.newInstance().newProcessBuilder();
- procBuilder.addProcess(getName()).addStartEvent().addSequenceFlow("A");
+ procBuilder.addProcess(getName()).addStartEvent("Start").addSequenceFlow("A");
procBuilder.addTask("A", TaskType.Send).addSequenceFlow("End").addEndEvent("End");
try
{
Modified: jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/parallelsplit/ParallelSplitTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/parallelsplit/ParallelSplitTest.java 2008-08-11 10:47:13 UTC (rev 1863)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/parallelsplit/ParallelSplitTest.java 2008-08-11 10:56:42 UTC (rev 1864)
@@ -72,7 +72,7 @@
{
// Create a Process through the ProcessBuilder
ProcessBuilder procBuilder = ProcessBuilderFactory.newInstance().newProcessBuilder();
- Process proc = procBuilder.addProcess(getName()).addStartEvent().addSequenceFlow("gateway").addGateway("gateway", GatewayType.Parallel).
+ Process proc = procBuilder.addProcess(getName()).addStartEvent("Start").addSequenceFlow("gateway").addGateway("gateway", GatewayType.Parallel).
addSequenceFlow("endA").addSequenceFlow("endB").addEndEvent("endA").addEndEvent("endB").getProcess();
runProcess(proc);
@@ -86,12 +86,12 @@
// Validate received signals
List<Signal> signals = getSignals();
- assertEquals(Signal.Type.ENTER_END_EVENT, signals.get(5).getType());
+ assertEquals(Signal.SignalType.ENTER_END_EVENT, signals.get(5).getType());
assertEquals("endA", signals.get(5).getFromRef());
- assertEquals(Signal.Type.EXIT_END_EVENT, signals.get(6).getType());
+ assertEquals(Signal.SignalType.EXIT_END_EVENT, signals.get(6).getType());
- assertEquals(Signal.Type.ENTER_END_EVENT, signals.get(7).getType());
+ assertEquals(Signal.SignalType.ENTER_END_EVENT, signals.get(7).getType());
assertEquals("endB", signals.get(7).getFromRef());
- assertEquals(Signal.Type.EXIT_END_EVENT, signals.get(8).getType());
+ assertEquals(Signal.SignalType.EXIT_END_EVENT, signals.get(8).getType());
}
}
Modified: jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/sequence/BasicSequenceTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/sequence/BasicSequenceTest.java 2008-08-11 10:47:13 UTC (rev 1863)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/sequence/BasicSequenceTest.java 2008-08-11 10:56:42 UTC (rev 1864)
@@ -72,7 +72,7 @@
{
// Create a Process through the ProcessBuilder
ProcessBuilder procBuilder = ProcessBuilderFactory.newInstance().newProcessBuilder();
- Process proc = procBuilder.addProcess(getName()).addStartEvent().addSequenceFlow("stateA").addTask("stateA").
+ Process proc = procBuilder.addProcess(getName()).addStartEvent("Start").addSequenceFlow("stateA").addTask("stateA").
addSequenceFlow("end").addEndEvent("end").getProcess();
runProcess(proc);
@@ -86,13 +86,13 @@
// Validate received signals
List<Signal> signals = getSignals();
- assertEquals(Signal.Type.ENTER_PROCESS, signals.get(0).getType());
- assertEquals(Signal.Type.ENTER_START_EVENT, signals.get(1).getType());
- assertEquals(Signal.Type.EXIT_START_EVENT, signals.get(2).getType());
- assertEquals(Signal.Type.ENTER_TASK, signals.get(3).getType());
- assertEquals(Signal.Type.EXIT_TASK, signals.get(4).getType());
- assertEquals(Signal.Type.ENTER_END_EVENT, signals.get(5).getType());
- assertEquals(Signal.Type.EXIT_END_EVENT, signals.get(6).getType());
- assertEquals(Signal.Type.EXIT_PROCESS, signals.get(7).getType());
+ assertEquals(Signal.SignalType.ENTER_PROCESS, signals.get(0).getType());
+ assertEquals(Signal.SignalType.ENTER_START_EVENT, signals.get(1).getType());
+ assertEquals(Signal.SignalType.EXIT_START_EVENT, signals.get(2).getType());
+ assertEquals(Signal.SignalType.ENTER_TASK, signals.get(3).getType());
+ assertEquals(Signal.SignalType.EXIT_TASK, signals.get(4).getType());
+ assertEquals(Signal.SignalType.ENTER_END_EVENT, signals.get(5).getType());
+ assertEquals(Signal.SignalType.EXIT_END_EVENT, signals.get(6).getType());
+ assertEquals(Signal.SignalType.EXIT_PROCESS, signals.get(7).getType());
}
}
Modified: jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/task/BasicTaskTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/task/BasicTaskTest.java 2008-08-11 10:47:13 UTC (rev 1863)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/task/BasicTaskTest.java 2008-08-11 10:56:42 UTC (rev 1864)
@@ -72,7 +72,7 @@
{
// Create a Process through the ProcessBuilder
ProcessBuilder procBuilder = ProcessBuilderFactory.newInstance().newProcessBuilder();
- Process proc = procBuilder.addProcess(getName()).addStartEvent().addSequenceFlow("stateA").addTask("stateA").
+ Process proc = procBuilder.addProcess(getName()).addStartEvent("Start").addSequenceFlow("stateA").addTask("stateA").
addExecutionHandler(TaskA.class).addSequenceFlow("end").addEndEvent("end").getProcess();
runProcess(proc);
@@ -86,13 +86,13 @@
// Validate received signals
List<Signal> signals = getSignals();
- assertEquals(Signal.Type.ENTER_PROCESS, signals.get(0).getType());
- assertEquals(Signal.Type.ENTER_START_EVENT, signals.get(1).getType());
- assertEquals(Signal.Type.EXIT_START_EVENT, signals.get(2).getType());
- assertEquals(Signal.Type.ENTER_TASK, signals.get(3).getType());
- assertEquals(Signal.Type.EXIT_TASK, signals.get(4).getType());
- assertEquals(Signal.Type.ENTER_END_EVENT, signals.get(5).getType());
- assertEquals(Signal.Type.EXIT_END_EVENT, signals.get(6).getType());
- assertEquals(Signal.Type.EXIT_PROCESS, signals.get(7).getType());
+ assertEquals(Signal.SignalType.ENTER_PROCESS, signals.get(0).getType());
+ assertEquals(Signal.SignalType.ENTER_START_EVENT, signals.get(1).getType());
+ assertEquals(Signal.SignalType.EXIT_START_EVENT, signals.get(2).getType());
+ assertEquals(Signal.SignalType.ENTER_TASK, signals.get(3).getType());
+ assertEquals(Signal.SignalType.EXIT_TASK, signals.get(4).getType());
+ assertEquals(Signal.SignalType.ENTER_END_EVENT, signals.get(5).getType());
+ assertEquals(Signal.SignalType.EXIT_END_EVENT, signals.get(6).getType());
+ assertEquals(Signal.SignalType.EXIT_PROCESS, signals.get(7).getType());
}
}
More information about the jbpm-commits
mailing list