[jbpm-commits] JBoss JBPM SVN: r1697 - in jbossbpm/spec/trunk: eclipse and 6 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Wed Jul 23 09:52:06 EDT 2008


Author: thomas.diesler at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at jboss.com
+ * @since 03-Jul-2008
+ */
+ at 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 at 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




More information about the jbpm-commits mailing list