[jbpm-commits] JBoss JBPM SVN: r1924 - in jbossbpm/spec/trunk/modules: api/src/main/java/org/jboss/bpm/model and 7 other directories.
do-not-reply at jboss.org
do-not-reply at jboss.org
Mon Aug 18 09:58:26 EDT 2008
Author: thomas.diesler at jboss.com
Date: 2008-08-18 09:58:26 -0400 (Mon, 18 Aug 2008)
New Revision: 1924
Added:
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/ProcessModel.java
Removed:
jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/message/
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/Constants.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/internal/FlowObject.java
jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/ProcessMarshaller.java
jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/include/ProcessIncludeTest.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/MessageManagerImpl.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/client/internal/RunnableToken.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/BPMNElementImpl.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/FlowObjectImpl.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/ReceiveTaskImpl.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/SendTaskImpl.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/TokenExecutorImpl.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/runtime/internal/DelegatingExecutionContext.java
Log:
Split Process into Process + ProcessModel
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-18 12:44:46 UTC (rev 1923)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/MessageManager.java 2008-08-18 13:58:26 UTC (rev 1924)
@@ -31,9 +31,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jboss.bpm.model.Message;
-import org.jboss.bpm.model.Process;
import org.jboss.bpm.model.internal.Event;
-import org.jboss.bpm.model.internal.FlowObject;
import org.jboss.bpm.model.internal.Participant;
import org.jboss.bpm.model.internal.Task;
@@ -44,7 +42,7 @@
* @author thomas.diesler at jboss.com
* @since 18-Jun-2008
*/
-public class MessageManager
+public abstract class MessageManager
{
// provide logging
private static final Log log = LogFactory.getLog(MessageManager.class);
@@ -103,24 +101,8 @@
/**
* Send a message to a given {@link Task} or {@link Event}
*/
- public void sendMessage(ObjectName procID, String targetName, Message msg)
- {
- ProcessManager pm = ProcessManager.locateProcessManager();
- Process proc = pm.getProcessByID(procID);
- if (proc == null)
- throw new IllegalStateException("Cannot obtain registered process: " + procID);
+ public abstract void sendMessage(ObjectName procID, String targetName, Message msg);
- FlowObject target = proc.getFlowObject(targetName);
- if (target == null)
- throw new IllegalArgumentException("Cannot find message target: " + targetName);
- if (target instanceof MessageListener == false)
- throw new IllegalArgumentException("Message target is not a valid message receiver: " + targetName);
-
- log.debug("sendMessage to " + target + " => " + msg);
- MessageListener msgListener = (MessageListener)target;
- msgListener.catchMessage(msg);
- }
-
/**
* Send a message to a given {@link MessageListener}
*/
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-18 12:44:46 UTC (rev 1923)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/ProcessManager.java 2008-08-18 13:58:26 UTC (rev 1924)
@@ -41,6 +41,7 @@
import org.apache.commons.logging.LogFactory;
import org.jboss.bpm.EngineShutdownException;
import org.jboss.bpm.client.internal.DialectRegistry;
+import org.jboss.bpm.model.Constants;
import org.jboss.bpm.model.Process;
import org.jboss.bpm.runtime.Attachments;
import org.w3c.dom.Document;
@@ -114,7 +115,7 @@
* @param status The optional process status
* @return An empty set if the process cannot be found
*/
- public Set<Process> getProcesses(String name, Process.ProcessStatus status)
+ public Set<Process> getProcesses(String name, Constants.ProcessStatus status)
{
Set<Process> procSet = new HashSet<Process>();
for (Process aux : procs.values())
Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Constants.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Constants.java 2008-08-18 12:44:46 UTC (rev 1923)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Constants.java 2008-08-18 13:58:26 UTC (rev 1924)
@@ -70,4 +70,20 @@
{
Service, Receive, Send, User, Script, Manual, Reference, None
}
+
+ /**
+ * Defines the type of a {@link Process}
+ */
+ public enum ProcessType
+ {
+ None, Private, Abstract, Collaboration
+ }
+
+ /**
+ * Defines the status a {@link Process} can be in
+ */
+ public enum ProcessStatus
+ {
+ None, Ready, Active, Cancelled, Aborting, Aborted, Completing, Completed
+ }
}
\ No newline at end of file
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-18 12:44:46 UTC (rev 1923)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Process.java 2008-08-18 13:58:26 UTC (rev 1924)
@@ -21,19 +21,12 @@
*/
package org.jboss.bpm.model;
-//$Id$
+//$Id: Process.java 1919 2008-08-18 10:40:03Z thomas.diesler at jboss.com $
-import java.util.List;
-
import javax.management.ObjectName;
+import org.jboss.bpm.model.Constants.ProcessStatus;
import org.jboss.bpm.model.internal.Activity;
-import org.jboss.bpm.model.internal.Assignment;
-import org.jboss.bpm.model.internal.FlowObject;
-import org.jboss.bpm.model.internal.InputSet;
-import org.jboss.bpm.model.internal.OutputSet;
-import org.jboss.bpm.model.internal.PropertySupport;
-import org.jboss.bpm.model.internal.SupportingElement;
import org.jboss.bpm.runtime.Attachments;
/**
@@ -42,103 +35,24 @@
* @author thomas.diesler at jboss.com
* @since 08-Jul-2008
*/
-public interface Process extends SupportingElement, PropertySupport
+public interface Process
{
/**
- * Defines the type of a {@link Process}
+ * Get the ID of this element
*/
- public enum ProcessType
- {
- None, Private, Abstract, Collaboration
- };
-
+ ObjectName getID();
+
/**
- * Defines the status a {@link Process} can be in
- */
- public enum ProcessStatus
- {
- None, Ready, Active, Cancelled, Aborting, Aborted, Completing, Completed
- };
-
- /**
* Get the unique name.
*/
String getName();
/**
- * Get the process type
- */
- ProcessType getProcessType();
-
- /**
* Get the process state
*/
ProcessStatus getProcessStatus();
-
- /**
- * Get the list of flow objects
- */
- 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.
- */
- List<String> getPerformers();
-
- /**
- * One or more assignment expressions MAY be made for the object. The Assignment SHALL be performed as defined by the
- * AssignTime attribute.
- */
- List<Assignment> getAssignments();
-
- /**
- * The InputSets attribute defines the data requirements for input to the Process. Zero or more InputSets MAY be
- * defined. Each Input set is sufficient to allow the Process to be performed (if it has first been instantiated by
- * the appropriate signal arriving from an incoming Sequence Flow)
- */
- List<InputSet> getInputSets();
-
- /**
- * The OutputSets attribute defines the data requirements for output from the Process. Zero or more OutputSets MAY be
- * defined. At the completion of the Process, only one of the OutputSets may be produced--It is up to the
- * implementation of the Process to determine which set will be produced. However, the IORules attribute MAY indicate
- * a relationship between an OutputSet and an InputSet that started the Process.
- */
- List<OutputSet> getOutputSets();
-
- /**
- * 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 getMessage(String msgName);
-
- // Not Part of BPMN ========================================================================
-
- /**
- * Make a deep copy of the process
- */
- Process copyProcess();
-
- /**
* Start the process
*/
ObjectName startProcess();
Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/FlowObject.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/FlowObject.java 2008-08-18 12:44:46 UTC (rev 1923)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/FlowObject.java 2008-08-18 13:58:26 UTC (rev 1924)
@@ -23,8 +23,6 @@
import java.util.List;
-import org.jboss.bpm.model.Process;
-
//$Id$
/**
@@ -43,7 +41,7 @@
/**
* Get the associated Process
*/
- Process getProcess();
+ ProcessModel getProcess();
/**
* One or more assignment expressions MAY be made for the object. For activities (Task, Sub-Process, and Process), the
Added: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/ProcessModel.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/ProcessModel.java (rev 0)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/ProcessModel.java 2008-08-18 13:58:26 UTC (rev 1924)
@@ -0,0 +1,110 @@
+/*
+ * 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 java.util.List;
+
+import org.jboss.bpm.model.Message;
+import org.jboss.bpm.model.Constants.ProcessStatus;
+import org.jboss.bpm.model.Constants.ProcessType;
+
+/**
+ * A Process is any {@link Activity} performed within a company or organization.
+ *
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+public interface ProcessModel extends SupportingElement, PropertySupport
+{
+ /**
+ * Get the unique name.
+ */
+ String getName();
+
+ /**
+ * Get the process type
+ */
+ ProcessType getProcessType();
+
+ /**
+ * Get the process state
+ */
+ ProcessStatus getProcessStatus();
+
+ /**
+ * Get the list of flow objects
+ */
+ 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.
+ */
+ List<String> getPerformers();
+
+ /**
+ * One or more assignment expressions MAY be made for the object. The Assignment SHALL be performed as defined by the
+ * AssignTime attribute.
+ */
+ List<Assignment> getAssignments();
+
+ /**
+ * The InputSets attribute defines the data requirements for input to the Process. Zero or more InputSets MAY be
+ * defined. Each Input set is sufficient to allow the Process to be performed (if it has first been instantiated by
+ * the appropriate signal arriving from an incoming Sequence Flow)
+ */
+ List<InputSet> getInputSets();
+
+ /**
+ * The OutputSets attribute defines the data requirements for output from the Process. Zero or more OutputSets MAY be
+ * defined. At the completion of the Process, only one of the OutputSets may be produced--It is up to the
+ * implementation of the Process to determine which set will be produced. However, the IORules attribute MAY indicate
+ * a relationship between an OutputSet and an InputSet that started the Process.
+ */
+ List<OutputSet> getOutputSets();
+
+ /**
+ * 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 getMessage(String msgName);
+}
\ No newline at end of file
Property changes on: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/ProcessModel.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Modified: jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/ProcessMarshaller.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/ProcessMarshaller.java 2008-08-18 12:44:46 UTC (rev 1923)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/ProcessMarshaller.java 2008-08-18 13:58:26 UTC (rev 1924)
@@ -60,7 +60,6 @@
import org.jboss.bpm.dialect.api10.model.ObjectFactory;
import org.jboss.bpm.model.Constants;
import org.jboss.bpm.model.Message;
-import org.jboss.bpm.model.Process;
import org.jboss.bpm.model.Property;
import org.jboss.bpm.model.Signal;
import org.jboss.bpm.model.internal.Assignment;
@@ -82,6 +81,7 @@
import org.jboss.bpm.model.internal.OutputSet;
import org.jboss.bpm.model.internal.ParallelGateway;
import org.jboss.bpm.model.internal.Participant;
+import org.jboss.bpm.model.Process;
import org.jboss.bpm.model.internal.ReceiveTask;
import org.jboss.bpm.model.internal.SendTask;
import org.jboss.bpm.model.internal.SequenceFlow;
@@ -104,7 +104,7 @@
{
public void marshallProcess(Process proc, Writer out) throws JAXBException, IOException
{
- JAXBProcess jaxbProc = adaptProcess(proc);
+ JAXBProcess jaxbProc = adaptProcess((org.jboss.bpm.model.internal.ProcessModel)proc);
JAXBContext jaxbContext = JAXBContext.newInstance(ObjectFactory.class);
Marshaller marshaller = jaxbContext.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
@@ -113,7 +113,7 @@
marshaller.marshal(jaxbProc, out);
}
- private JAXBProcess adaptProcess(Process proc)
+ private JAXBProcess adaptProcess(org.jboss.bpm.model.internal.ProcessModel proc)
{
JAXBProcess jaxbProc = new JAXBProcess();
jaxbProc.setName(proc.getName());
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-18 12:44:46 UTC (rev 1923)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/include/ProcessIncludeTest.java 2008-08-18 13:58:26 UTC (rev 1924)
@@ -23,10 +23,9 @@
// $Id$
+import org.jboss.bpm.ProcessTimeoutException;
import org.jboss.bpm.client.ProcessManager;
-import org.jboss.bpm.model.Message;
import org.jboss.bpm.model.Process;
-import org.jboss.bpm.model.internal.ReceiveTask;
import org.jboss.bpm.test.DefaultEngineTestCase;
/**
@@ -37,15 +36,21 @@
*/
public class ProcessIncludeTest extends DefaultEngineTestCase
{
-
+
public void testInclude() throws Exception
{
ProcessManager pm = ProcessManager.locateProcessManager();
Process proc = pm.createProcess(getResourceURL("include/proc-api10.xml"));
-
- ReceiveTask recTask = (ReceiveTask)proc.getFlowObject("A");
- Message msg = recTask.getMessageRef();
- assertEquals("FooMsg", msg.getName());
- assertEquals("bar", msg.getPropertyValue("foo"));
+
+ proc.startProcess();
+ try
+ {
+ proc.waitForEnd(500);
+ fail("ProcessTimeoutException expected");
+ }
+ catch (ProcessTimeoutException ex)
+ {
+ // expected
+ }
}
}
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-18 12:44:46 UTC (rev 1923)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/client/internal/ExecutionManagerImpl.java 2008-08-18 13:58:26 UTC (rev 1924)
@@ -29,10 +29,10 @@
import org.jboss.bpm.client.ExecutionManager;
import org.jboss.bpm.client.ProcessManager;
import org.jboss.bpm.client.SignalManager;
+import org.jboss.bpm.model.Constants;
import org.jboss.bpm.model.Process;
import org.jboss.bpm.model.Signal;
import org.jboss.bpm.model.Constants.AssignTime;
-import org.jboss.bpm.model.Process.ProcessStatus;
import org.jboss.bpm.model.Signal.SignalType;
import org.jboss.bpm.model.internal.Assignment;
import org.jboss.bpm.model.internal.Expression;
@@ -66,7 +66,7 @@
public void startProcess(final Process proc, final Attachments att)
{
final ProcessImpl procImpl = (ProcessImpl)proc;
- procImpl.setProcessStatus(ProcessStatus.Active);
+ procImpl.setProcessStatus(Constants.ProcessStatus.Active);
SignalManager signalManager = SignalManager.locateSignalManager();
signalManager.throwSignal(proc.getName(), new Signal(proc.getName(), SignalType.SYSTEM_PROCESS_ENTER));
@@ -77,7 +77,7 @@
{
public void start(Token token)
{
- processStartTimeAssignments(proc, token);
+ processStartTimeAssignments(procImpl, token);
Thread executorThread = new Thread(runnableProcess);
procImpl.setExecutorThread(executorThread);
@@ -88,7 +88,7 @@
rtProc.setTokenExecutor(tokenExecutor);
addRuntimeProcess(rtProc);
- StartEvent start = getStartEvent(proc);
+ StartEvent start = getStartEvent(procImpl);
if (start != null)
{
TokenImpl token = new TokenImpl(att);
@@ -97,7 +97,7 @@
}
}
- private StartEvent getStartEvent(Process proc)
+ private StartEvent getStartEvent(ProcessImpl proc)
{
StartEvent start = null;
for (StartEvent aux : proc.getFlowObjects(StartEvent.class))
@@ -113,7 +113,7 @@
}
// Evaluate the Start time assignments
- private void processStartTimeAssignments(Process proc, Token token)
+ private void processStartTimeAssignments(ProcessImpl proc, Token token)
{
DelegatingToken delegatingToken = new DelegatingToken((MutableToken)token);
ExecutionContext exContext = token.getExecutionContext();
@@ -157,16 +157,16 @@
public void run()
{
TokenExecutor tokenExecutor = rtProc.getTokenExecutor();
- Process proc = rtProc.getProcess();
+ ProcessImpl proc = (ProcessImpl)rtProc.getProcess();
String procName = proc.getName();
- ProcessStatus procStatus = proc.getProcessStatus();
+ Constants.ProcessStatus procStatus = proc.getProcessStatus();
boolean hasActiveTokens = tokenExecutor.hasRunnableTokens();
try
{
synchronized (proc)
{
- while (procStatus == ProcessStatus.Active && hasActiveTokens)
+ while (procStatus == Constants.ProcessStatus.Active && hasActiveTokens)
{
try
{
@@ -187,10 +187,10 @@
SignalManager signalManager = SignalManager.locateSignalManager();
signalManager.throwSignal(procName, new Signal(procName, Signal.SignalType.SYSTEM_PROCESS_EXIT));
- if (procStatus == ProcessStatus.Active)
+ if (procStatus == Constants.ProcessStatus.Active)
{
ProcessImpl procImpl = (ProcessImpl)rtProc.getProcess();
- procImpl.setProcessStatus(ProcessStatus.Completed);
+ procImpl.setProcessStatus(Constants.ProcessStatus.Completed);
}
ProcessManager procManager = ProcessManager.locateProcessManager();
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/client/internal/MessageManagerImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/client/internal/MessageManagerImpl.java 2008-08-18 12:44:46 UTC (rev 1923)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/client/internal/MessageManagerImpl.java 2008-08-18 13:58:26 UTC (rev 1924)
@@ -23,7 +23,19 @@
// $Id$
+import javax.management.ObjectName;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.jboss.bpm.client.MessageListener;
import org.jboss.bpm.client.MessageManager;
+import org.jboss.bpm.client.ProcessManager;
+import org.jboss.bpm.model.Message;
+import org.jboss.bpm.model.Process;
+import org.jboss.bpm.model.internal.ProcessImpl;
+import org.jboss.bpm.model.internal.Event;
+import org.jboss.bpm.model.internal.FlowObject;
+import org.jboss.bpm.model.internal.Task;
/**
* The ProcessEngine sends mesages through the MessageManager.
@@ -33,4 +45,28 @@
*/
public class MessageManagerImpl extends MessageManager
{
+ // provide logging
+ private static final Log log = LogFactory.getLog(MessageManagerImpl.class);
+
+ /**
+ * Send a message to a given {@link Task} or {@link Event}
+ */
+ public void sendMessage(ObjectName procID, String targetName, Message msg)
+ {
+ ProcessManager pm = ProcessManager.locateProcessManager();
+ Process proc = pm.getProcessByID(procID);
+ if (proc == null)
+ throw new IllegalStateException("Cannot obtain registered process: " + procID);
+
+ ProcessImpl procImpl = (ProcessImpl)proc;
+ FlowObject target = procImpl.getFlowObject(targetName);
+ if (target == null)
+ throw new IllegalArgumentException("Cannot find message target: " + targetName);
+ if (target instanceof MessageListener == false)
+ throw new IllegalArgumentException("Message target is not a valid message receiver: " + targetName);
+
+ log.debug("sendMessage to " + target + " => " + msg);
+ MessageListener msgListener = (MessageListener)target;
+ msgListener.catchMessage(msg);
+ }
}
\ No newline at end of file
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/client/internal/RunnableToken.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/client/internal/RunnableToken.java 2008-08-18 12:44:46 UTC (rev 1923)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/client/internal/RunnableToken.java 2008-08-18 13:58:26 UTC (rev 1924)
@@ -25,7 +25,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.jboss.bpm.model.Process.ProcessStatus;
+import org.jboss.bpm.model.Constants;
import org.jboss.bpm.model.internal.ConnectingObject;
import org.jboss.bpm.model.internal.FlowObject;
import org.jboss.bpm.model.internal.FlowObjectImpl;
@@ -75,8 +75,8 @@
throw new IllegalStateException("Cannot obtain initial flow");
TokenStatus tokStatus = token.getTokenStatus();
- ProcessStatus procStatus = procImpl.getProcessStatus();
- while (procStatus == ProcessStatus.Active && tokStatus == TokenStatus.Started)
+ Constants.ProcessStatus procStatus = procImpl.getProcessStatus();
+ while (procStatus == Constants.ProcessStatus.Active && tokStatus == TokenStatus.Started)
{
flow = token.getFlow();
@@ -120,7 +120,7 @@
catch (RuntimeException rte)
{
log.error("Process aborted: " + procImpl, rte);
- procImpl.setProcessStatus(ProcessStatus.Aborted);
+ procImpl.setProcessStatus(Constants.ProcessStatus.Aborted);
procImpl.setRuntimeException(rte);
}
finally
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-18 12:44:46 UTC (rev 1923)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ActivityImpl.java 2008-08-18 13:58:26 UTC (rev 1924)
@@ -29,14 +29,7 @@
import org.jboss.bpm.InvalidProcessException;
import org.jboss.bpm.NotImplementedException;
-import org.jboss.bpm.model.Process;
import org.jboss.bpm.model.Property;
-import org.jboss.bpm.model.internal.Activity;
-import org.jboss.bpm.model.internal.ConnectingObject;
-import org.jboss.bpm.model.internal.Expression;
-import org.jboss.bpm.model.internal.InputSet;
-import org.jboss.bpm.model.internal.OutputSet;
-import org.jboss.bpm.model.internal.SequenceFlow;
import org.jboss.bpm.runtime.ExecutionContext;
import org.jboss.bpm.runtime.Token;
import org.jboss.bpm.runtime.TokenExecutor;
@@ -294,7 +287,7 @@
}
@Override
- protected void initialize(Process proc)
+ protected void initialize(ProcessModel proc)
{
super.initialize(proc);
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/BPMNElementImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/BPMNElementImpl.java 2008-08-18 12:44:46 UTC (rev 1923)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/BPMNElementImpl.java 2008-08-18 13:58:26 UTC (rev 1924)
@@ -26,7 +26,7 @@
import javax.management.ObjectName;
import org.jboss.bpm.client.ObjectNameFactory;
-import org.jboss.bpm.model.Process;
+import org.jboss.bpm.model.internal.ProcessModel;
import org.jboss.bpm.model.internal.BPMNElement;
import org.jboss.bpm.model.internal.ConnectingObject;
import org.jboss.bpm.model.internal.Event;
@@ -52,7 +52,7 @@
/**
* Initialize the flow object
*/
- protected void initialize(Process proc)
+ protected void initialize(ProcessModel proc)
{
assignElementID();
}
@@ -65,9 +65,9 @@
Event event = (Event)this;
str.append("type=Event,name=" + event.getName());
}
- else if (this instanceof Process)
+ else if (this instanceof ProcessModel)
{
- Process proc = (Process)this;
+ ProcessModel proc = (ProcessModel)this;
str.append("type=Process,name=" + proc.getName());
}
else if (this instanceof Task)
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-18 12:44:46 UTC (rev 1923)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/EndEventImpl.java 2008-08-18 13:58:26 UTC (rev 1924)
@@ -30,13 +30,8 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jboss.bpm.client.SignalManager;
-import org.jboss.bpm.model.Process;
import org.jboss.bpm.model.Signal;
import org.jboss.bpm.model.Constants.EventDetailType;
-import org.jboss.bpm.model.internal.EndEvent;
-import org.jboss.bpm.model.internal.EventDetail;
-import org.jboss.bpm.model.internal.MessageEventDetail;
-import org.jboss.bpm.model.internal.SequenceFlow;
import org.jboss.bpm.runtime.SignalHandler;
import org.jboss.bpm.runtime.Token;
import org.jboss.bpm.runtime.TokenExecutor;
@@ -135,7 +130,7 @@
}
@Override
- protected void initialize(Process proc)
+ protected void initialize(ProcessModel proc)
{
super.initialize(proc);
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-18 12:44:46 UTC (rev 1923)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/FlowObjectImpl.java 2008-08-18 13:58:26 UTC (rev 1924)
@@ -27,18 +27,7 @@
import org.jboss.bpm.InvalidProcessException;
import org.jboss.bpm.NameNotUniqueException;
-import org.jboss.bpm.model.Process;
import org.jboss.bpm.model.Constants.AssignTime;
-import org.jboss.bpm.model.internal.Assignment;
-import org.jboss.bpm.model.internal.ConnectingObject;
-import org.jboss.bpm.model.internal.Expression;
-import org.jboss.bpm.model.internal.FlowObject;
-import org.jboss.bpm.model.internal.Gate;
-import org.jboss.bpm.model.internal.Gateway;
-import org.jboss.bpm.model.internal.MultipleInFlowSupport;
-import org.jboss.bpm.model.internal.MultipleOutFlowSupport;
-import org.jboss.bpm.model.internal.SingleInFlowSupport;
-import org.jboss.bpm.model.internal.SingleOutFlowSupport;
import org.jboss.bpm.runtime.ExecutionContext;
import org.jboss.bpm.runtime.ExecutionHandler;
import org.jboss.bpm.runtime.FlowHandler;
@@ -58,7 +47,7 @@
public abstract class FlowObjectImpl extends GraphicalElementImpl implements FlowObject, HandlerSetterSupport
{
private String name;
- private Process proc;
+ private ProcessModel proc;
private FlowHandler flowHandler;
private SignalHandler signalHandler;
private ExecutionHandler executionHandler;
@@ -69,7 +58,7 @@
this.name = name;
}
- public Process getProcess()
+ public ProcessModel getProcess()
{
return proc;
}
@@ -204,7 +193,7 @@
}
@Override
- protected void initialize(Process proc)
+ protected void initialize(ProcessModel proc)
{
super.initialize(proc);
this.proc = proc;
@@ -267,7 +256,7 @@
throw new InvalidProcessException("Unconnected flow object: " + this);
}
- private void initFlow(Process proc, SequenceFlowImpl flow)
+ private void initFlow(ProcessModel proc, SequenceFlowImpl flow)
{
if (flow != null)
{
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-18 12:44:46 UTC (rev 1923)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ProcessBuilderImpl.java 2008-08-18 13:58:26 UTC (rev 1924)
@@ -71,11 +71,12 @@
public ProcessBuilder addProcessElements(Process addProc)
{
- for(Message msg : addProc.getMessages())
+ ProcessImpl procImpl = (ProcessImpl)addProc;
+ for(Message msg : procImpl.getMessages())
{
getProcessInternal().addMessage(msg);
}
- for(FlowObject fo : addProc.getFlowObjects())
+ for(FlowObject fo : procImpl.getFlowObjects())
{
getProcessInternal().addFlowObject(fo);
}
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-18 12:44:46 UTC (rev 1923)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ProcessImpl.java 2008-08-18 13:58:26 UTC (rev 1924)
@@ -41,15 +41,10 @@
import org.jboss.bpm.ProcessTimeoutException;
import org.jboss.bpm.client.ProcessManager;
import org.jboss.bpm.client.internal.ProcessManagerImpl;
+import org.jboss.bpm.model.Constants;
import org.jboss.bpm.model.Message;
import org.jboss.bpm.model.Process;
import org.jboss.bpm.model.Property;
-import org.jboss.bpm.model.internal.Assignment;
-import org.jboss.bpm.model.internal.EndEvent;
-import org.jboss.bpm.model.internal.FlowObject;
-import org.jboss.bpm.model.internal.InputSet;
-import org.jboss.bpm.model.internal.OutputSet;
-import org.jboss.bpm.model.internal.StartEvent;
import org.jboss.bpm.runtime.Attachments;
import org.jboss.bpm.runtime.internal.MutablePropertySupport;
@@ -60,7 +55,7 @@
* @since 08-Jul-2008
*/
@SuppressWarnings("serial")
-public class ProcessImpl extends SupportingElementImpl implements Process, MutablePropertySupport
+public class ProcessImpl extends SupportingElementImpl implements ProcessModel, Process, MutablePropertySupport
{
// provide logging
private static final Log log = LogFactory.getLog(ProcessImpl.class);
@@ -76,7 +71,7 @@
// The process assignments
private List<Assignment> assignments = new ArrayList<Assignment>();
// the status of the process
- private ProcessStatus status = ProcessStatus.None;
+ private Constants.ProcessStatus status = Constants.ProcessStatus.None;
// The possible exception that caused the process to abort
private RuntimeException runtimeException;
// The thread of the executor
@@ -117,7 +112,7 @@
throw new NotImplementedException("JBPM-1646", "Process Performers");
}
- public ProcessType getProcessType()
+ public Constants.ProcessType getProcessType()
{
throw new NotImplementedException("JBPM-1647", "Process Type");
}
@@ -176,7 +171,7 @@
public List<FlowObject> getFlowObjects()
{
- if (status == ProcessStatus.None)
+ if (status == Constants.ProcessStatus.None)
return flowObjects;
return Collections.unmodifiableList(flowObjects);
@@ -185,7 +180,7 @@
/**
* A naive copy implementation that relies on serialization
*/
- public Process copyProcess()
+ public ProcessModel copyProcess()
{
try
{
@@ -213,10 +208,10 @@
{
ProcessManager pm = ProcessManager.locateProcessManager();
- if (status == ProcessStatus.Aborted || status == ProcessStatus.Completed)
+ if (status == Constants.ProcessStatus.Aborted || status == Constants.ProcessStatus.Completed)
resetProcess();
- if (status != ProcessStatus.Ready)
+ if (status != Constants.ProcessStatus.Ready)
throw new IllegalStateException("Cannot start process in state: " + status);
// Register the process if needed
@@ -238,7 +233,7 @@
FlowObjectImpl foImpl = (FlowObjectImpl)fo;
foImpl.reset();
}
- status = ProcessStatus.Ready;
+ status = Constants.ProcessStatus.Ready;
runtimeException = null;
}
@@ -259,7 +254,7 @@
*/
private void waitForEndInternal(long timeout)
{
- if (status == ProcessStatus.None || status == ProcessStatus.Ready)
+ if (status == Constants.ProcessStatus.None || status == Constants.ProcessStatus.Ready)
throw new IllegalStateException("Cannot wait for process in state: " + status);
if (executorThread == null)
@@ -313,7 +308,7 @@
private boolean isProcessTerminated()
{
- return status == ProcessStatus.Cancelled || status == ProcessStatus.Completed || status == ProcessStatus.Aborted;
+ return status == Constants.ProcessStatus.Cancelled || status == Constants.ProcessStatus.Completed || status == Constants.ProcessStatus.Aborted;
}
public FlowObject getFlowObject(String name)
@@ -345,12 +340,12 @@
return retFlowObjects;
}
- public ProcessStatus getProcessStatus()
+ public Constants.ProcessStatus getProcessStatus()
{
return status;
}
- public void setProcessStatus(ProcessStatus status)
+ public void setProcessStatus(Constants.ProcessStatus status)
{
this.status = status;
}
@@ -390,7 +385,7 @@
public void initialize()
{
- if (status != ProcessStatus.None)
+ if (status != Constants.ProcessStatus.None)
throw new IllegalStateException("Cannot initialize process in state: " + status);
// Initialize the Element
@@ -416,7 +411,7 @@
foImpl.initialize(this);
}
- status = ProcessStatus.Ready;
+ status = Constants.ProcessStatus.Ready;
}
protected void initializeMessageRef(Message msgRef)
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ReceiveTaskImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ReceiveTaskImpl.java 2008-08-18 12:44:46 UTC (rev 1923)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ReceiveTaskImpl.java 2008-08-18 13:58:26 UTC (rev 1924)
@@ -30,11 +30,9 @@
import org.jboss.bpm.NotImplementedException;
import org.jboss.bpm.client.MessageListener;
import org.jboss.bpm.model.Message;
-import org.jboss.bpm.model.Process;
import org.jboss.bpm.model.Property;
import org.jboss.bpm.model.Constants.TaskType;
import org.jboss.bpm.model.Message.Implementation;
-import org.jboss.bpm.model.internal.ReceiveTask;
import org.jboss.bpm.runtime.ExecutionContext;
import org.jboss.bpm.runtime.Token;
import org.jboss.bpm.runtime.TokenExecutor;
@@ -162,7 +160,7 @@
}
@Override
- protected void initialize(Process proc)
+ protected void initialize(ProcessModel proc)
{
super.initialize(proc);
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/SendTaskImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/SendTaskImpl.java 2008-08-18 12:44:46 UTC (rev 1923)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/SendTaskImpl.java 2008-08-18 13:58:26 UTC (rev 1924)
@@ -26,10 +26,8 @@
import org.jboss.bpm.InvalidProcessException;
import org.jboss.bpm.model.Message;
-import org.jboss.bpm.model.Process;
import org.jboss.bpm.model.Constants.TaskType;
import org.jboss.bpm.model.Message.Implementation;
-import org.jboss.bpm.model.internal.SendTask;
import org.jboss.bpm.runtime.Token;
/**
@@ -81,7 +79,7 @@
}
@Override
- protected void initialize(Process proc)
+ protected void initialize(ProcessModel proc)
{
super.initialize(proc);
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-18 12:44:46 UTC (rev 1923)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/StartEventImpl.java 2008-08-18 13:58:26 UTC (rev 1924)
@@ -32,13 +32,8 @@
import org.jboss.bpm.client.ExecutionManager;
import org.jboss.bpm.client.SignalListener;
import org.jboss.bpm.client.SignalManager;
-import org.jboss.bpm.model.Process;
+import org.jboss.bpm.model.Constants;
import org.jboss.bpm.model.Signal;
-import org.jboss.bpm.model.Process.ProcessStatus;
-import org.jboss.bpm.model.internal.EventDetail;
-import org.jboss.bpm.model.internal.SequenceFlow;
-import org.jboss.bpm.model.internal.SignalEventDetail;
-import org.jboss.bpm.model.internal.StartEvent;
import org.jboss.bpm.runtime.SignalHandler;
import org.jboss.bpm.runtime.Token;
import org.jboss.bpm.runtime.TokenExecutor;
@@ -118,7 +113,7 @@
}
@Override
- protected void initialize(final Process proc)
+ protected void initialize(final ProcessModel proc)
{
super.initialize(proc);
@@ -140,7 +135,7 @@
if (startSignal.getSignalType() == signal.getSignalType() && startSignal.getMessage().equals(signal.getMessage()))
{
log.debug("catchSignal: " + signal);
- if (proc.getProcessStatus() == ProcessStatus.Active)
+ if (proc.getProcessStatus() == Constants.ProcessStatus.Active)
{
log.debug("Start process from signal: " + signal);
ExecutionManager exManager = ExecutionManager.locateExecutionManager();
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/TokenExecutorImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/TokenExecutorImpl.java 2008-08-18 12:44:46 UTC (rev 1923)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/TokenExecutorImpl.java 2008-08-18 13:58:26 UTC (rev 1924)
@@ -34,10 +34,8 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jboss.bpm.client.internal.RunnableToken;
+import org.jboss.bpm.model.Constants;
import org.jboss.bpm.model.Process;
-import org.jboss.bpm.model.Process.ProcessStatus;
-import org.jboss.bpm.model.internal.ConnectingObject;
-import org.jboss.bpm.model.internal.SequenceFlow;
import org.jboss.bpm.runtime.FlowHandler;
import org.jboss.bpm.runtime.Token;
import org.jboss.bpm.runtime.TokenExecutor;
@@ -98,7 +96,7 @@
public void start(Token token)
{
Process proc = rtProc.getProcess();
- if (proc.getProcessStatus() != ProcessStatus.Active)
+ if (proc.getProcessStatus() != Constants.ProcessStatus.Active)
throw new IllegalStateException("Cannot start token to process in state: " + proc.getProcessStatus());
log.debug("Start Token: " + token);
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/runtime/internal/DelegatingExecutionContext.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/runtime/internal/DelegatingExecutionContext.java 2008-08-18 12:44:46 UTC (rev 1923)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/runtime/internal/DelegatingExecutionContext.java 2008-08-18 13:58:26 UTC (rev 1924)
@@ -28,14 +28,14 @@
import java.util.HashMap;
import java.util.Map;
-import org.jboss.bpm.model.Process;
import org.jboss.bpm.model.Property;
import org.jboss.bpm.model.internal.Activity;
import org.jboss.bpm.model.internal.FlowObject;
+import org.jboss.bpm.model.internal.ProcessModel;
import org.jboss.bpm.runtime.ExecutionContext;
/**
- * An ExecutionContext that delegates to the current {@link Activity} or {@link Process} for property rerieval.
+ * An ExecutionContext that delegates to the current {@link Activity} or {@link ProcessModel} for property rerieval.
*
* @author Thomas.Diesler at jboss.com
* @since 15-Aug-2008
@@ -46,7 +46,7 @@
private ExecutionContext delegate;
private String activityPrefix;
private String procPrefix;
- private Process proc;
+ private ProcessModel proc;
DelegatingExecutionContext(FlowObject flowObject, ExecutionContext delegate)
{
More information about the jbpm-commits
mailing list