Author: thomas.diesler(a)jboss.com
Date: 2008-07-23 09:52:06 -0400 (Wed, 23 Jul 2008)
New Revision: 1697
Added:
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Assignment.java
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/DataBasedExclusiveGateway.java
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/EventBasedExclusiveGateway.java
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Gate.java
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ManualTask.java
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ReceiveTask.java
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ReferenceTask.java
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ScriptTask.java
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/SendTask.java
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ServiceTask.java
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/UserTask.java
jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/airticket/
jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/airticket/AirticketTest.java
jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/airticket/FrontGateServlet.java
Modified:
jbossbpm/spec/trunk/.classpath
jbossbpm/spec/trunk/eclipse/jBPMCodeStyle.xml
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/ComplexGateway.java
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ExclusiveGateway.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/InclusiveGateway.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/Task.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/testsuite/pom.xml
jbossbpm/spec/trunk/modules/testsuite/src/test/resources/samples/airticket/airticket.png
jbossbpm/spec/trunk/pom.xml
Log:
More BPMN API
Modified: jbossbpm/spec/trunk/.classpath
===================================================================
--- jbossbpm/spec/trunk/.classpath 2008-07-23 05:22:41 UTC (rev 1696)
+++ jbossbpm/spec/trunk/.classpath 2008-07-23 13:52:06 UTC (rev 1697)
@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="modules/api/target/classes"
path="modules/api/src/main/java"/>
+ <classpathentry kind="src" path="modules/ri/src/main/java"/>
<classpathentry kind="src"
path="modules/dialects/api10/src/main/java"/>
<classpathentry kind="src"
path="modules/dialects/stp/src/test/java"/>
<classpathentry kind="src"
path="modules/dialects/stp/src/main/java"/>
<classpathentry kind="src"
path="modules/dialects/xpdl21/src/main/java"/>
<classpathentry kind="src"
path="modules/dialects/jpdl32/src/main/java"/>
- <classpathentry kind="src"
path="modules/impl/src/main/java"/>
<classpathentry kind="src"
output="modules/testsuite/target/test-classes"
path="modules/testsuite/src/test/java"/>
<classpathentry kind="con"
path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con"
path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
Modified: jbossbpm/spec/trunk/eclipse/jBPMCodeStyle.xml
===================================================================
--- jbossbpm/spec/trunk/eclipse/jBPMCodeStyle.xml 2008-07-23 05:22:41 UTC (rev 1696)
+++ jbossbpm/spec/trunk/eclipse/jBPMCodeStyle.xml 2008-07-23 13:52:06 UTC (rev 1697)
@@ -186,7 +186,7 @@
<setting
id="org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement"
value="insert"/>
<setting
id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant"
value="16"/>
<setting id="org.eclipse.jdt.core.formatter.comment.format_javadoc_comments"
value="true"/>
-<setting id="org.eclipse.jdt.core.formatter.comment.line_length"
value="168"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.line_length"
value="120"/>
<setting
id="org.eclipse.jdt.core.formatter.blank_lines_between_import_groups"
value="1"/>
<setting
id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments"
value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon"
value="do not insert"/>
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-07-23
05:22:41 UTC (rev 1696)
+++
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Activity.java 2008-07-23
13:52:06 UTC (rev 1697)
@@ -21,17 +21,100 @@
*/
package org.jboss.bpm.model;
+import java.util.List;
+
//$Id$
/**
- * An activity is a generic term for work that a company or organization performs via
business processes.
- * An activity can be atomic or non-atomic (compound).
- * The types of activities that are a part of a Process Model are: {@link Process},
{@link SubProcess}, and {@link Task}.
+ * An activity is a generic term for work that a company or organization performs via
business processes. An activity can be atomic or non-atomic (compound). The types
+ * of activities that are a part of a Process Model are: {@link Process}, {@link
SubProcess}, and {@link Task}.
*
* @author thomas.diesler(a)jboss.com
* @since 08-Jul-2008
*/
public interface Activity extends FlowObject, NameSupport
{
+ /**
+ * The ActivityType MUST be of type Task or Sub-Process.
+ */
+ enum ActivityType
+ {
+ Task, SubProcess
+ }
+
+ /**
+ * The Activity LoopType
+ */
+ enum LoopType
+ {
+ None, Standard, MultiInstance
+ }
+
+ /**
+ * The ActivityType MUST be of type Task or Sub-Process.
+ */
+ ActivityType getActivityType();
+ /**
+ * One or more Performers MAY be entered. The Performer attribute defines the
+ * resource that will perform or will be responsible for the activity. The Performer
+ * entry could be in the form of a specific individual, a group, an organization role
+ * or position, or an organization.
+ */
+ List<String> getPerformers();
+
+ /**
+ * Modeler-defined Properties MAY be added to an activity. These Properties are
+ * “local” to the activity. These Properties are only for use within the processing of
+ * the activity. The fully delineated name of these properties is “<process
name>.<activity name>.<property name>”
+ * (e.g., “Add Customer.Review Credit.Status”).
+ */
+ List<Property> getProperties();
+
+ /**
+ * The InputSets attribute defines the data requirements for input to the Activity.
+ * Zero or more InputSets MAY be defined. Each Input set is sufficient to allow the
+ * Activity 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
+ * activity. Zero or more OutputSets MAY be defined. At the completion of the
+ * activity, only one of the OutputSets may be produced--It is up to the
+ * implementation of the activity to determine which set will be produced. However,
+ * the IORules attribute MAY indicate a relationship between an OutputSet and an
+ * InputSet that started the activity.
+ */
+ List<OutputSet> getOutputSets();
+
+ /**
+ * The IORules attribute is a collection of expressions, each of which specifies the
+ * required relationship between one input and one output. That is, if the activity is
+ * instantiated with a specified input, that activity shall complete with the
specified
+ * output.
+ */
+ List<Expression> getIORules();
+
+ /**
+ * The default value is 1. The value MUST NOT be less than 1. This attribute
+ * defines the number of Tokens that must arrive before the activity can begin.
+ */
+ int getStartQuantity();
+
+ /**
+ * The default value is 1. The value MUST NOT be less than 1. This attribute
+ * defines the number of Tokens that must be generated from the activity. This
+ * number of Tokens will be sent down any outgoing Sequence Flow (assuming any
+ * Sequence Flow Conditions are satisfied).
+ */
+ int getCompletionQuantity();
+
+ /**
+ * LoopType is an attribute and is by default None, but MAY be set to Standard or
+ * MultiInstance. A Task of type Receive that has its Instantiate attribute set to True
MUST NOT
+ * have a Standard or MultiInstance LoopType.
+ */
+ LoopType getLoopType();
}
\ No newline at end of file
Added: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Assignment.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Assignment.java
(rev 0)
+++
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Assignment.java 2008-07-23
13:52:06 UTC (rev 1697)
@@ -0,0 +1,65 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+package org.jboss.bpm.model;
+
+//$Id$
+
+/**
+ * An Assignment, which is used in the definition of attributes for Process,
+ * Activities, Events, Gateways, and Gates.
+ *
+ * @author thomas.diesler(a)jboss.com
+ * @since 08-Jul-2008
+ */
+public interface Assignment extends BPMNElement
+{
+ enum AssignTime
+ {
+ Start, End
+ }
+
+ /**
+ * The target for the Assignment MUST be a Property of the Process or the activity
+ * itself.
+ */
+ Property getTo();
+
+ /**
+ * The Expression MUST be made up of a combination of Values, Properties, and
+ * Attributes, which are separated by operators such as add or multiply. The
expression
+ * language is defined in the ExpressionLanguage attribute of the Business Process
+ * Diagram
+ */
+ Expression getFrom();
+
+ /**
+ * An Assignment MAY have a AssignTime setting. If the Object is an activity (Task,
+ * Sub-Process, or Process), then the Assignment MUST have an AssignTime.
+ * A value of Start means that the assignment SHALL occur at the start of the
activity.
+ * This can be used to assign the higher-level (global) Properties of the Process to
the
+ * (local) Properties of the activity as an input to the activity.
+ * A value of End means that the assignment SHALL occur at the end of the activity.
+ * This can be used to assign the (local) Properties of the activity to the
higher-level
+ * (global) Properties of the Process as an output to the activity.
+ */
+ AssignTime getAssignTime();
+}
Property changes on:
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Assignment.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Modified:
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ComplexGateway.java
===================================================================
---
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ComplexGateway.java 2008-07-23
05:22:41 UTC (rev 1696)
+++
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ComplexGateway.java 2008-07-23
13:52:06 UTC (rev 1697)
@@ -21,17 +21,30 @@
*/
package org.jboss.bpm.model;
-
// $Id$
/**
- * A Complex Gateway handles situations that are not easily handled through the other
types of Gateways. Complex Gateways can also be used to combine a set of linked
- * simple Gateways into a single, more compact situation. Modelers can provide complex
expressions that determine the merging and/or splitting behavior of the Gateway.
+ * A Complex Gateway handles situations that are not easily handled through the other
types of Gateways. Complex
+ * Gateways can also be used to combine a set of linked simple Gateways into a single,
more compact situation. Modelers
+ * can provide complex expressions that determine the merging and/or splitting behavior
of the Gateway.
*
* @author thomas.diesler(a)jboss.com
* @since 08-Jul-2008
*/
public interface ComplexGateway extends Gateway
{
+ /**
+ * If there are multiple incoming Sequence Flow, an IncomingCondition expression
+ * MUST be set by the modeler. This will consist of an expression that can reference
+ * Sequence Flow names and/or Process Properties (Data).
+ */
+ Expression getIncommingCondition();
+ /**
+ * If there are multiple outgoing Sequence Flow, an OutgoingCondition expression
+ * MUST be set by the modeler. This will consist of an expression that can reference
+ * (outgoing) Sequence Flow Ids and/or Process Properties (Data).
+ */
+ Expression getOutgoingCondition();
+
}
\ No newline at end of file
Added:
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/DataBasedExclusiveGateway.java
===================================================================
---
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/DataBasedExclusiveGateway.java
(rev 0)
+++
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/DataBasedExclusiveGateway.java 2008-07-23
13:52:06 UTC (rev 1697)
@@ -0,0 +1,55 @@
+/*
+ * 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 Data-Based Exclusive Gateways are the most commonly used type of Gateways. The set
of Gates for Data-Based
+ * Exclusive Decisions is based on the boolean expression contained in the
ConditionExpression attribute of the outgoing
+ * Sequence Flow of the Gateway. These expressions use the values of process data to
determine which path should be taken
+ * (hence the name Data-Based).
+ *
+ * The conditions for the alternative Gates should be evaluated in a specific order. The
first one that evaluates as TRUE will
+ * determine the Sequence Flow that will be taken. Since the behavior of this Gateway is
exclusive, any other conditions that
+ * may actually be TRUE will be ignored--only one Gate can be chosen. One of the Gates
may be “default” (or otherwise),
+ * and is the last Gate considered. This means that if none of the other Gates are
chosen, then the default Gate will be
+ * chosen—along with its associated Sequence Flow.
+ *
+ * The default Gate is not mandatory for a Gateway. This means that if it is not used,
then it is up to the modeler to insure
+ * that at least one Gate be valid at runtime. BPMN does not specify what will happen if
there are no valid Gates. However,
+ * BPMN does specify that there MUST NOT be implicit flow and that all Normal Flow of a
Process must be expressed
+ * through Sequence Flow. This would mean that a Process Model that has a Gateway that
potentially does not have a valid
+ * Gate at runtime is an invalid model.
+ *
+ * @author thomas.diesler(a)jboss.com
+ * @since 08-Jul-2008
+ */
+public interface DataBasedExclusiveGateway extends ExclusiveGateway
+{
+ /**
+ * A Default Gate MAY be specified
+ */
+ Gate getDefaultGate();
+
+}
\ No newline at end of file
Property changes on:
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/DataBasedExclusiveGateway.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added:
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/EventBasedExclusiveGateway.java
===================================================================
---
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/EventBasedExclusiveGateway.java
(rev 0)
+++
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/EventBasedExclusiveGateway.java 2008-07-23
13:52:06 UTC (rev 1697)
@@ -0,0 +1,53 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+package org.jboss.bpm.model;
+
+
+//$Id$
+
+/**
+ * The inclusion of Event-Based Exclusive Gateways is the result of recent developments
in the handling of distributed
+ * systems (e.g., with pi-calculus) and was derived from the BPEL4WS pick. On the input
side, their behavior is the same as
+ * a Data-Based Exclusive Gateway (see “Data-Based” on page 73). On the output side, the
basic idea is that this Decision
+ * represents a branching point in the process where the alternatives are based on events
that occurs at that point in the
+ * Process, rather than the evaluation of expressions using process data. A specific
event, usually the receipt of a message,
+ * determines which of the paths will be taken. For example, if a company is waiting for
a response from a customer, they
+ * will perform one set of activities if the customer responds “Yes” and another set of
activities if the customer responds
+ * “No.” The customer’s response determines which path is taken. The identity of the
Message determines which path is taken.
+ * That is, the “Yes” Message and the “No” message are different messages—they are not
the same message with different values
+ * within a property of the Message. The receipt of the message can be modeled with a
Task of TaskType Receive or an
+ * Intermediate Event with a Message Trigger. In addition to Messages, other Triggers for
Intermediate Events can be used, such as Timers.
+ *
+ * @author thomas.diesler(a)jboss.com
+ * @since 08-Jul-2008
+ */
+public interface EventBasedExclusiveGateway extends ExclusiveGateway
+{
+ /**
+ * Event-Based Gateways can be defined as the instantiation mechanism for the
+ * Process with the Instantiate attribute. This attribute MAY be set to true if the
+ * Gateway is the first element after the Start Event or a starting Gateway if there
is
+ * no Start Event (i.e., there are no incoming Sequence Flow).
+ */
+ boolean isInstantiate();
+
+}
\ No newline at end of file
Property changes on:
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/EventBasedExclusiveGateway.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Modified:
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ExclusiveGateway.java
===================================================================
---
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ExclusiveGateway.java 2008-07-23
05:22:41 UTC (rev 1696)
+++
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ExclusiveGateway.java 2008-07-23
13:52:06 UTC (rev 1697)
@@ -25,12 +25,33 @@
//$Id$
/**
- * A point in the workflow process where, based on a decision or workflow control data,
one of several branches is chosen.
+ * Exclusive Gateways (Decisions) are locations within a business process where the
Sequence Flow can take two or more
+ * alternative paths. This is basically the “fork in the road” for a process. For a given
performance (or instance) of the
+ * process, only one of the paths can be taken (this should not be confused with forking
of paths—refer to “Forking Flow”)
*
+ * A Decision is not an activity from the business process perspective, but is a type of
Gateway that controls
+ * the Sequence Flow between activities. It can be thought of as a question that is asked
at that point in the Process. The
+ * question has a defined set of alternative answers (Gates). Each Decision Gate is
associated with a condition expression
+ * found within an outgoing Sequence Flow. When a Gate is chosen during the performance
of the Process, the
+ * corresponding Sequence Flow is then chosen. A Token arriving at the Decision would be
directed down the appropriate
+ * path, based on the chosen Gate.
+ *
+ * The Exclusive Decision has two or more outgoing Sequence Flow, but only one of them
may be taken during the
+ * performance of the Process. Thus, the Exclusive Decision defines a set of alternative
paths for the Token to take as it
+ * traverses the Flow. There are two types of Exclusive Decisions: Data-Based and
Event-Based.
+ *
* @author thomas.diesler(a)jboss.com
* @since 08-Jul-2008
*/
public interface ExclusiveGateway extends Gateway
{
-
+ enum ExclusiveType
+ {
+ Data, Event
+ }
+
+ /**
+ * ExclusiveType is by default Data. The ExclusiveType MAY be set to Event.
+ */
+ ExclusiveType getExclusiveType();
}
\ No newline at end of file
Added: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Gate.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Gate.java
(rev 0)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Gate.java 2008-07-23
13:52:06 UTC (rev 1697)
@@ -0,0 +1,75 @@
+/*
+ * 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;
+
+import java.util.List;
+
+
+
+//$Id$
+
+/**
+ * There MAY be zero or more Gates (except where noted below). Zero Gates are
+ * allowed if the Gateway is last object in a Process flow and there are no Start or
+ * End Events for the Process. If there are zero or only one incoming Sequence
+ * Flow, then there MUST be at least two Gates.
+ *
+ * For Exclusive Data-Based Gateways
+ * When two Gates are required, one of them MAY be the DefaultGate.
+ *
+ * For Exclusive Event-Based Gateways
+ * There MUST be two or more Gates. (Note that this type of Gateway does not act
+ * only as a Merge--it is always a Decision, at least.)
+ *
+ * For Inclusive Gateways
+ * When two Gates are required, one of them MAY be the DefaultGate.
+ *
+ * @author thomas.diesler(a)jboss.com
+ * @since 08-Jul-2008
+ */
+public interface Gate extends BPMNElement
+{
+ /**
+ * Each Gate MUST have an associated (outgoing) Sequence Flow.
+ *
+ * For Exclusive Event-Based, Complex, and Parallel Gateways:
+ * The Sequence Flow MUST have its Condition attribute set to None (there is not an
+ * evaluation of a condition expression).
+ *
+ * For Exclusive Data-Based, and Inclusive Gateways:
+ * The Sequence Flow MUST have its Condition attribute set to Expression and
+ * MUST have a valid ConditionExpression. The ConditionExpression MUST be
+ * unique for all the Gates within the Gateway. If there is only one Gate (i.e., the
+ * Gateway is acting only as a Merge), then Sequence Flow MUST have its Condition
+ * set to None.
+ *
+ * For DefaultGates:
+ * The Sequence Flow MUST have its Condition attribute set to Otherwise
+ */
+ SequenceFlow getOutgoingSequenceFlow();
+
+ /**
+ * One or more assignment expressions MAY be made for each Gate. The
+ * Assignment SHALL be performed when the Gate is selected.
+ */
+ List<Assignment> getAssignments();
+}
Property changes on:
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Gate.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
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-07-23
05:22:41 UTC (rev 1696)
+++
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Gateway.java 2008-07-23
13:52:06 UTC (rev 1697)
@@ -21,18 +21,50 @@
*/
package org.jboss.bpm.model;
+import java.util.List;
//$Id$
/**
- * Gateways are modelling elements that are used to control how Flows interact as they
converge and diverge within a Process.
- * </p>
- * If the flow does not need to be controlled, then a Gateway is not needed.
+ * Gateways are modeling elements that are used to control how Sequence Flow interact as
they converge and diverge within
+ * a Process. If the flow does not need to be controlled, then a Gateway is not needed.
The term “Gateway” implies that
+ * there is a gating mechanism that either allows or disallows passage through the
Gateway--that is, as Tokens arrive at a
+ * Gateway, they can be merged together on input and/or split apart on output as the
Gateway mechanisms are invoked. To
+ * be more descriptive, a Gateway is actually a collection of “Gates.”
*
* @author thomas.diesler(a)jboss.com
* @since 08-Jul-2008
*/
public interface Gateway extends FlowObject, NameSupport, MultipleOutFlowSupport,
MultipleInFlowSupport
{
+ /**
+ * The GatewayType
+ *
+ */
+ enum GatewayType
+ {
+ Exclusive, Inclusive, Complex, Parallel
+ }
+ /**
+ * GatewayType is by default Exclusive. The GatewayType MAY be set to Inclusive,
Complex, or Parallel. The GatewayType will determine the behavior of the Gateway,
+ * both for incoming and outgoing Sequence Flow
+ */
+ GatewayType getGatewayType();
+
+ /**
+ * There MAY be zero or more Gates (except where noted below). Zero Gates are allowed
if the Gateway is last object in a Process flow and there are no Start or End
+ * Events for the Process. If there are zero or only one incoming Sequence Flow, then
there MUST be at least two Gates.
+ *
+ * For Exclusive Data-Based Gateways.
+ * When two Gates are required, one of them MAY be the DefaultGate.
+ *
+ * For Exclusive Event-Based Gateways.
+ * There MUST be two or more Gates. (Note that this type of Gateway does not act only
as a Merge--it is always a Decision, at
+ * least.)
+ *
+ * For Inclusive Gateways.
+ * When two Gates are required, one of them MAY be the DefaultGate.
+ */
+ List<Gate> getGates();
}
\ No newline at end of file
Modified:
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/InclusiveGateway.java
===================================================================
---
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/InclusiveGateway.java 2008-07-23
05:22:41 UTC (rev 1696)
+++
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/InclusiveGateway.java 2008-07-23
13:52:06 UTC (rev 1697)
@@ -24,14 +24,20 @@
//$Id$
/**
- * This Decision represents a branching point where Alternatives are based on conditional
expressions contained within outgoing Sequence Flow.
- * However, in this case, the True evaluation of one condition expression does not
exclude the evaluation of other condition expressions.
- * All Sequence Flow with a True evaluation will be traversed by a Token.
+ * This Decision represents a branching point where Alternatives are based on conditional
expressions contained within
+ * outgoing Sequence Flow. However, in this case, the True evaluation of one condition
expression does not exclude the
+ * evaluation of other condition expressions. All Sequence Flow with a True evaluation
will be traversed by a Token. In
+ * some sense it’s like a grouping of related independent Binary (Yes/No) Decisions--and
can be modeled that way. Since
+ * each path is independent, all combinations of the paths may be taken, from zero to
all. However, it should be
+ * designed so that at least one path is taken.
*
* @author thomas.diesler(a)jboss.com
* @since 08-Jul-2008
*/
public interface InclusiveGateway extends Gateway
{
-
+ /**
+ * A Default Gate MAY be specified
+ */
+ Gate getDefaultGate();
}
\ No newline at end of file
Added: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ManualTask.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ManualTask.java
(rev 0)
+++
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ManualTask.java 2008-07-23
13:52:06 UTC (rev 1697)
@@ -0,0 +1,35 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+package org.jboss.bpm.model;
+
+//$Id$
+
+/**
+ * A Manual Task is a Task that is expected to be performed without the aid of any
business process execution engine or any
+ * application. An example of this could be a telephone technician installing a telephone
at a customer location.
+ *
+ * @author thomas.diesler(a)jboss.com
+ * @since 08-Jul-2008
+ */
+public interface ManualTask extends Task
+{
+}
\ No newline at end of file
Property changes on:
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ManualTask.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
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-07-23
05:22:41 UTC (rev 1696)
+++
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Process.java 2008-07-23
13:52:06 UTC (rev 1697)
@@ -100,13 +100,17 @@
List<InputSet> getInputSets();
/**
- * 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)
+ * 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();
+ // Not Part of BPMN
========================================================================
+
/**
* Get the start event
*/
Added: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ReceiveTask.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ReceiveTask.java
(rev 0)
+++
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ReceiveTask.java 2008-07-23
13:52:06 UTC (rev 1697)
@@ -0,0 +1,59 @@
+/*
+ * 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$
+
+/**
+ * A Receive Task.
+ *
+ * @author thomas.diesler(a)jboss.com
+ * @since 08-Jul-2008
+ */
+public interface ReceiveTask extends Task
+{
+ /**
+ * A Message for the MessageRef attribute MUST be entered. This indicates
+ * that the Message will be received by the Task. The Message in this context
+ * is equivalent to an in-only message pattern (Web service). One or more
+ * corresponding incoming Message Flows MAY be shown on the diagram.
+ * However, the display of the Message Flow is not required. The Message is
+ * applied to all incoming Message Flow, but can arrive for only one of the
+ * incoming Message Flow for a single instance of the Task.
+ */
+ Message getMessageRef();
+
+ /**
+ * Receive Tasks can be defined as the instantiation mechanism for the
+ * Process with the Instantiate attribute. This attribute MAY be set to true if
+ * the Task is the first activity after the Start Event or a starting Task if there
+ * is no Start Event (i.e., there are no incoming Sequence Flow). Multiple
+ * Tasks MAY have this attribute set to True.
+ */
+ boolean isInstantiate();
+
+ /**
+ * This attribute specifies the technology that will be used to send or receive the
+ * message. A Web service is the default technology.
+ */
+ Implementation getImplementation();
+}
\ No newline at end of file
Property changes on:
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ReceiveTask.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added:
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ReferenceTask.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ReferenceTask.java
(rev 0)
+++
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ReferenceTask.java 2008-07-23
13:52:06 UTC (rev 1697)
@@ -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$
+
+/**
+ * There may be times where a modeler may want to reference another activity that has
been defined. If the two (or more)
+ * activities share the exact same behavior, then by one referencing the other, the
attributes that define the behavior only
+ * have to be created once and maintained in only one location.
+ *
+ * @author thomas.diesler(a)jboss.com
+ * @since 08-Jul-2008
+ */
+public interface ReferenceTask extends Task
+{
+ /**
+ * The Task being referenced MUST be identified.
+ */
+ Task getTaskRef();
+}
\ No newline at end of file
Property changes on:
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ReferenceTask.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ScriptTask.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ScriptTask.java
(rev 0)
+++
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ScriptTask.java 2008-07-23
13:52:06 UTC (rev 1697)
@@ -0,0 +1,41 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+package org.jboss.bpm.model;
+
+//$Id$
+
+/**
+ * A Script Task is executed by a business process engine. The modeler or implementer
defines a script in a language that
+ * the engine can interpret. When the Task is ready to start, the engine will execute the
script. When the script is completed,
+ * the Task will also be completed.
+ *
+ * @author thomas.diesler(a)jboss.com
+ * @since 08-Jul-2008
+ */
+public interface ScriptTask extends Task
+{
+ /**
+ * The modeler MAY include a script that can be run when the Task is performed. If
+ * a script is not included, then the Task will act equivalent to a TaskType of None.
+ */
+ String getScript();
+}
\ No newline at end of file
Property changes on:
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ScriptTask.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/SendTask.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/SendTask.java
(rev 0)
+++
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/SendTask.java 2008-07-23
13:52:06 UTC (rev 1697)
@@ -0,0 +1,46 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+package org.jboss.bpm.model;
+
+//$Id$
+
+/**
+ * A Send Task.
+ *
+ * @author thomas.diesler(a)jboss.com
+ * @since 08-Jul-2008
+ */
+public interface SendTask extends Task
+{
+ /**
+ * A Message for the MessageRef attribute MUST be entered. This indicates that the
Message will be sent by the Task. The Message in this context is equivalent to an
+ * out-only message pattern (Web service). One or more corresponding outgoing Message
Flow MAY be shown on the diagram. However, the display of the Message Flow is
+ * not required. The Message is applied to all outgoing Message Flow and the Message
will be sent down all outgoing Message Flow at the completion of a single
+ * instance of the Task.
+ */
+ Message getMessageRef();
+
+ /**
+ * This attribute specifies the technology that will be used to send or receive the
message. A Web service is the default technology.
+ */
+ Implementation getImplementation();
+}
\ No newline at end of file
Property changes on:
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/SendTask.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ServiceTask.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ServiceTask.java
(rev 0)
+++
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ServiceTask.java 2008-07-23
13:52:06 UTC (rev 1697)
@@ -0,0 +1,61 @@
+/*
+ * 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$
+
+/**
+ * A Service Task.
+ *
+ * @author thomas.diesler(a)jboss.com
+ * @since 08-Jul-2008
+ */
+public interface ServiceTask extends Task
+{
+ /**
+ * A Message for the InMessageRef attribute MUST be entered. This indicates
+ * that the Message will be received at the start of the Task, after the
+ * availability of any defined InputSets. One or more corresponding incoming
+ * Message Flows MAY be shown on the diagram. However, the display of the
+ * Message Flow is not required. The Message is applied to all incoming
+ * Message Flow, but can arrive for only one of the incoming Message Flow
+ * for a single instance of the Task.
+ */
+ Message getInMessageRef();
+
+ /**
+ * A Message for the OutMessageRef attribute MUST be entered. The sending
+ * of this message marks the completion of the Task, which may cause the
+ * production of an OutputSet. One or more corresponding outgoing Message
+ * Flow MAY be shown on the diagram. However, the display of the Message
+ * Flow is not required. The Message is applied to all outgoing Message Flow
+ * and the Message will be sent down all outgoing Message Flow at the
+ * completion of a single instance of the Task.
+ */
+ Message getOutMessageRef();
+
+ /**
+ * This attribute specifies the technology that will be used to send or receive the
+ * message. A Web service is the default technology.
+ */
+ Implementation getImplementation();
+}
\ No newline at end of file
Property changes on:
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ServiceTask.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Task.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Task.java 2008-07-23
05:22:41 UTC (rev 1696)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Task.java 2008-07-23
13:52:06 UTC (rev 1697)
@@ -22,6 +22,7 @@
package org.jboss.bpm.model;
+
//$Id$
/**
@@ -35,4 +36,31 @@
*/
public interface Task extends Activity, SingleInFlowSupport, SingleOutFlowSupport
{
+ /**
+ * Specifies the technology that will be used to send or receive the
+ * message.
+ */
+ enum Implementation
+ {
+ WebService, Other, Unspecified
+ }
+
+ /**
+ * The TaskType
+ */
+ enum TaskType
+ {
+ Service, Receive, Send, User, Script, Manual, Reference, None
+ }
+
+ /**
+ * TaskType is an attribute that has a default of None, but MAY be set to Send,
+ * Receive, User, Script, Manual, Reference, or Service. The TaskType will be
+ * impacted by the Message Flow to and/or from the Task, if Message Flow are
+ * used. A TaskType of Receive MUST NOT have an outgoing Message Flow. A
+ * TaskType of Send MUST NOT have an incoming Message Flow. A TaskType of
+ * Script or Manual MUST NOT have an incoming or an outgoing Message Flow.
+ * The TaskType list MAY be extended to include new types.
+ */
+ TaskType getTaskType();
}
\ No newline at end of file
Added: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/UserTask.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/UserTask.java
(rev 0)
+++
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/UserTask.java 2008-07-23
13:52:06 UTC (rev 1697)
@@ -0,0 +1,61 @@
+/*
+ * 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$
+
+/**
+ * A User Task is a typical “workflow” task where a human performer performs the Task
with the assistance of a software
+ * application and is scheduled through a task list manager of some sort.
+ *
+ * @author thomas.diesler(a)jboss.com
+ * @since 08-Jul-2008
+ */
+public interface UserTask extends Task
+{
+ /**
+ * A Message for the InMessageRef attribute MUST be entered. This indicates
+ * that the Message will be received at the start of the Task, after the
+ * availability of any defined InputSets. One or more corresponding incoming
+ * Message Flows MAY be shown on the diagram. However, the display of the
+ * Message Flow is not required. The Message is applied to all incoming
+ * Message Flow, but can arrive for only one of the incoming Message Flow
+ * for a single instance of the Task.
+ */
+ Message getInMessageRef();
+
+ /**
+ * A Message for the OutMessageRef attribute MUST be entered. The sending
+ * of this message marks the completion of the Task, which may cause the
+ * production of an OutputSet. One or more corresponding outgoing Message
+ * Flow MAY be shown on the diagram. However, the display of the Message
+ * Flow is not required. The Message is applied to all outgoing Message Flow
+ * and the Message will be sent down all outgoing Message Flow at the
+ * completion of a single instance of the Task.
+ */
+ Message getOutMessageRef();
+
+ /**
+ * This attribute specifies the technology that will be used to send or receive the
message. A Web service is the default technology.
+ */
+ Implementation getImplementation();
+}
\ No newline at end of file
Property changes on:
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/UserTask.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
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-07-23
05:22:41 UTC (rev 1696)
+++
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/SubProcessImpl.java 2008-07-23
13:52:06 UTC (rev 1697)
@@ -23,9 +23,15 @@
//$Id$
+import java.util.List;
+
import org.jboss.bpm.NotImplementedException;
+import org.jboss.bpm.model.Expression;
import org.jboss.bpm.model.Flow;
import org.jboss.bpm.model.FlowObject;
+import org.jboss.bpm.model.InputSet;
+import org.jboss.bpm.model.OutputSet;
+import org.jboss.bpm.model.Property;
import org.jboss.bpm.model.Signal;
import org.jboss.bpm.model.SubProcess;
import org.jboss.bpm.runtime.ExecutionHandler;
@@ -54,6 +60,51 @@
super(name);
}
+ public ActivityType getActivityType()
+ {
+ return ActivityType.SubProcess;
+ }
+
+ public int getCompletionQuantity()
+ {
+ throw new NotImplementedException();
+ }
+
+ public List<Expression> getIORules()
+ {
+ throw new NotImplementedException();
+ }
+
+ public List<InputSet> getInputSets()
+ {
+ throw new NotImplementedException();
+ }
+
+ public LoopType getLoopType()
+ {
+ throw new NotImplementedException();
+ }
+
+ public List<OutputSet> getOutputSets()
+ {
+ throw new NotImplementedException();
+ }
+
+ public List<String> getPerformers()
+ {
+ throw new NotImplementedException();
+ }
+
+ public List<Property> getProperties()
+ {
+ throw new NotImplementedException();
+ }
+
+ public int getStartQuantity()
+ {
+ throw new NotImplementedException();
+ }
+
public Flow getInFlow()
{
return inFlow;
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-07-23
05:22:41 UTC (rev 1696)
+++
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/TaskImpl.java 2008-07-23
13:52:06 UTC (rev 1697)
@@ -21,9 +21,16 @@
*/
package org.jboss.bpm.model.internal;
+import java.util.List;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.jboss.bpm.NotImplementedException;
+import org.jboss.bpm.model.Expression;
import org.jboss.bpm.model.Flow;
+import org.jboss.bpm.model.InputSet;
+import org.jboss.bpm.model.OutputSet;
+import org.jboss.bpm.model.Property;
import org.jboss.bpm.model.Signal;
import org.jboss.bpm.model.Task;
import org.jboss.bpm.runtime.ExecutionHandler;
@@ -60,6 +67,56 @@
super(name);
}
+ public ActivityType getActivityType()
+ {
+ return ActivityType.Task;
+ }
+
+ public int getCompletionQuantity()
+ {
+ throw new NotImplementedException();
+ }
+
+ public List<Expression> getIORules()
+ {
+ throw new NotImplementedException();
+ }
+
+ public List<InputSet> getInputSets()
+ {
+ throw new NotImplementedException();
+ }
+
+ public LoopType getLoopType()
+ {
+ throw new NotImplementedException();
+ }
+
+ public List<OutputSet> getOutputSets()
+ {
+ throw new NotImplementedException();
+ }
+
+ public List<String> getPerformers()
+ {
+ throw new NotImplementedException();
+ }
+
+ public List<Property> getProperties()
+ {
+ throw new NotImplementedException();
+ }
+
+ public int getStartQuantity()
+ {
+ throw new NotImplementedException();
+ }
+
+ public TaskType getTaskType()
+ {
+ throw new NotImplementedException();
+ }
+
/**
* Get the out flow
*/
Modified: jbossbpm/spec/trunk/modules/testsuite/pom.xml
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/pom.xml 2008-07-23 05:22:41 UTC (rev 1696)
+++ jbossbpm/spec/trunk/modules/testsuite/pom.xml 2008-07-23 13:52:06 UTC (rev 1697)
@@ -1,16 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
-
-<!-- ====================================================================== -->
-<!-- -->
-<!-- JBoss, the OpenSource J2EE webOS -->
-<!-- -->
-<!-- Distributable under LGPL license. -->
-<!-- See terms of license at
http://www.gnu.org. -->
-<!-- -->
-<!-- ====================================================================== -->
-
-<!-- $Id$ -->
-<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
+ <!--
+ ======================================================================
+ -->
+ <!--
+ -->
+ <!--
+ JBoss, the OpenSource J2EE webOS
+ -->
+ <!--
+ -->
+ <!--
+ Distributable under LGPL license.
+ -->
+ <!--
+ See terms of license at
http://www.gnu.org.
+ -->
+ <!--
+ -->
+ <!--
+ ======================================================================
+ -->
+ <!--
+ $Id$
+ -->
+<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<name>JBossBPM - Spec Testsuite</name>
<groupId>org.jboss.bpm</groupId>
@@ -37,6 +51,11 @@
<!-- Test Dependencies -->
<dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
@@ -114,7 +133,8 @@
<configuration>
<artifacts>
<artifact>
-
<file>target/${project.artifactId}-${project.version}.zip</file>
+ <file>target/${project.artifactId}-${project.version}.zip
+ </file>
<type>zip</type>
</artifact>
</artifacts>
Added:
jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/airticket/AirticketTest.java
===================================================================
---
jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/airticket/AirticketTest.java
(rev 0)
+++
jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/airticket/AirticketTest.java 2008-07-23
13:52:06 UTC (rev 1697)
@@ -0,0 +1,50 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+package org.jboss.bpm.samples.airticket;
+
+// $Id$
+
+import java.net.URL;
+
+import org.jboss.bpm.client.ProcessManager;
+import org.jboss.bpm.model.Process;
+import org.jboss.bpm.test.DefaultEngineTestCase;
+
+/**
+ * Test the Airticket sample application
+ *
+ * @author thomas.diesler(a)jboss.com
+ * @since 03-Jul-2008
+ */
+public class AirticketTest extends DefaultEngineTestCase
+{
+ public void testProcessStart() throws Exception
+ {
+ URL jpdlURL = getResourceURL("samples/airticket/airticket.bpmn");
+
+ // Create a Process through the ProcessManager
+ ProcessManager pm = ProcessManager.locateProcessManager();
+ Process proc = pm.createProcess(jpdlURL);
+ assertNotNull(proc);
+
+ }
+}
Property changes on:
jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/airticket/AirticketTest.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added:
jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/airticket/FrontGateServlet.java
===================================================================
---
jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/airticket/FrontGateServlet.java
(rev 0)
+++
jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/airticket/FrontGateServlet.java 2008-07-23
13:52:06 UTC (rev 1697)
@@ -0,0 +1,64 @@
+/*
+ * 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.samples.airticket;
+
+// $Id$
+
+import java.io.IOException;
+import java.net.MalformedURLException;
+
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * Test that the execution context
+ *
+ * @author thomas.diesler(a)jboss.com
+ * @since 03-Jul-2008
+ */
+@SuppressWarnings("serial")
+public class FrontGateServlet extends HttpServlet
+{
+ @Override
+ public void init(ServletConfig config) throws ServletException
+ {
+ super.init(config);
+
+ try
+ {
+ config.getServletContext().getResource("airticket.bpmn");
+ }
+ catch (MalformedURLException e)
+ {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+
+ @Override
+ protected void service(HttpServletRequest req, HttpServletResponse res) throws
ServletException, IOException
+ {
+ }
+}
Property changes on:
jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/airticket/FrontGateServlet.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Modified:
jbossbpm/spec/trunk/modules/testsuite/src/test/resources/samples/airticket/airticket.png
===================================================================
(Binary files differ)
Modified: jbossbpm/spec/trunk/pom.xml
===================================================================
--- jbossbpm/spec/trunk/pom.xml 2008-07-23 05:22:41 UTC (rev 1696)
+++ jbossbpm/spec/trunk/pom.xml 2008-07-23 13:52:06 UTC (rev 1697)
@@ -10,16 +10,13 @@
<!-- ====================================================================== -->
<!-- $Id: pom.xml 7412 2008-06-06 13:42:30Z thomas.diesler(a)jboss.com $ -->
-
<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
-
<name>JBossBPM - Spec</name>
<groupId>org.jboss.bpm</groupId>
<artifactId>bpm-spec</artifactId>
<packaging>pom</packaging>
-
<version>1.0.0-SNAPSHOT</version>
<!-- Parent -->
@@ -41,6 +38,7 @@
<properties>
<commons.logging.version>1.1.1</commons.logging.version>
<jaxb.ri.version>2.1.7</jaxb.ri.version>
+ <javax.servlet.version>2.5</javax.servlet.version>
<jboss.microcontainer.version>2.0.0.Beta15</jboss.microcontainer.version>
<jboss.jbpm3.version>3.2.4-SNAPSHOT</jboss.jbpm3.version>
</properties>
@@ -68,22 +66,20 @@
<artifactId>jboss-kernel</artifactId>
<version>${jboss.microcontainer.version}</version>
</dependency>
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ <version>${javax.servlet.version}</version>
+ </dependency>
</dependencies>
</dependencyManagement>
<!-- DistributionManagement -->
<distributionManagement>
<!--
- Add this to your ~/.m2/settings.xml
- <servers>
- <server>
- <id>jbpm.dyndns.org</id>
- <username>yourname</username>
- <privateKey>/home/yourname/.ssh/id_rsa</privateKey>
- <passphrase>yourpass</passphrase>
- </server>
- </servers>
- -->
+ Add this to your ~/.m2/settings.xml <servers> <server>
<id>jbpm.dyndns.org</id> <username>yourname</username>
+ <privateKey>/home/yourname/.ssh/id_rsa</privateKey>
<passphrase>yourpass</passphrase> </server> </servers>
+ -->
<site>
<id>jbpm.dyndns.org</id>
<
url>scp://jbpm.dyndns.org/var/www/html/jbpm-site</url>
@@ -110,5 +106,4 @@
</build>
</profile>
</profiles>
-
</project>
\ No newline at end of file