[overlord-commits] Overlord SVN: r412 - in cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb: actions and 1 other directory.

overlord-commits at lists.jboss.org overlord-commits at lists.jboss.org
Wed Oct 22 02:40:53 EDT 2008


Author: jeff.yuchang
Date: 2008-10-22 02:40:53 -0400 (Wed, 22 Oct 2008)
New Revision: 412

Modified:
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/EPRWrapper.java
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/HibernateObject.java
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/Identity.java
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/IdentityType.java
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/JoinState.java
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/ScheduleItem.java
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/Session.java
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/SessionStatus.java
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ConversationAction.java
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/CreateSessionAction.java
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/IfAction.java
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/MessageRouterAction.java
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ParallelAction.java
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/PerformAction.java
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ReceiveMessageAction.java
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/RetrieveSessionAction.java
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ScheduleStateAction.java
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SendMessageAction.java
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/Service.java
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SetMessageAction.java
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SetStateAction.java
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SwitchAction.java
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/WhenAction.java
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/WhileAction.java
Log:
* [SOA-70] Add javadoc.


Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/EPRWrapper.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/EPRWrapper.java	2008-10-21 22:18:32 UTC (rev 411)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/EPRWrapper.java	2008-10-22 06:40:53 UTC (rev 412)
@@ -32,8 +32,8 @@
 
 /**
  * 
+ * 
  * @author <a href="mailto:cyu at redhat.com">Jeff Yu</a>
- *
  */
 
 @Entity

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/HibernateObject.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/HibernateObject.java	2008-10-21 22:18:32 UTC (rev 411)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/HibernateObject.java	2008-10-22 06:40:53 UTC (rev 412)
@@ -22,6 +22,8 @@
 import java.io.Serializable;
 
 /**
+ * Any object that needs to be stored by using Hibernate,
+ * it needs to implement this interface. It is used internally.
  * 
  * @author <a href="mailto:cyu at redhat.com">Jeff Yu</a>
  *

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/Identity.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/Identity.java	2008-10-21 22:18:32 UTC (rev 411)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/Identity.java	2008-10-22 06:40:53 UTC (rev 412)
@@ -35,6 +35,27 @@
 import javax.persistence.Table;
 
 /**
+ * A 'session' object, whether representing the top level (root) session, or a child session, 
+ * should be identified by the following information:
+ * 
+ * <ol>
+ *  <li>
+ *   Service description name - this name reflects the participant behaviour within a choreography, 
+ *   and provides the necessary link to enable conformance checking with the choreography description
+ *  </li>
+ *  <li>
+ *   POJO class name - Each sub session needs to be distinguished, in case it uses common identity objects. 
+ *   Using the POJO class name in conjunction with the service description name, provides a unique way to reference a sub-session. 
+ *   So the POJO class name is effectively in place of the 'choreography unit' name. 
+ *   Combining it with the service description name, also enables the same POJO to be used within the behaviour description for different participants - 
+ *   i.e. it does not force the user to declare two separate classes, with the same properties, just to distinguish the different participants within the choreography. 
+ *  </li>
+ *  <li>
+ *   Set of 'primary' or 'alternate' business identities, detail see {@link IdentityType} - this list will contain identity details extracted from business messages, 
+ *   to correlate those messages to a particular session (or sub-session). 
+ *  </li>
+ * </ol>
+ * 
  * @author <a href="mailto:gary.brown at hattricksoftware.com">Gary Brown</a>
  * @author <a href="mailto:cyu at redhat.com">Jeff Yu</a>
  */

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/IdentityType.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/IdentityType.java	2008-10-21 22:18:32 UTC (rev 411)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/IdentityType.java	2008-10-22 06:40:53 UTC (rev 412)
@@ -20,7 +20,19 @@
 package org.jboss.soa.overlord.jbossesb;
 
 /**
+ * According to WS-CDL specificatio, it has four types of identity.
  * 
+ * <ul>
+ * <li><i>primary</i> - the primary identity field, used to associate a message with the session. </li>
+ * <li><i>alternate</i> - an alternative primary identity. </li>
+ * <li><i>associate</i> - link the message to a session based on an identity previously associated with the session (or parent session). 
+ * However this identity will not be associated with the current session, 
+ * it is usually only used to link a child session to a parent session. </li>
+ * <li><i>derived</i> - the extracted identity will be placed in reserve for use as the primary identity for a subsequent session. 
+ * It is not directly associated with the session in which it is discovered.</li>
+ * </ul>
+ * 
+ * 
  * @author <a href="mailto:gary.brown at hattricksoftware.com">Gary Brown</a>
  *
  */

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/JoinState.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/JoinState.java	2008-10-21 22:18:32 UTC (rev 411)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/JoinState.java	2008-10-22 06:40:53 UTC (rev 412)
@@ -28,6 +28,7 @@
 import javax.persistence.Table;
 
 /**
+ * It represents the forked JBoss ESB service, which waits for other ESB services to converge.
  * 
  * @author <a href="mailto:gary.brown at hattricksoftware.com">Gary Brown</a>
  * @author <a href="mailto:cyu at redhat.com">Jeff Yu</a>

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/ScheduleItem.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/ScheduleItem.java	2008-10-21 22:18:32 UTC (rev 411)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/ScheduleItem.java	2008-10-22 06:40:53 UTC (rev 412)
@@ -28,6 +28,7 @@
 import javax.persistence.Table;
 
 /**
+ * An item represent for JBoss ESB service.
  * 
  * @author <a href="mailto:gary.brown at hattricksoftware.com">Gary Brown</a>
  * @author <a href="mailto:cyu at redhat.com">Jeff Yu</a>

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/Session.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/Session.java	2008-10-21 22:18:32 UTC (rev 411)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/Session.java	2008-10-22 06:40:53 UTC (rev 412)
@@ -52,7 +52,35 @@
 import org.jboss.soa.esb.message.Message;
 
 /**
+ * A Session represents the encapsulation of the current status of execution of an associated choreography instance, 
+ * as well as variables containing business information relevant to the choreography.
  * 
+ * <p>
+ * A Session represents a single choreography unit within a WS-CDL package.
+ * This means that a single choreography description (or package) will usually have multiple sessions,
+ * one associated with the root choreography unit, and zero or more associated with other non-root choreography units,
+ * that are directly or indirectly performed by the root choreography unit.
+ * </p>
+ 
+ * <p>
+ * This Session class should not be visible outside the ESB conversational actions.
+ * There should be no reason for user custom actions to require access to this information.
+ * The only information they should be able to access is the business state information associated with the session.  
+ * </p>
+ *
+ * <p>
+ * Sessions can be organized in a hierarchy, with the top session being associated with a root choreography unit, 
+ * and the child sessions being the performed sub-choreographies.
+ * </p>
+ * 
+ * <p>
+ * The session maintains a schedule of service descriptors to be processed (represented by the category and name of the service). 
+ * This schedule indicates which service descriptors are expected to be invoked on behalf of the session. 
+ * The execution of a service descriptor's action pipeline on a session will result in the service descriptor being removed from the schedule, 
+ * but may result in other service descriptors being added to the schedule, depending upon the nature of the conversation actions within the pipeline.
+ * </p>
+ * 
+ * 
  * @author <a href="mailto:gary.brown at hattricksoftware.com">Gary Brown</a>
  * @author <a href="mailto:cyu at redhat.com">Jeff Yu</a>
  */

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/SessionStatus.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/SessionStatus.java	2008-10-21 22:18:32 UTC (rev 411)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/SessionStatus.java	2008-10-22 06:40:53 UTC (rev 412)
@@ -23,7 +23,6 @@
 /**
  *
  * @author <a href="mailto:gary.brown at hattricksoftware.com">Gary Brown</a>
- *
  */
 
 public enum SessionStatus {

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ConversationAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ConversationAction.java	2008-10-21 22:18:32 UTC (rev 411)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ConversationAction.java	2008-10-22 06:40:53 UTC (rev 412)
@@ -46,19 +46,6 @@
 /**
  * Base activity, all the ESB conversation aware actions extend from this one.
  * 
- * <pre>
- * The procedure of processing a message is as following:
- * 1. Get current session from the database. 
- *    Include injecting context, such as injecting parent session business object if it exists
- * 2. Unschedule current service, if it is first conversation action.
- * 3. Handle Message. (This will be override by subclasses)
- * 4. Save session object back to database.
- *    Update the parent session if it is necessary.
- * 5. If it is the last conversation action in current service.
- *    And if it has no schedule items to invoke. Mark session status to 'Completed'
- *    5.1 If it is sub-session, then invoke sub-session exit service.
- * 6. Deliver message to services at last if it needs to.
- * </pre>
  * 
  * @author <a href="mailto:gary.brown at hattricksoftware.com">Gary Brown</a>
  * @author <a href="mailto:cyu at redhat.com">Jeff Yu</a>
@@ -95,19 +82,20 @@
 	
 	
 	/**
-	 * <pre>
 	 * The procedure of processing a message is as following:
-	 * 1. Get current session from the database. 
+	 * <ul>
+	 * <li> Get current session from the database. 
 	 *    Include injecting context, such as injecting parent session business object if it exists
-	 * 2. Unschedule current service, if it is first conversation action.
-	 * 3. Handle Message. (This will be override by subclasses)
-	 * 4. Save session object back to database.
-	 *    Update the parent session if it is necessary.
-	 * 5. If it is the last conversation action in current service.
-	 *    And if it has no schedule items to invoke. Mark session status to 'Completed'
-	 *    5.1 If it is sub-session, then invoke sub-session exit service.
-	 * 6. Deliver message to services at last if it needs to.
-	 * </pre>
+	 * </li>
+	 * <li> Unschedule current service, if it is first conversation action.</li>
+	 * <li> Handle Message. (This will be override by subclasses) </li>
+	 * <li> Save session object back to database. </li>
+	 * <li> Update the parent session if it is necessary.</li>
+	 * <li> If it is the last conversation action in current service.</li>
+	 *    And if it has no schedule items to invoke. Set session status as 'Completed'
+	 *    ** If it is sub-session, then invoke sub-session exit service.
+	 * <li> Deliver message to services at last if it needs to.</li>
+	 * </ul>
 	 * 
 	 * @param message
 	 * @return

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/CreateSessionAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/CreateSessionAction.java	2008-10-21 22:18:32 UTC (rev 411)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/CreateSessionAction.java	2008-10-22 06:40:53 UTC (rev 412)
@@ -26,8 +26,31 @@
 import org.jboss.soa.overlord.jbossesb.SessionManager;
 
 /**
- * This action creates a new session.
  * 
+ * This action indicates the starting state associated with a session.
+ *  
+ * <p>
+ * This can either be associated with a top level 'root' choreography, 
+ * or a sub-choreography that is performed by an outer choreography.
+ * </p>
+ * 
+ * <h4>Usage:</h4>
+ * <pre> 
+ * {@literal
+ * 	  <action class="org.jboss.soa.overlord.jbossesb.actions.CreateSessionAction"
+ *		          process="process" name="s1-1">
+ *	    <property name="session" value="org.jboss.soa.overlord.samples.jbossesb.loan.broker.BrokerMain" />
+ *    </action>
+ * }
+ * </pre>
+ * 
+ * <h4>Description of configuration properties:</h4>
+ * <ul>
+ *  <li>
+ *   <i>session </i> - stands for its associated business information class.
+ *  </li>
+ * </ul>
+ * 
  * @author <a href="mailto:gary.brown at hattricksoftware.com">Gary Brown</a>
  * @author <a href="mailto:cyu at redhat.com">Jeff Yu</a>
  * 

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/IfAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/IfAction.java	2008-10-21 22:18:32 UTC (rev 411)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/IfAction.java	2008-10-22 06:40:53 UTC (rev 412)
@@ -28,6 +28,26 @@
  * This action represents a choice between a set of specified paths
  * based on the message that has occurred.
  * 
+ * <h4>Usage:</h4>
+ * <pre>
+ * {@literal
+   <action class="org.jboss.soa.overlord.jbossesb.actions.IfAction" name="c3" process="process">
+     <property name="paths">
+       <if expression="isCreditValid()" immediate="true" service-category="PurchaseGoods.CreditAgency" service-name="CreditAgency.decision1"/>
+       <else immediate="true" service-category="PurchaseGoods.CreditAgency" service-name="CreditAgency.decision2"/>
+     </property>
+    </action>
+ * }
+ * </pre>
+ * 
+ * <h4>Description of configuration properties:</h4>
+ * <ul>
+ *  <li><i>expression</i> - The decision method, the method result should be Boolean type, and it doesn't have any input parameters.</li>
+ *  <li><i>serivce-category</i> - mapped to JBoss ESB service-category</li>
+ *  <li><i>service-name</i> - mapped to JBossESB service-name<li>
+ *  <li><i>immediate</i> - whether send message to the specified service-category and service-name immediately.</li>
+ * </ul> 
+ * 
  * @author <a href="mailto:gary.brown at hattricksoftware.com">Gary Brown</a>
  * @author <a href="mailto:cyu at redhat.com">Jeff Yu</a>
  */

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/MessageRouterAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/MessageRouterAction.java	2008-10-21 22:18:32 UTC (rev 411)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/MessageRouterAction.java	2008-10-22 06:40:53 UTC (rev 412)
@@ -27,11 +27,42 @@
 import org.jboss.soa.esb.listeners.message.MessageDeliverException;
 import org.jboss.soa.esb.message.Message;
 import org.jboss.soa.overlord.jbossesb.Identity;
+import org.jboss.soa.overlord.jbossesb.IdentityType;
 import org.jboss.soa.overlord.jbossesb.ScheduleItem;
 
 /**
  * The action is used to perform routing of the inbound requests.
  * 
+ * <h4>Usage:</h4>
+ * <pre>
+ * {@literal
+    <action class="org.jboss.soa.overlord.jbossesb.actions.MessageRouterAction"
+                process="process" name="s0-1">
+        <property name="paths">
+            <route  service-category="ESBBroker.BrokerParticipant"
+                    service-name="ESBBrokerProcess.main" 
+                    initiate="true">
+                <message type="enquiry">
+                    <identity type="primary" >
+                      <token name="id" locator="//@id" />
+                   </identity>
+                </message>
+            </route>
+    </action>
+ * }
+ * </pre>
+ * 
+ * <h4>Description of configuration properties:</h4>
+ * <ul>
+ *  <li><i>serivceCategory</i> and <i>serviceName</i> - together represent a ESB service.</li>
+ *  <li><i>initiate</i> - An optional 'initiate' boolean attribute. 
+ *  If the attribute is specified, and its value is 'true', then the route can only be selected if the service instance relevant for the inbound message does not yet exist, 
+ *  and this message will result in a {@link CreateSessionAction} being invoked to create the service instance. 
+ *  If the attribute value is 'false', or not specified, then a service instance must already exist that is capable of handling the inbound message.</li>
+ *  <li><i>message.type</i> - Define the Message Type for routing.</li>
+ *  <li><i>identity</i> - Detail refer to {@link IdentityType}</li>
+ * </ul>
+ * 
  * @author <a href="mailto:cyu at redhat.com">Jeff Yu</a>
  */
 public class MessageRouterAction extends ConversationAction {

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ParallelAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ParallelAction.java	2008-10-21 22:18:32 UTC (rev 411)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ParallelAction.java	2008-10-22 06:40:53 UTC (rev 412)
@@ -24,8 +24,30 @@
 import org.jboss.soa.esb.message.Message;
 
 /**
- * This action represents a parallel construct.
+ * The ParallelAction is used to spawn two or more paths. 
  * 
+ * <h4>Usage:</h4>
+ * <pre>
+ * {@literal
+	<action class="org.jboss.soa.overlord.jbossesb.actions.ParallelAction" name="b5" process="process">
+	    <property name="paths">
+	        <path immediate="true" service-category="PurchaseGoods.Store" service-name="StoreBranch1"/>
+	        <path immediate="true" service-category="PurchaseGoods.Store" service-name="StoreBranch2"/>
+	        <join service-category="PurchaseGoods.Store" service-name="ReturnBuyerResponse"/>
+	    </property>
+	</action>
+ * }
+ * </pre>
+ * 
+ * <h4>Description of configuration properties:</h4>
+ * <ul>
+ *  <li><i>serivceCategory</i> and <i>serviceName</i> - together represent a ESB service.</li>
+ *  <li><i>immediate</i> - Whether deliver the message to target service immediately or not.</li>
+ *  <li><i>path</i> - This is used to define the service that is need to be invoked.</li>
+ *  <li><i>join</i> - This is the converged point for spawned services</li>
+ * </ul> 
+ * 
+ * 
  * @author <a href="mailto:gary.brown at hattricksoftware.com">Gary Brown</a>
  * @author <a href="mailto:cyu at redhat.com">Jeff Yu</a>
  */

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/PerformAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/PerformAction.java	2008-10-21 22:18:32 UTC (rev 411)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/PerformAction.java	2008-10-22 06:40:53 UTC (rev 412)
@@ -29,7 +29,39 @@
 import org.mvel.MVEL;
 
 /**
+ * PerformAction is used to invoke a child session. 
+ * It doesn't create the sub-session, it just populated all needed information into Message Object,
+ * and then directed to the {@link CreateSessionAction} to create sub-session.
  * 
+ * <h4>Usage:</h4>
+ * <pre>
+ * {@literal
+	<action class="org.jboss.soa.overlord.jbossesb.actions.PerformAction"
+				process="process" name="s3-1">
+		<property name="serviceCategory" value="ESBBroker.BrokerParticipant" />
+		<property name="serviceName" value="RequestForQuote.main" />
+		<property name="returnServiceCategory" value="ESBBroker.BrokerParticipant" />
+		<property name="returnServiceName" value="ESBBrokerProcess.main.9" />
+		<property name="parentReference" value="quoteManager"/>
+		<property name="bindDetails" >
+			<bind from-expression="getCurrentSupplier()"
+						to-variable="supplier" />
+		</property>
+	</action>
+ * }
+ * </pre>
+ * 
+ * <h4>Description of configuration properties:</h4>
+ * <ul>
+ *  <li><i>serivceCategory</i> - Mapped to JBoss ESB service-category</li>
+ *  <li><i>serviceName</i> - Mapped to JBossESB service-name<li>
+ *  <li><i>returnServiceCategory</i> - The service-category of service, when sub-session has completed (it is optional).</li>
+ *  <li><i>returnServiceName</i> - The service-name of service, when sub-session has completed. (it is optional)</li>
+ *  <li><i>parentReference</i> - The property to set the parent session's business state object for sub-sesion's business state object.</li>
+ *  <li><i>bind.from-expression</i> - the property or method of parent session's business state object.</li>
+ *  <li><i>bind.to-variable</i> - the propert of sub-session's business state object</li>
+ * </ul> 
+ * 
  * @author <a href="mailto:cyu at redhat.com">Jeff Yu</a>
  * 
  */

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ReceiveMessageAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ReceiveMessageAction.java	2008-10-21 22:18:32 UTC (rev 411)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ReceiveMessageAction.java	2008-10-22 06:40:53 UTC (rev 412)
@@ -26,11 +26,31 @@
 import org.jboss.soa.overlord.jbossesb.Identity;
 
 /**
- * <p>
- * The ReceiveMessageAction is used to explicitly define the message type that should be received. 
- * If an RPC style has been used, then the optional operation name can also be defined. 
- * </p>
+ * The ReceiveMessageAction is used to explicitly define the message type that should be received and a set of identities.
  * 
+ * <h4>Usage:</h4>
+ * <pre>
+ * {@literal
+	<action class="org.jboss.soa.overlord.jbossesb.actions.ReceiveMessageAction" name="c2" process="process">
+	    <property name="messageType" value="CreditCheckRequest"/>
+	    <property name="clientEPR" value="broker"/>
+	    <property name="identities">
+	        <identity type="primary">
+	            <token locator="//@id" name="id"/>
+	        </identity>
+	    </property>
+	</action>
+ * }
+ * </pre>
+ * 
+ * <h4>Description of configuration properties:</h4>
+ * <ul>
+ * <li><i>messageType </i> - Define the message type that should be received.</li>
+ * <li><i>clientEPR</i> - Define an EPR label that used to map to the 'reply-to' address.</li>
+ * <li><i>identities</i> - The CDL's identity, see {@link Identity}</li>
+ * </ul>
+ * 
+ * 
  * @author <a href="mailto:gary.brown at hattricksoftware.com">Gary Brown</a>
  * @author <a href="mailto:cyu at redhat.com">Jeff Yu</a>
  */

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/RetrieveSessionAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/RetrieveSessionAction.java	2008-10-21 22:18:32 UTC (rev 411)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/RetrieveSessionAction.java	2008-10-22 06:40:53 UTC (rev 412)
@@ -27,8 +27,28 @@
 import org.jboss.soa.overlord.jbossesb.Identity;
 
 /**
- * This action gets an existed session.
+ * It retrieves existing sessions instead of creating new sessions. 
  * 
+ * <p>
+ * Its purpose is to identify an action pipeline as conversation based, 
+ * and ensure that a suitable session exists.
+ * </p>
+ * 
+ * The configuration would be like:
+ * 
+ * <pre>
+ *  <action class="org.jboss.soa.overlord.jbossesb.actions.RetrieveSessionAction"
+ *	   process="process" name="s11-1">
+ *		<property name="session" value="org.jboss.soa.overlord.samples.jbossesb.loan.broker.CompleteTransactionMain" />
+ *		<property name="serviceDescriptionName" value="{http://www.jboss.org/overlord/loanBroker}CompleteTransaction" />
+ *		<property name="identities" >
+ *			<identity type="primary" >
+ *				<token name="id" locator="//@id" />
+ *			</identity>
+ *		 </property>
+ *	</action>
+ * </pre>
+ * 
  * @author <a href="mailto:gary.brown at hattricksoftware.com">Gary Brown</a>
  * @author <a href="mailto:cyu at redhat.com">Jeff Yu</a>
  */

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ScheduleStateAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ScheduleStateAction.java	2008-10-21 22:18:32 UTC (rev 411)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ScheduleStateAction.java	2008-10-22 06:40:53 UTC (rev 412)
@@ -24,8 +24,27 @@
 import org.jboss.soa.esb.message.Message;
 
 /**
- * Schedule state activity.
+ * ScheduleStateAction enables an service descriptor's category and name to be added to the schedule for the session.
  * 
+ * <h4>Usage:</h4>
+ * <pre>
+ * {@literal
+	<action class="org.jboss.soa.overlord.jbossesb.actions.ScheduleStateAction"
+				process="process" name="s1-3">
+		<property name="serviceCategory" value="ESBBroker.BrokerParticipant" />
+		<property name="serviceName" value="ESBBrokerProcess.main.1" />
+		<property name="immediate" value="true" />
+	</action>
+ * }
+ * </pre>
+ * 
+ * <h4>Description of configuration properties:</h4>
+ * <ul>
+ *  <li><i>serviceCategory</i> - Mapped to JBossESB service-category.</li>
+ *  <li><i>serviceName</i> - Mapped to JBossESB service-name.</li>
+ *  <li><i>immediate</i> - Define whether send the message the to target service immediately or not.</li>
+ * </ul>
+ * 
  * @author <a href="mailto:gary.brown at hattricksoftware.com">Gary Brown</a>
  * @author <a href="mailto:cyu at redhat.com">Jeff Yu</a>
  */

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SendMessageAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SendMessageAction.java	2008-10-21 22:18:32 UTC (rev 411)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SendMessageAction.java	2008-10-22 06:40:53 UTC (rev 412)
@@ -37,8 +37,74 @@
 
 
 /**
- * Send message activity.
+ * Deliver message to the target service.
  * 
+ * <p>
+ * This action enables a message, being processed by the action pipeline, to be sent to a nominated destination. 
+ * The destination for the message being sent can be identified in two ways:
+ * </p>
+ * 
+ * <ul>
+ *  <li>
+ *   <i>Explicitly</i><br/>
+ *   A service category and name can be specified, to indicate the destination of the message to be sent. 
+ *   When this approach is used, it will be possible to optionally specify a 'reply to' service category and name, 
+ *   to which any subsequent response can be sent. In this case, the 'reply to' service category and name will be placed on the schedule for the session.
+ *  </li>
+ *  <li>
+ *   <i>Implicitly</i>(Based on JBossESB EPR)<br/>
+ *   If a previously received message had a 'reply to EPR', which was then associated with a label, 
+ *   then the message can be sent back to the originator of that previous message by specifying the label associated with the EPR.
+ *  </li>
+ * </ul>
+ * 
+ * <h4>Usage:</h4>
+ * <pre>
+ * {@literal
+	<action class="org.jboss.soa.overlord.jbossesb.actions.SendMessageAction"
+				process="process" name="s4-3">
+		<property name="messageType" value="quoteList" />
+		<property name="clientEPR" value="buyer" />
+		<property name="identities" >
+			<identity type="primary" >
+				<token name="id" locator="//@id" />
+			</identity>
+		</property>
+	 </action>
+ * }
+ * </pre>
+ * OR: 
+ * <pre>
+ * {@literal
+	<action class="org.jboss.soa.overlord.jbossesb.actions.SendMessageAction"
+				process="process" name="s8-4">
+		<property name="messageType" value="requestForQuote" />
+		<property name="serviceNameExpression" value="supplier.serviceName" />
+		<property name="serviceCategoryExpression" value="supplier.serviceCategory" />
+		<property name="responseServiceName" value="RequestForQuote.main.1" />
+		<property name="responseServiceCategory" value="ESBBroker.BrokerParticipant" />
+		<property name="identities" >
+			<identity type="primary" >
+				<token name="id" locator="//@id" />
+			</identity>
+		</property>
+	</action>
+ * }
+ * </pre>
+ * 
+ * <h4>Description of configuration properties:</h4>
+ *  <ul>
+ *  <li><i>messageType </i> - Define the message type that is prepared to sent to.</li>
+ *  <li><i>clientEPR</i> - This is JBossESB EPR Label, represents a JBossESB EPR that can be used to send a message to.</li>
+ *  <li><i>serviceName</i> - Mapped to JBossESB service-name.</li>
+ *  <li><i>serviceCategory</i> - Mapped to JBossESB service-category.</li>
+ *  <li><i>servceNameExpression</i> - The EL expression against session's associated business state object to get the service-name value.</li>
+ *  <li><i>serviceCategoryExpression</i> - The EL expression against session's associated business state object to get the service-category value.</li>
+ *  <li><i>responseServiceName</i> - The service-name of the responded message.</li>
+ *  <li><i>responseServiceCategory</i> - The service-category of the responded message.</li>
+ * </ul>
+ * 
+ * 
  * @author <a href="mailto:gary.brown at hattricksoftware.com">Gary Brown</a>
  * @author <a href="mailto:cyu at redhat.com">Jeff Yu</a>
  */

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/Service.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/Service.java	2008-10-21 22:18:32 UTC (rev 411)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/Service.java	2008-10-22 06:40:53 UTC (rev 412)
@@ -21,7 +21,6 @@
 
 /**
  * 
- * 
  * @author <a href="mailto:gary.brown at hattricksoftware.com">Gary Brown</a>
  */
 

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SetMessageAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SetMessageAction.java	2008-10-21 22:18:32 UTC (rev 411)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SetMessageAction.java	2008-10-22 06:40:53 UTC (rev 412)
@@ -25,8 +25,25 @@
 import org.mvel.MVEL;
 
 /**
- * Set object into the 'ESB Message' Object.
+ * SetMessageAction enables the information contained within the ESB Message object, 
+ * currently being passed through the action pipeline, to be updated based on information from the business state pojo.
  * 
+ * <h4>Usage:</h4>
+ * <pre>
+ * {@literal
+	<action class="org.jboss.soa.overlord.jbossesb.actions.SetMessageAction" name="s8-2">
+		<property name="headerProperty" value="serviceDescriptionName" />
+		<property name="stateExpression" value="supplier.serviceDescription" />
+	</action>
+ * }
+ * </pre>
+ * 
+ * <h4>Description of configuration properties:</h4>
+ * <ul>
+ *  <li><i>headerProperty</i> - The key in ESB Message's header.</li>
+ *  <li><i>stateExpression</i> - The property or method of session associated business state class.</li>
+ * </ul>
+ * 
  * @author <a href="mailto:cyu at redhat.com">Jeff Yu</a>
  *
  */

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SetStateAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SetStateAction.java	2008-10-21 22:18:32 UTC (rev 411)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SetStateAction.java	2008-10-22 06:40:53 UTC (rev 412)
@@ -27,7 +27,35 @@
 import org.w3c.dom.Element;
 
 /**
+ * SetStateAction is intended to enable business state, associated with the POJO for the session,
+ * to be set/updated based on information derived from either the business state or the current message object.
  * 
+ * <h4>Usage:</h4>
+ * <pre>
+ * {@literal
+	<action class="org.jboss.soa.overlord.jbossesb.actions.SetStateAction" name="s7-2">
+		<property name="variable" value="selectedQuoteValue" />
+		<property name="messageExpression" value="//@quoteValue" />
+	</action>
+ * }
+ * </pre>
+ * OR:
+ * <pre>
+ * {@literal
+	<action class="org.jboss.soa.overlord.jbossesb.actions.SetStateAction" name="s17-2">
+		<property name="variable" value="supplierIndex" />
+		<property name="stateExpression" value="nextSupplier()" />
+	</action>
+ * }
+ * </pre>
+ * 
+ * <h4>Description of configuration properties:</h4>
+ * <ul>
+ *  <li><i>variable</i> - The property in the session associated business state class.</li>
+ *  <li><i>messageExpression</i> - The EL expression against ESB message Object.<li>
+ *  <li><i>stateExpression</i> - The property or method of session associated business state class.</li>
+ * </ul>
+ * 
  * @author <a href="mailto:cyu at redhat.com">Jeff Yu</a>
  */
 public class SetStateAction extends ConversationAction {

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SwitchAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SwitchAction.java	2008-10-21 22:18:32 UTC (rev 411)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SwitchAction.java	2008-10-22 06:40:53 UTC (rev 412)
@@ -24,9 +24,34 @@
 import org.jboss.soa.esb.message.Message;
 
 /**
- * This action represents a choice between a set of specified paths
- * based on the message that has occurred.
+ * SwitchAction provides a means to select the relevant path based on the type of a message being processed by the action.
  * 
+ * <h4>Usage:</h4>
+ * <pre>
+ * {@literal
+	<action class="org.jboss.soa.overlord.jbossesb.actions.SwitchAction"
+				process="process" name="s11-2">
+		<property name="paths">
+			<case service-category="ESBBroker.BrokerParticipant"
+					service-name="CompleteTransaction.main.2" >
+				<message type="CreditCheckOk" />
+			</case>
+			<case service-category="ESBBroker.BrokerParticipant"
+					service-name="CompleteTransaction.main.4" >
+				<message type="CreditCheckInvalid" />
+			</case>
+		</property>				
+	</action>
+ * }
+ * </pre>
+ * 
+ * <h4>Description of configuration properties:</h4>
+ * <ul>
+ *  <li><i>serivce-category</i> - mapped to JBoss ESB service-category.</li>
+ *  <li><i>service-name</i> - mapped to JBossESB service-name.<li>
+ *  <li><i>type</i> - The message type that should be received.</li>
+ * </ul>
+ * 
  * @author <a href="mailto:gary.brown at hattricksoftware.com">Gary Brown</a>
  * @author <a href="mailto:cyu at redhat.com">Jeff Yu</a>
  */

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/WhenAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/WhenAction.java	2008-10-21 22:18:32 UTC (rev 411)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/WhenAction.java	2008-10-22 06:40:53 UTC (rev 412)
@@ -25,7 +25,29 @@
 import org.mvel.MVEL;
 
 /** 
+ * WhenAction will enable one or more specified states to be triggered when an associated expression evaluates to true.
  * 
+ * <h4>Usage:</h4>
+ * <pre>
+ * {@literal
+	<action class="org.jboss.soa.overlord.jbossesb.actions.WhenAction"
+				process="process" name="s4-1">
+		<property name="paths">
+			<when expression="receivedAllQuotes()"
+					service-category="ESBBroker.BrokerParticipant"
+					service-name="ESBBrokerProcess.main.4" />
+		</property>				
+	</action>
+ * }
+ * </pre>
+ * 
+ * <h4>Description of configuration properties:</h4>
+ *  <ul>
+ *  <li><i>expression</i> - The decision method, the method result should be Boolean type, and it doesn't have any input parameters.</li>
+ *  <li><i>serivce-category</i> - mapped to JBoss ESB service-category.</li>
+ *  <li><i>service-name</i> - mapped to JBossESB service-name.<li>
+ * </ul>
+ * 
  * @author <a href="mailto:cyu at redhat.com">Jeff Yu</a>
  *
  */

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/WhileAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/WhileAction.java	2008-10-21 22:18:32 UTC (rev 411)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/WhileAction.java	2008-10-22 06:40:53 UTC (rev 412)
@@ -25,7 +25,34 @@
 import org.mvel.MVEL;
 
 /**
+ * WhileAction will enable provide the traditional 'while' loop construct.
  * 
+ * <h4>Usage:</h4>
+ * <pre>
+ * {@literal
+	<action class="org.jboss.soa.overlord.jbossesb.actions.WhileAction"
+				process="process" name="s2-1">
+		<property name="paths">
+			<while  expression="hasSuppliers()"
+					service-category="ESBBroker.BrokerParticipant"
+					service-name="ESBBrokerProcess.main.2"
+					immediate="true" />
+			<exit service-category="ESBBroker.BrokerParticipant"
+					service-name="ESBBrokerProcess.main.3"
+					immediate="true" />
+		</property>				
+	</action>
+ * }
+ * </pre>
+ * 
+ * <h4>Description of configuration properties:</h4>
+ *  <ul>
+ *  <li><i>expression</i> - The decision method, the method result should be Boolean type, and it doesn't have any input parameters.</li>
+ *  <li><i>serivce-category</i> - mapped to JBoss ESB service-category.</li>
+ *  <li><i>service-name</i> - mapped to JBossESB service-name.<li>
+ *  <li><i>immediate</i> - whether send message to the specified service-category and service-name immediately.</li>
+ * </ul>
+ * 
  * @author <a href="mailto:cyu at redhat.com">Jeff Yu</a>
  */
 public class WhileAction extends ConversationAction {




More information about the overlord-commits mailing list