[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