[overlord-commits] Overlord SVN: r94 - in cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb: src and 2 other directories.

overlord-commits at lists.jboss.org overlord-commits at lists.jboss.org
Tue Jul 1 07:15:18 EDT 2008


Author: objectiser
Date: 2008-07-01 07:15:18 -0400 (Tue, 01 Jul 2008)
New Revision: 94

Added:
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/
Modified:
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/.classpath
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ESBAction.java
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ESBLink.java
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ESBService.java
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/Messages.properties
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/CreateSessionAction.java
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/GetVariableAction.java
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/IfAction.java
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/MessageRouterAction.java
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/Messages.properties
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/ParallelAction.java
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/PerformAction.java
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/ReceiveMessageAction.java
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/RetrieveSessionAction.java
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/ScheduleStateAction.java
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/SendMessageAction.java
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/SetVariableAction.java
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/SwitchAction.java
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/WhenAction.java
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/WhileAction.java
Log:
Implemented basic validation of ESB actions.

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/.classpath
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/.classpath	2008-07-01 10:15:42 UTC (rev 93)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/.classpath	2008-07-01 11:15:18 UTC (rev 94)
@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
 	<classpathentry kind="src" path="src/java"/>
+	<classpathentry kind="src" path="src/test"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="output" path="bin"/>

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ESBAction.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ESBAction.java	2008-07-01 10:15:42 UTC (rev 93)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ESBAction.java	2008-07-01 11:15:18 UTC (rev 94)
@@ -109,6 +109,18 @@
 	 */
 	public void validate(ModelListener l) {
 		
+		String[] mandatory=getMandatoryProperties();
+		
+		for (int i=0; i < mandatory.length; i++) {
+			if (getPropertyValue(mandatory[i]) == null) {
+				l.error(this, org.scribble.util.MessageUtil.format(
+						java.util.PropertyResourceBundle.getBundle(
+						"org.jboss.tools.overlord.jbossesb.model.Messages"),
+							"_NOT_SPECIFIED_PROPERTY",
+							new String[]{mandatory[i]}), null);
+			}
+		}
+		
 		String session=getPropertyValue(BUSINESS_OBJECT_TYPE_PROPERTY);
 		
 		if (session != null) {
@@ -121,7 +133,7 @@
 				} catch(ClassNotFoundException cfne) {
 					l.error(this, org.scribble.util.MessageUtil.format(
 							java.util.PropertyResourceBundle.getBundle(
-							"org.jboss.tools.overlord.jbossesb.model.actions.Messages"),
+							"org.jboss.tools.overlord.jbossesb.model.Messages"),
 								"_NOT_FOUND_BUSINESS_OBJECT_TYPE",
 								new String[]{session}), null);
 				}
@@ -136,16 +148,27 @@
 		for (int i=0; i < m_links.size(); i++) {
 			ESBLink link=(ESBLink)m_links.get(i);
 			
-			// Don't report message links, if
-			// service not found, as may be defined in
-			// another file.
-			if (link.getService() == null &&
-					link.isControl()) {
-				l.error(this, org.scribble.util.MessageUtil.format(
+			if (link.getService() == null) {
+				// If target service not found, then report error
+				// unless it is a remote service, so defined in a
+				// different file
+				if (link.isRemote() == false) {
+					l.error(this, org.scribble.util.MessageUtil.format(
 						java.util.PropertyResourceBundle.getBundle(
-						"org.jboss.tools.overlord.jbossesb.model.actions.Messages"),
+						"org.jboss.tools.overlord.jbossesb.model.Messages"),
 							"_NOT_FOUND_SERVICE_DESCRIPTOR",
 							new String[]{link.getCategory(),link.getName()}), null);
+				}
+			} else if (getService().getSessionName() != null &&
+					isPerform() == false &&
+					getService().getSessionName().equals(
+						link.getService().getSessionName()) == false) {
+				
+				l.error(this, org.scribble.util.MessageUtil.format(
+						java.util.PropertyResourceBundle.getBundle(
+						"org.jboss.tools.overlord.jbossesb.model.Messages"),
+							"_MISMATCH_SESSION_CLASS",
+							new String[]{link.getCategory(),link.getName()}), null);
 			}
 		}
 	}
@@ -170,6 +193,25 @@
 	}
 	
 	/**
+	 * This method indicates whether this action performs another
+	 * sub-conversation.
+	 * 
+	 * @return Whether the action is a 'perform'
+	 */
+	public boolean isPerform() {
+		return(false);
+	}
+	
+	/**
+	 * This method returns the mandatory property names.
+	 * 
+	 * @return The mandatory property names
+	 */
+	protected String[] getMandatoryProperties() {
+		return(new String[0]);
+	}
+	
+	/**
 	 * This method returns the action's class name.
 	 * 
 	 * @return The action's class name

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ESBLink.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ESBLink.java	2008-07-01 10:15:42 UTC (rev 93)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ESBLink.java	2008-07-01 11:15:18 UTC (rev 94)
@@ -37,10 +37,27 @@
 	 */
 	public ESBLink(String category, String name,
 						ESBService service, boolean control) {
+		this(category, name, service, control, false);
+	}
+
+	/**
+	 * This is the constructor for the link.
+	 * 
+	 * @param category The service category of the target service descriptor
+	 * @param name The service name of the target descriptor
+	 * @param service A reference to the service model containing the action
+	 * 							that links to the service descriptor
+	 * @param control Whether the link is a control link, if not then it
+	 * 					represents a message link (i.e. to another service)
+	 * @param remote Whether the link is to a remote service
+	 */
+	public ESBLink(String category, String name,
+						ESBService service, boolean control, boolean remote) {
 		m_category = category;
 		m_name = name;
 		m_service = service;
 		m_control = control;
+		m_remote = remote;
 	}
 
 	/**
@@ -54,6 +71,16 @@
 	}
 	
 	/**
+	 * This method indicates whether this is a
+	 * link to a remote service.
+	 * 
+	 * @return Whether the link is to a remote service
+	 */
+	public boolean isRemote() {
+		return(m_remote);
+	}
+	
+	/**
 	 * This method returns the service category.
 	 * 
 	 * @return The service category
@@ -86,4 +113,5 @@
 	private String m_name=null;
 	private ESBService m_service=null;
 	private boolean m_control=false;
+	private boolean m_remote=false;
 }

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ESBService.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ESBService.java	2008-07-01 10:15:42 UTC (rev 93)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ESBService.java	2008-07-01 11:15:18 UTC (rev 94)
@@ -404,13 +404,13 @@
 	}
 	
 	/**
-	 * This method returns the session class associated with the service
+	 * This method returns the session name associated with the service
 	 * descriptor.
 	 * 
-	 * @return The session class
+	 * @return The session name
 	 */
-	public Class<?> getSessionClass() {
-		Class<?> ret=null;
+	public String getSessionName() {
+		String ret=null;
 		ESBAction action=null;
 		
 		for (int i=0; action == null && i < m_actions.size(); i++) {
@@ -421,24 +421,36 @@
 			}
 		}
 		
-		if (action != null) {
-			if (action.getActionClass().startsWith(ACTION_PACKAGE)) {
-				String session=action.getPropertyValue(BUSINESS_OBJECT_TYPE_PROPERTY);
+		if (action != null &&
+				action.getActionClass().startsWith(ACTION_PACKAGE)) {
+			ret = action.getPropertyValue(BUSINESS_OBJECT_TYPE_PROPERTY);
+		}
+		
+		return(ret);
+	}
+
+	/**
+	 * This method returns the session class associated with the service
+	 * descriptor.
+	 * 
+	 * @return The session class
+	 */
+	public Class<?> getSessionClass() {
+		Class<?> ret=null;
+		String session=getSessionName();
+		
+		if (session != null) {
+			try {
+				ClassLoader cl=getProjectLoader();
 				
-				if (session != null) {
-					try {
-						ClassLoader cl=getProjectLoader();
-						
-						ret = Class.forName(session, true, cl);
-						
-					} catch(Exception e) {
-						logger.log(java.util.logging.Level.SEVERE,
-								"Failed to get session class '"+session+"'", e);
-					}
-				}
+				ret = Class.forName(session, true, cl);
+				
+			} catch(Exception e) {
+				logger.log(java.util.logging.Level.SEVERE,
+						"Failed to get session class '"+session+"'", e);
 			}
 		}
-		
+
 		return(ret);
 	}
 

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/Messages.properties
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/Messages.properties	2008-07-01 10:15:42 UTC (rev 93)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/Messages.properties	2008-07-01 11:15:18 UTC (rev 94)
@@ -16,4 +16,8 @@
 #  * MA  02110-1301, USA.
 #  */
 
+_MISMATCH_SESSION_CLASS=Session class mismatch with service descriptor for category '{0}' and name '{1}'
+_NOT_FOUND_BUSINESS_OBJECT_TYPE=Business object type '{0}' could not be found
+_NOT_FOUND_SERVICE_DESCRIPTOR=Service descriptor for category '{0}' and name '{1}' not found
+_NOT_SPECIFIED_PROPERTY=Property '{0}' must be specified
 _NOT_SPECIFIED_SESSION_CLASS=First conversation action must specify a valid session class

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/CreateSessionAction.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/CreateSessionAction.java	2008-07-01 10:15:42 UTC (rev 93)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/CreateSessionAction.java	2008-07-01 11:15:18 UTC (rev 94)
@@ -28,7 +28,44 @@
  */
 public class CreateSessionAction extends ESBAction {
 
+	private static final String CONVERSATION_TYPE = "conversationType";
+
 	/**
+	 * This method validates the ESB action and reports warnings or
+	 * errors to the supplied model listener.
+	 * 
+	 * @param l The model listener
+	 */
+	@Override
+	public void validate(ModelListener l) {
+		super.validate(l);
+		
+		// Action must be first conversation based action in
+		// the service
+		if (getService() != null && getService().getActions().size() > 0) {
+			ESBAction act=getService().getActions().get(0);
+			
+			if (act != this) {
+				l.error(this, org.scribble.util.MessageUtil.format(
+						java.util.PropertyResourceBundle.getBundle(
+						"org.jboss.tools.overlord.jbossesb.model.actions.Messages"),
+							"_MUST_BE_FIRST_ACTION",
+							new String[]{"CreateSession"}), null);
+			}
+		}
+		
+		// If service is root, then need to defined conversation type
+		if (getService().isRoot() &&
+				getPropertyValue(CONVERSATION_TYPE) == null) {
+			l.error(this, org.scribble.util.MessageUtil.format(
+					java.util.PropertyResourceBundle.getBundle(
+					"org.jboss.tools.overlord.jbossesb.model.actions.Messages"),
+						"_NOT_SPECIFIED_CONVERSATION_TYPE",
+						new String[]{}), null);
+		}
+	}
+		
+	/**
 	 * This method converts the ESB action into an equivalent
 	 * behavioural description for conformance checking.
 	 * 
@@ -40,5 +77,4 @@
 	public void convert(java.util.List<Activity> activities,
 			ConversionContext context) {
 	}
-	
 }

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/GetVariableAction.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/GetVariableAction.java	2008-07-01 10:15:42 UTC (rev 93)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/GetVariableAction.java	2008-07-01 11:15:18 UTC (rev 94)
@@ -33,6 +33,16 @@
 	private static final String VARIABLE = "variable";
 
 	/**
+	 * This method returns the mandatory property names.
+	 * 
+	 * @return The mandatory property names
+	 */
+	@Override
+	protected String[] getMandatoryProperties() {
+		return(new String[]{VARIABLE});
+	}	
+
+	/**
 	 * This method validates the ESB action and reports warnings or
 	 * errors to the supplied model listener.
 	 * 

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/IfAction.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/IfAction.java	2008-07-01 10:15:42 UTC (rev 93)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/IfAction.java	2008-07-01 11:15:18 UTC (rev 94)
@@ -70,6 +70,16 @@
 	}
 	
 	/**
+	 * This method returns the mandatory property names.
+	 * 
+	 * @return The mandatory property names
+	 */
+	@Override
+	protected String[] getMandatoryProperties() {
+		return(new String[]{PATHS});
+	}	
+
+	/**
 	 * This method validates the ESB action and reports warnings or
 	 * errors to the supplied model listener.
 	 * 

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/MessageRouterAction.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/MessageRouterAction.java	2008-07-01 10:15:42 UTC (rev 93)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/MessageRouterAction.java	2008-07-01 11:15:18 UTC (rev 94)
@@ -93,6 +93,16 @@
 	}
 	
 	/**
+	 * This method returns the mandatory property names.
+	 * 
+	 * @return The mandatory property names
+	 */
+	@Override
+	protected String[] getMandatoryProperties() {
+		return(new String[]{PATHS});
+	}	
+	
+	/**
 	 * This method validates the ESB action and reports warnings or
 	 * errors to the supplied model listener.
 	 * 

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/Messages.properties
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/Messages.properties	2008-07-01 10:15:42 UTC (rev 93)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/Messages.properties	2008-07-01 11:15:18 UTC (rev 94)
@@ -19,9 +19,9 @@
 _CANNOT_INITIATE_NON_ROOT=Cannot 'initiate' non-root service descriptor for category '{0}' and name '{1}'
 _CANNOT_SESSION_BASED_ACTIONS_WITH_ROUTER=Cannot define MessageRouterAction with session based actions in service descriptor
 _MUST_INITIATE_ROOT=Must 'initiate' root service descriptor for category '{0}' and name '{1}'
-_NOT_FOUND_BUSINESS_OBJECT_TYPE=Business object type '{0}' could not be found
 _NOT_FOUND_VARIABLE=Variable '{0}' could not be found on session type '{1}'
 _NOT_FOUND_PERFORM_CREATE_SESSION=Perform action can only invoke a service descriptor that starts with a CreateSessionAction
-_NOT_FOUND_SERVICE_DESCRIPTOR=Service descriptor for category '{0}' and name '{1}' not found
+_NOT_SPECIFIED_CONVERSATION_TYPE=Conversation type must be specified on root service descriptor
+_NOT_SPECIFIED_REQ_RESP_EPR=Send does not contain request service category/name or response client EPR
 _NOT_SPECIFIED_VARIABLE=Variable name has not been specified
 _MUST_BE_FIRST_ACTION='{0}' action must be first in the service descriptor
\ No newline at end of file

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/ParallelAction.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/ParallelAction.java	2008-07-01 10:15:42 UTC (rev 93)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/ParallelAction.java	2008-07-01 11:15:18 UTC (rev 94)
@@ -82,6 +82,16 @@
 	}
 
 	/**
+	 * This method returns the mandatory property names.
+	 * 
+	 * @return The mandatory property names
+	 */
+	@Override
+	protected String[] getMandatoryProperties() {
+		return(new String[]{PATHS});
+	}	
+
+	/**
 	 * This method converts the ESB action into an equivalent
 	 * behavioural description for conformance checking.
 	 * 

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/PerformAction.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/PerformAction.java	2008-07-01 10:15:42 UTC (rev 93)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/PerformAction.java	2008-07-01 11:15:18 UTC (rev 94)
@@ -62,6 +62,27 @@
 	}
 	
 	/**
+	 * This method indicates whether this action performs another
+	 * sub-conversation.
+	 * 
+	 * @return Whether the action is a 'perform'
+	 */
+	@Override
+	public boolean isPerform() {
+		return(true);
+	}
+
+	/**
+	 * This method returns the mandatory property names.
+	 * 
+	 * @return The mandatory property names
+	 */
+	@Override
+	protected String[] getMandatoryProperties() {
+		return(new String[]{SERVICE_CATEGORY, SERVICE_NAME});
+	}	
+
+	/**
 	 * This method validates the ESB action and reports warnings or
 	 * errors to the supplied model listener.
 	 * 

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/ReceiveMessageAction.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/ReceiveMessageAction.java	2008-07-01 10:15:42 UTC (rev 93)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/ReceiveMessageAction.java	2008-07-01 11:15:18 UTC (rev 94)
@@ -29,10 +29,21 @@
  */
 public class ReceiveMessageAction extends ESBAction {
 
+	private static final String IDENTITIES = "identities";
 	private static final String MESSAGE_TYPE = "messageType";
 	private static final String OPERATION = "operation";
 
 	/**
+	 * This method returns the mandatory property names.
+	 * 
+	 * @return The mandatory property names
+	 */
+	@Override
+	protected String[] getMandatoryProperties() {
+		return(new String[]{MESSAGE_TYPE,IDENTITIES});
+	}	
+
+	/**
 	 * This method converts the ESB action into an equivalent
 	 * behavioural description for conformance checking.
 	 * 

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/RetrieveSessionAction.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/RetrieveSessionAction.java	2008-07-01 10:15:42 UTC (rev 93)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/RetrieveSessionAction.java	2008-07-01 11:15:18 UTC (rev 94)
@@ -28,7 +28,44 @@
  */
 public class RetrieveSessionAction extends ESBAction {
 
+	private static final String IDENTITIES = "identities";
+
 	/**
+	 * This method returns the mandatory property names.
+	 * 
+	 * @return The mandatory property names
+	 */
+	@Override
+	protected String[] getMandatoryProperties() {
+		return(new String[]{IDENTITIES});
+	}	
+
+	/**
+	 * This method validates the ESB action and reports warnings or
+	 * errors to the supplied model listener.
+	 * 
+	 * @param l The model listener
+	 */
+	@Override
+	public void validate(ModelListener l) {
+		super.validate(l);
+		
+		// Action must be first conversation based action in
+		// the service
+		if (getService() != null && getService().getActions().size() > 0) {
+			ESBAction act=getService().getActions().get(0);
+			
+			if (act != this) {
+				l.error(this, org.scribble.util.MessageUtil.format(
+						java.util.PropertyResourceBundle.getBundle(
+						"org.jboss.tools.overlord.jbossesb.model.actions.Messages"),
+							"_MUST_BE_FIRST_ACTION",
+							new String[]{"RetrieveSession"}), null);
+			}
+		}
+	}
+		
+	/**
 	 * This method converts the ESB action into an equivalent
 	 * behavioural description for conformance checking.
 	 * 

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/ScheduleStateAction.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/ScheduleStateAction.java	2008-07-01 10:15:42 UTC (rev 93)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/ScheduleStateAction.java	2008-07-01 11:15:18 UTC (rev 94)
@@ -53,6 +53,16 @@
 	}
 
 	/**
+	 * This method returns the mandatory property names.
+	 * 
+	 * @return The mandatory property names
+	 */
+	@Override
+	protected String[] getMandatoryProperties() {
+		return(new String[]{SERVICE_CATEGORY, SERVICE_NAME});
+	}	
+
+	/**
 	 * This method converts the ESB action into an equivalent
 	 * behavioural description for conformance checking.
 	 * 

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/SendMessageAction.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/SendMessageAction.java	2008-07-01 10:15:42 UTC (rev 93)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/SendMessageAction.java	2008-07-01 11:15:18 UTC (rev 94)
@@ -31,6 +31,8 @@
  */
 public class SendMessageAction extends ESBAction {
 
+	private static final String IDENTITIES = "identities";
+	private static final String CLIENT_EPR = "clientEPR";
 	private static final String RESPONSE_SERVICE_NAME = "responseServiceName";
 	private static final String RESPONSE_SERVICE_CATEGORY = "responseServiceCategory";
 	private static final String SERVICE_NAME = "serviceName";
@@ -56,7 +58,7 @@
 							serviceCategory, serviceName);
 			
 			getLinks().add(new ESBLink(serviceCategory, serviceName,
-						service, false));
+						service, true, true));
 		}
 		
 		if (responseServiceCategory != null && responseServiceName != null) {
@@ -64,11 +66,52 @@
 					responseServiceCategory, responseServiceName);
 			
 			getLinks().add(new ESBLink(responseServiceCategory,
-					responseServiceName, service, true));
+					responseServiceName, service, false));
 		}
 	}
+	
+	/**
+	 * This method returns the mandatory property names.
+	 * 
+	 * @return The mandatory property names
+	 */
+	@Override
+	protected String[] getMandatoryProperties() {
+		return(new String[]{MESSAGE_TYPE, IDENTITIES});
+	}	
 
 	/**
+	 * This method validates the ESB action and reports warnings or
+	 * errors to the supplied model listener.
+	 * 
+	 * @param l The model listener
+	 */
+	@Override
+	public void validate(ModelListener l) {
+		super.validate(l);
+		
+		// If sending request, then category/name must be specified,
+		// else a response requires the 'client epr'. Validate that
+		// either case is true.
+		if (getPropertyValue(SERVICE_CATEGORY) != null &&
+				getPropertyValue(SERVICE_NAME) != null) {
+			// Sending a request
+			
+		} else if (getPropertyValue(CLIENT_EPR) != null) {
+			// Sending a response
+			
+			// TODO: Validate that the client EPR has been sent on
+			// a preceding received request
+		} else {
+			l.error(this, org.scribble.util.MessageUtil.format(
+					java.util.PropertyResourceBundle.getBundle(
+					"org.jboss.tools.overlord.jbossesb.model.actions.Messages"),
+						"_NOT_SPECIFIED_REQ_RESP_EPR",
+						new String[]{}), null);
+		}
+	}
+	
+	/**
 	 * This method converts the ESB action into an equivalent
 	 * behavioural description for conformance checking.
 	 * 

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/SetVariableAction.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/SetVariableAction.java	2008-07-01 10:15:42 UTC (rev 93)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/SetVariableAction.java	2008-07-01 11:15:18 UTC (rev 94)
@@ -33,6 +33,16 @@
 	private static final String VARIABLE = "variable";
 
 	/**
+	 * This method returns the mandatory property names.
+	 * 
+	 * @return The mandatory property names
+	 */
+	@Override
+	protected String[] getMandatoryProperties() {
+		return(new String[]{VARIABLE});
+	}	
+
+	/**
 	 * This method validates the ESB action and reports warnings or
 	 * errors to the supplied model listener.
 	 * 

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/SwitchAction.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/SwitchAction.java	2008-07-01 10:15:42 UTC (rev 93)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/SwitchAction.java	2008-07-01 11:15:18 UTC (rev 94)
@@ -66,6 +66,16 @@
 	}
 
 	/**
+	 * This method returns the mandatory property names.
+	 * 
+	 * @return The mandatory property names
+	 */
+	@Override
+	protected String[] getMandatoryProperties() {
+		return(new String[]{PATHS});
+	}	
+
+	/**
 	 * This method converts the ESB action into an equivalent
 	 * behavioural description for conformance checking.
 	 * 

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/WhenAction.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/WhenAction.java	2008-07-01 10:15:42 UTC (rev 93)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/WhenAction.java	2008-07-01 11:15:18 UTC (rev 94)
@@ -83,6 +83,16 @@
 	}
 	
 	/**
+	 * This method returns the mandatory property names.
+	 * 
+	 * @return The mandatory property names
+	 */
+	@Override
+	protected String[] getMandatoryProperties() {
+		return(new String[]{PATHS});
+	}	
+
+	/**
 	 * This method validates the ESB action and reports warnings or
 	 * errors to the supplied model listener.
 	 * 

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/WhileAction.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/WhileAction.java	2008-07-01 10:15:42 UTC (rev 93)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/WhileAction.java	2008-07-01 11:15:18 UTC (rev 94)
@@ -95,6 +95,16 @@
 	}
 	
 	/**
+	 * This method returns the mandatory property names.
+	 * 
+	 * @return The mandatory property names
+	 */
+	@Override
+	protected String[] getMandatoryProperties() {
+		return(new String[]{PATHS});
+	}	
+
+	/**
 	 * This method validates the ESB action and reports warnings or
 	 * errors to the supplied model listener.
 	 * 




More information about the overlord-commits mailing list