Overlord SVN: r358 - in cdl/trunk: runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions and 3 other directories.
by overlord-commits@lists.jboss.org
Author: jeff.yuchang
Date: 2008-10-02 02:02:08 -0400 (Thu, 02 Oct 2008)
New Revision: 358
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/JoinState.java
cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/LogicalCourier.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/SessionManager.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/ActionProperties.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/MessageProperties.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/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/WhenAction.java
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/util/ClassLoaderUtil.java
cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/util/HibernateUtil.java
cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/util/MessageUtil.java
cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/util/NameSpaceUtil.java
cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/util/XMLUtils.java
cdl/trunk/runtime/jbossesb/src/test/java/org/jboss/soa/overlord/jbossesb/util/MVELUsageTest.java
cdl/trunk/runtime/jbossesb/src/test/java/org/jboss/soa/overlord/jbossesb/util/XMLUtilsTest.java
cdl/trunk/samples/jbossesb/purchasing/store/src/main/resources/META-INF/jboss-esb.xml
Log:
* Fix purchasing jboss-esb.xml to make sample work.
* Use the email address in @author tag in the code.
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-01 15:00:04 UTC (rev 357)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/EPRWrapper.java 2008-10-02 06:02:08 UTC (rev 358)
@@ -31,9 +31,11 @@
import javax.persistence.Table;
/**
- * @author jeffyu
+ *
+ * @author <a href="mailto:cyu@redhat.com>Jeff Yu</a>
*
*/
+
@Entity
@Table(name="CDL_EPRS")
public class EPRWrapper implements Serializable{
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-01 15:00:04 UTC (rev 357)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/HibernateObject.java 2008-10-02 06:02:08 UTC (rev 358)
@@ -22,7 +22,9 @@
import java.io.Serializable;
/**
- * @author jeffyu
+ *
+ * @author <a href="mailto:cyu@redhat.com>Jeff Yu</a>
+ *
*/
public interface HibernateObject extends Serializable {
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-01 15:00:04 UTC (rev 357)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/Identity.java 2008-10-02 06:02:08 UTC (rev 358)
@@ -35,11 +35,10 @@
import javax.persistence.Table;
/**
- * @author gary
- * @author jeffyu
+ * @author <a href="mailto:gary.brown@hattricksoftware.com">Gary Brown</a>
+ * @author <a href="mailto:cyu@redhat.com>Jeff Yu</a>
*/
-
@Entity
@Table(name="CDL_IDENTITY")
public class Identity implements HibernateObject {
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-01 15:00:04 UTC (rev 357)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/JoinState.java 2008-10-02 06:02:08 UTC (rev 358)
@@ -28,8 +28,9 @@
import javax.persistence.Table;
/**
- * @author jeffyu
- *
+ *
+ * @author <a href="mailto:gary.brown@hattricksoftware.com">Gary Brown</a>
+ * @author <a href="mailto:cyu@redhat.com>Jeff Yu</a>
*/
@Entity
@Table(name="CDL_JOIN_STATES")
Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/LogicalCourier.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/LogicalCourier.java 2008-10-01 15:00:04 UTC (rev 357)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/LogicalCourier.java 2008-10-02 06:02:08 UTC (rev 358)
@@ -29,6 +29,8 @@
/**
* This class providers the courier implementation associated
* with a LogicalEPR.
+ *
+ * @author <a href="mailto:gary.brown@hattricksoftware.com">Gary Brown</a>
*/
public class LogicalCourier implements org.jboss.soa.esb.couriers.Courier {
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-01 15:00:04 UTC (rev 357)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/ScheduleItem.java 2008-10-02 06:02:08 UTC (rev 358)
@@ -27,6 +27,12 @@
import javax.persistence.ManyToOne;
import javax.persistence.Table;
+/**
+ *
+ * @author <a href="mailto:gary.brown@hattricksoftware.com">Gary Brown</a>
+ * @author <a href="mailto:cyu@redhat.com>Jeff Yu</a>
+ *
+ */
@Entity
@Table(name="CDL_SCHEDULE_ITEM")
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-01 15:00:04 UTC (rev 357)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/Session.java 2008-10-02 06:02:08 UTC (rev 358)
@@ -46,6 +46,12 @@
import org.jboss.soa.esb.client.ServiceInvoker;
import org.jboss.soa.esb.message.Message;
+/**
+ *
+ * @author <a href="mailto:gary.brown@hattricksoftware.com">Gary Brown</a>
+ * @author <a href="mailto:cyu@redhat.com>Jeff Yu</a>
+ */
+
@Entity
@Table(name="CDL_SESSION")
public class Session implements HibernateObject {
Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/SessionManager.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/SessionManager.java 2008-10-01 15:00:04 UTC (rev 357)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/SessionManager.java 2008-10-02 06:02:08 UTC (rev 358)
@@ -35,6 +35,9 @@
/**
* This component is responsible for managing the persistence and retrieval
* of sessions.
+ *
+ * @author <a href="mailto:gary.brown@hattricksoftware.com">Gary Brown</a>
+ * @author <a href="mailto:cyu@redhat.com>Jeff Yu</a>
*/
public class SessionManager {
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-01 15:00:04 UTC (rev 357)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/SessionStatus.java 2008-10-02 06:02:08 UTC (rev 358)
@@ -19,6 +19,13 @@
*/
package org.jboss.soa.overlord.jbossesb;
+
+/**
+ *
+ * @author <a href="mailto:gary.brown@hattricksoftware.com">Gary Brown</a>
+ *
+ */
+
public enum SessionStatus {
Initialized,
Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ActionProperties.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ActionProperties.java 2008-10-01 15:00:04 UTC (rev 357)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ActionProperties.java 2008-10-02 06:02:08 UTC (rev 358)
@@ -19,6 +19,14 @@
*/
package org.jboss.soa.overlord.jbossesb.actions;
+/**
+ *
+ * It defines the property name in the jboss-esb.xml.
+ *
+ * @author <a href="mailto:gary.brown@hattricksoftware.com">Gary Brown</a>
+ * @author <a href="mailto:cyu@redhat.com>Jeff Yu</a>
+ */
+
public class ActionProperties {
public static final String SESSION_NAME = "session";
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-01 15:00:04 UTC (rev 357)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ConversationAction.java 2008-10-02 06:02:08 UTC (rev 358)
@@ -43,7 +43,10 @@
import org.jboss.soa.overlord.jbossesb.util.XMLUtils;
/**
- * Base activity.
+ * Base activity, all the ESB aware actions extends from this one.
+ *
+ * @author <a href="mailto:gary.brown@hattricksoftware.com">Gary Brown</a>
+ * @author <a href="mailto:cyu@redhat.com>Jeff Yu</a>
*/
public abstract class ConversationAction extends AbstractActionLifecycle {
@@ -169,6 +172,9 @@
if (ret != null) {
//message.getProperties().setProperty(MessageProperties.SESSION, ret);
message.getProperties().setProperty(MessageProperties.SESSION_KEY, String.valueOf(ret.getId()));
+ } else {
+ logger.error("Can not get session by using neither session key of [" + sessionKey +"] nor" +
+ " ids [" + ids + "]");
}
}
return(ret);
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-01 15:00:04 UTC (rev 357)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/CreateSessionAction.java 2008-10-02 06:02:08 UTC (rev 358)
@@ -26,9 +26,11 @@
import org.jboss.soa.overlord.jbossesb.SessionManager;
/**
- * @author gary
- * @author jeffyu
* This action creates a new session.
+ *
+ * @author <a href="mailto:gary.brown@hattricksoftware.com">Gary Brown</a>
+ * @author <a href="mailto:cyu@redhat.com>Jeff Yu</a>
+ *
*/
public class CreateSessionAction extends ConversationAction {
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-01 15:00:04 UTC (rev 357)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/IfAction.java 2008-10-02 06:02:08 UTC (rev 358)
@@ -28,6 +28,9 @@
/**
* This action represents a choice between a set of specified paths
* based on the message that has occurred.
+ *
+ * @author <a href="mailto:gary.brown@hattricksoftware.com">Gary Brown</a>
+ * @author <a href="mailto:cyu@redhat.com>Jeff Yu</a>
*/
public class IfAction extends ConversationAction {
Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/MessageProperties.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/MessageProperties.java 2008-10-01 15:00:04 UTC (rev 357)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/MessageProperties.java 2008-10-02 06:02:08 UTC (rev 358)
@@ -19,6 +19,13 @@
*/
package org.jboss.soa.overlord.jbossesb.actions;
+/**
+ * Define message constants.
+ *
+ * @author <a href="mailto:gary.brown@hattricksoftware.com">Gary Brown</a>
+ * @author <a href="mailto:cyu@redhat.com>Jeff Yu</a>
+ *
+ */
public class MessageProperties {
public static final String SESSION="session";
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-01 15:00:04 UTC (rev 357)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/MessageRouterAction.java 2008-10-02 06:02:08 UTC (rev 358)
@@ -31,8 +31,9 @@
import org.jboss.soa.overlord.jbossesb.Session;
/**
- * @author jeffyu
- *
+ * Route message to different services according to the 'MessageType'.
+ *
+ * @author <a href="mailto:cyu@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-01 15:00:04 UTC (rev 357)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ParallelAction.java 2008-10-02 06:02:08 UTC (rev 358)
@@ -26,6 +26,9 @@
/**
* This action represents a parallel construct.
+ *
+ * @author <a href="mailto:gary.brown@hattricksoftware.com">Gary Brown</a>
+ * @author <a href="mailto:cyu@redhat.com>Jeff Yu</a>
*/
public class ParallelAction extends ConversationAction {
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-01 15:00:04 UTC (rev 357)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/PerformAction.java 2008-10-02 06:02:08 UTC (rev 358)
@@ -29,8 +29,9 @@
import org.mvel.MVEL;
/**
- * @author jeffyu
- *
+ *
+ * @author <a href="mailto:cyu@redhat.com>Jeff Yu</a>
+ *
*/
public class PerformAction extends ConversationAction {
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-01 15:00:04 UTC (rev 357)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ReceiveMessageAction.java 2008-10-02 06:02:08 UTC (rev 358)
@@ -28,6 +28,9 @@
/**
* Receive activity.
+ *
+ * @author <a href="mailto:gary.brown@hattricksoftware.com">Gary Brown</a>
+ * @author <a href="mailto:cyu@redhat.com>Jeff Yu</a>
*/
public class ReceiveMessageAction extends ConversationAction {
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-01 15:00:04 UTC (rev 357)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/RetrieveSessionAction.java 2008-10-02 06:02:08 UTC (rev 358)
@@ -28,7 +28,10 @@
import org.jboss.soa.overlord.jbossesb.Session;
/**
- * This action creates a new session.
+ * This action gets an existed session.
+ *
+ * @author <a href="mailto:gary.brown@hattricksoftware.com">Gary Brown</a>
+ * @author <a href="mailto:cyu@redhat.com>Jeff Yu</a>
*/
public class RetrieveSessionAction extends ConversationAction {
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-01 15:00:04 UTC (rev 357)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SendMessageAction.java 2008-10-02 06:02:08 UTC (rev 358)
@@ -38,7 +38,10 @@
/**
- * Receive activity.
+ * Send message activity.
+ *
+ * @author <a href="mailto:gary.brown@hattricksoftware.com">Gary Brown</a>
+ * @author <a href="mailto:cyu@redhat.com>Jeff Yu</a>
*/
public class SendMessageAction extends ConversationAction {
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-01 15:00:04 UTC (rev 357)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/Service.java 2008-10-02 06:02:08 UTC (rev 358)
@@ -19,6 +19,12 @@
*/
package org.jboss.soa.overlord.jbossesb.actions;
+/**
+ *
+ *
+ * @author <a href="mailto:gary.brown@hattricksoftware.com">Gary Brown</a>
+ */
+
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
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-01 15:00:04 UTC (rev 357)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SetMessageAction.java 2008-10-02 06:02:08 UTC (rev 358)
@@ -26,7 +26,9 @@
import org.mvel.MVEL;
/**
- * @author jeffyu
+ * Set object into the 'ESB Message' Object.
+ *
+ * @author <a href="mailto:cyu@redhat.com>Jeff Yu</a>
*
*/
public class SetMessageAction extends ConversationAction {
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-01 15:00:04 UTC (rev 357)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SetStateAction.java 2008-10-02 06:02:08 UTC (rev 358)
@@ -29,8 +29,8 @@
import org.w3c.dom.Element;
/**
- * @author jeffyu
- *
+ *
+ * @author <a href="mailto:cyu@redhat.com>Jeff Yu</a>
*/
public class SetStateAction extends ConversationAction {
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-01 15:00:04 UTC (rev 357)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/WhenAction.java 2008-10-02 06:02:08 UTC (rev 358)
@@ -25,8 +25,9 @@
import org.jboss.soa.overlord.jbossesb.Session;
import org.mvel.MVEL;
-/**
- * @author jeffyu
+/**
+ *
+ * @author <a href="mailto:cyu@redhat.com>Jeff Yu</a>
*
*/
public class WhenAction extends ConversationAction {
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-01 15:00:04 UTC (rev 357)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/WhileAction.java 2008-10-02 06:02:08 UTC (rev 358)
@@ -26,8 +26,9 @@
import org.mvel.MVEL;
/**
- * @author jeffyu
- *
+ *
+ *
+ * @author <a href="mailto:cyu@redhat.com>Jeff Yu</a>
*/
public class WhileAction extends ConversationAction {
Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/util/ClassLoaderUtil.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/util/ClassLoaderUtil.java 2008-10-01 15:00:04 UTC (rev 357)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/util/ClassLoaderUtil.java 2008-10-02 06:02:08 UTC (rev 358)
@@ -20,7 +20,8 @@
package org.jboss.soa.overlord.jbossesb.util;
/**
- * @author jeffyu
+ *
+ * @author <a href="mailto:cyu@redhat.com>Jeff Yu</a>
*
*/
public class ClassLoaderUtil {
Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/util/HibernateUtil.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/util/HibernateUtil.java 2008-10-01 15:00:04 UTC (rev 357)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/util/HibernateUtil.java 2008-10-02 06:02:08 UTC (rev 358)
@@ -25,8 +25,9 @@
import org.hibernate.cfg.AnnotationConfiguration;
/**
- * @author jeffyu
*
+ * @author <a href="mailto:cyu@redhat.com>Jeff Yu</a>
+ *
*/
public class HibernateUtil {
Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/util/MessageUtil.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/util/MessageUtil.java 2008-10-01 15:00:04 UTC (rev 357)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/util/MessageUtil.java 2008-10-02 06:02:08 UTC (rev 358)
@@ -27,7 +27,9 @@
/**
* This class represents utility functions for processing
* messages.
- *
+ *
+ * @author <a href="mailto:gary.brown@hattricksoftware.com">Gary Brown</a>
+ * @author <a href="mailto:cyu@redhat.com>Jeff Yu</a>
*/
public class MessageUtil {
Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/util/NameSpaceUtil.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/util/NameSpaceUtil.java 2008-10-01 15:00:04 UTC (rev 357)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/util/NameSpaceUtil.java 2008-10-02 06:02:08 UTC (rev 358)
@@ -22,6 +22,9 @@
/**
* This class provides helper functiions for manipulating fully
* qualified names (with local parts and namespaces).
+ *
+ * @author <a href="mailto:gary.brown@hattricksoftware.com">Gary Brown</a>
+ * @author <a href="mailto:cyu@redhat.com>Jeff Yu</a>
*/
public class NameSpaceUtil {
Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/util/XMLUtils.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/util/XMLUtils.java 2008-10-01 15:00:04 UTC (rev 357)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/util/XMLUtils.java 2008-10-02 06:02:08 UTC (rev 358)
@@ -30,6 +30,11 @@
import org.w3c.dom.Element;
import org.w3c.dom.Node;
+/**
+ *
+ * @author <a href="mailto:gary.brown@hattricksoftware.com">Gary Brown</a>
+ * @author <a href="mailto:cyu@redhat.com>Jeff Yu</a>
+ */
public class XMLUtils {
Modified: cdl/trunk/runtime/jbossesb/src/test/java/org/jboss/soa/overlord/jbossesb/util/MVELUsageTest.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/test/java/org/jboss/soa/overlord/jbossesb/util/MVELUsageTest.java 2008-10-01 15:00:04 UTC (rev 357)
+++ cdl/trunk/runtime/jbossesb/src/test/java/org/jboss/soa/overlord/jbossesb/util/MVELUsageTest.java 2008-10-02 06:02:08 UTC (rev 358)
@@ -26,7 +26,8 @@
import junit.framework.Assert;
/**
- * @author jeffyu
+ *
+ * @author <a href="mailto:cyu@redhat.com>Jeff Yu</a>
*
*/
public class MVELUsageTest extends Assert {
Modified: cdl/trunk/runtime/jbossesb/src/test/java/org/jboss/soa/overlord/jbossesb/util/XMLUtilsTest.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/test/java/org/jboss/soa/overlord/jbossesb/util/XMLUtilsTest.java 2008-10-01 15:00:04 UTC (rev 357)
+++ cdl/trunk/runtime/jbossesb/src/test/java/org/jboss/soa/overlord/jbossesb/util/XMLUtilsTest.java 2008-10-02 06:02:08 UTC (rev 358)
@@ -25,8 +25,9 @@
import junit.framework.Assert;
/**
- * @author jeffyu
*
+ * @author <a href="mailto:cyu@redhat.com>Jeff Yu</a>
+ *
*/
public class XMLUtilsTest extends Assert{
Modified: cdl/trunk/samples/jbossesb/purchasing/store/src/main/resources/META-INF/jboss-esb.xml
===================================================================
--- cdl/trunk/samples/jbossesb/purchasing/store/src/main/resources/META-INF/jboss-esb.xml 2008-10-01 15:00:04 UTC (rev 357)
+++ cdl/trunk/samples/jbossesb/purchasing/store/src/main/resources/META-INF/jboss-esb.xml 2008-10-02 06:02:08 UTC (rev 358)
@@ -70,7 +70,7 @@
<actions mep="OneWay">
<action class="org.jboss.soa.overlord.jbossesb.actions.RetrieveSessionAction" name="b1" process="process">
<property name="session" value="com.acme.services.broker.PurchaseGoods"/>
- <property name="serviceDescriptionName" value="{http://www.jboss.org/overlord/purchase}Broker"/>
+ <property name="serviceDescriptionName" value="{http://www.jboss.org/overlord/purchase}Store"/>
<property name="identities">
<identity type="primary">
<token locator="//@id" name="id"/>
@@ -80,10 +80,10 @@
<action class="org.jboss.soa.overlord.jbossesb.actions.SwitchAction" name="b2" process="process">
<property name="paths">
<case service-category="PurchaseGoods.Broker" service-name="CreditResponse1">
- <message type="creditValid"/>
+ <message type="CreditCheckOk"/>
</case>
<case service-category="PurchaseGoods.Broker" service-name="CreditResponse2">
- <message type="creditInvalid"/>
+ <message type="CreditCheckInvalid"/>
</case>
</property>
</action>
15 years, 7 months
Overlord SVN: r357 - in cdl/trunk/docs/docbook/userguide/src/main: module and 1 other directory.
by overlord-commits@lists.jboss.org
Author: objectiser
Date: 2008-10-01 11:00:04 -0400 (Wed, 01 Oct 2008)
New Revision: 357
Added:
cdl/trunk/docs/docbook/userguide/src/main/images/monitorui.png
Modified:
cdl/trunk/docs/docbook/userguide/src/main/module/conversation-validation-with-cdl.xml
Log:
Added further section to conversation validation, based on the monitoring section of the previous trailblazer example - and made more generic.
Added: cdl/trunk/docs/docbook/userguide/src/main/images/monitorui.png
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/docs/docbook/userguide/src/main/images/monitorui.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: cdl/trunk/docs/docbook/userguide/src/main/module/conversation-validation-with-cdl.xml
===================================================================
--- cdl/trunk/docs/docbook/userguide/src/main/module/conversation-validation-with-cdl.xml 2008-10-01 12:20:37 UTC (rev 356)
+++ cdl/trunk/docs/docbook/userguide/src/main/module/conversation-validation-with-cdl.xml 2008-10-01 15:00:04 UTC (rev 357)
@@ -85,13 +85,13 @@
The principle mechanism used for validating conversations within an ESB is through the use of a global filter registered with the <emphasis>jbossesb-properties.xml</emphasis>. This file is located in the <emphasis>$JBossESB/server/default/deploy/jbossesb.sar</emphasis> folder.
</para>
<informalexample>
- <programlisting>
- <properties name="filters">
+ <programlisting role="XML" ><![CDATA[
+ <properties name="filters">
...
- <property name="org.jboss.soa.esb.filter.10"
+ <property name="org.jboss.soa.esb.filter.10"
value="org.pi4soa.jbossesb.validator.ValidatorFilter"/>
- </properties>
- </programlisting>
+ </properties>
+ ]]></programlisting>
</informalexample>
<para>
@@ -104,36 +104,36 @@
An example of the contents of this file, as used by the TrailBlazer example, is:
</para>
<informalexample>
- <programlisting>
- <validator active="true" >
- <service cdmFilePath="models/TrailBlazer.cdm"
+ <programlisting role="XML" ><![CDATA[
+ <validator active="true" >
+ <service cdmFilePath="models/TrailBlazer.cdm"
participantType="LoanBrokerParticipant" >
- <output epr="jms:queue/esb-tb-creditAgencyQueue" />
- <input epr="jms:queue/esb-tb-creditAgencyQueue_reply" />
- <output epr="jms:queue/esb-tb-jmsBankRequestQueue" />
- <output epr="jms:queue/esb-tb-fileBankRequestQueue" />
- <input epr="jms:queue/esb-tb-jmsBankResponseQueue" />
- <output epr="jms:queue/esb-tb-customerNotifier" />
- <input epr="jms:queue/esb-tb-fileBankResponseQueue" />
- </service>
- <service cdmFilePath="models/TrailBlazer.cdm"
+ <output epr="jms:queue/esb-tb-creditAgencyQueue" />
+ <input epr="jms:queue/esb-tb-creditAgencyQueue_reply" />
+ <output epr="jms:queue/esb-tb-jmsBankRequestQueue" />
+ <output epr="jms:queue/esb-tb-fileBankRequestQueue" />
+ <input epr="jms:queue/esb-tb-jmsBankResponseQueue" />
+ <output epr="jms:queue/esb-tb-customerNotifier" />
+ <input epr="jms:queue/esb-tb-fileBankResponseQueue" />
+ </service>
+ <service cdmFilePath="models/TrailBlazer.cdm"
participantType="CreditAgencyParticipant" >
- <input epr="jms:queue/esb-tb-creditAgencyQueue" />
- <output epr="jms:queue/esb-tb-creditAgencyQueue_reply" />
- </service>
- <service cdmFilePath="models/TrailBlazer.cdm"
+ <input epr="jms:queue/esb-tb-creditAgencyQueue" />
+ <output epr="jms:queue/esb-tb-creditAgencyQueue_reply" />
+ </service>
+ <service cdmFilePath="models/TrailBlazer.cdm"
participantType="BankParticipant" >
- <input epr="jms:queue/esb-tb-jmsBankRequestQueue" />
- <input epr="jms:queue/esb-tb-fileBankRequestQueue" />
- <output epr="jms:queue/esb-tb-jmsBankResponseQueue" />
- <output epr="jms:queue/esb-tb-fileBankResponseQueue" />
- </service>
- <service cdmFilePath="models/TrailBlazer.cdm"
+ <input epr="jms:queue/esb-tb-jmsBankRequestQueue" />
+ <input epr="jms:queue/esb-tb-fileBankRequestQueue" />
+ <output epr="jms:queue/esb-tb-jmsBankResponseQueue" />
+ <output epr="jms:queue/esb-tb-fileBankResponseQueue" />
+ </service>
+ <service cdmFilePath="models/TrailBlazer.cdm"
participantType="NotifierParticipant" >
- <input epr="jms:queue/esb-tb-customerNotifier" />
- </service>
- </validator>
- </programlisting>
+ <input epr="jms:queue/esb-tb-customerNotifier" />
+ </service>
+ </validator>
+ ]]></programlisting>
</informalexample>
<para>
@@ -166,16 +166,16 @@
</para>
<informalexample>
- <programlisting>
- <action name="LoanBrokerValidatorAction1"
+ <programlisting role="XML" ><![CDATA[
+ <action name="LoanBrokerValidatorAction1"
class="org.pi4soa.jbossesb.validator.ValidationAction"
process="processMessage" >
- <property name="cdmFilePath" value="models/TrailBlazer.cdm" />
- <property name="participantType" value="LoanBrokerParticipant" />
- <property name="inbound" value="true" />
- <property name="request" value="true" />
- </action>
- </programlisting>
+ <property name="cdmFilePath" value="models/TrailBlazer.cdm" />
+ <property name="participantType" value="LoanBrokerParticipant" />
+ <property name="inbound" value="true" />
+ <property name="request" value="true" />
+ </action>
+ ]]></programlisting>
</informalexample>
<para>
@@ -183,4 +183,50 @@
</para>
</section>
</section>
+
+ <section>
+ <title>Monitoring the Choreography Description</title>
+<para>
+Once the JBossESB environment has been configured, to perform service validation of a set of ESB services against a choreography
+description, and the server has been started, then the next step is to launch a tool to view the correlated information from
+the service validators - and determine if the transactions are being correctly executed.
+</para>
+<para>
+Within an Eclipse Java project, that contains the choreography description to be monitored, a configuration file called <emphasis>pi4soa.xml</emphasis> needs to be defined on the project's classpath. This file provides details of the JMS configuration parameters required to subscribe for the information generated by the service validators. The contents of this file is:
+</para>
+ <informalexample>
+ <programlisting role="XML" ><![CDATA[
+<pi4soa>
+ <tracker>
+ <jndi>
+ <initialContextFactory>org.jnp.interfaces.NamingContextFactory</initialContextFactory>
+ <providerURL>jnp://localhost:1099</providerURL>
+ <factoryURLPackages>org.jboss.naming:org.jnp.interfaces</factoryURLPackages>
+ </jndi>
+ <jms>
+ <connectionFactory>ConnectionFactory</connectionFactory>
+ <connectionFactoryAlternate>ConnectionFactory</connectionFactoryAlternate>
+ <destination>topic/tracker</destination>
+ </jms>
+ </tracker>
+</pi4soa>
+ ]]></programlisting>
+ </informalexample>
+
+<para>
+The destination defined in this file must match the one configured in the <emphasis>pi4soa.sar/pi4soa.xml</emphasis> file within the server.
+</para>
+ <para>
+The next step is to launch the monitoring tool. This is located on the context menu, for the choreography description (i.e. .cdm) file, by selecting the Choreography->Monitor menu item. Once the tool has been launched, it will load the choreography description, subscribe to the relevant event destination, and then indicate via a message in the bottom status line that it is ready to monitor.
+ </para>
+
+ <imagedata fileref="images/monitorui.png" width="5in" />
+
+ <para>
+ When the information is received, from the service validators representing the different participants (services), it is correlated to show the global status of the business transaction. The list of correlated interactions is show in reverse time order in the image, so in this example a <emphasis>LoanBroker</emphasis> sends a <emphasis>creditCheck</emphasis> message to a <emphasis>CreditAgency</emphasis>, followed by a <emphasis>creditCheckResult</emphasis> being returned.
+ </para>
+ <para>
+If any <emphasis>out of sequence</emphasis> or other error situations arise, these are displayed in red.
+ </para>
+ </section>
</chapter>
15 years, 7 months
Overlord SVN: r356 - in cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src: test/org/jboss/tools/overlord/cdl/jbossesb/model/change and 1 other directory.
by overlord-commits@lists.jboss.org
Author: objectiser
Date: 2008-10-01 08:20:37 -0400 (Wed, 01 Oct 2008)
New Revision: 356
Modified:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/model/change/AbstractESBModelChangeRule.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/model/change/ConversationInteractionModelChangeRule.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/model/change/IfModelChangeRule.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/model/change/ParallelModelChangeRule.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/model/change/RunModelChangeRule.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/model/change/SpawnModelChangeRule.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/model/change/WhenModelChangeRule.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/model/change/WhileModelChangeRule.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/test/org/jboss/tools/overlord/cdl/jbossesb/model/change/ConversationInteractionModelChangeRuleTest.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/test/org/jboss/tools/overlord/cdl/jbossesb/model/change/RunModelChangeRuleTest.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/test/org/jboss/tools/overlord/cdl/jbossesb/model/change/SpawnModelChangeRuleTest.java
Log:
Enable delete resolution for run, spawn and conversation interaction. Currently issue with deleting grouping constructs, as it will be necessary to identify the scope of the contained paths.
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/model/change/AbstractESBModelChangeRule.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/model/change/AbstractESBModelChangeRule.java 2008-09-30 15:53:47 UTC (rev 355)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/model/change/AbstractESBModelChangeRule.java 2008-10-01 12:20:37 UTC (rev 356)
@@ -19,6 +19,7 @@
import org.jboss.tools.overlord.cdl.jbossesb.model.*;
import org.jboss.tools.overlord.cdl.jbossesb.model.actions.*;
+import org.scribble.conversation.model.ConversationInteraction;
import org.scribble.model.*;
import org.scribble.model.change.*;
@@ -74,14 +75,14 @@
}
/**
- * This method determines the insertion position based on the
- * supplied service and optional reference model object.
+ * This method determines the position of the supplied
+ * model object within the supplied service.
*
* @param service The service
- * @param ref The optional reference model object
- * @return The position, or -1 if at end
+ * @param ref The optional model object
+ * @return The position, or -1 if not found
*/
- protected int getInsertionPosition(ESBService service, ModelObject ref) {
+ protected int getPosition(ESBService service, ModelObject ref) {
int ret=-1;
// Check if reference model object provided, and if so,
@@ -119,4 +120,54 @@
return(ret);
}
+
+ /**
+ * This method determines whether the rule is appropriate
+ * for the supplied type of model, parent (in the context)
+ * and deleted model object.
+ *
+ * @param context The context
+ * @param model The model
+ * @param mobj The model object to be removed
+ * @return Whether the rule supports the supplied information
+ */
+ @Override
+ public boolean isDeleteSupported(ModelChangeContext context,
+ Model model, ModelObject mobj) {
+ boolean ret=false;
+
+ if (mobj.getSource().getObject() instanceof AbstractESBAction &&
+ (context.getParent() instanceof ESBService ||
+ ((AbstractESBAction)mobj.getSource().getObject()).getService() != null) &&
+ model instanceof ESBLanguageModel) {
+ ret = true;
+ }
+
+ return(ret);
+ }
+
+ /**
+ * This method removes the supplied model object from the
+ * supplied model. The model object representation must
+ * contain the necessary model specific to remove the
+ * object from the underlying model representation.
+ *
+ * @param context The context
+ * @param model The model being changed
+ * @param mobj The model object to be deleted
+ * @return Whether the change has been applied
+ */
+ @Override
+ public boolean delete(ModelChangeContext context,
+ Model model, ModelObject mobj) {
+ boolean ret=false;
+ ESBService service=getESBService(context, mobj);
+ ESBAction action=(ESBAction)mobj.getSource().getObject();
+
+ if (action != null && service != null) {
+ ret = service.getActions().remove(action);
+ }
+
+ return(ret);
+ }
}
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/model/change/ConversationInteractionModelChangeRule.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/model/change/ConversationInteractionModelChangeRule.java 2008-09-30 15:53:47 UTC (rev 355)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/model/change/ConversationInteractionModelChangeRule.java 2008-10-01 12:20:37 UTC (rev 356)
@@ -124,7 +124,7 @@
// Check if reference model object provided, and if so,
// if it has a position within the service
- int pos=getInsertionPosition(service, ref);
+ int pos=getPosition(service, ref);
// Check if subsequent action(s) are initiators
if (pos != -1) {
@@ -256,7 +256,7 @@
// Check if reference model object provided, and if so,
// if it has a position within the service
- int pos=getInsertionPosition(service, ref);
+ int pos=getPosition(service, ref);
// Check if subsequent action(s) are initiators
if (pos != -1) {
@@ -527,4 +527,27 @@
action.setMessageType(mtype);
}
}
+
+ /**
+ * This method determines whether the rule is appropriate
+ * for the supplied type of model, parent (in the context)
+ * and deleted model object.
+ *
+ * @param context The context
+ * @param model The model
+ * @param mobj The model object to be removed
+ * @return Whether the rule supports the supplied information
+ */
+ @Override
+ public boolean isDeleteSupported(ModelChangeContext context,
+ Model model, ModelObject mobj) {
+ boolean ret=false;
+
+ if (mobj instanceof ConversationInteraction &&
+ super.isDeleteSupported(context, model, mobj)) {
+ ret = true;
+ }
+
+ return(ret);
+ }
}
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/model/change/IfModelChangeRule.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/model/change/IfModelChangeRule.java 2008-09-30 15:53:47 UTC (rev 355)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/model/change/IfModelChangeRule.java 2008-10-01 12:20:37 UTC (rev 356)
@@ -93,7 +93,7 @@
ESBService service=getESBService(context, ref);
If ifElem=(If)mobj;
- int pos=getInsertionPosition(service, ref);
+ int pos=getPosition(service, ref);
ESBService joinService=
esbModel.createService(service.getCategory(),
@@ -411,6 +411,6 @@
((Conversation)ifElem.getEnclosingDefinition())));
}
}
-
+
private static Logger logger = Logger.getLogger("org.jboss.tools.overlord.cdl.jbossesb.model.change");
}
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/model/change/ParallelModelChangeRule.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/model/change/ParallelModelChangeRule.java 2008-09-30 15:53:47 UTC (rev 355)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/model/change/ParallelModelChangeRule.java 2008-10-01 12:20:37 UTC (rev 356)
@@ -92,7 +92,7 @@
ESBService service=getESBService(context, ref);
Parallel parallel=(Parallel)mobj;
- int pos=getInsertionPosition(service, ref);
+ int pos=getPosition(service, ref);
// Create the join service
ESBService joinService=
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/model/change/RunModelChangeRule.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/model/change/RunModelChangeRule.java 2008-09-30 15:53:47 UTC (rev 355)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/model/change/RunModelChangeRule.java 2008-10-01 12:20:37 UTC (rev 356)
@@ -92,7 +92,7 @@
ESBService service=getESBService(context, ref);
Run run=(Run)mobj;
- int pos=getInsertionPosition(service, ref);
+ int pos=getPosition(service, ref);
PerformAction action=new PerformAction(service);
@@ -137,5 +137,65 @@
return(true);
}
+ /**
+ * This method determines whether the rule is appropriate
+ * for the supplied type of model, parent (in the context)
+ * and deleted model object.
+ *
+ * @param context The context
+ * @param model The model
+ * @param mobj The model object to be removed
+ * @return Whether the rule supports the supplied information
+ */
+ @Override
+ public boolean isDeleteSupported(ModelChangeContext context,
+ Model model, ModelObject mobj) {
+ boolean ret=false;
+
+ if (mobj instanceof Run &&
+ super.isDeleteSupported(context, model, mobj)) {
+ ret = true;
+ }
+
+ return(ret);
+ }
+
+ /**
+ * This method removes the supplied model object from the
+ * supplied model. The model object representation must
+ * contain the necessary model specific to remove the
+ * object from the underlying model representation.
+ *
+ * @param context The context
+ * @param model The model being changed
+ * @param mobj The model object to be deleted
+ * @return Whether the change has been applied
+ */
+ @Override
+ public boolean delete(ModelChangeContext context,
+ Model model, ModelObject mobj) {
+ boolean ret=false;
+ ESBService service=getESBService(context, mobj);
+ ESBAction action=(ESBAction)mobj.getSource().getObject();
+
+ int pos=getPosition(service, mobj);
+
+ if (action instanceof PerformAction && pos != -1) {
+ ScheduleStateAction schedule=
+ new ScheduleStateAction(service);
+
+ PerformAction perform=(PerformAction)action;
+
+ schedule.setDestination(perform.getPropertyValue(PerformAction.RETURN_SERVICE_CATEGORY),
+ perform.getPropertyValue(PerformAction.RETURN_SERVICE_NAME), true);
+
+ service.addAction(schedule, pos);
+
+ ret = super.delete(context, model, mobj);
+ }
+
+ return(ret);
+ }
+
private static Logger logger = Logger.getLogger("org.jboss.tools.overlord.cdl.jbossesb.model.change");
}
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/model/change/SpawnModelChangeRule.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/model/change/SpawnModelChangeRule.java 2008-09-30 15:53:47 UTC (rev 355)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/model/change/SpawnModelChangeRule.java 2008-10-01 12:20:37 UTC (rev 356)
@@ -90,7 +90,7 @@
ESBService service=getESBService(context, ref);
Spawn spawn=(Spawn)mobj;
- int pos=getInsertionPosition(service, ref);
+ int pos=getPosition(service, ref);
PerformAction action=new PerformAction(service);
@@ -111,5 +111,28 @@
return(true);
}
+ /**
+ * This method determines whether the rule is appropriate
+ * for the supplied type of model, parent (in the context)
+ * and deleted model object.
+ *
+ * @param context The context
+ * @param model The model
+ * @param mobj The model object to be removed
+ * @return Whether the rule supports the supplied information
+ */
+ @Override
+ public boolean isDeleteSupported(ModelChangeContext context,
+ Model model, ModelObject mobj) {
+ boolean ret=false;
+
+ if (mobj instanceof Spawn &&
+ super.isDeleteSupported(context, model, mobj)) {
+ ret = true;
+ }
+
+ return(ret);
+ }
+
//private static Logger logger = Logger.getLogger("org.jboss.tools.overlord.cdl.jbossesb.model.change");
}
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/model/change/WhenModelChangeRule.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/model/change/WhenModelChangeRule.java 2008-09-30 15:53:47 UTC (rev 355)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/model/change/WhenModelChangeRule.java 2008-10-01 12:20:37 UTC (rev 356)
@@ -92,7 +92,7 @@
ESBService service=getESBService(context, ref);
When when=(When)mobj;
- int pos=getInsertionPosition(service, ref);
+ int pos=getPosition(service, ref);
// Create join service
ESBService joinService=
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/model/change/WhileModelChangeRule.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/model/change/WhileModelChangeRule.java 2008-09-30 15:53:47 UTC (rev 355)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/model/change/WhileModelChangeRule.java 2008-10-01 12:20:37 UTC (rev 356)
@@ -93,7 +93,7 @@
ESBService original=service;
While whileElem=(While)mobj;
- int pos=getInsertionPosition(service, ref);
+ int pos=getPosition(service, ref);
// Check if action needs to be placed in new service
// descriptor - i.e. if insert at end, but current service
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/test/org/jboss/tools/overlord/cdl/jbossesb/model/change/ConversationInteractionModelChangeRuleTest.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/test/org/jboss/tools/overlord/cdl/jbossesb/model/change/ConversationInteractionModelChangeRuleTest.java 2008-09-30 15:53:47 UTC (rev 355)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/test/org/jboss/tools/overlord/cdl/jbossesb/model/change/ConversationInteractionModelChangeRuleTest.java 2008-10-01 12:20:37 UTC (rev 356)
@@ -1549,4 +1549,299 @@
fail("Route message type has not been updated");
}
}
+
+ public void testDeleteMiddleReceiveBetweenTwoActions() {
+ ConversationInteractionModelChangeRule rule=new ConversationInteractionModelChangeRule();
+
+ TestESBLanguageModel model=new TestESBLanguageModel();
+
+ TestESBService service=(TestESBService)
+ model.createService("testcategory", "testname");
+
+ model.addService(service);
+
+ TestESBAction act1=new TestESBAction();
+ act1.setInitiator(true);
+ act1.setSessionBased(true);
+ service.addAction(act1, -1);
+
+ // Add gateway service
+ TestESBService gwservice=(TestESBService)
+ model.createService("testcategory", "gateway");
+ gwservice.setGateway(true);
+
+ MessageRouterAction mra=new MessageRouterAction(gwservice);
+ gwservice.setGatewayAction(mra);
+
+ model.setGatewayService(gwservice);
+
+
+ TestModelChangeContext context=new TestModelChangeContext();
+ context.setParent(service);
+
+ Role role=new Role();
+ role.setName("role1");
+
+ context.setRole(role);
+
+ Conversation conv=new Conversation();
+ ModelName mname=new ModelName();
+ mname.setLocatedRole(role);
+ conv.setModelName(mname);
+
+ ConversationInteraction mobj1=new ConversationInteraction();
+ mobj1.setToRole(role);
+ conv.getBlock().getContents().add(mobj1);
+
+ MessageSignature msig1=new MessageSignature();
+ mobj1.setMessageSignature(msig1);
+
+ TypeReference ref1=new TypeReference();
+ ref1.setNamespace("ns");
+ ref1.setLocalpart("lp1");
+
+ msig1.getTypes().add(ref1);
+
+ if (rule.insert(context, model, mobj1, null) == false) {
+ fail("Failed to insert 1");
+ }
+
+ // Once first interaction associated with service it
+ // will become session based
+ service.setSessionBased(true);
+
+ TestESBAction act2=new TestESBAction();
+ ((ESBService)context.getParent()).addAction(act2, -1);
+
+ // Check actions
+ if (service.getActions().size() != 2) {
+ fail("Expecting 2 actions: "+service.getActions().size());
+ }
+
+ if (service.getActions().get(0) != act1) {
+ fail("Action 1 was not test ESB action: "+service.getActions().get(0));
+ }
+
+ if ((service.getActions().get(1) instanceof ScheduleStateAction) == false) {
+ fail("Action 2 was not ScheduleStateAction: "+service.getActions().get(1));
+ }
+
+ if (model.getServices().size() != 2) {
+ fail("Two services expected: "+model.getServices().size());
+ }
+
+ ESBService newService=null;
+ java.util.Iterator<ESBService> iter=model.getServices().iterator();
+ while (newService == null && iter.hasNext()) {
+ ESBService s=iter.next();
+
+ if (s != service) {
+ newService = s;
+ }
+ }
+
+ if (newService == null) {
+ fail("Other service not found");
+ }
+
+ ((TestESBService)newService).setSessionBased(true);
+
+ // Check schedule details
+ ScheduleStateAction schedule=(ScheduleStateAction)
+ service.getActions().get(1);
+
+ if (newService.getCategory().equals(schedule.getPropertyValue(
+ ScheduleStateAction.SERVICE_CATEGORY)) == false) {
+ fail("Schedule service category '"+
+ schedule.getPropertyValue(
+ ScheduleStateAction.SERVICE_CATEGORY)+
+ "' invalid, expecting: "+
+ service.getCategory());
+ }
+
+ if (newService.getName().equals(schedule.getPropertyValue(
+ ScheduleStateAction.SERVICE_NAME)) == false) {
+ fail("Schedule service name '"+
+ schedule.getPropertyValue(
+ ScheduleStateAction.SERVICE_NAME)+
+ "' invalid, expecting: "+
+ service.getName());
+ }
+
+ // Check actions
+ if (newService.getActions().size() != 2) {
+ fail("Expecting 2 actions: "+newService.getActions().size());
+ }
+
+ if ((newService.getActions().get(0) instanceof ReceiveMessageAction) == false) {
+ fail("Action 1 was not ReceiveMessageAction: "+newService.getActions().get(0));
+ }
+
+ if (newService.getActions().get(1) != act2) {
+ fail("Action 2 was not 2nd test ESB action: "+newService.getActions().get(1));
+ }
+
+ ReceiveMessageAction recv=(ReceiveMessageAction)
+ newService.getActions().get(0);
+
+
+ java.util.List<Activity> acts=new java.util.Vector<Activity>();
+
+ DefaultConversionContext convContext=new DefaultConversionContext(role.getName());
+ recv.convert(acts, convContext);
+
+ if (acts.size() != 1) {
+ fail("Expecting 1 activity: "+acts.size());
+ }
+
+ // TODO: Need to pass representation of last interaction
+ if (rule.delete(context, model, acts.get(0)) == false) {
+ fail("Failed to delete receive");
+ }
+
+ // Re-Check actions
+ if (service.getActions().size() != 2) {
+ fail("Expecting 2 actions: "+service.getActions().size());
+ }
+
+ if (service.getActions().get(0) != act1) {
+ fail("Action 1 was not test ESB action: "+service.getActions().get(0));
+ }
+
+ if ((service.getActions().get(1) instanceof ScheduleStateAction) == false) {
+ fail("Action 2 was not ScheduleStateAction: "+service.getActions().get(1));
+ }
+
+ if (model.getServices().size() != 2) {
+ fail("Two services expected: "+model.getServices().size());
+ }
+
+ // TODO: Need to check if new service has been inserted
+ // in the middle of the previously inserted interactions
+
+ // Check actions
+ if (newService.getActions().size() != 1) {
+ fail("Now Expecting 1 action: "+newService.getActions().size());
+ }
+
+ if (newService.getActions().get(0) != act2) {
+ fail("Action 1 was not 2nd test ESB action: "+newService.getActions().get(0));
+ }
+ }
+
+ public void testDeleteMiddleSendBetweenTwoActions() {
+ ConversationInteractionModelChangeRule rule=new ConversationInteractionModelChangeRule();
+
+ TestESBLanguageModel model=new TestESBLanguageModel();
+
+ TestESBService service=(TestESBService)
+ model.createService("testcategory", "testname");
+
+ model.addService(service);
+
+ TestESBAction act1=new TestESBAction();
+ act1.setInitiator(true);
+ act1.setSessionBased(true);
+ service.addAction(act1, -1);
+
+ // Add gateway service
+ TestESBService gwservice=(TestESBService)
+ model.createService("testcategory", "gateway");
+ gwservice.setGateway(true);
+
+ MessageRouterAction mra=new MessageRouterAction(gwservice);
+ gwservice.setGatewayAction(mra);
+
+ model.setGatewayService(gwservice);
+
+
+ TestModelChangeContext context=new TestModelChangeContext();
+ context.setParent(service);
+
+ Role role=new Role();
+ role.setName("role1");
+
+ context.setRole(role);
+
+ Conversation conv=new Conversation();
+ ModelName mname=new ModelName();
+ mname.setLocatedRole(role);
+ conv.setModelName(mname);
+
+ ConversationInteraction mobj1=new ConversationInteraction();
+ mobj1.setFromRole(role);
+ conv.getBlock().getContents().add(mobj1);
+
+ MessageSignature msig1=new MessageSignature();
+ mobj1.setMessageSignature(msig1);
+
+ TypeReference ref1=new TypeReference();
+ ref1.setNamespace("ns");
+ ref1.setLocalpart("lp1");
+
+ msig1.getTypes().add(ref1);
+
+ if (rule.insert(context, model, mobj1, null) == false) {
+ fail("Failed to insert 1");
+ }
+
+ // Once first interaction associated with service it
+ // will become session based
+ service.setSessionBased(true);
+
+ TestESBAction act2=new TestESBAction();
+ ((ESBService)context.getParent()).addAction(act2, -1);
+
+ // Check actions
+ if (service.getActions().size() != 3) {
+ fail("Expecting 2 actions: "+service.getActions().size());
+ }
+
+ if (service.getActions().get(0) != act1) {
+ fail("Action 1 was not test ESB action: "+service.getActions().get(0));
+ }
+
+ if ((service.getActions().get(1) instanceof SendMessageAction) == false) {
+ fail("Action 2 was not SendMessageAction: "+service.getActions().get(1));
+ }
+
+ if (service.getActions().get(2) != act2) {
+ fail("Action 3 was not 2nd test ESB action: "+service.getActions().get(2));
+ }
+
+ if (model.getServices().size() != 1) {
+ fail("One service expected: "+model.getServices().size());
+ }
+
+
+ SendMessageAction send=(SendMessageAction)
+ service.getActions().get(1);
+
+ java.util.List<Activity> acts=new java.util.Vector<Activity>();
+
+ DefaultConversionContext convContext=new DefaultConversionContext(role.getName());
+ send.convert(acts, convContext);
+
+ if (acts.size() != 1) {
+ fail("Expecting 1 activity: "+acts.size());
+ }
+
+ // TODO: Need to pass representation of last interaction
+ if (rule.delete(context, model, acts.get(0)) == false) {
+ fail("Failed to delete send");
+ }
+
+ // Re-Check actions
+ if (service.getActions().size() != 2) {
+ fail("Expecting 2 actions: "+service.getActions().size());
+ }
+
+ if (service.getActions().get(0) != act1) {
+ fail("Action 1 was not test ESB action: "+service.getActions().get(0));
+ }
+
+ if (service.getActions().get(1) != act2) {
+ fail("Action 2 was not 2nd test ESB action: "+service.getActions().get(1));
+ }
+ }
}
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/test/org/jboss/tools/overlord/cdl/jbossesb/model/change/RunModelChangeRuleTest.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/test/org/jboss/tools/overlord/cdl/jbossesb/model/change/RunModelChangeRuleTest.java 2008-09-30 15:53:47 UTC (rev 355)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/test/org/jboss/tools/overlord/cdl/jbossesb/model/change/RunModelChangeRuleTest.java 2008-10-01 12:20:37 UTC (rev 356)
@@ -284,4 +284,188 @@
}
}
+ public void testDeletePerformActionMiddle() {
+ String runName="subconv";
+
+ RunModelChangeRule rule=new RunModelChangeRule();
+
+ TestESBLanguageModel model=new TestESBLanguageModel();
+
+ TestESBService service=(TestESBService)
+ model.createService("testcategory", "testname");
+
+ model.addService(service);
+
+ TestESBAction act1=new TestESBAction();
+ act1.setInitiator(true);
+ act1.setSessionBased(true);
+ service.addAction(act1, -1);
+
+ TestModelChangeContext context=new TestModelChangeContext();
+ context.setParent(service);
+
+ Role role=new Role();
+ role.setName("role1");
+
+ context.setRole(role);
+
+ ConversationModel cm=new ConversationModel();
+
+ Namespace ns=new Namespace();
+ cm.setNamespace(ns);
+ ns.setName("ns");
+
+ Conversation conv=new Conversation();
+ ModelName mname=new ModelName();
+ mname.setLocatedRole(role);
+ conv.setModelName(mname);
+
+ cm.setConversation(conv);
+
+ Conversation subconv=new Conversation();
+ ModelName submname=new ModelName();
+ submname.setName(runName);
+ submname.setLocatedRole(role);
+ subconv.setModelName(mname);
+
+ Run mobj=new Run();
+ mobj.setInlineDefinition(subconv);
+
+ conv.getBlock().getContents().add(mobj);
+
+ if (rule.insert(context, model, mobj, null) == false) {
+ fail("Failed to insert");
+ }
+
+ TestESBAction act2=new TestESBAction();
+ ((ESBService)context.getParent()).addAction(act2, -1);
+
+ // Check actions
+ if (service.getActions().size() != 2) {
+ fail("Expecting 2 action: "+service.getActions().size());
+ }
+
+ if (service.getActions().get(0) != act1) {
+ fail("Expecting test ESB action 1: "+service.getActions().get(0));
+ }
+
+ if ((service.getActions().get(1) instanceof PerformAction) == false) {
+ fail("Action was not PerformAction: "+service.getActions().get(1));
+ }
+
+ if (model.getServices().size() != 2) {
+ fail("Two services expected: "+model.getServices().size());
+ }
+
+ PerformAction action=(PerformAction)service.getActions().get(1);
+
+ ESBService newService=null;
+ java.util.Iterator<ESBService> iter=model.getServices().iterator();
+ while (newService == null && iter.hasNext()) {
+ ESBService s=iter.next();
+
+ if (s != service) {
+ newService = s;
+ }
+ }
+
+ if (newService == null) {
+ fail("Other service not found");
+ }
+
+ // Check details
+ if (ConversationUtil.getServiceCategory(mobj.getDefinition()).equals(action.getPropertyValue(
+ PerformAction.SERVICE_CATEGORY)) == false) {
+ fail("Perform service category '"+
+ action.getPropertyValue(
+ PerformAction.SERVICE_CATEGORY)+
+ "' invalid, expecting: "+
+ ConversationUtil.getServiceCategory(mobj.getDefinition()));
+ }
+
+ if (ConversationUtil.getServiceName(mobj.getDefinition()).equals(action.getPropertyValue(
+ PerformAction.SERVICE_NAME)) == false) {
+ fail("Perform service name '"+
+ action.getPropertyValue(
+ PerformAction.SERVICE_NAME)+
+ "' invalid, expecting: "+
+ ConversationUtil.getServiceName(mobj.getDefinition()));
+ }
+ if (newService.getCategory().equals(action.getPropertyValue(
+ PerformAction.RETURN_SERVICE_CATEGORY)) == false) {
+ fail("Perform return service category '"+
+ action.getPropertyValue(
+ PerformAction.RETURN_SERVICE_CATEGORY)+
+ "' invalid, expecting: "+
+ newService.getCategory());
+ }
+
+ if (newService.getName().equals(action.getPropertyValue(
+ PerformAction.RETURN_SERVICE_NAME)) == false) {
+ fail("Perform return service name '"+
+ action.getPropertyValue(
+ PerformAction.RETURN_SERVICE_NAME)+
+ "' invalid, expecting: "+
+ newService.getName());
+ }
+
+ if (newService.getActions().size() != 1) {
+ fail("Return service should have 1 action: "+newService.getActions().size());
+ }
+
+ if (newService.getActions().get(0) != act2) {
+ fail("Expecting test ESB action 2: "+newService.getActions().get(0));
+ }
+
+ java.util.List<Activity> acts=new java.util.Vector<Activity>();
+
+ DefaultConversionContext convContext=new DefaultConversionContext(role.getName());
+ action.convert(acts, convContext);
+
+ if (acts.size() != 1) {
+ fail("Expecting 1 activity: "+acts.size());
+ }
+
+ // TODO: Need to pass representation of last interaction
+ if (rule.delete(context, model, acts.get(0)) == false) {
+ fail("Failed to delete spawn");
+ }
+
+ if (service.getActions().size() != 2) {
+ fail("Expecting 2 action: "+service.getActions().size());
+ }
+
+ if (service.getActions().get(0) != act1) {
+ fail("Expecting test ESB action 1: "+service.getActions().get(0));
+ }
+
+ if ((service.getActions().get(1) instanceof ScheduleStateAction) == false) {
+ fail("Action was not ScheduleStateAction: "+service.getActions().get(1));
+ }
+
+ ScheduleStateAction ssa=(ScheduleStateAction)service.getActions().get(1);
+
+ if (ssa.getPropertyValue(PerformAction.SERVICE_CATEGORY).equals(newService.getCategory()) == false) {
+ fail("Category not correct '"+ssa.getPropertyValue(PerformAction.SERVICE_CATEGORY)+
+ "' expecting: "+newService.getCategory());
+ }
+
+ if (ssa.getPropertyValue(PerformAction.SERVICE_NAME).equals(newService.getName()) == false) {
+ fail("Name not correct '"+ssa.getPropertyValue(PerformAction.SERVICE_NAME)+
+ "' expecting: "+newService.getName());
+ }
+
+ if (newService.getActions().size() != 1) {
+ fail("Return service should have 1 action: "+newService.getActions().size());
+ }
+
+ if (newService.getActions().get(0) != act2) {
+ fail("Expecting test ESB action 2: "+newService.getActions().get(0));
+ }
+
+ if (model.getServices().size() != 2) {
+ fail("Two services expected: "+model.getServices().size());
+ }
+
+ }
}
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/test/org/jboss/tools/overlord/cdl/jbossesb/model/change/SpawnModelChangeRuleTest.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/test/org/jboss/tools/overlord/cdl/jbossesb/model/change/SpawnModelChangeRuleTest.java 2008-09-30 15:53:47 UTC (rev 355)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/test/org/jboss/tools/overlord/cdl/jbossesb/model/change/SpawnModelChangeRuleTest.java 2008-10-01 12:20:37 UTC (rev 356)
@@ -217,4 +217,129 @@
ConversationUtil.getServiceName(mobj.getDefinition()));
}
}
+
+ public void testDeletePerformActionMiddle() {
+ String runName="subconv";
+
+ SpawnModelChangeRule rule=new SpawnModelChangeRule();
+
+ TestESBLanguageModel model=new TestESBLanguageModel();
+
+ TestESBService service=(TestESBService)
+ model.createService("testcategory", "testname");
+
+ model.addService(service);
+
+ TestESBAction act1=new TestESBAction();
+ act1.setInitiator(true);
+ act1.setSessionBased(true);
+ service.addAction(act1, -1);
+
+ TestModelChangeContext context=new TestModelChangeContext();
+ context.setParent(service);
+
+ Role role=new Role();
+ role.setName("role1");
+
+ context.setRole(role);
+
+ ConversationModel cm=new ConversationModel();
+
+ Namespace ns=new Namespace();
+ cm.setNamespace(ns);
+ ns.setName("ns");
+
+ Conversation conv=new Conversation();
+ ModelName mname=new ModelName();
+ mname.setLocatedRole(role);
+ conv.setModelName(mname);
+
+ cm.setConversation(conv);
+
+ Conversation subconv=new Conversation();
+ ModelName submname=new ModelName();
+ submname.setName(runName);
+ submname.setLocatedRole(role);
+ subconv.setModelName(mname);
+
+ Spawn mobj=new Spawn();
+ mobj.setInlineDefinition(subconv);
+
+ conv.getBlock().getContents().add(mobj);
+
+ if (rule.insert(context, model, mobj, null) == false) {
+ fail("Failed to insert");
+ }
+
+ TestESBAction act2=new TestESBAction();
+ service.addAction(act2, -1);
+
+ // Check actions
+ if (service.getActions().size() != 3) {
+ fail("Expecting 3 action: "+service.getActions().size());
+ }
+
+ if (service.getActions().get(0) != act1) {
+ fail("Expecting test ESB action 1: "+service.getActions().get(0));
+ }
+
+ if ((service.getActions().get(1) instanceof PerformAction) == false) {
+ fail("Action was not PerformAction: "+service.getActions().get(1));
+ }
+
+ if (service.getActions().get(2) != act2) {
+ fail("Expecting test ESB action 2: "+service.getActions().get(2));
+ }
+
+ if (model.getServices().size() != 1) {
+ fail("One services expected: "+model.getServices().size());
+ }
+
+ PerformAction action=(PerformAction)service.getActions().get(1);
+
+ // Check details
+ if (ConversationUtil.getServiceCategory(mobj.getDefinition()).equals(action.getPropertyValue(
+ PerformAction.SERVICE_CATEGORY)) == false) {
+ fail("Perform service category '"+
+ action.getPropertyValue(
+ PerformAction.SERVICE_CATEGORY)+
+ "' invalid, expecting: "+
+ ConversationUtil.getServiceCategory(mobj.getDefinition()));
+ }
+
+ if (ConversationUtil.getServiceName(mobj.getDefinition()).equals(action.getPropertyValue(
+ PerformAction.SERVICE_NAME)) == false) {
+ fail("Perform service name '"+
+ action.getPropertyValue(
+ PerformAction.SERVICE_NAME)+
+ "' invalid, expecting: "+
+ ConversationUtil.getServiceName(mobj.getDefinition()));
+ }
+
+ java.util.List<Activity> acts=new java.util.Vector<Activity>();
+
+ DefaultConversionContext convContext=new DefaultConversionContext(role.getName());
+ action.convert(acts, convContext);
+
+ if (acts.size() != 1) {
+ fail("Expecting 1 activity: "+acts.size());
+ }
+
+ // TODO: Need to pass representation of last interaction
+ if (rule.delete(context, model, acts.get(0)) == false) {
+ fail("Failed to delete spawn");
+ }
+
+ if (service.getActions().size() != 2) {
+ fail("Expecting 2 action: "+service.getActions().size());
+ }
+
+ if (service.getActions().get(0) != act1) {
+ fail("Expecting test ESB action 1: "+service.getActions().get(0));
+ }
+
+ if (service.getActions().get(1) != act2) {
+ fail("Expecting test ESB action 2: "+service.getActions().get(1));
+ }
+ }
}
15 years, 7 months