JBoss JBPM SVN: r1811 - in jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket: server and 1 other directory.
by do-not-reply@jboss.org
Author: thomas.diesler(a)jboss.com
Date: 2008-08-03 20:31:52 -0400 (Sun, 03 Aug 2008)
New Revision: 1811
Modified:
jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AirticketProcessBuilder.java
jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AvailabilityHandler.java
jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/ValidationHandler.java
jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/server/AirticketServiceImpl.java
Log:
Sync with BPMN names
Modified: jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AirticketProcessBuilder.java
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AirticketProcessBuilder.java 2008-08-02 23:47:24 UTC (rev 1810)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AirticketProcessBuilder.java 2008-08-04 00:31:52 UTC (rev 1811)
@@ -42,6 +42,47 @@
*/
public class AirticketProcessBuilder
{
+ public static final String PROCESS_NAME = "Airticket";
+
+ public static final String EVENT_END = "End";
+
+ public static final String GATEWAY_IS_ACCEPTED = "IsAccepted";
+ public static final String GATEWAY_IS_AVAILABLE = "IsAvailable";
+ public static final String GATEWAY_IS_VALID = "IsValid";
+ public static final String GATEWAY_SPLIT = "Split";
+ public static final String GATEWAY_SYNC_JOIN = "SyncJoin";
+
+ public static final String TASK_BOOKING = "Booking";
+ public static final String TASK_CHECK_AVAILABLE = "CheckAvailable";
+ public static final String TASK_CREDIT_CARD = "CreditCard";
+ public static final String TASK_RECEIVE_ORDER = "ReceiveOrder";
+ public static final String TASK_RECEIVE_REQUEST = "ReceiveReq";
+ public static final String TASK_SEND_CONFIRM = "SendConfirm";
+ public static final String TASK_SEND_NOT_AVAILABLE = "SendNotAvailable";
+ public static final String TASK_SEND_OFFER = "SendOffer";
+ public static final String TASK_SEND_INVALID = "SendInvalid";
+ public static final String TASK_VALIDATE = "Validate";
+
+ public static final String MESSAGE_CONFIRM = "ConfirmMsg";
+ public static final String MESSAGE_ACCEPT_OFFER = "AcceptOfferMsg";
+ public static final String MESSAGE_OFFER = "OfferMsg";
+ public static final String MESSAGE_NOT_AVAILABLE = "NotAvailableMsg";
+ public static final String MESSAGE_INVALID_DATA = "InvalidDataMsg";
+ public static final String MESSAGE_REQ_DATA = "ReqDataMsg";
+
+ public static final String PROPERTY_NAME = "Name";
+ public static final String PROPERTY_FROM = "From";
+ public static final String PROPERTY_TO = "To";
+ public static final String PROPERTY_DATE = "Date";
+ public static final String PROPERTY_SEATS = "Seats";
+ public static final String PROPERTY_CREDIT_CARD = "CreditCard";
+ public static final String PROPERTY_EXPIRE = "Expire";
+ public static final String PROPERTY_PRICE = "Price";
+
+ public static final String PROPERTY_IS_VALID_REQUEST = "isReqDataValid";
+ public static final String PROPERTY_IS_AVAILABLE = "isAvailable";
+ public static final String PROPERTY_IS_OFFER_ACCEPTED = "isOfferAccepted";
+
private ObjectName listenerID;
public AirticketProcessBuilder(ObjectName listenerID)
@@ -54,163 +95,163 @@
// Create a Process through the ProcessBuilder
ProcessBuilderFactory procFactory = ProcessBuilderFactory.newInstance();
ProcessBuilder procBuilder = procFactory.newProcessBuilder();
- procBuilder.addProcess("Airticket");
+ procBuilder.addProcess(PROCESS_NAME);
// Add Start Event
- procBuilder.addStartEvent().addSequenceFlow("ReceiveReq");
+ procBuilder.addStartEvent().addSequenceFlow(TASK_RECEIVE_REQUEST);
// Build the ReceiveReqTask
- TaskBuilder taskBuilder = procBuilder.addTask("ReceiveReq", TaskType.Receive);
- taskBuilder.addMessageRef("ReqDataMsg").
- addSequenceFlow("Validate");
+ TaskBuilder taskBuilder = procBuilder.addTask(TASK_RECEIVE_REQUEST, TaskType.Receive);
+ taskBuilder.addMessageRef(MESSAGE_REQ_DATA).
+ addSequenceFlow(TASK_VALIDATE);
// Build the ValidateTask
- taskBuilder = procBuilder.addTask("Validate");
+ taskBuilder = procBuilder.addTask(TASK_VALIDATE);
taskBuilder.addExecutionHandler(ValidationHandler.class).
addInputSet().
- addPropertyInput("Name", null).
- addPropertyInput("From", null).
- addPropertyInput("To", null).
- addPropertyInput("Date", null).
- addPropertyInput("Seats", null).
+ addPropertyInput(PROPERTY_NAME, null).
+ addPropertyInput(PROPERTY_FROM, null).
+ addPropertyInput(PROPERTY_TO, null).
+ addPropertyInput(PROPERTY_DATE, null).
+ addPropertyInput(PROPERTY_SEATS, null).
addOutputSet().
- addPropertyOutput("isReqDataValid", null).
- addSequenceFlow("IsValid");
+ addPropertyOutput(PROPERTY_IS_VALID_REQUEST, null).
+ addSequenceFlow(GATEWAY_IS_VALID);
// Build the ValidateGateway
- GatewayBuilder gatewayBuilder = procBuilder.addGateway("IsValid", GatewayType.Exclusive);
- gatewayBuilder.addConditionalGate("CheckAvailable", ExpressionLanguage.MVEL, "isReqDataValid == true").
- addDefaultGate("SendInvalid");
+ GatewayBuilder gatewayBuilder = procBuilder.addGateway(GATEWAY_IS_VALID, GatewayType.Exclusive);
+ gatewayBuilder.addConditionalGate(TASK_CHECK_AVAILABLE, ExpressionLanguage.MVEL, "isReqDataValid == true").
+ addDefaultGate(TASK_SEND_INVALID);
// Build the CheckAvailabilityTask
- taskBuilder = procBuilder.addTask("CheckAvailable");
+ taskBuilder = procBuilder.addTask(TASK_CHECK_AVAILABLE);
taskBuilder.addExecutionHandler(AvailabilityHandler.class).
addInputSet().
- addPropertyInput("From", null).
- addPropertyInput("To", null).
- addPropertyInput("Date", null).
- addPropertyInput("Seats", null).
+ addPropertyInput(PROPERTY_FROM, null).
+ addPropertyInput(PROPERTY_TO, null).
+ addPropertyInput(PROPERTY_DATE, null).
+ addPropertyInput(PROPERTY_SEATS, null).
addOutputSet().
- addPropertyOutput("isAvailable", null).
- addPropertyOutput("Price", null).
- addSequenceFlow("IsAvailable");
+ addPropertyOutput(PROPERTY_IS_AVAILABLE, null).
+ addPropertyOutput(PROPERTY_PRICE, null).
+ addSequenceFlow(GATEWAY_IS_AVAILABLE);
// Build the SendInvalidTask
- taskBuilder = procBuilder.addTask("SendInvalid", TaskType.Send);
- taskBuilder.addMessageRef("InvalidDataMsg").
- addSequenceFlow("ReceiveReq");
+ taskBuilder = procBuilder.addTask(TASK_SEND_INVALID, TaskType.Send);
+ taskBuilder.addMessageRef(MESSAGE_INVALID_DATA).
+ addSequenceFlow(TASK_RECEIVE_REQUEST);
// Build the AvailabilityGateway
- gatewayBuilder = procBuilder.addGateway("IsAvailable", GatewayType.Exclusive);
- gatewayBuilder.addConditionalGate("SendOffer", ExpressionLanguage.MVEL, "isAvailable == true").
- addDefaultGate("SendNotAvailable");
+ gatewayBuilder = procBuilder.addGateway(GATEWAY_IS_AVAILABLE, GatewayType.Exclusive);
+ gatewayBuilder.addConditionalGate(TASK_SEND_OFFER, ExpressionLanguage.MVEL, "isAvailable == true").
+ addDefaultGate(TASK_SEND_NOT_AVAILABLE);
// Build the SendOfferTask
- taskBuilder = procBuilder.addTask("SendOffer", TaskType.Send);
- taskBuilder.addMessageRef("OfferMsg").
- addSequenceFlow("ReceiveOrder");
+ taskBuilder = procBuilder.addTask(TASK_SEND_OFFER, TaskType.Send);
+ taskBuilder.addMessageRef(MESSAGE_OFFER).
+ addSequenceFlow(TASK_RECEIVE_ORDER);
// Build the SendNotAvailableTask
- taskBuilder = procBuilder.addTask("SendNotAvailable", TaskType.Send);
- taskBuilder.addMessageRef("NotAvailableMsg").
- addSequenceFlow("ReceiveReq");
+ taskBuilder = procBuilder.addTask(TASK_SEND_NOT_AVAILABLE, TaskType.Send);
+ taskBuilder.addMessageRef(MESSAGE_NOT_AVAILABLE).
+ addSequenceFlow(TASK_RECEIVE_REQUEST);
// Build the ReceiveReqTask
- taskBuilder = procBuilder.addTask("ReceiveOrder", TaskType.Receive);
- taskBuilder.addMessageRef("AcceptOfferMsg").
- addSequenceFlow("IsAccepted");
+ taskBuilder = procBuilder.addTask(TASK_RECEIVE_ORDER, TaskType.Receive);
+ taskBuilder.addMessageRef(MESSAGE_ACCEPT_OFFER).
+ addSequenceFlow(GATEWAY_IS_ACCEPTED);
// Build the AcceptOfferGateway
- gatewayBuilder = procBuilder.addGateway("IsAccepted", GatewayType.Exclusive);
- gatewayBuilder.addConditionalGate("Split", ExpressionLanguage.MVEL, "isOfferAccepted == true").
- addDefaultGate("ReceiveReq");
+ gatewayBuilder = procBuilder.addGateway(GATEWAY_IS_ACCEPTED, GatewayType.Exclusive);
+ gatewayBuilder.addConditionalGate(GATEWAY_SPLIT, ExpressionLanguage.MVEL, "isOfferAccepted == true").
+ addDefaultGate(TASK_RECEIVE_REQUEST);
// Build the AcceptOfferGateway
- gatewayBuilder = procBuilder.addGateway("Split", GatewayType.Parallel);
- gatewayBuilder.addGate("CreditCard").
- addGate("Booking");
+ gatewayBuilder = procBuilder.addGateway(GATEWAY_SPLIT, GatewayType.Parallel);
+ gatewayBuilder.addGate(TASK_CREDIT_CARD).
+ addGate(TASK_BOOKING);
// Build the CreditCardTask
- taskBuilder = procBuilder.addTask("CreditCard");
+ taskBuilder = procBuilder.addTask(TASK_CREDIT_CARD);
taskBuilder.addInputSet().
- addPropertyInput("CreditCard", null).
- addPropertyInput("Expire", null).
- addPropertyInput("Price", null).
- addSequenceFlow("SyncJoin");
+ addPropertyInput(PROPERTY_CREDIT_CARD, null).
+ addPropertyInput(PROPERTY_EXPIRE, null).
+ addPropertyInput(PROPERTY_PRICE, null).
+ addSequenceFlow(GATEWAY_SYNC_JOIN);
// Build the BookingTask
- taskBuilder = procBuilder.addTask("Booking");
+ taskBuilder = procBuilder.addTask(TASK_BOOKING);
taskBuilder.addInputSet().
- addPropertyInput("Name", null).
- addPropertyInput("From", null).
- addPropertyInput("To", null).
- addPropertyInput("Date", null).
- addPropertyInput("Seats", null).
- addSequenceFlow("SyncJoin");
+ addPropertyInput(PROPERTY_NAME, null).
+ addPropertyInput(PROPERTY_FROM, null).
+ addPropertyInput(PROPERTY_TO, null).
+ addPropertyInput(PROPERTY_DATE, null).
+ addPropertyInput(PROPERTY_SEATS, null).
+ addSequenceFlow(GATEWAY_SYNC_JOIN);
// Build the SynchronizedJoinGateway
- gatewayBuilder = procBuilder.addGateway("SyncJoin", GatewayType.Parallel);
- gatewayBuilder.addGate("SendConfirm");
+ gatewayBuilder = procBuilder.addGateway(GATEWAY_SYNC_JOIN, GatewayType.Parallel);
+ gatewayBuilder.addGate(TASK_SEND_CONFIRM);
// Build the SendConfirmTask
- taskBuilder = procBuilder.addTask("SendConfirm", TaskType.Send);
- taskBuilder.addMessageRef("ConfirmMsg").
- addSequenceFlow("End");
+ taskBuilder = procBuilder.addTask(TASK_SEND_CONFIRM, TaskType.Send);
+ taskBuilder.addMessageRef(MESSAGE_CONFIRM).
+ addSequenceFlow(EVENT_END);
// Add the EndEvent
- procBuilder.addEndEvent("End");
+ procBuilder.addEndEvent(EVENT_END);
// Add ReqDataMsg
- procBuilder.addMessage("ReqDataMsg").
- addProperty("Name", null, true).
- addProperty("From", null, true).
- addProperty("To", null, true).
- addProperty("Date", null, true).
- addProperty("Seats", null, true);
+ procBuilder.addMessage(MESSAGE_REQ_DATA).
+ addProperty(PROPERTY_NAME, null, true).
+ addProperty(PROPERTY_FROM, null, true).
+ addProperty(PROPERTY_TO, null, true).
+ addProperty(PROPERTY_DATE, null, true).
+ addProperty(PROPERTY_SEATS, null, true);
// Add InvalidDataMsg
- procBuilder.addMessage("InvalidDataMsg").
+ procBuilder.addMessage(MESSAGE_INVALID_DATA).
addToRef(listenerID).
- addProperty("Name", null, true).
- addProperty("From", null, true).
- addProperty("To", null, true).
- addProperty("Date", null, true).
- addProperty("Seats", null, true);
+ addProperty(PROPERTY_NAME, null, true).
+ addProperty(PROPERTY_FROM, null, true).
+ addProperty(PROPERTY_TO, null, true).
+ addProperty(PROPERTY_DATE, null, true).
+ addProperty(PROPERTY_SEATS, null, true);
// Add NotAvailableMsg
- procBuilder.addMessage("NotAvailableMsg").
+ procBuilder.addMessage(MESSAGE_NOT_AVAILABLE).
addToRef(listenerID).
- addProperty("Name", null, true).
- addProperty("From", null, true).
- addProperty("To", null, true).
- addProperty("Date", null, true).
- addProperty("Seats", null, true);
+ addProperty(PROPERTY_NAME, null, true).
+ addProperty(PROPERTY_FROM, null, true).
+ addProperty(PROPERTY_TO, null, true).
+ addProperty(PROPERTY_DATE, null, true).
+ addProperty(PROPERTY_SEATS, null, true);
// Add OfferMsg
- procBuilder.addMessage("OfferMsg").
+ procBuilder.addMessage(MESSAGE_OFFER).
addToRef(listenerID).
- addProperty("Name", null, true).
- addProperty("From", null, true).
- addProperty("To", null, true).
- addProperty("Date", null, true).
- addProperty("Seats", null, true).
- addProperty("Price", null, true);
+ addProperty(PROPERTY_NAME, null, true).
+ addProperty(PROPERTY_FROM, null, true).
+ addProperty(PROPERTY_TO, null, true).
+ addProperty(PROPERTY_DATE, null, true).
+ addProperty(PROPERTY_SEATS, null, true).
+ addProperty(PROPERTY_PRICE, null, true);
// Add AcceptOfferMsg
- procBuilder.addMessage("AcceptOfferMsg").
- addProperty("CreditCard", null, true).
- addProperty("Expire", null, true).
- addProperty("isOfferAccepted", null, true);
+ procBuilder.addMessage(MESSAGE_ACCEPT_OFFER).
+ addProperty(TASK_CREDIT_CARD, null, true).
+ addProperty(PROPERTY_EXPIRE, null, true).
+ addProperty(PROPERTY_IS_OFFER_ACCEPTED, null, true);
// Add ConfirmMsg
- procBuilder.addMessage("ConfirmMsg").
+ procBuilder.addMessage(MESSAGE_CONFIRM).
addToRef(listenerID).
- addProperty("Name", null, true).
- addProperty("From", null, true).
- addProperty("To", null, true).
- addProperty("Date", null, true).
- addProperty("Seats", null, true).
- addProperty("Price", null, true);
+ addProperty(PROPERTY_NAME, null, true).
+ addProperty(PROPERTY_FROM, null, true).
+ addProperty(PROPERTY_TO, null, true).
+ addProperty(PROPERTY_DATE, null, true).
+ addProperty(PROPERTY_SEATS, null, true).
+ addProperty(PROPERTY_PRICE, null, true);
// Get the process
Process proc = procBuilder.getProcess(true);
Modified: jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AvailabilityHandler.java
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AvailabilityHandler.java 2008-08-02 23:47:24 UTC (rev 1810)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AvailabilityHandler.java 2008-08-04 00:31:52 UTC (rev 1811)
@@ -42,8 +42,8 @@
public void execute(Token token, InputSet inputSet, OutputSet outputSet)
{
PropertyBuilder builder = PropertyBuilderFactory.newInstance().newPropertyBuilder();
- Integer seats = Integer.valueOf(inputSet.getPropertyValue("Seats"));
- outputSet.addProperty(builder.newProperty("isAvailable", new Boolean(seats < 10).toString()));
- outputSet.addProperty(builder.newProperty("Price", new Integer(seats * 111).toString()));
+ Integer seats = Integer.valueOf(inputSet.getPropertyValue(AirticketProcessBuilder.PROPERTY_SEATS));
+ outputSet.addProperty(builder.newProperty(AirticketProcessBuilder.PROPERTY_IS_AVAILABLE, new Boolean(seats < 10).toString()));
+ outputSet.addProperty(builder.newProperty(AirticketProcessBuilder.PROPERTY_PRICE, new Integer(seats * 111).toString()));
}
}
Modified: jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/ValidationHandler.java
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/ValidationHandler.java 2008-08-02 23:47:24 UTC (rev 1810)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/ValidationHandler.java 2008-08-04 00:31:52 UTC (rev 1811)
@@ -41,11 +41,11 @@
{
public void execute(Token token, InputSet inputSet, OutputSet outputSet)
{
- String name = inputSet.getPropertyValue("Name");
- String from = inputSet.getPropertyValue("From");
- String to = inputSet.getPropertyValue("To");
- String date = inputSet.getPropertyValue("Date");
- String seats = inputSet.getPropertyValue("Seats");
+ String name = inputSet.getPropertyValue(AirticketProcessBuilder.PROPERTY_NAME);
+ String from = inputSet.getPropertyValue(AirticketProcessBuilder.PROPERTY_FROM);
+ String to = inputSet.getPropertyValue(AirticketProcessBuilder.PROPERTY_TO);
+ String date = inputSet.getPropertyValue(AirticketProcessBuilder.PROPERTY_DATE);
+ String seats = inputSet.getPropertyValue(AirticketProcessBuilder.PROPERTY_SEATS);
boolean isValid = name != null && name.length() > 0;
isValid &= from != null && from.length() > 0;
@@ -54,6 +54,6 @@
isValid &= seats != null && seats.length() > 0 && 0 < Integer.valueOf(seats);
PropertyBuilder builder = PropertyBuilderFactory.newInstance().newPropertyBuilder();
- outputSet.addProperty(builder.newProperty("isReqDataValid", "" + isValid));
+ outputSet.addProperty(builder.newProperty(AirticketProcessBuilder.PROPERTY_IS_VALID_REQUEST, "" + isValid));
}
}
Modified: jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/server/AirticketServiceImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/server/AirticketServiceImpl.java 2008-08-02 23:47:24 UTC (rev 1810)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/server/AirticketServiceImpl.java 2008-08-04 00:31:52 UTC (rev 1811)
@@ -74,17 +74,17 @@
if (httpSession.isNew() == false)
{
ProcessManager pm = ProcessManager.locateProcessManager();
- procID = pm.startProcess("Airticket", null);
+ procID = pm.startProcess(AirticketProcessBuilder.PROCESS_NAME, null);
httpSession.setAttribute("procID", procID);
}
Message msg = getRequestMessage((RequestMessage)gwtMsg);
- mm.sendMessage(procID, "ReceiveReqTask", msg);
+ mm.sendMessage(procID, AirticketProcessBuilder.TASK_RECEIVE_REQUEST, msg);
}
else if (gwtMsg instanceof OrderMessage)
{
Message msg = getOrderMessage((OrderMessage)gwtMsg);
- mm.sendMessage(procID, "ReceiveOrderTask", msg);
+ mm.sendMessage(procID, AirticketProcessBuilder.TASK_RECEIVE_ORDER, msg);
}
else
{
@@ -103,46 +103,46 @@
{
Message bpmMsg = messageQueue.remove(0);
String msgName = bpmMsg.getName();
- if (msgName.equals("OfferMsg"))
+ if (msgName.equals(AirticketProcessBuilder.MESSAGE_OFFER))
{
OfferMessage gwtMsg = new OfferMessage();
- gwtMsg.name = bpmMsg.getPropertyValue("Name");
- gwtMsg.from = bpmMsg.getPropertyValue("From");
- gwtMsg.to = bpmMsg.getPropertyValue("To");
- gwtMsg.date = bpmMsg.getPropertyValue("Date");
- gwtMsg.seats = bpmMsg.getPropertyValue("Seats");
- gwtMsg.price = bpmMsg.getPropertyValue("Price");
+ gwtMsg.name = bpmMsg.getPropertyValue(AirticketProcessBuilder.PROPERTY_NAME);
+ gwtMsg.from = bpmMsg.getPropertyValue(AirticketProcessBuilder.PROPERTY_FROM);
+ gwtMsg.to = bpmMsg.getPropertyValue(AirticketProcessBuilder.PROPERTY_TO);
+ gwtMsg.date = bpmMsg.getPropertyValue(AirticketProcessBuilder.PROPERTY_DATE);
+ gwtMsg.seats = bpmMsg.getPropertyValue(AirticketProcessBuilder.PROPERTY_SEATS);
+ gwtMsg.price = bpmMsg.getPropertyValue(AirticketProcessBuilder.PROPERTY_PRICE);
returnMsg = gwtMsg;
}
- else if (msgName.equals("InvalidDataMsg"))
+ else if (msgName.equals(AirticketProcessBuilder.MESSAGE_INVALID_DATA))
{
InvalidDataMessage gwtMsg = new InvalidDataMessage();
- gwtMsg.name = bpmMsg.getPropertyValue("Name");
- gwtMsg.from = bpmMsg.getPropertyValue("From");
- gwtMsg.to = bpmMsg.getPropertyValue("To");
- gwtMsg.date = bpmMsg.getPropertyValue("Date");
- gwtMsg.seats = bpmMsg.getPropertyValue("Seats");
+ gwtMsg.name = bpmMsg.getPropertyValue(AirticketProcessBuilder.PROPERTY_NAME);
+ gwtMsg.from = bpmMsg.getPropertyValue(AirticketProcessBuilder.PROPERTY_FROM);
+ gwtMsg.to = bpmMsg.getPropertyValue(AirticketProcessBuilder.PROPERTY_TO);
+ gwtMsg.date = bpmMsg.getPropertyValue(AirticketProcessBuilder.PROPERTY_DATE);
+ gwtMsg.seats = bpmMsg.getPropertyValue(AirticketProcessBuilder.PROPERTY_SEATS);
returnMsg = gwtMsg;
}
- else if (msgName.equals("NotAvailableMsg"))
+ else if (msgName.equals(AirticketProcessBuilder.MESSAGE_NOT_AVAILABLE))
{
NotAvailableMessage gwtMsg = new NotAvailableMessage();
- gwtMsg.name = bpmMsg.getPropertyValue("Name");
- gwtMsg.from = bpmMsg.getPropertyValue("From");
- gwtMsg.to = bpmMsg.getPropertyValue("To");
- gwtMsg.date = bpmMsg.getPropertyValue("Date");
- gwtMsg.seats = bpmMsg.getPropertyValue("Seats");
+ gwtMsg.name = bpmMsg.getPropertyValue(AirticketProcessBuilder.PROPERTY_NAME);
+ gwtMsg.from = bpmMsg.getPropertyValue(AirticketProcessBuilder.PROPERTY_FROM);
+ gwtMsg.to = bpmMsg.getPropertyValue(AirticketProcessBuilder.PROPERTY_TO);
+ gwtMsg.date = bpmMsg.getPropertyValue(AirticketProcessBuilder.PROPERTY_DATE);
+ gwtMsg.seats = bpmMsg.getPropertyValue(AirticketProcessBuilder.PROPERTY_SEATS);
returnMsg = gwtMsg;
}
- else if (msgName.equals("ConfirmMsg"))
+ else if (msgName.equals(AirticketProcessBuilder.MESSAGE_CONFIRM))
{
ConfirmMessage gwtMsg = new ConfirmMessage();
- gwtMsg.name = bpmMsg.getPropertyValue("Name");
- gwtMsg.from = bpmMsg.getPropertyValue("From");
- gwtMsg.to = bpmMsg.getPropertyValue("To");
- gwtMsg.date = bpmMsg.getPropertyValue("Date");
- gwtMsg.seats = bpmMsg.getPropertyValue("Seats");
- gwtMsg.price = bpmMsg.getPropertyValue("Price");
+ gwtMsg.name = bpmMsg.getPropertyValue(AirticketProcessBuilder.PROPERTY_NAME);
+ gwtMsg.from = bpmMsg.getPropertyValue(AirticketProcessBuilder.PROPERTY_FROM);
+ gwtMsg.to = bpmMsg.getPropertyValue(AirticketProcessBuilder.PROPERTY_TO);
+ gwtMsg.date = bpmMsg.getPropertyValue(AirticketProcessBuilder.PROPERTY_DATE);
+ gwtMsg.seats = bpmMsg.getPropertyValue(AirticketProcessBuilder.PROPERTY_SEATS);
+ gwtMsg.price = bpmMsg.getPropertyValue(AirticketProcessBuilder.PROPERTY_PRICE);
returnMsg = gwtMsg;
}
else
@@ -157,12 +157,12 @@
{
MessageBuilderFactory msgFactory = MessageBuilderFactory.newInstance();
MessageBuilder msgBuilder = msgFactory.newMessageBuilder();
- Message msg = msgBuilder.newMessage("ReqDataMsg").
- addProperty("Name", gwtMsg.name).
- addProperty("From", gwtMsg.from).
- addProperty("To", gwtMsg.to).
- addProperty("Date", gwtMsg.date).
- addProperty("Seats", gwtMsg.seats).
+ Message msg = msgBuilder.newMessage(AirticketProcessBuilder.MESSAGE_REQ_DATA).
+ addProperty(AirticketProcessBuilder.PROPERTY_NAME, gwtMsg.name).
+ addProperty(AirticketProcessBuilder.PROPERTY_FROM, gwtMsg.from).
+ addProperty(AirticketProcessBuilder.PROPERTY_TO, gwtMsg.to).
+ addProperty(AirticketProcessBuilder.PROPERTY_DATE, gwtMsg.date).
+ addProperty(AirticketProcessBuilder.PROPERTY_SEATS, gwtMsg.seats).
getMessage();
return msg;
}
@@ -171,10 +171,10 @@
{
MessageBuilderFactory msgFactory = MessageBuilderFactory.newInstance();
MessageBuilder msgBuilder = msgFactory.newMessageBuilder();
- Message msg = msgBuilder.newMessage("AcceptOfferMsg").
- addProperty("CreditCard", gwtMsg.creditCard).
- addProperty("Expire", gwtMsg.expire).
- addProperty("isOfferAccepted", "" + gwtMsg.acceptOffer).
+ Message msg = msgBuilder.newMessage(AirticketProcessBuilder.MESSAGE_ACCEPT_OFFER).
+ addProperty(AirticketProcessBuilder.PROPERTY_CREDIT_CARD, gwtMsg.creditCard).
+ addProperty(AirticketProcessBuilder.PROPERTY_EXPIRE, gwtMsg.expire).
+ addProperty(AirticketProcessBuilder.PROPERTY_IS_OFFER_ACCEPTED, "" + gwtMsg.acceptOffer).
getMessage();
return msg;
}
17 years, 9 months
JBoss JBPM SVN: r1810 - jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/message.
by do-not-reply@jboss.org
Author: thomas.diesler(a)jboss.com
Date: 2008-08-02 19:47:24 -0400 (Sat, 02 Aug 2008)
New Revision: 1810
Modified:
jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/message/ProcessMessageTest.java
Log:
organize imports
Modified: jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/message/ProcessMessageTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/message/ProcessMessageTest.java 2008-08-02 23:46:18 UTC (rev 1809)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/message/ProcessMessageTest.java 2008-08-02 23:47:24 UTC (rev 1810)
@@ -27,7 +27,6 @@
import org.jboss.bpm.client.DialectHandler;
import org.jboss.bpm.client.ProcessManager;
-import org.jboss.bpm.dialect.api10.DialectHandlerImpl;
import org.jboss.bpm.model.Message;
import org.jboss.bpm.model.MessageBuilder;
import org.jboss.bpm.model.Process;
17 years, 9 months
JBoss JBPM SVN: r1809 - in jbossbpm/spec/trunk/modules: api/src/main/java/org/jboss/bpm/model and 9 other directories.
by do-not-reply@jboss.org
Author: thomas.diesler(a)jboss.com
Date: 2008-08-02 19:46:18 -0400 (Sat, 02 Aug 2008)
New Revision: 1809
Added:
jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AbstractAirticketTest.java
jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketAPIDescriptorTest.java
jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketProcBuilderTest.java
jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketSTPDescriptorTest.java
Removed:
jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketTest.java
jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/STPProcessIncludeTest.java
jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/describtion.txt
Modified:
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/DialectHandler.java
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Gateway.java
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ProcessBuilder.java
jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/DialectHandlerImpl.java
jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/ProcessUnmarshaller.java
jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/message/ProcessMessageTest.java
jbossbpm/spec/trunk/modules/dialects/stp/src/main/java/org/jboss/bpm/dialect/stp/ProcessUnmarshaller.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ExclusiveGatewayImpl.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/FlowObjectImpl.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/GatewayImpl.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ProcessBuilderImpl.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ProcessImpl.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/TaskImpl.java
jbossbpm/spec/trunk/modules/samples/airticket/server/.project
jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AirticketProcessBuilder.java
jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/ProcessMarshallerTest.java
jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket-api10.xml
jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket-stp-api10.xml
jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket.bpmn
jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket.bpmn_diagram
jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket.png
jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/process/ProcessIntegrityTest.java
Log:
STP descriptor include - ok
Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/DialectHandler.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/DialectHandler.java 2008-08-02 17:00:12 UTC (rev 1808)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/DialectHandler.java 2008-08-02 23:46:18 UTC (rev 1809)
@@ -37,6 +37,8 @@
*/
public interface DialectHandler
{
+ String DEFAULT_NAMESPACE_URI = "urn:bpm.jboss:pdl-0.1";
+
/**
* Get the the supported namespace from this dialect.
*/
Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Gateway.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Gateway.java 2008-08-02 17:00:12 UTC (rev 1808)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Gateway.java 2008-08-02 23:46:18 UTC (rev 1809)
@@ -67,4 +67,16 @@
* When two Gates are required, one of them MAY be the DefaultGate.
*/
List<Gate> getGates();
+
+ /**
+ * Get the optional default gate
+ * @return null if there is none
+ */
+ Gate getDefaultGate();
+
+ /**
+ * Get the gate for the given target name
+ * @return null if there is none
+ */
+ Gate getGateByTargetName(String targetName);
}
\ No newline at end of file
Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ProcessBuilder.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ProcessBuilder.java 2008-08-02 17:00:12 UTC (rev 1808)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ProcessBuilder.java 2008-08-02 23:46:18 UTC (rev 1809)
@@ -21,6 +21,7 @@
*/
package org.jboss.bpm.model;
+import org.jboss.bpm.client.DialectHandler;
import org.jboss.bpm.model.Gateway.GatewayType;
import org.jboss.bpm.model.Task.TaskType;
import org.jboss.bpm.runtime.ExecutionHandler;
@@ -43,9 +44,10 @@
ProcessBuilder addProcess(String name);
/**
- * Merge with another {@link Process}
+ * Add all elements from another {@link Process}.
+ * This is typically used by a {@link DialectHandler} when processing an include.
*/
- ProcessBuilder mergeProcess(Process proc);
+ ProcessBuilder addProcessElements(Process proc);
/**
* Get the {@link Process}.
Modified: jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/DialectHandlerImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/DialectHandlerImpl.java 2008-08-02 17:00:12 UTC (rev 1808)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/DialectHandlerImpl.java 2008-08-02 23:46:18 UTC (rev 1809)
@@ -43,11 +43,9 @@
*/
public class DialectHandlerImpl implements DialectHandler
{
- public static final String NAMESPACE_URI = "urn:bpm.jboss:pdl-0.1";
-
public String getNamespaceURI()
{
- return NAMESPACE_URI;
+ return DEFAULT_NAMESPACE_URI;
}
public Process createProcess(String pXML, boolean isInclude)
Modified: jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/ProcessUnmarshaller.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/ProcessUnmarshaller.java 2008-08-02 17:00:12 UTC (rev 1808)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/ProcessUnmarshaller.java 2008-08-02 23:46:18 UTC (rev 1809)
@@ -25,6 +25,7 @@
import java.io.IOException;
import java.io.Reader;
+import java.io.StringWriter;
import java.net.MalformedURLException;
import java.net.URL;
@@ -151,8 +152,15 @@
ProcessManager pm = ProcessManager.locateProcessManager();
DialectHandler dh = pm.getDialectHandler(nsURI);
- Process procInclude = dh.createProcess(procURL, true);
- procBuilder.mergeProcess(procInclude);
+ Process procIncl = dh.createProcess(procURL, true);
+
+ // Debug the included process
+ StringWriter strwr = new StringWriter();
+ DialectHandler dhapi = pm.getDialectHandler(DialectHandler.DEFAULT_NAMESPACE_URI);
+ dhapi.marshallProcess(procIncl, strwr);
+ //System.out.println(strwr);
+
+ procBuilder.addProcessElements(procIncl);
}
}
Modified: jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/message/ProcessMessageTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/message/ProcessMessageTest.java 2008-08-02 17:00:12 UTC (rev 1808)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/message/ProcessMessageTest.java 2008-08-02 23:46:18 UTC (rev 1809)
@@ -55,7 +55,7 @@
Process expProc = procBuilder.getProcess(true);
ProcessManager pm = ProcessManager.locateProcessManager();
- DialectHandler dh = pm.getDialectHandler(DialectHandlerImpl.NAMESPACE_URI);
+ DialectHandler dh = pm.getDialectHandler(DialectHandler.DEFAULT_NAMESPACE_URI);
StringWriter strwr = new StringWriter();
dh.marshallProcess(expProc, strwr);
@@ -76,7 +76,7 @@
Process expProc = procBuilder.getProcess(true);
ProcessManager pm = ProcessManager.locateProcessManager();
- DialectHandler dh = pm.getDialectHandler(DialectHandlerImpl.NAMESPACE_URI);
+ DialectHandler dh = pm.getDialectHandler(DialectHandler.DEFAULT_NAMESPACE_URI);
StringWriter strwr = new StringWriter();
dh.marshallProcess(expProc, strwr);
@@ -100,7 +100,7 @@
Process expProc = procBuilder.getProcess(true);
ProcessManager pm = ProcessManager.locateProcessManager();
- DialectHandler dh = pm.getDialectHandler(DialectHandlerImpl.NAMESPACE_URI);
+ DialectHandler dh = pm.getDialectHandler(DialectHandler.DEFAULT_NAMESPACE_URI);
StringWriter strwr = new StringWriter();
dh.marshallProcess(expProc, strwr);
Modified: jbossbpm/spec/trunk/modules/dialects/stp/src/main/java/org/jboss/bpm/dialect/stp/ProcessUnmarshaller.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/stp/src/main/java/org/jboss/bpm/dialect/stp/ProcessUnmarshaller.java 2008-08-02 17:00:12 UTC (rev 1808)
+++ jbossbpm/spec/trunk/modules/dialects/stp/src/main/java/org/jboss/bpm/dialect/stp/ProcessUnmarshaller.java 2008-08-02 23:46:18 UTC (rev 1809)
@@ -168,7 +168,14 @@
else if (activityType == ActivityType.TASK)
{
String name = stpActivity.getLabel();
- builder.addTask(name, TaskType.None);
+
+ TaskType taskType = TaskType.None;
+ if (name.startsWith("Send"))
+ taskType = TaskType.Send;
+ if (name.startsWith("Receive"))
+ taskType = TaskType.Receive;
+
+ builder.addTask(name, taskType);
adaptOutgoingEdges(builder, stpActivity);
}
else if (activityType == ActivityType.GATEWAY_DATA_BASED_EXCLUSIVE)
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ExclusiveGatewayImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ExclusiveGatewayImpl.java 2008-08-02 17:00:12 UTC (rev 1808)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ExclusiveGatewayImpl.java 2008-08-02 23:46:18 UTC (rev 1809)
@@ -31,6 +31,7 @@
import org.jboss.bpm.model.Expression;
import org.jboss.bpm.model.Flow;
import org.jboss.bpm.model.Gate;
+import org.jboss.bpm.model.Gateway;
import org.jboss.bpm.model.SequenceFlow;
import org.jboss.bpm.model.Expression.ExpressionLanguage;
import org.jboss.bpm.model.SequenceFlow.ConditionType;
@@ -73,6 +74,7 @@
@Override
public FlowHandler getFlowHandler()
{
+ final Gateway gateway = this;
FlowHandler handler = super.getFlowHandler();
if (handler == null && getGates().size() > 1)
{
@@ -127,7 +129,7 @@
}
if (selectedGate == null)
- throw new IllegalStateException("Cannot select applicable gate for: " + token);
+ throw new IllegalStateException("Cannot select applicable gate in: " + gateway);
SequenceFlow outFlow = selectedGate.getOutgoingSequenceFlow();
scheduler.scheduleTuple(outFlow, token);
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/FlowObjectImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/FlowObjectImpl.java 2008-08-02 17:00:12 UTC (rev 1808)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/FlowObjectImpl.java 2008-08-02 23:46:18 UTC (rev 1809)
@@ -95,17 +95,6 @@
// noting to do
}
- public void merge(FlowObjectImpl foIncl)
- {
- // Merge Handlers
- if (executionHandler == null)
- executionHandler = foIncl.getExecutionHandler();
- if (flowHandler == null)
- flowHandler = foIncl.getFlowHandler();
- if (signalHandler == null)
- signalHandler = foIncl.getSignalHandler();
- }
-
@Override
protected void initialize(Process proc)
{
@@ -126,7 +115,7 @@
{
String auxName = ((NameSupport)aux).getName();
if (name.equals(auxName))
- throw new NameNotUniqueException("NamedFlowObject: " + this);
+ throw new NameNotUniqueException(this.toString());
}
}
}
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/GatewayImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/GatewayImpl.java 2008-08-02 17:00:12 UTC (rev 1808)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/GatewayImpl.java 2008-08-02 23:46:18 UTC (rev 1809)
@@ -26,7 +26,9 @@
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
+import java.util.LinkedHashMap;
import java.util.List;
+import java.util.Map;
import java.util.Set;
import org.apache.commons.logging.Log;
@@ -40,6 +42,7 @@
import org.jboss.bpm.model.OutputSet;
import org.jboss.bpm.model.SequenceFlow;
import org.jboss.bpm.model.Signal;
+import org.jboss.bpm.model.SequenceFlow.ConditionType;
import org.jboss.bpm.runtime.ExecutionHandler;
import org.jboss.bpm.runtime.FlowHandler;
import org.jboss.bpm.runtime.FlowScheduler;
@@ -48,8 +51,8 @@
import org.jboss.bpm.runtime.internal.TokenImpl;
/**
- * Gateways are modelling elements that are used to control how Sequence Flow interact as they converge and diverge within a Process. If the flow does not need to be
- * controlled, then a Gateway is not needed.
+ * Gateways are modelling elements that are used to control how Sequence Flow interact as they converge and diverge
+ * within a Process. If the flow does not need to be controlled, then a Gateway is not needed.
*
* @author thomas.diesler(a)jboss.com
* @since 08-Jul-2008
@@ -62,7 +65,9 @@
private String name;
protected List<Flow> inFlows = new ArrayList<Flow>();
- private List<Gate> gates = new ArrayList<Gate>();
+ private Map<String, Gate> gates = new LinkedHashMap<String, Gate>();
+
+ // Sync management
private Set<Flow> outstandingFlows;
private Set<Token> mergeTokens;
@@ -78,14 +83,15 @@
public List<Gate> getGates()
{
- return Collections.unmodifiableList(gates);
+ return Collections.unmodifiableList(new ArrayList<Gate>(gates.values()));
}
public void addGate(Gate gate)
{
- gates.add(gate);
+ String targetName = gate.getOutgoingSequenceFlow().getTargetName();
+ gates.put(targetName, gate);
}
-
+
public List<Flow> getInFlows()
{
return Collections.unmodifiableList(inFlows);
@@ -96,10 +102,31 @@
this.inFlows.add(inFlow);
}
+ public Gate getDefaultGate()
+ {
+ Gate gate = null;
+ for (Gate aux : gates.values())
+ {
+ SequenceFlow seqFlow = aux.getOutgoingSequenceFlow();
+ if (seqFlow.getConditionType() == ConditionType.Default)
+ {
+ gate = aux;
+ break;
+ }
+ }
+ return gate;
+ }
+
+ public Gate getGateByTargetName(String targetName)
+ {
+ Gate gate = gates.get(targetName);
+ return gate;
+ }
+
@Override
public void execute(Token token)
{
- // Multiple incomingFlows must be synchronized
+ // Multiple incomingFlows must be synchronized
if (getInFlows().size() > 1)
{
if (outstandingFlows == null)
@@ -107,14 +134,14 @@
outstandingFlows = new HashSet<Flow>(inFlows);
mergeTokens = new HashSet<Token>();
}
-
+
Flow flow = token.getFlow();
outstandingFlows.remove(flow);
-
+
if (outstandingFlows.size() > 0)
mergeTokens.add(token);
}
-
+
// Call the execution handler with the InputSet
ExecutionHandler handler = getExecutionHandler();
if (handler != null)
@@ -122,7 +149,7 @@
handler.execute(token, null, null);
}
}
-
+
public ExecutionHandler getExecutionHandler()
{
ExecutionHandler handler = super.getExecutionHandler();
@@ -144,7 +171,8 @@
FlowHandler handler = super.getFlowHandler();
if (handler == null && gates.size() == 1)
{
- final SequenceFlow outFlow = gates.get(0).getOutgoingSequenceFlow();
+ Gate onlyGate = gates.values().iterator().next();
+ final SequenceFlow outFlow = onlyGate.getOutgoingSequenceFlow();
handler = new FlowHandler()
{
public void execute(FlowScheduler scheduler, Token token)
@@ -162,7 +190,7 @@
{
// Log the list of outstanding flows
Set<String> sourceNames = new HashSet<String>();
- for(Flow flow : outstandingFlows)
+ for (Flow flow : outstandingFlows)
{
GraphicalElement sourceRef = flow.getSourceRef();
if (sourceRef instanceof NameSupport)
@@ -188,10 +216,10 @@
TokenImpl mergedToken = new TokenImpl(token.getProcess(), null);
for (Token auxToken : mergeTokens)
mergedToken.mergeToken(auxToken);
-
+
return mergedToken;
}
-
+
public SignalHandler getSignalHandler()
{
SignalHandler handler = super.getSignalHandler();
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ProcessBuilderImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ProcessBuilderImpl.java 2008-08-02 17:00:12 UTC (rev 1808)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ProcessBuilderImpl.java 2008-08-02 23:46:18 UTC (rev 1809)
@@ -24,8 +24,10 @@
//$Id$
import org.jboss.bpm.NotImplementedException;
+import org.jboss.bpm.model.FlowObject;
import org.jboss.bpm.model.Gateway;
import org.jboss.bpm.model.GatewayBuilder;
+import org.jboss.bpm.model.Message;
import org.jboss.bpm.model.MessageBuilder;
import org.jboss.bpm.model.Process;
import org.jboss.bpm.model.ProcessBuilder;
@@ -63,9 +65,16 @@
return this;
}
- public ProcessBuilder mergeProcess(Process procInclude)
+ public ProcessBuilder addProcessElements(Process addProc)
{
- proc.merge(procInclude);
+ for(Message msg : addProc.getMessages())
+ {
+ proc.addMessage(msg);
+ }
+ for(FlowObject fo : addProc.getFlowObjects())
+ {
+ proc.addFlowObject(fo);
+ }
return this;
}
@@ -125,22 +134,23 @@
public ProcessBuilder addStartEvent()
{
- flowObject = new StartEventImpl();
- addFlowObject();
+ flowObject = addFlowObject(new StartEventImpl());
return this;
}
public ProcessBuilder addEvent(String name)
{
- flowObject = new IntermediateEventImpl(name);
- addFlowObject();
+ flowObject = (FlowObjectImpl)proc.getFlowObjectByName(name);
+ if (flowObject == null)
+ flowObject = addFlowObject(new IntermediateEventImpl(name));
return this;
}
public ProcessBuilder addEndEvent(String name)
{
- flowObject = new EndEventImpl(name);
- addFlowObject();
+ flowObject = (FlowObjectImpl)proc.getFlowObjectByName(name);
+ if (flowObject == null)
+ flowObject = addFlowObject(new EndEventImpl(name));
return this;
}
@@ -151,45 +161,53 @@
public TaskBuilder addTask(String name, TaskType type)
{
- if (type == TaskType.None || type == null)
+ flowObject = (FlowObjectImpl)proc.getFlowObjectByName(name);
+ if (flowObject == null)
{
- flowObject = new NoneTaskImpl(name);
+ if (type == TaskType.None || type == null)
+ {
+ flowObject = new NoneTaskImpl(name);
+ }
+ else if (type == TaskType.Receive)
+ {
+ flowObject = new ReceiveTaskImpl(name);
+ }
+ else if (type == TaskType.Send)
+ {
+ flowObject = new SendTaskImpl(name);
+ }
+ else
+ {
+ throw new NotImplementedException("Task type: " + type);
+ }
+ addFlowObject(flowObject);
}
- else if (type == TaskType.Receive)
- {
- flowObject = new ReceiveTaskImpl(name);
- }
- else if (type == TaskType.Send)
- {
- flowObject = new SendTaskImpl(name);
- }
- else
- {
- throw new NotImplementedException("Task type: " + type);
- }
- addFlowObject();
return new TaskBuilderImpl(proc, flowObject);
}
public GatewayBuilder addGateway(String name, GatewayType type)
{
- if (GatewayType.Exclusive == type)
+ flowObject = (FlowObjectImpl)proc.getFlowObjectByName(name);
+ if (flowObject == null)
{
- flowObject = new ExclusiveGatewayDataBasedImpl(name);
+ if (GatewayType.Exclusive == type)
+ {
+ flowObject = new ExclusiveGatewayDataBasedImpl(name);
+ }
+ else if (GatewayType.Inclusive == type)
+ {
+ flowObject = new InclusiveGatewayImpl(name);
+ }
+ else if (GatewayType.Parallel == type)
+ {
+ flowObject = new ParallelGatewayImpl(name);
+ }
+ else if (GatewayType.Complex == type)
+ {
+ flowObject = new ComplexGatewayImpl(name);
+ }
+ addFlowObject(flowObject);
}
- else if (GatewayType.Inclusive == type)
- {
- flowObject = new InclusiveGatewayImpl(name);
- }
- else if (GatewayType.Parallel == type)
- {
- flowObject = new ParallelGatewayImpl(name);
- }
- else if (GatewayType.Complex == type)
- {
- flowObject = new ComplexGatewayImpl(name);
- }
- addFlowObject();
return new GatewayBuilderImpl(proc, flowObject);
}
@@ -247,11 +265,12 @@
return this;
}
- private void addFlowObject()
+ private FlowObjectImpl addFlowObject(FlowObjectImpl fo)
{
if (proc == null)
throw new IllegalStateException("No process has been added");
- proc.addFlowObject(flowObject);
+ proc.addFlowObject(fo);
+ return fo;
}
}
\ No newline at end of file
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ProcessImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ProcessImpl.java 2008-08-02 17:00:12 UTC (rev 1808)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ProcessImpl.java 2008-08-02 23:46:18 UTC (rev 1809)
@@ -279,9 +279,29 @@
this.status = status;
}
- /**
- * Set the process state
- */
+ public List<Message> getMessages()
+ {
+ return Collections.unmodifiableList(messages);
+ }
+
+ public void addMessage(Message msg)
+ {
+ if (getMessageByName(msg.getName()) != null)
+ throw new InvalidProcessException("Duplicate message: " + msg);
+
+ messages.add(msg);
+ }
+
+ public Message getMessageByName(String msgName)
+ {
+ for (Message msg : messages)
+ {
+ if (msg.getName().equals(msgName))
+ return msg;
+ }
+ return null;
+ }
+
public void initialize()
{
if (status != Status.None)
@@ -312,53 +332,6 @@
status = Status.Ready;
}
- public List<Message> getMessages()
- {
- return Collections.unmodifiableList(messages);
- }
-
- public void addMessage(Message msg)
- {
- if (getMessageByName(msg.getName()) != null)
- throw new InvalidProcessException("Duplicate message: " + msg);
-
- messages.add(msg);
- }
-
- public Message getMessageByName(String msgName)
- {
- for (Message msg : messages)
- {
- if (msg.getName().equals(msgName))
- return msg;
- }
- return null;
- }
-
- public void merge(Process procIncl)
- {
- for(Message msg : procIncl.getMessages())
- {
- addMessage(msg);
- }
- for(FlowObject foIncl : procIncl.getFlowObjects())
- {
- if (foIncl instanceof NameSupport)
- {
- String foName = ((NameSupport)foIncl).getName();
- FlowObjectImpl fo = (FlowObjectImpl)getFlowObjectByName(foName);
- if (fo != null)
- {
- fo.merge((FlowObjectImpl)foIncl);
- }
- else
- {
- addFlowObject(foIncl);
- }
- }
- }
- }
-
public String toString()
{
return "Process[" + getName() + "]";
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/TaskImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/TaskImpl.java 2008-08-02 17:00:12 UTC (rev 1808)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/TaskImpl.java 2008-08-02 23:46:18 UTC (rev 1809)
@@ -77,7 +77,7 @@
public String toString()
{
- return "Task[" + getName() + "]";
+ return "Task[" + getTaskType() + "," + getName() + "]";
}
protected void initializeMessageRef(Process proc, Message msg)
Modified: jbossbpm/spec/trunk/modules/samples/airticket/server/.project
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/.project 2008-08-02 17:00:12 UTC (rev 1808)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/.project 2008-08-02 23:46:18 UTC (rev 1809)
@@ -15,9 +15,15 @@
<arguments>
</arguments>
</buildCommand>
+ <buildCommand>
+ <name>org.eclipse.stp.bpmn.validation.BatchValidationBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.maven.ide.eclipse.maven2Nature</nature>
+ <nature>org.eclipse.stp.bpmn.validation.BatchValidationBuildAbleNature</nature>
</natures>
</projectDescription>
Modified: jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AirticketProcessBuilder.java
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AirticketProcessBuilder.java 2008-08-02 17:00:12 UTC (rev 1808)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AirticketProcessBuilder.java 2008-08-02 23:46:18 UTC (rev 1809)
@@ -57,15 +57,15 @@
procBuilder.addProcess("Airticket");
// Add Start Event
- procBuilder.addStartEvent().addSequenceFlow("ReceiveReqTask");
+ procBuilder.addStartEvent().addSequenceFlow("ReceiveReq");
// Build the ReceiveReqTask
- TaskBuilder taskBuilder = procBuilder.addTask("ReceiveReqTask", TaskType.Receive);
+ TaskBuilder taskBuilder = procBuilder.addTask("ReceiveReq", TaskType.Receive);
taskBuilder.addMessageRef("ReqDataMsg").
- addSequenceFlow("ValidateTask");
+ addSequenceFlow("Validate");
// Build the ValidateTask
- taskBuilder = procBuilder.addTask("ValidateTask");
+ taskBuilder = procBuilder.addTask("Validate");
taskBuilder.addExecutionHandler(ValidationHandler.class).
addInputSet().
addPropertyInput("Name", null).
@@ -75,15 +75,15 @@
addPropertyInput("Seats", null).
addOutputSet().
addPropertyOutput("isReqDataValid", null).
- addSequenceFlow("ValidateGateway");
+ addSequenceFlow("IsValid");
// Build the ValidateGateway
- GatewayBuilder gatewayBuilder = procBuilder.addGateway("ValidateGateway", GatewayType.Exclusive);
- gatewayBuilder.addConditionalGate("CheckAvailabilityTask", ExpressionLanguage.MVEL, "isReqDataValid == true").
- addDefaultGate("SendInvalidTask");
+ GatewayBuilder gatewayBuilder = procBuilder.addGateway("IsValid", GatewayType.Exclusive);
+ gatewayBuilder.addConditionalGate("CheckAvailable", ExpressionLanguage.MVEL, "isReqDataValid == true").
+ addDefaultGate("SendInvalid");
// Build the CheckAvailabilityTask
- taskBuilder = procBuilder.addTask("CheckAvailabilityTask");
+ taskBuilder = procBuilder.addTask("CheckAvailable");
taskBuilder.addExecutionHandler(AvailabilityHandler.class).
addInputSet().
addPropertyInput("From", null).
@@ -93,67 +93,67 @@
addOutputSet().
addPropertyOutput("isAvailable", null).
addPropertyOutput("Price", null).
- addSequenceFlow("AvailabilityGateway");
+ addSequenceFlow("IsAvailable");
// Build the SendInvalidTask
- taskBuilder = procBuilder.addTask("SendInvalidTask", TaskType.Send);
+ taskBuilder = procBuilder.addTask("SendInvalid", TaskType.Send);
taskBuilder.addMessageRef("InvalidDataMsg").
- addSequenceFlow("ReceiveReqTask");
+ addSequenceFlow("ReceiveReq");
// Build the AvailabilityGateway
- gatewayBuilder = procBuilder.addGateway("AvailabilityGateway", GatewayType.Exclusive);
- gatewayBuilder.addConditionalGate("SendOfferTask", ExpressionLanguage.MVEL, "isAvailable == true").
- addDefaultGate("SendNotAvailableTask");
+ gatewayBuilder = procBuilder.addGateway("IsAvailable", GatewayType.Exclusive);
+ gatewayBuilder.addConditionalGate("SendOffer", ExpressionLanguage.MVEL, "isAvailable == true").
+ addDefaultGate("SendNotAvailable");
// Build the SendOfferTask
- taskBuilder = procBuilder.addTask("SendOfferTask", TaskType.Send);
+ taskBuilder = procBuilder.addTask("SendOffer", TaskType.Send);
taskBuilder.addMessageRef("OfferMsg").
- addSequenceFlow("ReceiveOrderTask");
+ addSequenceFlow("ReceiveOrder");
// Build the SendNotAvailableTask
- taskBuilder = procBuilder.addTask("SendNotAvailableTask", TaskType.Send);
+ taskBuilder = procBuilder.addTask("SendNotAvailable", TaskType.Send);
taskBuilder.addMessageRef("NotAvailableMsg").
- addSequenceFlow("ReceiveReqTask");
+ addSequenceFlow("ReceiveReq");
// Build the ReceiveReqTask
- taskBuilder = procBuilder.addTask("ReceiveOrderTask", TaskType.Receive);
+ taskBuilder = procBuilder.addTask("ReceiveOrder", TaskType.Receive);
taskBuilder.addMessageRef("AcceptOfferMsg").
- addSequenceFlow("AcceptOfferGateway");
+ addSequenceFlow("IsAccepted");
// Build the AcceptOfferGateway
- gatewayBuilder = procBuilder.addGateway("AcceptOfferGateway", GatewayType.Exclusive);
- gatewayBuilder.addConditionalGate("ParallelSplitGateway", ExpressionLanguage.MVEL, "isOfferAccepted == true").
- addDefaultGate("ReceiveReqTask");
+ gatewayBuilder = procBuilder.addGateway("IsAccepted", GatewayType.Exclusive);
+ gatewayBuilder.addConditionalGate("Split", ExpressionLanguage.MVEL, "isOfferAccepted == true").
+ addDefaultGate("ReceiveReq");
// Build the AcceptOfferGateway
- gatewayBuilder = procBuilder.addGateway("ParallelSplitGateway", GatewayType.Parallel);
- gatewayBuilder.addGate("CreditCardTask").
- addGate("BookingTask");
+ gatewayBuilder = procBuilder.addGateway("Split", GatewayType.Parallel);
+ gatewayBuilder.addGate("CreditCard").
+ addGate("Booking");
// Build the CreditCardTask
- taskBuilder = procBuilder.addTask("CreditCardTask");
+ taskBuilder = procBuilder.addTask("CreditCard");
taskBuilder.addInputSet().
addPropertyInput("CreditCard", null).
addPropertyInput("Expire", null).
addPropertyInput("Price", null).
- addSequenceFlow("SynchronizedJoinGateway");
+ addSequenceFlow("SyncJoin");
// Build the BookingTask
- taskBuilder = procBuilder.addTask("BookingTask");
+ taskBuilder = procBuilder.addTask("Booking");
taskBuilder.addInputSet().
addPropertyInput("Name", null).
addPropertyInput("From", null).
addPropertyInput("To", null).
addPropertyInput("Date", null).
addPropertyInput("Seats", null).
- addSequenceFlow("SynchronizedJoinGateway");
+ addSequenceFlow("SyncJoin");
// Build the SynchronizedJoinGateway
- gatewayBuilder = procBuilder.addGateway("SynchronizedJoinGateway", GatewayType.Parallel);
- gatewayBuilder.addGate("SendConfirmTask");
+ gatewayBuilder = procBuilder.addGateway("SyncJoin", GatewayType.Parallel);
+ gatewayBuilder.addGate("SendConfirm");
// Build the SendConfirmTask
- taskBuilder = procBuilder.addTask("SendConfirmTask", TaskType.Send);
+ taskBuilder = procBuilder.addTask("SendConfirm", TaskType.Send);
taskBuilder.addMessageRef("ConfirmMsg").
addSequenceFlow("End");
Copied: jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AbstractAirticketTest.java (from rev 1804, jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketTest.java)
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AbstractAirticketTest.java (rev 0)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AbstractAirticketTest.java 2008-08-02 23:46:18 UTC (rev 1809)
@@ -0,0 +1,173 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.bpm.samples.airticket;
+
+// $Id$
+
+import javax.management.ObjectName;
+
+import org.jboss.bpm.client.MessageListener;
+import org.jboss.bpm.client.MessageManager;
+import org.jboss.bpm.client.ObjectNameFactory;
+import org.jboss.bpm.client.SignalListener;
+import org.jboss.bpm.client.SignalManager;
+import org.jboss.bpm.model.Message;
+import org.jboss.bpm.model.MessageBuilder;
+import org.jboss.bpm.model.MessageBuilderFactory;
+import org.jboss.bpm.model.Process;
+import org.jboss.bpm.model.Signal;
+import org.jboss.bpm.test.DefaultEngineTestCase;
+
+/**
+ * Test the Airticket sample application
+ *
+ * @author thomas.diesler(a)jboss.com
+ * @since 03-Jul-2008
+ */
+public abstract class AbstractAirticketTest extends DefaultEngineTestCase
+{
+ @Override
+ public ObjectName getMessageListenerID()
+ {
+ return ObjectNameFactory.create("jboss.bpm:client=AirticketTest");
+ }
+
+ @Override
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+
+ // Add a signal listener
+ SignalListener sl = new SignalListener()
+ {
+ public void catchSignal(Signal signal)
+ {
+ // System.out.println(signal);
+ }
+ };
+ SignalManager engine = SignalManager.locateSignalManager();
+ engine.addSignalListener("Airticket", sl);
+ }
+
+ protected void runProcessInvalidData(Process proc)
+ {
+ MessageManager mm = MessageManager.locateMessageManager();
+ AirticketMessageListener msgListener = new AirticketMessageListener(getMessageListenerID());
+ mm.addMessageListener(msgListener);
+
+ mm.sendMessage(proc.getID(), "ReceiveReq", getInvalidRequestMessage());
+ proc.waitForEnd();
+
+ Message confirmMessage = msgListener.getConfirmMessage();
+ assertNotNull("Expected confirm message", confirmMessage);
+ String price = confirmMessage.getPropertyValue("Price");
+ assertEquals("222", price);
+ }
+
+ protected void runProcessValidData(Process proc)
+ {
+ MessageManager mm = MessageManager.locateMessageManager();
+ AirticketMessageListener msgListener = new AirticketMessageListener(getMessageListenerID());
+ mm.addMessageListener(msgListener);
+
+ mm.sendMessage(proc.getID(), "ReceiveReq", getValidRequestMessage());
+ proc.waitForEnd();
+
+ Message confirmMessage = msgListener.getConfirmMessage();
+ assertNotNull("Expected confirm message", confirmMessage);
+ String price = confirmMessage.getPropertyValue("Price");
+ assertEquals("222", price);
+ }
+
+ private Message getValidRequestMessage()
+ {
+ MessageBuilderFactory msgFactory = MessageBuilderFactory.newInstance();
+ MessageBuilder msgBuilder = msgFactory.newMessageBuilder();
+ Message msg = msgBuilder.newMessage("ReqDataMsg").
+ addProperty("Name", "Kermit").
+ addProperty("From", "MUC").
+ addProperty("To", "NYC").
+ addProperty("Date", "25-Jul-2008").
+ addProperty("Seats", "2").getMessage();
+ return msg;
+ }
+
+ private Message getInvalidRequestMessage()
+ {
+ MessageBuilderFactory msgFactory = MessageBuilderFactory.newInstance();
+ MessageBuilder msgBuilder = msgFactory.newMessageBuilder();
+ Message msg = msgBuilder.newMessage("ReqDataMsg").
+ addToRef(getMessageListenerID()).
+ addProperty("Name", "Kermit").
+ addProperty("From", "MUC").
+ addProperty("To", "NYC").
+ addProperty("Date", "25-Jul-2008").
+ addProperty("Seats", "0"). // Invalid number of seats
+ getMessage();
+ return msg;
+ }
+
+ private Message getAcceptOfferMessage()
+ {
+ MessageBuilderFactory msgFactory = MessageBuilderFactory.newInstance();
+ MessageBuilder msgBuilder = msgFactory.newMessageBuilder();
+ Message msg = msgBuilder.newMessage("AcceptOfferMsg").
+ addProperty("CreditCard", "1234-1234-1234-1234").
+ addProperty("Expire", "25-Jul-2012").
+ addProperty("isOfferAccepted", "true").
+ getMessage();
+ return msg;
+ }
+
+ class AirticketMessageListener implements MessageListener
+ {
+ private ObjectName listenerID;
+ private Message confirmMessage;
+
+ private AirticketMessageListener(ObjectName listenerID)
+ {
+ this.listenerID = listenerID;
+ }
+
+ public Message getConfirmMessage()
+ {
+ return confirmMessage;
+ }
+
+ public void catchMessage(Message msg)
+ {
+ ObjectName procID = msg.getFrom().getProcess().getID();
+ MessageManager mm = MessageManager.locateMessageManager();
+ if (msg.getName().equals("InvalidDataMsg"))
+ mm.sendMessage(procID, "ReceiveReq", getValidRequestMessage());
+ else if (msg.getName().equals("OfferMsg"))
+ mm.sendMessage(procID, "ReceiveOrder", getAcceptOfferMessage());
+ else if (msg.getName().equals("ConfirmMsg"))
+ confirmMessage = msg;
+ }
+
+ public ObjectName getMessageListenerID()
+ {
+ return listenerID;
+ }
+ }
+}
\ No newline at end of file
Added: jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketAPIDescriptorTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketAPIDescriptorTest.java (rev 0)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketAPIDescriptorTest.java 2008-08-02 23:46:18 UTC (rev 1809)
@@ -0,0 +1,56 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.bpm.samples.airticket;
+
+// $Id$
+
+import java.net.URL;
+
+import org.jboss.bpm.client.ProcessManager;
+import org.jboss.bpm.model.Process;
+
+/**
+ * Test the Airticket sample application
+ *
+ * @author thomas.diesler(a)jboss.com
+ * @since 03-Jul-2008
+ */
+public class AirticketAPIDescriptorTest extends AbstractAirticketTest
+{
+ public void testValidData() throws Exception
+ {
+ URL expURL = getResourceURL("samples/airticket/airticket-api10.xml");
+ ProcessManager pm = ProcessManager.locateProcessManager();
+ Process proc = pm.createProcess(expURL);
+ proc.startProcess();
+ runProcessValidData(proc);
+ }
+
+ public void testInvalidData() throws Exception
+ {
+ URL expURL = getResourceURL("samples/airticket/airticket-api10.xml");
+ ProcessManager pm = ProcessManager.locateProcessManager();
+ Process proc = pm.createProcess(expURL);
+ proc.startProcess();
+ runProcessInvalidData(proc);
+ }
+}
\ No newline at end of file
Property changes on: jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketAPIDescriptorTest.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketProcBuilderTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketProcBuilderTest.java (rev 0)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketProcBuilderTest.java 2008-08-02 23:46:18 UTC (rev 1809)
@@ -0,0 +1,51 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.bpm.samples.airticket;
+
+// $Id$
+
+import org.jboss.bpm.model.Process;
+
+/**
+ * Test the Airticket sample application
+ *
+ * @author thomas.diesler(a)jboss.com
+ * @since 03-Jul-2008
+ */
+public class AirticketProcBuilderTest extends AbstractAirticketTest
+{
+ public void testValidData() throws Exception
+ {
+ AirticketProcessBuilder builder = new AirticketProcessBuilder(getMessageListenerID());
+ Process proc = builder.buildProcess();
+ proc.startProcess();
+ runProcessValidData(proc);
+ }
+
+ public void testInvalidData() throws Exception
+ {
+ AirticketProcessBuilder builder = new AirticketProcessBuilder(getMessageListenerID());
+ Process proc = builder.buildProcess();
+ proc.startProcess();
+ runProcessInvalidData(proc);
+ }
+}
\ No newline at end of file
Property changes on: jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketProcBuilderTest.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketSTPDescriptorTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketSTPDescriptorTest.java (rev 0)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketSTPDescriptorTest.java 2008-08-02 23:46:18 UTC (rev 1809)
@@ -0,0 +1,65 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.bpm.samples.airticket;
+
+// $Id$
+
+import java.io.StringWriter;
+import java.net.URL;
+
+import org.jboss.bpm.client.DialectHandler;
+import org.jboss.bpm.client.ProcessManager;
+import org.jboss.bpm.model.Process;
+
+/**
+ * Test the Airticket sample application
+ *
+ * @author thomas.diesler(a)jboss.com
+ * @since 03-Jul-2008
+ */
+public class AirticketSTPDescriptorTest extends AbstractAirticketTest
+{
+ public void testValidData() throws Exception
+ {
+ URL expURL = getResourceURL("samples/airticket/airticket-stp-api10.xml");
+ ProcessManager pm = ProcessManager.locateProcessManager();
+ Process proc = pm.createProcess(expURL);
+
+ // Debug the effective process
+ StringWriter strwr = new StringWriter();
+ DialectHandler dhapi = pm.getDialectHandler(DialectHandler.DEFAULT_NAMESPACE_URI);
+ dhapi.marshallProcess(proc, strwr);
+ //System.out.println(strwr);
+
+ proc.startProcess();
+ runProcessValidData(proc);
+ }
+
+ public void testInvalidData() throws Exception
+ {
+ URL expURL = getResourceURL("samples/airticket/airticket-stp-api10.xml");
+ ProcessManager pm = ProcessManager.locateProcessManager();
+ Process proc = pm.createProcess(expURL);
+ proc.startProcess();
+ runProcessInvalidData(proc);
+ }
+}
\ No newline at end of file
Property changes on: jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketSTPDescriptorTest.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Deleted: jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketTest.java 2008-08-02 17:00:12 UTC (rev 1808)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketTest.java 2008-08-02 23:46:18 UTC (rev 1809)
@@ -1,190 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.bpm.samples.airticket;
-
-// $Id$
-
-import java.net.URL;
-
-import javax.management.ObjectName;
-
-import org.jboss.bpm.client.MessageListener;
-import org.jboss.bpm.client.MessageManager;
-import org.jboss.bpm.client.ProcessManager;
-import org.jboss.bpm.client.SignalListener;
-import org.jboss.bpm.client.SignalManager;
-import org.jboss.bpm.model.Message;
-import org.jboss.bpm.model.MessageBuilder;
-import org.jboss.bpm.model.MessageBuilderFactory;
-import org.jboss.bpm.model.Process;
-import org.jboss.bpm.model.Signal;
-import org.jboss.bpm.test.DefaultEngineTestCase;
-
-/**
- * Test the Airticket sample application
- *
- * @author thomas.diesler(a)jboss.com
- * @since 03-Jul-2008
- */
-public class AirticketTest extends DefaultEngineTestCase
-{
- @Override
- protected void setUp() throws Exception
- {
- super.setUp();
-
- // Add a signal listener
- SignalListener sl = new SignalListener()
- {
- public void catchSignal(Signal signal)
- {
- // System.out.println(signal);
- }
- };
- SignalManager engine = SignalManager.locateSignalManager();
- engine.addSignalListener("Airticket", sl);
- }
-
- public void _testProcessStart() throws Exception
- {
- URL jpdlURL = getResourceURL("samples/airticket/airticket.bpmn");
-
- // Create a Process through the ProcessManager
- ProcessManager pm = ProcessManager.locateProcessManager();
- Process proc = pm.createProcess(jpdlURL);
- assertNotNull(proc);
-
- proc.startProcess();
- proc.waitForEnd();
- }
-
- public void testValidRequest() throws Exception
- {
- MessageManager mm = MessageManager.locateMessageManager();
- AirticketMessageListener msgListener = new AirticketMessageListener(getMessageListenerID());
- mm.addMessageListener(msgListener);
-
- AirticketProcessBuilder builder = new AirticketProcessBuilder(getMessageListenerID());
- Process proc = builder.buildProcess();
- proc.startProcess();
-
- mm.sendMessage(proc.getID(), "ReceiveReqTask", getValidRequestMessage());
- proc.waitForEnd();
-
- Message confirmMessage = msgListener.getConfirmMessage();
- assertNotNull("Expected confirm message", confirmMessage);
- String price = confirmMessage.getPropertyValue("Price");
- assertEquals("222", price);
- }
-
- public void testInvalidRequest() throws Exception
- {
- MessageManager mm = MessageManager.locateMessageManager();
- AirticketMessageListener msgListener = new AirticketMessageListener(getMessageListenerID());
- mm.addMessageListener(msgListener);
-
- AirticketProcessBuilder builder = new AirticketProcessBuilder(getMessageListenerID());
- Process proc = builder.buildProcess();
- proc.startProcess();
-
- mm.sendMessage(proc.getID(), "ReceiveReqTask", getInvalidRequestMessage());
- proc.waitForEnd();
-
- Message confirmMessage = msgListener.getConfirmMessage();
- assertNotNull("Expected confirm message", confirmMessage);
- String price = confirmMessage.getPropertyValue("Price");
- assertEquals("222", price);
- }
-
- private Message getValidRequestMessage()
- {
- MessageBuilderFactory msgFactory = MessageBuilderFactory.newInstance();
- MessageBuilder msgBuilder = msgFactory.newMessageBuilder();
- Message msg = msgBuilder.newMessage("ReqDataMsg").
- addProperty("Name", "Kermit").
- addProperty("From", "MUC").
- addProperty("To", "NYC").
- addProperty("Date", "25-Jul-2008").
- addProperty("Seats", "2").getMessage();
- return msg;
- }
-
- private Message getInvalidRequestMessage()
- {
- MessageBuilderFactory msgFactory = MessageBuilderFactory.newInstance();
- MessageBuilder msgBuilder = msgFactory.newMessageBuilder();
- Message msg = msgBuilder.newMessage("ReqDataMsg").
- addToRef(getMessageListenerID()).
- addProperty("Name", "Kermit").
- addProperty("From", "MUC").
- addProperty("To", "NYC").
- addProperty("Date", "25-Jul-2008").
- addProperty("Seats", "0"). // Invalid number of seats
- getMessage();
- return msg;
- }
-
- private Message getAcceptOfferMessage()
- {
- MessageBuilderFactory msgFactory = MessageBuilderFactory.newInstance();
- MessageBuilder msgBuilder = msgFactory.newMessageBuilder();
- Message msg = msgBuilder.newMessage("AcceptOfferMsg").
- addProperty("CreditCard", "1234-1234-1234-1234").
- addProperty("Expire", "25-Jul-2012").
- addProperty("isOfferAccepted", "true").
- getMessage();
- return msg;
- }
-
- class AirticketMessageListener implements MessageListener
- {
- private ObjectName listenerID;
- private Message confirmMessage;
-
- private AirticketMessageListener(ObjectName listenerID)
- {
- this.listenerID = listenerID;
- }
-
- public Message getConfirmMessage()
- {
- return confirmMessage;
- }
-
- public void catchMessage(Message msg)
- {
- ObjectName procID = msg.getFrom().getProcess().getID();
- MessageManager mm = MessageManager.locateMessageManager();
- if (msg.getName().equals("InvalidDataMsg"))
- mm.sendMessage(procID, "ReceiveReqTask", getValidRequestMessage());
- else if (msg.getName().equals("OfferMsg"))
- mm.sendMessage(procID, "ReceiveOrderTask", getAcceptOfferMessage());
- else if (msg.getName().equals("ConfirmMsg"))
- confirmMessage = msg;
- }
-
- public ObjectName getMessageListenerID()
- {
- return listenerID;
- }
- }
-}
\ No newline at end of file
Modified: jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/ProcessMarshallerTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/ProcessMarshallerTest.java 2008-08-02 17:00:12 UTC (rev 1808)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/ProcessMarshallerTest.java 2008-08-02 23:46:18 UTC (rev 1809)
@@ -24,11 +24,13 @@
// $Id$
import java.io.ByteArrayInputStream;
-import java.io.FileWriter;
import java.io.StringWriter;
import java.net.URL;
+import javax.management.ObjectName;
+
import org.jboss.bpm.client.DialectHandler;
+import org.jboss.bpm.client.ObjectNameFactory;
import org.jboss.bpm.client.ProcessManager;
import org.jboss.bpm.model.Process;
import org.jboss.bpm.test.DefaultEngineTestCase;
@@ -44,6 +46,12 @@
*/
public class ProcessMarshallerTest extends DefaultEngineTestCase
{
+ @Override
+ public ObjectName getMessageListenerID()
+ {
+ return ObjectNameFactory.create("jboss.bpm:client=AirticketTest");
+ }
+
/**
* Build the process through a ProcessBuilder.
* Marshall it through the DialectHandler.
@@ -68,14 +76,8 @@
Element expEl = DOMUtils.parse(expURL.openStream());
String expStr = DOMWriter.printNode(expEl, true);
- // Write the file for debugging
- if (expStr.equals(wasStr) == false)
- {
- FileWriter fileWriter = new FileWriter("airticket-was-api10.xml");
- fileWriter.write(wasStr);
- fileWriter.close();
- }
-
+ //System.out.println(expStr);
+ //System.out.println(wasStr);
assertEquals(expStr, wasStr);
}
Deleted: jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/STPProcessIncludeTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/STPProcessIncludeTest.java 2008-08-02 17:00:12 UTC (rev 1808)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/STPProcessIncludeTest.java 2008-08-02 23:46:18 UTC (rev 1809)
@@ -1,72 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.bpm.samples.airticket;
-
-// $Id$
-
-import java.io.ByteArrayInputStream;
-import java.io.StringWriter;
-import java.net.URL;
-
-import org.jboss.bpm.client.DialectHandler;
-import org.jboss.bpm.client.ProcessManager;
-import org.jboss.bpm.model.Process;
-import org.jboss.bpm.test.DefaultEngineTestCase;
-import org.jboss.util.xml.DOMUtils;
-import org.jboss.util.xml.DOMWriter;
-import org.w3c.dom.Element;
-
-/**
- * Test the Airticket process marshaller
- *
- * @author thomas.diesler(a)jboss.com
- * @since 03-Jul-2008
- */
-public class STPProcessIncludeTest extends DefaultEngineTestCase
-{
- /**
- * Build the process through the ProcessManager. Uses an process definition with an include of an STP process.
- * Marshall it through the DialectHandler. Compare the output with expected file content.
- */
- public void testBPMNProcessMerge() throws Exception
- {
- URL bpmnURL = getResourceURL("samples/airticket/airticket-stp-api10.xml");
- ProcessManager pm = ProcessManager.locateProcessManager();
- Process proc = pm.createProcess(bpmnURL);
-
- StringWriter strwr = new StringWriter();
- DialectHandler dh = pm.getDialectHandler("urn:bpm.jboss:pdl-0.1");
- dh.marshallProcess(proc, strwr);
- String procXML = strwr.toString();
-
- Element wasEl = DOMUtils.parse(new ByteArrayInputStream(procXML.getBytes()));
- String wasStr = DOMWriter.printNode(wasEl, true);
-
- URL expURL = getResourceURL("samples/airticket/airticket-api10.xml");
- Element expEl = DOMUtils.parse(expURL.openStream());
- String expStr = DOMWriter.printNode(expEl, true);
-
- // System.out.println(expStr);
- // System.out.println(wasStr);
- assertEquals(expStr, wasStr);
- }
-}
\ No newline at end of file
Modified: jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket-api10.xml
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket-api10.xml 2008-08-02 17:00:12 UTC (rev 1808)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket-api10.xml 2008-08-02 23:46:18 UTC (rev 1809)
@@ -1,13 +1,13 @@
<ns2:process name='Airticket' xmlns:ns2='urn:bpm.jboss:pdl-0.1'>
<start>
- <seqflow to='ReceiveReqTask'/>
+ <seqflow to='ReceiveReq'/>
</start>
- <task name='ReceiveReqTask' taskType='Receive'>
- <seqflow to='ValidateTask'/>
+ <task name='ReceiveReq' taskType='Receive'>
+ <seqflow to='Validate'/>
<msgref nameRef='ReqDataMsg'/>
</task>
- <task name='ValidateTask' taskType='None'>
- <seqflow to='ValidateGateway'/>
+ <task name='Validate' taskType='None'>
+ <seqflow to='IsValid'/>
<execution-handler class='org.jboss.bpm.samples.airticket.ValidationHandler'/>
<input-set>
<property>
@@ -32,14 +32,14 @@
</property>
</output-set>
</task>
- <exclusive-gateway name='ValidateGateway'>
- <seqflow conditionType='Expression' to='CheckAvailabilityTask'>
+ <exclusive-gateway name='IsValid'>
+ <seqflow conditionType='Expression' to='CheckAvailable'>
<condition lang='MVEL'>isReqDataValid == true</condition>
</seqflow>
- <seqflow conditionType='Default' to='SendInvalidTask'/>
+ <seqflow conditionType='Default' to='SendInvalid'/>
</exclusive-gateway>
- <task name='CheckAvailabilityTask' taskType='None'>
- <seqflow to='AvailabilityGateway'/>
+ <task name='CheckAvailable' taskType='None'>
+ <seqflow to='IsAvailable'/>
<execution-handler class='org.jboss.bpm.samples.airticket.AvailabilityHandler'/>
<input-set>
<property>
@@ -64,40 +64,40 @@
</property>
</output-set>
</task>
- <task name='SendInvalidTask' taskType='Send'>
- <seqflow to='ReceiveReqTask'/>
+ <task name='SendInvalid' taskType='Send'>
+ <seqflow to='ReceiveReq'/>
<msgref nameRef='InvalidDataMsg'/>
</task>
- <exclusive-gateway name='AvailabilityGateway'>
- <seqflow conditionType='Expression' to='SendOfferTask'>
+ <exclusive-gateway name='IsAvailable'>
+ <seqflow conditionType='Expression' to='SendOffer'>
<condition lang='MVEL'>isAvailable == true</condition>
</seqflow>
- <seqflow conditionType='Default' to='SendNotAvailableTask'/>
+ <seqflow conditionType='Default' to='SendNotAvailable'/>
</exclusive-gateway>
- <task name='SendOfferTask' taskType='Send'>
- <seqflow to='ReceiveOrderTask'/>
+ <task name='SendOffer' taskType='Send'>
+ <seqflow to='ReceiveOrder'/>
<msgref nameRef='OfferMsg'/>
</task>
- <task name='SendNotAvailableTask' taskType='Send'>
- <seqflow to='ReceiveReqTask'/>
+ <task name='SendNotAvailable' taskType='Send'>
+ <seqflow to='ReceiveReq'/>
<msgref nameRef='NotAvailableMsg'/>
</task>
- <task name='ReceiveOrderTask' taskType='Receive'>
- <seqflow to='AcceptOfferGateway'/>
+ <task name='ReceiveOrder' taskType='Receive'>
+ <seqflow to='IsAccepted'/>
<msgref nameRef='AcceptOfferMsg'/>
</task>
- <exclusive-gateway name='AcceptOfferGateway'>
- <seqflow conditionType='Expression' to='ParallelSplitGateway'>
+ <exclusive-gateway name='IsAccepted'>
+ <seqflow conditionType='Expression' to='Split'>
<condition lang='MVEL'>isOfferAccepted == true</condition>
</seqflow>
- <seqflow conditionType='Default' to='ReceiveReqTask'/>
+ <seqflow conditionType='Default' to='ReceiveReq'/>
</exclusive-gateway>
- <parallel-gateway name='ParallelSplitGateway'>
- <seqflow to='CreditCardTask'/>
- <seqflow to='BookingTask'/>
+ <parallel-gateway name='Split'>
+ <seqflow to='CreditCard'/>
+ <seqflow to='Booking'/>
</parallel-gateway>
- <task name='CreditCardTask' taskType='None'>
- <seqflow to='SynchronizedJoinGateway'/>
+ <task name='CreditCard' taskType='None'>
+ <seqflow to='SyncJoin'/>
<input-set>
<property>
<name>CreditCard</name>
@@ -110,8 +110,8 @@
</property>
</input-set>
</task>
- <task name='BookingTask' taskType='None'>
- <seqflow to='SynchronizedJoinGateway'/>
+ <task name='Booking' taskType='None'>
+ <seqflow to='SyncJoin'/>
<input-set>
<property>
<name>Name</name>
@@ -130,10 +130,10 @@
</property>
</input-set>
</task>
- <parallel-gateway name='SynchronizedJoinGateway'>
- <seqflow to='SendConfirmTask'/>
+ <parallel-gateway name='SyncJoin'>
+ <seqflow to='SendConfirm'/>
</parallel-gateway>
- <task name='SendConfirmTask' taskType='Send'>
+ <task name='SendConfirm' taskType='Send'>
<seqflow to='End'/>
<msgref nameRef='ConfirmMsg'/>
</task>
@@ -156,7 +156,7 @@
</property>
</message>
<message name='InvalidDataMsg'>
- <to>jboss.bpm:test=testProcessMarshaller</to>
+ <to>jboss.bpm:client=AirticketTest</to>
<property correlation='true'>
<name>Name</name>
</property>
@@ -174,7 +174,7 @@
</property>
</message>
<message name='NotAvailableMsg'>
- <to>jboss.bpm:test=testProcessMarshaller</to>
+ <to>jboss.bpm:client=AirticketTest</to>
<property correlation='true'>
<name>Name</name>
</property>
@@ -192,7 +192,7 @@
</property>
</message>
<message name='OfferMsg'>
- <to>jboss.bpm:test=testProcessMarshaller</to>
+ <to>jboss.bpm:client=AirticketTest</to>
<property correlation='true'>
<name>Name</name>
</property>
@@ -224,7 +224,7 @@
</property>
</message>
<message name='ConfirmMsg'>
- <to>jboss.bpm:test=testProcessMarshaller</to>
+ <to>jboss.bpm:client=AirticketTest</to>
<property correlation='true'>
<name>Name</name>
</property>
Modified: jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket-stp-api10.xml
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket-stp-api10.xml 2008-08-02 17:00:12 UTC (rev 1808)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket-stp-api10.xml 2008-08-02 23:46:18 UTC (rev 1809)
@@ -1,9 +1,14 @@
<ns2:process name='Airticket' xmlns:ns2='urn:bpm.jboss:pdl-0.1'>
<include namespace="http://stp.eclipse.org/bpmn" location="samples/airticket/airticket.bpmn" />
- <task name='ReceiveReqTask' taskType='Receive'>
+ <!-- start>
+ <seqflow to='ReceiveReq' />
+ </start-->
+ <task name='ReceiveReq' taskType='Receive'>
+ <!-- seqflow to='Validate' /-->
<msgref nameRef='ReqDataMsg' />
</task>
- <task name='ValidateTask' taskType='None'>
+ <task name='Validate' taskType='None'>
+ <!-- seqflow to='IsValid' /-->
<execution-handler class='org.jboss.bpm.samples.airticket.ValidationHandler' />
<input-set>
<property>
@@ -28,13 +33,14 @@
</property>
</output-set>
</task>
- <exclusive-gateway name='ValidateGateway'>
- <seqflow conditionType='Expression' to='CheckAvailabilityTask'>
+ <exclusive-gateway name='IsValid'>
+ <seqflow conditionType='Expression' to='CheckAvailable'>
<condition lang='MVEL'>isReqDataValid == true</condition>
</seqflow>
- <seqflow conditionType='Default' to='SendInvalidTask' />
+ <seqflow conditionType='Default' to='SendInvalid' />
</exclusive-gateway>
- <task name='CheckAvailabilityTask' taskType='None'>
+ <task name='CheckAvailable' taskType='None'>
+ <!-- seqflow to='IsAvailable' /-->
<execution-handler class='org.jboss.bpm.samples.airticket.AvailabilityHandler' />
<input-set>
<property>
@@ -59,31 +65,40 @@
</property>
</output-set>
</task>
- <task name='SendInvalidTask' taskType='Send'>
+ <task name='SendInvalid' taskType='Send'>
+ <!-- seqflow to='ReceiveReq' /-->
<msgref nameRef='InvalidDataMsg' />
</task>
- <exclusive-gateway name='AvailabilityGateway'>
- <seqflow conditionType='Expression' to='SendOfferTask'>
+ <exclusive-gateway name='IsAvailable'>
+ <seqflow conditionType='Expression' to='SendOffer'>
<condition lang='MVEL'>isAvailable == true</condition>
</seqflow>
- <seqflow conditionType='Default' to='SendNotAvailableTask' />
+ <seqflow conditionType='Default' to='SendNotAvailable' />
</exclusive-gateway>
- <task name='SendOfferTask' taskType='Send'>
+ <task name='SendOffer' taskType='Send'>
+ <!-- seqflow to='ReceiveOrder' /-->
<msgref nameRef='OfferMsg' />
</task>
- <task name='SendNotAvailableTask' taskType='Send'>
+ <task name='SendNotAvailable' taskType='Send'>
+ <!-- seqflow to='ReceiveReq' /-->
<msgref nameRef='NotAvailableMsg' />
</task>
- <task name='ReceiveOrderTask' taskType='Receive'>
+ <task name='ReceiveOrder' taskType='Receive'>
+ <!-- seqflow to='IsAccepted' /-->
<msgref nameRef='AcceptOfferMsg' />
</task>
- <exclusive-gateway name='AcceptOfferGateway'>
- <seqflow conditionType='Expression' to='ParallelSplitGateway'>
+ <exclusive-gateway name='IsAccepted'>
+ <seqflow conditionType='Expression' to='Split'>
<condition lang='MVEL'>isOfferAccepted == true</condition>
</seqflow>
- <seqflow conditionType='Default' to='ReceiveReqTask' />
+ <seqflow conditionType='Default' to='ReceiveReq' />
</exclusive-gateway>
- <task name='CreditCardTask' taskType='None'>
+ <!-- parallel-gateway name='Split'>
+ <seqflow to='CreditCard' />
+ <seqflow to='Booking' />
+ </parallel-gateway-->
+ <task name='CreditCard' taskType='None'>
+ <!-- seqflow to='SyncJoin' /-->
<input-set>
<property>
<name>CreditCard</name>
@@ -96,7 +111,8 @@
</property>
</input-set>
</task>
- <task name='BookingTask' taskType='None'>
+ <task name='Booking' taskType='None'>
+ <!-- seqflow to='SyncJoin' /-->
<input-set>
<property>
<name>Name</name>
@@ -115,9 +131,14 @@
</property>
</input-set>
</task>
- <task name='SendConfirmTask' taskType='Send'>
+ <!-- parallel-gateway name='SyncJoin'>
+ <seqflow to='SendConfirm' />
+ </parallel-gateway-->
+ <task name='SendConfirm' taskType='Send'>
+ <!-- seqflow to='End' /-->
<msgref nameRef='ConfirmMsg' />
</task>
+ <!-- end name='End' /-->
<message name='ReqDataMsg'>
<property correlation='true'>
<name>Name</name>
@@ -136,7 +157,7 @@
</property>
</message>
<message name='InvalidDataMsg'>
- <to>jboss.bpm:test=testProcessMarshaller</to>
+ <to>jboss.bpm:client=AirticketTest</to>
<property correlation='true'>
<name>Name</name>
</property>
@@ -154,7 +175,7 @@
</property>
</message>
<message name='NotAvailableMsg'>
- <to>jboss.bpm:test=testProcessMarshaller</to>
+ <to>jboss.bpm:client=AirticketTest</to>
<property correlation='true'>
<name>Name</name>
</property>
@@ -172,7 +193,7 @@
</property>
</message>
<message name='OfferMsg'>
- <to>jboss.bpm:test=testProcessMarshaller</to>
+ <to>jboss.bpm:client=AirticketTest</to>
<property correlation='true'>
<name>Name</name>
</property>
@@ -204,7 +225,7 @@
</property>
</message>
<message name='ConfirmMsg'>
- <to>jboss.bpm:test=testProcessMarshaller</to>
+ <to>jboss.bpm:client=AirticketTest</to>
<property correlation='true'>
<name>Name</name>
</property>
Modified: jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket.bpmn
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket.bpmn 2008-08-02 17:00:12 UTC (rev 1808)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket.bpmn 2008-08-02 23:46:18 UTC (rev 1809)
@@ -2,23 +2,23 @@
<bpmn:BpmnDiagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:bpmn="http://stp.eclipse.org/bpmn" xmi:id="_iYxIQFhrEd2aHsyOaYt_3g" iD="_iYwhMFhrEd2aHsyOaYt_3g">
<pools xmi:type="bpmn:Pool" xmi:id="_dhOfoVhtEd2aHsyOaYt_3g" iD="_dhOfoFhtEd2aHsyOaYt_3g" name="Pool">
<vertices xmi:type="bpmn:Activity" xmi:id="_huULIVhtEd2aHsyOaYt_3g" iD="_huULIFhtEd2aHsyOaYt_3g" outgoingEdges="_iyzG8VhtEd2aHsyOaYt_3g" activityType="EventStartEmpty"/>
- <vertices xmi:type="bpmn:Activity" xmi:id="_lMlo0VhtEd2aHsyOaYt_3g" iD="_lMlo0FhtEd2aHsyOaYt_3g" outgoingEdges="_rsTeQVhtEd2aHsyOaYt_3g" incomingEdges="_efVRMVhuEd2aHsyOaYt_3g _r-90MVhwEd2aHsyOaYt_3g _1UWrsVhvEd2aHsyOaYt_3g _iyzG8VhtEd2aHsyOaYt_3g" name="ReceiveReq" activityType="Task"/>
- <vertices xmi:type="bpmn:Activity" xmi:id="_rsQa8VhtEd2aHsyOaYt_3g" iD="_rsQa8FhtEd2aHsyOaYt_3g" outgoingEdges="_zUIyUFhtEd2aHsyOaYt_3g _ApdYMVhvEd2aHsyOaYt_3g" incomingEdges="_rsTeQVhtEd2aHsyOaYt_3g" name=" Validate" activityType="GatewayDataBasedExclusive"/>
- <vertices xmi:type="bpmn:Activity" xmi:id="_zUDSwVhtEd2aHsyOaYt_3g" iD="_zUDSwFhtEd2aHsyOaYt_3g" outgoingEdges="_9Q4IQVhtEd2aHsyOaYt_3g" incomingEdges="_zUIyUFhtEd2aHsyOaYt_3g" name="CheckAvail" activityType="Task"/>
- <vertices xmi:type="bpmn:Activity" xmi:id="_9Q1sAFhtEd2aHsyOaYt_3g" iD="_9Q1E8FhtEd2aHsyOaYt_3g" outgoingEdges="_BdGREVhuEd2aHsyOaYt_3g _fHP64VhwEd2aHsyOaYt_3g" incomingEdges="_9Q4IQVhtEd2aHsyOaYt_3g" name="Available" activityType="GatewayDataBasedExclusive"/>
+ <vertices xmi:type="bpmn:Activity" xmi:id="_lMlo0VhtEd2aHsyOaYt_3g" iD="_lMlo0FhtEd2aHsyOaYt_3g" outgoingEdges="_7grf0WDaEd2jINLjV_7TQw" incomingEdges="_efVRMVhuEd2aHsyOaYt_3g _r-90MVhwEd2aHsyOaYt_3g _1UWrsVhvEd2aHsyOaYt_3g _iyzG8VhtEd2aHsyOaYt_3g" name="ReceiveReq" activityType="Task"/>
+ <vertices xmi:type="bpmn:Activity" xmi:id="_rsQa8VhtEd2aHsyOaYt_3g" iD="_rsQa8FhtEd2aHsyOaYt_3g" outgoingEdges="_zUIyUFhtEd2aHsyOaYt_3g _ApdYMVhvEd2aHsyOaYt_3g" incomingEdges="_8u-e8WDaEd2jINLjV_7TQw" name="IsValid" activityType="GatewayDataBasedExclusive"/>
+ <vertices xmi:type="bpmn:Activity" xmi:id="_zUDSwVhtEd2aHsyOaYt_3g" iD="_zUDSwFhtEd2aHsyOaYt_3g" outgoingEdges="_9Q4IQVhtEd2aHsyOaYt_3g" incomingEdges="_zUIyUFhtEd2aHsyOaYt_3g" name="CheckAvailable" activityType="Task"/>
+ <vertices xmi:type="bpmn:Activity" xmi:id="_9Q1sAFhtEd2aHsyOaYt_3g" iD="_9Q1E8FhtEd2aHsyOaYt_3g" outgoingEdges="_BdGREVhuEd2aHsyOaYt_3g _fHP64VhwEd2aHsyOaYt_3g" incomingEdges="_9Q4IQVhtEd2aHsyOaYt_3g" name="IsAvailable" activityType="GatewayDataBasedExclusive"/>
<vertices xmi:type="bpmn:Activity" xmi:id="_BdDNwVhuEd2aHsyOaYt_3g" iD="_BdDNwFhuEd2aHsyOaYt_3g" outgoingEdges="_tT3_YVh1Ed2aHsyOaYt_3g" incomingEdges="_BdGREVhuEd2aHsyOaYt_3g" name="SendOffer" activityType="Task"/>
- <vertices xmi:type="bpmn:Activity" xmi:id="_D-IqcVhuEd2aHsyOaYt_3g" iD="_D-IqcFhuEd2aHsyOaYt_3g" outgoingEdges="_lVOK8VhuEd2aHsyOaYt_3g _1UWrsVhvEd2aHsyOaYt_3g" incomingEdges="_waDtMVh1Ed2aHsyOaYt_3g" name="Accepted" activityType="GatewayDataBasedExclusive"/>
- <vertices xmi:type="bpmn:Activity" xmi:id="_T7iiUVhuEd2aHsyOaYt_3g" iD="_T7iiUFhuEd2aHsyOaYt_3g" outgoingEdges="_efVRMVhuEd2aHsyOaYt_3g" incomingEdges="_ApdYMVhvEd2aHsyOaYt_3g" name=" SendInvalid" activityType="Task"/>
- <vertices xmi:type="bpmn:Activity" xmi:id="_lVLHoVhuEd2aHsyOaYt_3g" iD="_lVLHoFhuEd2aHsyOaYt_3g" outgoingEdges="_VtHYMVhvEd2aHsyOaYt_3g _Ypm-gVhvEd2aHsyOaYt_3g" incomingEdges="_lVOK8VhuEd2aHsyOaYt_3g" activityType="GatewayParallel"/>
+ <vertices xmi:type="bpmn:Activity" xmi:id="_D-IqcVhuEd2aHsyOaYt_3g" iD="_D-IqcFhuEd2aHsyOaYt_3g" outgoingEdges="_lVOK8VhuEd2aHsyOaYt_3g _1UWrsVhvEd2aHsyOaYt_3g" incomingEdges="_waDtMVh1Ed2aHsyOaYt_3g" name="IsAccepted" activityType="GatewayDataBasedExclusive"/>
+ <vertices xmi:type="bpmn:Activity" xmi:id="_T7iiUVhuEd2aHsyOaYt_3g" iD="_T7iiUFhuEd2aHsyOaYt_3g" outgoingEdges="_efVRMVhuEd2aHsyOaYt_3g" incomingEdges="_ApdYMVhvEd2aHsyOaYt_3g" name="SendInvalid" activityType="Task"/>
+ <vertices xmi:type="bpmn:Activity" xmi:id="_lVLHoVhuEd2aHsyOaYt_3g" iD="_lVLHoFhuEd2aHsyOaYt_3g" outgoingEdges="_VtHYMVhvEd2aHsyOaYt_3g _Ypm-gVhvEd2aHsyOaYt_3g" incomingEdges="_lVOK8VhuEd2aHsyOaYt_3g" name="Split" activityType="GatewayParallel"/>
<vertices xmi:type="bpmn:Activity" xmi:id="_VtDt0VhvEd2aHsyOaYt_3g" iD="_VtDt0FhvEd2aHsyOaYt_3g" outgoingEdges="_Fj6DgVhwEd2aHsyOaYt_3g" incomingEdges="_VtHYMVhvEd2aHsyOaYt_3g" name="CreditCard" activityType="Task"/>
<vertices xmi:type="bpmn:Activity" xmi:id="_Ypj7MVhvEd2aHsyOaYt_3g" iD="_Ypj7MFhvEd2aHsyOaYt_3g" outgoingEdges="_GJUdsVhwEd2aHsyOaYt_3g" incomingEdges="_Ypm-gVhvEd2aHsyOaYt_3g" name="Booking" activityType="Task"/>
- <vertices xmi:type="bpmn:Activity" xmi:id="_Fj1LAVhwEd2aHsyOaYt_3g" iD="_Fj1LAFhwEd2aHsyOaYt_3g" outgoingEdges="_LXfLsVhwEd2aHsyOaYt_3g" incomingEdges="_Fj6DgVhwEd2aHsyOaYt_3g _GJUdsVhwEd2aHsyOaYt_3g" activityType="GatewayParallel"/>
+ <vertices xmi:type="bpmn:Activity" xmi:id="_Fj1LAVhwEd2aHsyOaYt_3g" iD="_Fj1LAFhwEd2aHsyOaYt_3g" outgoingEdges="_LXfLsVhwEd2aHsyOaYt_3g" incomingEdges="_Fj6DgVhwEd2aHsyOaYt_3g _GJUdsVhwEd2aHsyOaYt_3g" name="Join" activityType="GatewayParallel"/>
<vertices xmi:type="bpmn:Activity" xmi:id="_LXbhUVhwEd2aHsyOaYt_3g" iD="_LXbhUFhwEd2aHsyOaYt_3g" outgoingEdges="_QQQ4gVhwEd2aHsyOaYt_3g" incomingEdges="_LXfLsVhwEd2aHsyOaYt_3g" name="SendConfirm" activityType="Task"/>
- <vertices xmi:type="bpmn:Activity" xmi:id="_QQMAAVhwEd2aHsyOaYt_3g" iD="_QQMAAFhwEd2aHsyOaYt_3g" incomingEdges="_QQQ4gVhwEd2aHsyOaYt_3g" activityType="EventEndEmpty"/>
- <vertices xmi:type="bpmn:Activity" xmi:id="_fHKbUVhwEd2aHsyOaYt_3g" iD="_fHKbUFhwEd2aHsyOaYt_3g" outgoingEdges="_r-90MVhwEd2aHsyOaYt_3g" incomingEdges="_fHP64VhwEd2aHsyOaYt_3g" name=" SendNotAvail" activityType="Task"/>
+ <vertices xmi:type="bpmn:Activity" xmi:id="_QQMAAVhwEd2aHsyOaYt_3g" iD="_QQMAAFhwEd2aHsyOaYt_3g" incomingEdges="_QQQ4gVhwEd2aHsyOaYt_3g" name="End" activityType="EventEndEmpty"/>
+ <vertices xmi:type="bpmn:Activity" xmi:id="_fHKbUVhwEd2aHsyOaYt_3g" iD="_fHKbUFhwEd2aHsyOaYt_3g" outgoingEdges="_r-90MVhwEd2aHsyOaYt_3g" incomingEdges="_fHP64VhwEd2aHsyOaYt_3g" name="SendNotAvailable" activityType="Task"/>
<vertices xmi:type="bpmn:Activity" xmi:id="_tTzG4Fh1Ed2aHsyOaYt_3g" iD="_tTyf0Fh1Ed2aHsyOaYt_3g" outgoingEdges="_waDtMVh1Ed2aHsyOaYt_3g" incomingEdges="_tT3_YVh1Ed2aHsyOaYt_3g" name="ReceiveOrder" activityType="Task"/>
+ <vertices xmi:type="bpmn:Activity" xmi:id="_4Ph4IWDaEd2jINLjV_7TQw" iD="_4Ph4IGDaEd2jINLjV_7TQw" outgoingEdges="_8u-e8WDaEd2jINLjV_7TQw" incomingEdges="_7grf0WDaEd2jINLjV_7TQw" name="Validate"/>
<sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_iyzG8VhtEd2aHsyOaYt_3g" iD="_iyzG8FhtEd2aHsyOaYt_3g" source="_huULIVhtEd2aHsyOaYt_3g" target="_lMlo0VhtEd2aHsyOaYt_3g"/>
- <sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_rsTeQVhtEd2aHsyOaYt_3g" iD="_rsTeQFhtEd2aHsyOaYt_3g" source="_lMlo0VhtEd2aHsyOaYt_3g" target="_rsQa8VhtEd2aHsyOaYt_3g"/>
<sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_zUIyUFhtEd2aHsyOaYt_3g" iD="_zUILQFhtEd2aHsyOaYt_3g" source="_rsQa8VhtEd2aHsyOaYt_3g" target="_zUDSwVhtEd2aHsyOaYt_3g"/>
<sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_9Q4IQVhtEd2aHsyOaYt_3g" iD="_9Q4IQFhtEd2aHsyOaYt_3g" source="_zUDSwVhtEd2aHsyOaYt_3g" target="_9Q1sAFhtEd2aHsyOaYt_3g"/>
<sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_BdGREVhuEd2aHsyOaYt_3g" iD="_BdGREFhuEd2aHsyOaYt_3g" source="_9Q1sAFhtEd2aHsyOaYt_3g" target="_BdDNwVhuEd2aHsyOaYt_3g"/>
@@ -36,5 +36,7 @@
<sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_r-90MVhwEd2aHsyOaYt_3g" iD="_r-90MFhwEd2aHsyOaYt_3g" source="_fHKbUVhwEd2aHsyOaYt_3g" target="_lMlo0VhtEd2aHsyOaYt_3g"/>
<sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_tT3_YVh1Ed2aHsyOaYt_3g" iD="_tT3_YFh1Ed2aHsyOaYt_3g" source="_BdDNwVhuEd2aHsyOaYt_3g" target="_tTzG4Fh1Ed2aHsyOaYt_3g"/>
<sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_waDtMVh1Ed2aHsyOaYt_3g" iD="_waDtMFh1Ed2aHsyOaYt_3g" source="_tTzG4Fh1Ed2aHsyOaYt_3g" target="_D-IqcVhuEd2aHsyOaYt_3g"/>
+ <sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_7grf0WDaEd2jINLjV_7TQw" iD="_7grf0GDaEd2jINLjV_7TQw" source="_lMlo0VhtEd2aHsyOaYt_3g" target="_4Ph4IWDaEd2jINLjV_7TQw"/>
+ <sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_8u-e8WDaEd2jINLjV_7TQw" iD="_8u-e8GDaEd2jINLjV_7TQw" source="_4Ph4IWDaEd2jINLjV_7TQw" target="_rsQa8VhtEd2aHsyOaYt_3g"/>
</pools>
</bpmn:BpmnDiagram>
Modified: jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket.bpmn_diagram
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket.bpmn_diagram 2008-08-02 17:00:12 UTC (rev 1808)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket.bpmn_diagram 2008-08-02 23:46:18 UTC (rev 1809)
@@ -13,7 +13,7 @@
<styles xmi:type="notation:FillStyle" xmi:id="_huUyM1htEd2aHsyOaYt_3g"/>
<styles xmi:type="notation:LineStyle" xmi:id="_huUyNFhtEd2aHsyOaYt_3g" lineColor="0"/>
<element xmi:type="bpmn:Activity" href="airticket.bpmn#_huULIVhtEd2aHsyOaYt_3g"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_huUyNVhtEd2aHsyOaYt_3g" x="24" y="48"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_huUyNVhtEd2aHsyOaYt_3g" x="24" y="36"/>
</children>
<children xmi:type="notation:Node" xmi:id="_lMmP4FhtEd2aHsyOaYt_3g" type="2001">
<children xmi:type="notation:Node" xmi:id="_lMm28FhtEd2aHsyOaYt_3g" type="4001"/>
@@ -22,7 +22,7 @@
<styles xmi:type="notation:FillStyle" xmi:id="_lMmP41htEd2aHsyOaYt_3g"/>
<styles xmi:type="notation:LineStyle" xmi:id="_lMmP5FhtEd2aHsyOaYt_3g" lineColor="0"/>
<element xmi:type="bpmn:Activity" href="airticket.bpmn#_lMlo0VhtEd2aHsyOaYt_3g"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lMmP5VhtEd2aHsyOaYt_3g" x="96" y="84"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lMmP5VhtEd2aHsyOaYt_3g" x="96" y="60"/>
</children>
<children xmi:type="notation:Node" xmi:id="_rsRCAFhtEd2aHsyOaYt_3g" type="2001">
<children xmi:type="notation:Node" xmi:id="_rsRpEFhtEd2aHsyOaYt_3g" type="4001"/>
@@ -31,7 +31,7 @@
<styles xmi:type="notation:FillStyle" xmi:id="_rsRCA1htEd2aHsyOaYt_3g"/>
<styles xmi:type="notation:LineStyle" xmi:id="_rsRCBFhtEd2aHsyOaYt_3g" lineColor="0"/>
<element xmi:type="bpmn:Activity" href="airticket.bpmn#_rsQa8VhtEd2aHsyOaYt_3g"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rsRCBVhtEd2aHsyOaYt_3g" x="252" y="72"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rsRCBVhtEd2aHsyOaYt_3g" x="384" y="60"/>
</children>
<children xmi:type="notation:Node" xmi:id="_zUEg4FhtEd2aHsyOaYt_3g" type="2001">
<children xmi:type="notation:Node" xmi:id="_zUEg5lhtEd2aHsyOaYt_3g" type="4001"/>
@@ -40,7 +40,7 @@
<styles xmi:type="notation:FillStyle" xmi:id="_zUEg41htEd2aHsyOaYt_3g"/>
<styles xmi:type="notation:LineStyle" xmi:id="_zUEg5FhtEd2aHsyOaYt_3g" lineColor="0"/>
<element xmi:type="bpmn:Activity" href="airticket.bpmn#_zUDSwVhtEd2aHsyOaYt_3g"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zUEg5VhtEd2aHsyOaYt_3g" x="324"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zUEg5VhtEd2aHsyOaYt_3g" x="456"/>
</children>
<children xmi:type="notation:Node" xmi:id="_9Q1sAVhtEd2aHsyOaYt_3g" type="2001">
<children xmi:type="notation:Node" xmi:id="_9Q2TEFhtEd2aHsyOaYt_3g" type="4001"/>
@@ -49,7 +49,7 @@
<styles xmi:type="notation:FillStyle" xmi:id="_9Q1sBFhtEd2aHsyOaYt_3g"/>
<styles xmi:type="notation:LineStyle" xmi:id="_9Q1sBVhtEd2aHsyOaYt_3g" lineColor="0"/>
<element xmi:type="bpmn:Activity" href="airticket.bpmn#_9Q1sAFhtEd2aHsyOaYt_3g"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9Q1sBlhtEd2aHsyOaYt_3g" x="468" y="72"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9Q1sBlhtEd2aHsyOaYt_3g" x="600" y="72"/>
</children>
<children xmi:type="notation:Node" xmi:id="_BdD00FhuEd2aHsyOaYt_3g" type="2001">
<children xmi:type="notation:Node" xmi:id="_BdD01lhuEd2aHsyOaYt_3g" type="4001"/>
@@ -58,7 +58,7 @@
<styles xmi:type="notation:FillStyle" xmi:id="_BdD001huEd2aHsyOaYt_3g"/>
<styles xmi:type="notation:LineStyle" xmi:id="_BdD01FhuEd2aHsyOaYt_3g" lineColor="0"/>
<element xmi:type="bpmn:Activity" href="airticket.bpmn#_BdDNwVhuEd2aHsyOaYt_3g"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BdD01VhuEd2aHsyOaYt_3g" x="540"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BdD01VhuEd2aHsyOaYt_3g" x="672"/>
</children>
<children xmi:type="notation:Node" xmi:id="_D-J4kFhuEd2aHsyOaYt_3g" type="2001">
<children xmi:type="notation:Node" xmi:id="_D-KfoFhuEd2aHsyOaYt_3g" type="4001"/>
@@ -67,7 +67,7 @@
<styles xmi:type="notation:FillStyle" xmi:id="_D-J4k1huEd2aHsyOaYt_3g"/>
<styles xmi:type="notation:LineStyle" xmi:id="_D-J4lFhuEd2aHsyOaYt_3g" lineColor="0"/>
<element xmi:type="bpmn:Activity" href="airticket.bpmn#_D-IqcVhuEd2aHsyOaYt_3g"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D-J4lVhuEd2aHsyOaYt_3g" x="708" y="132"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D-J4lVhuEd2aHsyOaYt_3g" x="840" y="132"/>
</children>
<children xmi:type="notation:Node" xmi:id="_T7jwcFhuEd2aHsyOaYt_3g" type="2001">
<children xmi:type="notation:Node" xmi:id="_T7kXgFhuEd2aHsyOaYt_3g" type="4001"/>
@@ -76,7 +76,7 @@
<styles xmi:type="notation:FillStyle" xmi:id="_T7jwc1huEd2aHsyOaYt_3g"/>
<styles xmi:type="notation:LineStyle" xmi:id="_T7jwdFhuEd2aHsyOaYt_3g" lineColor="0"/>
<element xmi:type="bpmn:Activity" href="airticket.bpmn#_T7iiUVhuEd2aHsyOaYt_3g"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_T7jwdVhuEd2aHsyOaYt_3g" x="324" y="120"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_T7jwdVhuEd2aHsyOaYt_3g" x="456" y="120"/>
</children>
<children xmi:type="notation:Node" xmi:id="_lVLHolhuEd2aHsyOaYt_3g" type="2001">
<children xmi:type="notation:Node" xmi:id="_lVLuslhuEd2aHsyOaYt_3g" type="4001"/>
@@ -139,7 +139,7 @@
<styles xmi:type="notation:FillStyle" xmi:id="_fHLpc1hwEd2aHsyOaYt_3g"/>
<styles xmi:type="notation:LineStyle" xmi:id="_fHLpdFhwEd2aHsyOaYt_3g" lineColor="0"/>
<element xmi:type="bpmn:Activity" href="airticket.bpmn#_fHKbUVhwEd2aHsyOaYt_3g"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fHLpdVhwEd2aHsyOaYt_3g" x="540" y="120"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fHLpdVhwEd2aHsyOaYt_3g" x="672" y="120"/>
</children>
<children xmi:type="notation:Node" xmi:id="_tTzt8Fh1Ed2aHsyOaYt_3g" type="2001">
<children xmi:type="notation:Node" xmi:id="_tT0VAFh1Ed2aHsyOaYt_3g" type="4001"/>
@@ -148,8 +148,17 @@
<styles xmi:type="notation:FillStyle" xmi:id="_tTzt81h1Ed2aHsyOaYt_3g"/>
<styles xmi:type="notation:LineStyle" xmi:id="_tTzt9Fh1Ed2aHsyOaYt_3g" lineColor="0"/>
<element xmi:type="bpmn:Activity" href="airticket.bpmn#_tTzG4Fh1Ed2aHsyOaYt_3g"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tTzt9Vh1Ed2aHsyOaYt_3g" x="696"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tTzt9Vh1Ed2aHsyOaYt_3g" x="828"/>
</children>
+ <children xmi:type="notation:Node" xmi:id="_4PmwoGDaEd2jINLjV_7TQw" type="2001">
+ <children xmi:type="notation:Node" xmi:id="_4PrpIGDaEd2jINLjV_7TQw" type="4001"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_4PmwoWDaEd2jINLjV_7TQw" fontName="Arial"/>
+ <styles xmi:type="notation:DescriptionStyle" xmi:id="_4PmwomDaEd2jINLjV_7TQw"/>
+ <styles xmi:type="notation:FillStyle" xmi:id="_4Pmwo2DaEd2jINLjV_7TQw"/>
+ <styles xmi:type="notation:LineStyle" xmi:id="_4PmwpGDaEd2jINLjV_7TQw" lineColor="0"/>
+ <element xmi:type="bpmn:Activity" href="airticket.bpmn#_4Ph4IWDaEd2jINLjV_7TQw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4PmwpWDaEd2jINLjV_7TQw" x="240" y="60"/>
+ </children>
<styles xmi:type="notation:DrawerStyle" xmi:id="_dhSKAVhtEd2aHsyOaYt_3g"/>
<styles xmi:type="notation:SortingStyle" xmi:id="_dhSKAlhtEd2aHsyOaYt_3g"/>
<styles xmi:type="notation:FilteringStyle" xmi:id="_dhSKA1htEd2aHsyOaYt_3g"/>
@@ -159,7 +168,7 @@
<styles xmi:type="notation:FillStyle" xmi:id="_dhRi8VhtEd2aHsyOaYt_3g" fillColor="16771304"/>
<styles xmi:type="notation:LineStyle" xmi:id="_dhRi8lhtEd2aHsyOaYt_3g" lineColor="11119017"/>
<element xmi:type="bpmn:Pool" href="airticket.bpmn#_dhOfoVhtEd2aHsyOaYt_3g"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dhRi81htEd2aHsyOaYt_3g" x="16" y="24" width="1253" height="565"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dhRi81htEd2aHsyOaYt_3g" x="16" y="24" width="1017" height="565"/>
</children>
<styles xmi:type="notation:PageStyle" xmi:id="_iZDcIVhrEd2aHsyOaYt_3g"/>
<styles xmi:type="notation:GuideStyle" xmi:id="_iZDcIlhrEd2aHsyOaYt_3g"/>
@@ -177,18 +186,6 @@
<element xmi:type="bpmn:SequenceEdge" href="airticket.bpmn#_iyzG8VhtEd2aHsyOaYt_3g"/>
<bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_iy0VE1htEd2aHsyOaYt_3g" points="[0, 0, -30, -133]$[15, 0, -15, -133]$[15, 133, -15, 0]$[30, 133, 0, 0]"/>
</edges>
- <edges xmi:type="notation:Edge" xmi:id="_rsUFUFhtEd2aHsyOaYt_3g" type="3001" source="_lMmP4FhtEd2aHsyOaYt_3g" target="_rsRCAFhtEd2aHsyOaYt_3g">
- <children xmi:type="notation:Node" xmi:id="_rsUsYFhtEd2aHsyOaYt_3g" type="4012">
- <styles xmi:type="notation:FillStyle" xmi:id="_rsUsYVhtEd2aHsyOaYt_3g" fillColor="16776959"/>
- <styles xmi:type="notation:LineStyle" xmi:id="_rsUsYlhtEd2aHsyOaYt_3g" lineColor="16776959"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_rsUsY1htEd2aHsyOaYt_3g" y="-10"/>
- </children>
- <styles xmi:type="notation:RoutingStyle" xmi:id="_rsUFUVhtEd2aHsyOaYt_3g" routing="Rectilinear" smoothness="Normal" closestDistance="true"/>
- <styles xmi:type="notation:FontStyle" xmi:id="_rsUFUlhtEd2aHsyOaYt_3g" fontName="Arial"/>
- <styles xmi:type="notation:LineStyle" xmi:id="_rsUFU1htEd2aHsyOaYt_3g" lineColor="0"/>
- <element xmi:type="bpmn:SequenceEdge" href="airticket.bpmn#_rsTeQVhtEd2aHsyOaYt_3g"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rsUFVFhtEd2aHsyOaYt_3g" points="[-53, -16, 254, 73]$[-305, -89, 2, 0]"/>
- </edges>
<edges xmi:type="notation:Edge" xmi:id="_zUJZYFhtEd2aHsyOaYt_3g" type="3001" source="_rsRCAFhtEd2aHsyOaYt_3g" target="_zUEg4FhtEd2aHsyOaYt_3g">
<children xmi:type="notation:Node" xmi:id="_zUKAcFhtEd2aHsyOaYt_3g" type="4012">
<styles xmi:type="notation:FillStyle" xmi:id="_zUKAcVhtEd2aHsyOaYt_3g" fillColor="16776959"/>
@@ -393,4 +390,28 @@
<element xmi:type="bpmn:SequenceEdge" href="airticket.bpmn#_waDtMVh1Ed2aHsyOaYt_3g"/>
<bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_waE7VFh1Ed2aHsyOaYt_3g" points="[-8, 29, 8, -100]$[-40, 128, -24, -1]"/>
</edges>
+ <edges xmi:type="notation:Edge" xmi:id="_7gt8EGDaEd2jINLjV_7TQw" type="3001" source="_lMmP4FhtEd2aHsyOaYt_3g" target="_4PmwoGDaEd2jINLjV_7TQw">
+ <children xmi:type="notation:Node" xmi:id="_7gvxQGDaEd2jINLjV_7TQw" type="4012">
+ <styles xmi:type="notation:FillStyle" xmi:id="_7gvxQWDaEd2jINLjV_7TQw" fillColor="16776959"/>
+ <styles xmi:type="notation:LineStyle" xmi:id="_7gvxQmDaEd2jINLjV_7TQw" lineColor="16776959"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7gvxQ2DaEd2jINLjV_7TQw" y="-10"/>
+ </children>
+ <styles xmi:type="notation:RoutingStyle" xmi:id="_7gt8EWDaEd2jINLjV_7TQw" routing="Rectilinear" smoothness="Normal" closestDistance="true"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_7gt8EmDaEd2jINLjV_7TQw" fontName="Arial"/>
+ <styles xmi:type="notation:LineStyle" xmi:id="_7gt8E2DaEd2jINLjV_7TQw" lineColor="0"/>
+ <element xmi:type="bpmn:SequenceEdge" href="airticket.bpmn#_7grf0WDaEd2jINLjV_7TQw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7gt8FGDaEd2jINLjV_7TQw" points="[54, -3, -102, -3]$[103, -11, -53, -11]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_8vAUIGDaEd2jINLjV_7TQw" type="3001" source="_4PmwoGDaEd2jINLjV_7TQw" target="_rsRCAFhtEd2aHsyOaYt_3g">
+ <children xmi:type="notation:Node" xmi:id="_8vAUJWDaEd2jINLjV_7TQw" type="4012">
+ <styles xmi:type="notation:FillStyle" xmi:id="_8vA7MGDaEd2jINLjV_7TQw" fillColor="16776959"/>
+ <styles xmi:type="notation:LineStyle" xmi:id="_8vA7MWDaEd2jINLjV_7TQw" lineColor="16776959"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8vA7MmDaEd2jINLjV_7TQw" y="-10"/>
+ </children>
+ <styles xmi:type="notation:RoutingStyle" xmi:id="_8vAUIWDaEd2jINLjV_7TQw" routing="Rectilinear" smoothness="Normal" closestDistance="true"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_8vAUImDaEd2jINLjV_7TQw" fontName="Arial"/>
+ <styles xmi:type="notation:LineStyle" xmi:id="_8vAUI2DaEd2jINLjV_7TQw" lineColor="0"/>
+ <element xmi:type="bpmn:SequenceEdge" href="airticket.bpmn#_8u-e8WDaEd2jINLjV_7TQw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8vAUJGDaEd2jINLjV_7TQw" points="[54, -13, -50, 2]$[96, -33, -8, -18]"/>
+ </edges>
</notation:Diagram>
Modified: jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket.png
===================================================================
(Binary files differ)
Deleted: jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/describtion.txt
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/describtion.txt 2008-08-02 17:00:12 UTC (rev 1808)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/describtion.txt 2008-08-02 23:46:18 UTC (rev 1809)
@@ -1,19 +0,0 @@
-# $Id$
-#
-# A description/notes for the Airticket sample
-
-* FrontGateServlet receives a request
-* New Session starts the process
-* HomePage Task sends request form
-* ReceiveReq Task requires RequestData
-* FrontGateServlet sends RequestData to ReceiveReq Task
-* Validate ExclusiveGateway branches based on BPMN props
-* CheckAvail Task contacts airline for seat availability
-* Available ExclusiveGateway branches based on BPMN props
-* ReceiveOrder Task requires OrderData
-* Accept ExclusiveGateway branches based on BPMN props
-* Both CreditCard and Booking Task require OrderData
-* Process fails if OrderData requirement not sattisfied
-* Join waits for both Tasks to finish
-* SendConfirm Task sends confirmation
-* Process ends
Modified: jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/process/ProcessIntegrityTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/process/ProcessIntegrityTest.java 2008-08-02 17:00:12 UTC (rev 1808)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/process/ProcessIntegrityTest.java 2008-08-02 23:46:18 UTC (rev 1809)
@@ -92,20 +92,4 @@
assertTrue("Unexpected message: " + ex.getMessage(), ex.getMessage().indexOf("end event") > 0);
}
}
-
- public void testNodeNameUniqueness() throws Exception
- {
- try
- {
- // Create a Process through the ProcessBuilder
- ProcessBuilder builder = ProcessBuilderFactory.newInstance().newProcessBuilder();
- builder.addProcess(null).addStartEvent().addSequenceFlow("taskA").addTask("taskA").addSequenceFlow("end").
- addTask("taskA").addSequenceFlow("end").addEndEvent("end").getProcess(true);
- fail("InvalidProcessException expected");
- }
- catch (InvalidProcessException ex)
- {
- // expected;
- }
- }
}
17 years, 9 months
JBoss JBPM SVN: r1808 - jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10.
by do-not-reply@jboss.org
Author: thomas.diesler(a)jboss.com
Date: 2008-08-02 13:00:12 -0400 (Sat, 02 Aug 2008)
New Revision: 1808
Modified:
jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/DialectHandlerImpl.java
Log:
JDK5 style IOException
Modified: jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/DialectHandlerImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/DialectHandlerImpl.java 2008-08-02 16:48:00 UTC (rev 1807)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/DialectHandlerImpl.java 2008-08-02 17:00:12 UTC (rev 1808)
@@ -90,7 +90,9 @@
}
catch (JAXBException ex)
{
- throw new IOException("Cannot marschall: " + proc, ex);
+ IOException ioex = new IOException("Cannot marschall: " + proc);
+ ioex.initCause(ex);
+ throw ioex;
}
}
}
\ No newline at end of file
17 years, 9 months
JBoss JBPM SVN: r1807 - jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket.
by do-not-reply@jboss.org
Author: thomas.diesler(a)jboss.com
Date: 2008-08-02 12:48:00 -0400 (Sat, 02 Aug 2008)
New Revision: 1807
Added:
jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/STPProcessIncludeTest.java
Modified:
jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/ProcessMarshallerTest.java
Log:
Add BPMN include test
Modified: jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/ProcessMarshallerTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/ProcessMarshallerTest.java 2008-08-02 16:46:28 UTC (rev 1806)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/ProcessMarshallerTest.java 2008-08-02 16:48:00 UTC (rev 1807)
@@ -44,16 +44,21 @@
*/
public class ProcessMarshallerTest extends DefaultEngineTestCase
{
+ /**
+ * Build the process through a ProcessBuilder.
+ * Marshall it through the DialectHandler.
+ * Compare the output with expected file content.
+ */
public void testProcessMarshaller() throws Exception
{
AirticketProcessBuilder builder = new AirticketProcessBuilder(getMessageListenerID());
Process proc = builder.buildProcess();
ProcessManager pm = ProcessManager.locateProcessManager();
- DialectHandler dialect = pm.getDialectHandler("urn:bpm.jboss:pdl-0.1");
+ DialectHandler dh = pm.getDialectHandler("urn:bpm.jboss:pdl-0.1");
StringWriter strwr = new StringWriter();
- dialect.marshallProcess(proc, strwr);
+ dh.marshallProcess(proc, strwr);
String procXML = strwr.toString();
Element wasEl = DOMUtils.parse(new ByteArrayInputStream(procXML.getBytes()));
@@ -63,6 +68,7 @@
Element expEl = DOMUtils.parse(expURL.openStream());
String expStr = DOMWriter.printNode(expEl, true);
+ // Write the file for debugging
if (expStr.equals(wasStr) == false)
{
FileWriter fileWriter = new FileWriter("airticket-was-api10.xml");
@@ -73,16 +79,20 @@
assertEquals(expStr, wasStr);
}
+ /**
+ * Build the process through the ProcessManager.
+ * Marshall it through the DialectHandler.
+ * Compare the output with expected file content.
+ */
public void testProcessUnMarshaller() throws Exception
{
+ URL expURL = getResourceURL("samples/airticket/airticket-api10.xml");
ProcessManager pm = ProcessManager.locateProcessManager();
- DialectHandler dialect = pm.getDialectHandler("urn:bpm.jboss:pdl-0.1");
+ Process proc = pm.createProcess(expURL);
- URL expURL = getResourceURL("samples/airticket/airticket-api10.xml");
- Process proc = dialect.createProcess(expURL, false);
-
StringWriter strwr = new StringWriter();
- dialect.marshallProcess(proc, strwr);
+ DialectHandler dh = pm.getDialectHandler("urn:bpm.jboss:pdl-0.1");
+ dh.marshallProcess(proc, strwr);
String procXML = strwr.toString();
Element wasEl = DOMUtils.parse(new ByteArrayInputStream(procXML.getBytes()));
Added: jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/STPProcessIncludeTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/STPProcessIncludeTest.java (rev 0)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/STPProcessIncludeTest.java 2008-08-02 16:48:00 UTC (rev 1807)
@@ -0,0 +1,72 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.bpm.samples.airticket;
+
+// $Id$
+
+import java.io.ByteArrayInputStream;
+import java.io.StringWriter;
+import java.net.URL;
+
+import org.jboss.bpm.client.DialectHandler;
+import org.jboss.bpm.client.ProcessManager;
+import org.jboss.bpm.model.Process;
+import org.jboss.bpm.test.DefaultEngineTestCase;
+import org.jboss.util.xml.DOMUtils;
+import org.jboss.util.xml.DOMWriter;
+import org.w3c.dom.Element;
+
+/**
+ * Test the Airticket process marshaller
+ *
+ * @author thomas.diesler(a)jboss.com
+ * @since 03-Jul-2008
+ */
+public class STPProcessIncludeTest extends DefaultEngineTestCase
+{
+ /**
+ * Build the process through the ProcessManager. Uses an process definition with an include of an STP process.
+ * Marshall it through the DialectHandler. Compare the output with expected file content.
+ */
+ public void testBPMNProcessMerge() throws Exception
+ {
+ URL bpmnURL = getResourceURL("samples/airticket/airticket-stp-api10.xml");
+ ProcessManager pm = ProcessManager.locateProcessManager();
+ Process proc = pm.createProcess(bpmnURL);
+
+ StringWriter strwr = new StringWriter();
+ DialectHandler dh = pm.getDialectHandler("urn:bpm.jboss:pdl-0.1");
+ dh.marshallProcess(proc, strwr);
+ String procXML = strwr.toString();
+
+ Element wasEl = DOMUtils.parse(new ByteArrayInputStream(procXML.getBytes()));
+ String wasStr = DOMWriter.printNode(wasEl, true);
+
+ URL expURL = getResourceURL("samples/airticket/airticket-api10.xml");
+ Element expEl = DOMUtils.parse(expURL.openStream());
+ String expStr = DOMWriter.printNode(expEl, true);
+
+ // System.out.println(expStr);
+ // System.out.println(wasStr);
+ assertEquals(expStr, wasStr);
+ }
+}
\ No newline at end of file
Property changes on: jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/STPProcessIncludeTest.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
17 years, 9 months
JBoss JBPM SVN: r1806 - jbossbpm/spec/trunk/modules/dialects/stp/src/main/java/org/jboss/bpm/dialect/stp.
by do-not-reply@jboss.org
Author: thomas.diesler(a)jboss.com
Date: 2008-08-02 12:46:28 -0400 (Sat, 02 Aug 2008)
New Revision: 1806
Modified:
jbossbpm/spec/trunk/modules/dialects/stp/src/main/java/org/jboss/bpm/dialect/stp/DialectHandlerImpl.java
jbossbpm/spec/trunk/modules/dialects/stp/src/main/java/org/jboss/bpm/dialect/stp/ProcessUnmarshaller.java
Log:
Optional proc init
Modified: jbossbpm/spec/trunk/modules/dialects/stp/src/main/java/org/jboss/bpm/dialect/stp/DialectHandlerImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/stp/src/main/java/org/jboss/bpm/dialect/stp/DialectHandlerImpl.java 2008-08-02 16:46:05 UTC (rev 1805)
+++ jbossbpm/spec/trunk/modules/dialects/stp/src/main/java/org/jboss/bpm/dialect/stp/DialectHandlerImpl.java 2008-08-02 16:46:28 UTC (rev 1806)
@@ -55,7 +55,7 @@
try
{
ProcessUnmarshaller unmarschaller = new ProcessUnmarshaller();
- Process proc = unmarschaller.unmarshallProcess(new ByteArrayInputStream(pXML.getBytes()));
+ Process proc = unmarschaller.unmarshallProcess(new ByteArrayInputStream(pXML.getBytes()), isInclude);
return proc;
}
catch (JAXBException ex)
@@ -69,7 +69,7 @@
try
{
ProcessUnmarshaller unmarschaller = new ProcessUnmarshaller();
- Process proc = unmarschaller.unmarshallProcess(pURL.openStream());
+ Process proc = unmarschaller.unmarshallProcess(pURL.openStream(), isInclude);
return proc;
}
catch (JAXBException ex)
Modified: jbossbpm/spec/trunk/modules/dialects/stp/src/main/java/org/jboss/bpm/dialect/stp/ProcessUnmarshaller.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/stp/src/main/java/org/jboss/bpm/dialect/stp/ProcessUnmarshaller.java 2008-08-02 16:46:05 UTC (rev 1805)
+++ jbossbpm/spec/trunk/modules/dialects/stp/src/main/java/org/jboss/bpm/dialect/stp/ProcessUnmarshaller.java 2008-08-02 16:46:28 UTC (rev 1806)
@@ -66,7 +66,7 @@
private List<Activity> activities = new ArrayList<Activity>();
@SuppressWarnings("unchecked")
- public Process unmarshallProcess(InputStream xml) throws JAXBException
+ public Process unmarshallProcess(InputStream xml, boolean isInclude) throws JAXBException
{
JAXBContext jaxbContext = JAXBContext.newInstance(ObjectFactory.class);
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
@@ -133,7 +133,8 @@
adaptActivity(builder, stpActivity);
}
- return builder.getProcess(true);
+ Process proc = builder.getProcess(!isInclude);
+ return proc;
}
private ProcessBuilder adaptDiagram(BpmnDiagram bpmnDiagram)
17 years, 9 months
JBoss JBPM SVN: r1805 - jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket.
by do-not-reply@jboss.org
Author: thomas.diesler(a)jboss.com
Date: 2008-08-02 12:46:05 -0400 (Sat, 02 Aug 2008)
New Revision: 1805
Added:
jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket-stp-api10.xml
Modified:
jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket.bpmn
jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket.bpmn_diagram
Log:
Add bpmn include
Added: jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket-stp-api10.xml
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket-stp-api10.xml (rev 0)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket-stp-api10.xml 2008-08-02 16:46:05 UTC (rev 1805)
@@ -0,0 +1,227 @@
+<ns2:process name='Airticket' xmlns:ns2='urn:bpm.jboss:pdl-0.1'>
+ <include namespace="http://stp.eclipse.org/bpmn" location="samples/airticket/airticket.bpmn" />
+ <task name='ReceiveReqTask' taskType='Receive'>
+ <msgref nameRef='ReqDataMsg' />
+ </task>
+ <task name='ValidateTask' taskType='None'>
+ <execution-handler class='org.jboss.bpm.samples.airticket.ValidationHandler' />
+ <input-set>
+ <property>
+ <name>Name</name>
+ </property>
+ <property>
+ <name>From</name>
+ </property>
+ <property>
+ <name>To</name>
+ </property>
+ <property>
+ <name>Date</name>
+ </property>
+ <property>
+ <name>Seats</name>
+ </property>
+ </input-set>
+ <output-set>
+ <property>
+ <name>isReqDataValid</name>
+ </property>
+ </output-set>
+ </task>
+ <exclusive-gateway name='ValidateGateway'>
+ <seqflow conditionType='Expression' to='CheckAvailabilityTask'>
+ <condition lang='MVEL'>isReqDataValid == true</condition>
+ </seqflow>
+ <seqflow conditionType='Default' to='SendInvalidTask' />
+ </exclusive-gateway>
+ <task name='CheckAvailabilityTask' taskType='None'>
+ <execution-handler class='org.jboss.bpm.samples.airticket.AvailabilityHandler' />
+ <input-set>
+ <property>
+ <name>From</name>
+ </property>
+ <property>
+ <name>To</name>
+ </property>
+ <property>
+ <name>Date</name>
+ </property>
+ <property>
+ <name>Seats</name>
+ </property>
+ </input-set>
+ <output-set>
+ <property>
+ <name>isAvailable</name>
+ </property>
+ <property>
+ <name>Price</name>
+ </property>
+ </output-set>
+ </task>
+ <task name='SendInvalidTask' taskType='Send'>
+ <msgref nameRef='InvalidDataMsg' />
+ </task>
+ <exclusive-gateway name='AvailabilityGateway'>
+ <seqflow conditionType='Expression' to='SendOfferTask'>
+ <condition lang='MVEL'>isAvailable == true</condition>
+ </seqflow>
+ <seqflow conditionType='Default' to='SendNotAvailableTask' />
+ </exclusive-gateway>
+ <task name='SendOfferTask' taskType='Send'>
+ <msgref nameRef='OfferMsg' />
+ </task>
+ <task name='SendNotAvailableTask' taskType='Send'>
+ <msgref nameRef='NotAvailableMsg' />
+ </task>
+ <task name='ReceiveOrderTask' taskType='Receive'>
+ <msgref nameRef='AcceptOfferMsg' />
+ </task>
+ <exclusive-gateway name='AcceptOfferGateway'>
+ <seqflow conditionType='Expression' to='ParallelSplitGateway'>
+ <condition lang='MVEL'>isOfferAccepted == true</condition>
+ </seqflow>
+ <seqflow conditionType='Default' to='ReceiveReqTask' />
+ </exclusive-gateway>
+ <task name='CreditCardTask' taskType='None'>
+ <input-set>
+ <property>
+ <name>CreditCard</name>
+ </property>
+ <property>
+ <name>Expire</name>
+ </property>
+ <property>
+ <name>Price</name>
+ </property>
+ </input-set>
+ </task>
+ <task name='BookingTask' taskType='None'>
+ <input-set>
+ <property>
+ <name>Name</name>
+ </property>
+ <property>
+ <name>From</name>
+ </property>
+ <property>
+ <name>To</name>
+ </property>
+ <property>
+ <name>Date</name>
+ </property>
+ <property>
+ <name>Seats</name>
+ </property>
+ </input-set>
+ </task>
+ <task name='SendConfirmTask' taskType='Send'>
+ <msgref nameRef='ConfirmMsg' />
+ </task>
+ <message name='ReqDataMsg'>
+ <property correlation='true'>
+ <name>Name</name>
+ </property>
+ <property correlation='true'>
+ <name>From</name>
+ </property>
+ <property correlation='true'>
+ <name>To</name>
+ </property>
+ <property correlation='true'>
+ <name>Date</name>
+ </property>
+ <property correlation='true'>
+ <name>Seats</name>
+ </property>
+ </message>
+ <message name='InvalidDataMsg'>
+ <to>jboss.bpm:test=testProcessMarshaller</to>
+ <property correlation='true'>
+ <name>Name</name>
+ </property>
+ <property correlation='true'>
+ <name>From</name>
+ </property>
+ <property correlation='true'>
+ <name>To</name>
+ </property>
+ <property correlation='true'>
+ <name>Date</name>
+ </property>
+ <property correlation='true'>
+ <name>Seats</name>
+ </property>
+ </message>
+ <message name='NotAvailableMsg'>
+ <to>jboss.bpm:test=testProcessMarshaller</to>
+ <property correlation='true'>
+ <name>Name</name>
+ </property>
+ <property correlation='true'>
+ <name>From</name>
+ </property>
+ <property correlation='true'>
+ <name>To</name>
+ </property>
+ <property correlation='true'>
+ <name>Date</name>
+ </property>
+ <property correlation='true'>
+ <name>Seats</name>
+ </property>
+ </message>
+ <message name='OfferMsg'>
+ <to>jboss.bpm:test=testProcessMarshaller</to>
+ <property correlation='true'>
+ <name>Name</name>
+ </property>
+ <property correlation='true'>
+ <name>From</name>
+ </property>
+ <property correlation='true'>
+ <name>To</name>
+ </property>
+ <property correlation='true'>
+ <name>Date</name>
+ </property>
+ <property correlation='true'>
+ <name>Seats</name>
+ </property>
+ <property correlation='true'>
+ <name>Price</name>
+ </property>
+ </message>
+ <message name='AcceptOfferMsg'>
+ <property correlation='true'>
+ <name>CreditCard</name>
+ </property>
+ <property correlation='true'>
+ <name>Expire</name>
+ </property>
+ <property correlation='true'>
+ <name>isOfferAccepted</name>
+ </property>
+ </message>
+ <message name='ConfirmMsg'>
+ <to>jboss.bpm:test=testProcessMarshaller</to>
+ <property correlation='true'>
+ <name>Name</name>
+ </property>
+ <property correlation='true'>
+ <name>From</name>
+ </property>
+ <property correlation='true'>
+ <name>To</name>
+ </property>
+ <property correlation='true'>
+ <name>Date</name>
+ </property>
+ <property correlation='true'>
+ <name>Seats</name>
+ </property>
+ <property correlation='true'>
+ <name>Price</name>
+ </property>
+ </message>
+</ns2:process>
\ No newline at end of file
Property changes on: jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket-stp-api10.xml
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Modified: jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket.bpmn
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket.bpmn 2008-08-02 15:47:06 UTC (rev 1804)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket.bpmn 2008-08-02 16:46:05 UTC (rev 1805)
@@ -2,8 +2,7 @@
<bpmn:BpmnDiagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:bpmn="http://stp.eclipse.org/bpmn" xmi:id="_iYxIQFhrEd2aHsyOaYt_3g" iD="_iYwhMFhrEd2aHsyOaYt_3g">
<pools xmi:type="bpmn:Pool" xmi:id="_dhOfoVhtEd2aHsyOaYt_3g" iD="_dhOfoFhtEd2aHsyOaYt_3g" name="Pool">
<vertices xmi:type="bpmn:Activity" xmi:id="_huULIVhtEd2aHsyOaYt_3g" iD="_huULIFhtEd2aHsyOaYt_3g" outgoingEdges="_iyzG8VhtEd2aHsyOaYt_3g" activityType="EventStartEmpty"/>
- <vertices xmi:type="bpmn:Activity" xmi:id="_iyPtUVhtEd2aHsyOaYt_3g" iD="_iyPtUFhtEd2aHsyOaYt_3g" outgoingEdges="_lMqhUFhtEd2aHsyOaYt_3g" incomingEdges="_iyzG8VhtEd2aHsyOaYt_3g _1UWrsVhvEd2aHsyOaYt_3g" name="HomePage" activityType="Task"/>
- <vertices xmi:type="bpmn:Activity" xmi:id="_lMlo0VhtEd2aHsyOaYt_3g" iD="_lMlo0FhtEd2aHsyOaYt_3g" outgoingEdges="_rsTeQVhtEd2aHsyOaYt_3g" incomingEdges="_lMqhUFhtEd2aHsyOaYt_3g _efVRMVhuEd2aHsyOaYt_3g _r-90MVhwEd2aHsyOaYt_3g" name="ReceiveReq" activityType="Task"/>
+ <vertices xmi:type="bpmn:Activity" xmi:id="_lMlo0VhtEd2aHsyOaYt_3g" iD="_lMlo0FhtEd2aHsyOaYt_3g" outgoingEdges="_rsTeQVhtEd2aHsyOaYt_3g" incomingEdges="_efVRMVhuEd2aHsyOaYt_3g _r-90MVhwEd2aHsyOaYt_3g _1UWrsVhvEd2aHsyOaYt_3g _iyzG8VhtEd2aHsyOaYt_3g" name="ReceiveReq" activityType="Task"/>
<vertices xmi:type="bpmn:Activity" xmi:id="_rsQa8VhtEd2aHsyOaYt_3g" iD="_rsQa8FhtEd2aHsyOaYt_3g" outgoingEdges="_zUIyUFhtEd2aHsyOaYt_3g _ApdYMVhvEd2aHsyOaYt_3g" incomingEdges="_rsTeQVhtEd2aHsyOaYt_3g" name=" Validate" activityType="GatewayDataBasedExclusive"/>
<vertices xmi:type="bpmn:Activity" xmi:id="_zUDSwVhtEd2aHsyOaYt_3g" iD="_zUDSwFhtEd2aHsyOaYt_3g" outgoingEdges="_9Q4IQVhtEd2aHsyOaYt_3g" incomingEdges="_zUIyUFhtEd2aHsyOaYt_3g" name="CheckAvail" activityType="Task"/>
<vertices xmi:type="bpmn:Activity" xmi:id="_9Q1sAFhtEd2aHsyOaYt_3g" iD="_9Q1E8FhtEd2aHsyOaYt_3g" outgoingEdges="_BdGREVhuEd2aHsyOaYt_3g _fHP64VhwEd2aHsyOaYt_3g" incomingEdges="_9Q4IQVhtEd2aHsyOaYt_3g" name="Available" activityType="GatewayDataBasedExclusive"/>
@@ -18,8 +17,7 @@
<vertices xmi:type="bpmn:Activity" xmi:id="_QQMAAVhwEd2aHsyOaYt_3g" iD="_QQMAAFhwEd2aHsyOaYt_3g" incomingEdges="_QQQ4gVhwEd2aHsyOaYt_3g" activityType="EventEndEmpty"/>
<vertices xmi:type="bpmn:Activity" xmi:id="_fHKbUVhwEd2aHsyOaYt_3g" iD="_fHKbUFhwEd2aHsyOaYt_3g" outgoingEdges="_r-90MVhwEd2aHsyOaYt_3g" incomingEdges="_fHP64VhwEd2aHsyOaYt_3g" name=" SendNotAvail" activityType="Task"/>
<vertices xmi:type="bpmn:Activity" xmi:id="_tTzG4Fh1Ed2aHsyOaYt_3g" iD="_tTyf0Fh1Ed2aHsyOaYt_3g" outgoingEdges="_waDtMVh1Ed2aHsyOaYt_3g" incomingEdges="_tT3_YVh1Ed2aHsyOaYt_3g" name="ReceiveOrder" activityType="Task"/>
- <sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_iyzG8VhtEd2aHsyOaYt_3g" iD="_iyzG8FhtEd2aHsyOaYt_3g" source="_huULIVhtEd2aHsyOaYt_3g" target="_iyPtUVhtEd2aHsyOaYt_3g"/>
- <sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_lMqhUFhtEd2aHsyOaYt_3g" iD="_lMp6QFhtEd2aHsyOaYt_3g" source="_iyPtUVhtEd2aHsyOaYt_3g" target="_lMlo0VhtEd2aHsyOaYt_3g"/>
+ <sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_iyzG8VhtEd2aHsyOaYt_3g" iD="_iyzG8FhtEd2aHsyOaYt_3g" source="_huULIVhtEd2aHsyOaYt_3g" target="_lMlo0VhtEd2aHsyOaYt_3g"/>
<sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_rsTeQVhtEd2aHsyOaYt_3g" iD="_rsTeQFhtEd2aHsyOaYt_3g" source="_lMlo0VhtEd2aHsyOaYt_3g" target="_rsQa8VhtEd2aHsyOaYt_3g"/>
<sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_zUIyUFhtEd2aHsyOaYt_3g" iD="_zUILQFhtEd2aHsyOaYt_3g" source="_rsQa8VhtEd2aHsyOaYt_3g" target="_zUDSwVhtEd2aHsyOaYt_3g"/>
<sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_9Q4IQVhtEd2aHsyOaYt_3g" iD="_9Q4IQFhtEd2aHsyOaYt_3g" source="_zUDSwVhtEd2aHsyOaYt_3g" target="_9Q1sAFhtEd2aHsyOaYt_3g"/>
@@ -29,7 +27,7 @@
<sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_ApdYMVhvEd2aHsyOaYt_3g" iD="_ApdYMFhvEd2aHsyOaYt_3g" source="_rsQa8VhtEd2aHsyOaYt_3g" target="_T7iiUVhuEd2aHsyOaYt_3g"/>
<sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_VtHYMVhvEd2aHsyOaYt_3g" iD="_VtHYMFhvEd2aHsyOaYt_3g" source="_lVLHoVhuEd2aHsyOaYt_3g" target="_VtDt0VhvEd2aHsyOaYt_3g"/>
<sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_Ypm-gVhvEd2aHsyOaYt_3g" iD="_Ypm-gFhvEd2aHsyOaYt_3g" source="_lVLHoVhuEd2aHsyOaYt_3g" target="_Ypj7MVhvEd2aHsyOaYt_3g"/>
- <sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_1UWrsVhvEd2aHsyOaYt_3g" iD="_1UWrsFhvEd2aHsyOaYt_3g" source="_D-IqcVhuEd2aHsyOaYt_3g" target="_iyPtUVhtEd2aHsyOaYt_3g"/>
+ <sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_1UWrsVhvEd2aHsyOaYt_3g" iD="_1UWrsFhvEd2aHsyOaYt_3g" source="_D-IqcVhuEd2aHsyOaYt_3g" target="_lMlo0VhtEd2aHsyOaYt_3g"/>
<sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_Fj6DgVhwEd2aHsyOaYt_3g" iD="_Fj6DgFhwEd2aHsyOaYt_3g" source="_VtDt0VhvEd2aHsyOaYt_3g" target="_Fj1LAVhwEd2aHsyOaYt_3g"/>
<sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_GJUdsVhwEd2aHsyOaYt_3g" iD="_GJUdsFhwEd2aHsyOaYt_3g" source="_Ypj7MVhvEd2aHsyOaYt_3g" target="_Fj1LAVhwEd2aHsyOaYt_3g"/>
<sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_LXfLsVhwEd2aHsyOaYt_3g" iD="_LXfLsFhwEd2aHsyOaYt_3g" source="_Fj1LAVhwEd2aHsyOaYt_3g" target="_LXbhUVhwEd2aHsyOaYt_3g"/>
Modified: jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket.bpmn_diagram
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket.bpmn_diagram 2008-08-02 15:47:06 UTC (rev 1804)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket.bpmn_diagram 2008-08-02 16:46:05 UTC (rev 1805)
@@ -13,17 +13,8 @@
<styles xmi:type="notation:FillStyle" xmi:id="_huUyM1htEd2aHsyOaYt_3g"/>
<styles xmi:type="notation:LineStyle" xmi:id="_huUyNFhtEd2aHsyOaYt_3g" lineColor="0"/>
<element xmi:type="bpmn:Activity" href="airticket.bpmn#_huULIVhtEd2aHsyOaYt_3g"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_huUyNVhtEd2aHsyOaYt_3g" y="96"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_huUyNVhtEd2aHsyOaYt_3g" x="24" y="48"/>
</children>
- <children xmi:type="notation:Node" xmi:id="_iyQUYFhtEd2aHsyOaYt_3g" type="2001">
- <children xmi:type="notation:Node" xmi:id="_iyQ7cFhtEd2aHsyOaYt_3g" type="4001"/>
- <styles xmi:type="notation:FontStyle" xmi:id="_iyQUYVhtEd2aHsyOaYt_3g" fontName="Arial"/>
- <styles xmi:type="notation:DescriptionStyle" xmi:id="_iyQUYlhtEd2aHsyOaYt_3g"/>
- <styles xmi:type="notation:FillStyle" xmi:id="_iyQUY1htEd2aHsyOaYt_3g"/>
- <styles xmi:type="notation:LineStyle" xmi:id="_iyQUZFhtEd2aHsyOaYt_3g" lineColor="0"/>
- <element xmi:type="bpmn:Activity" href="airticket.bpmn#_iyPtUVhtEd2aHsyOaYt_3g"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iyQUZVhtEd2aHsyOaYt_3g" x="60" y="84"/>
- </children>
<children xmi:type="notation:Node" xmi:id="_lMmP4FhtEd2aHsyOaYt_3g" type="2001">
<children xmi:type="notation:Node" xmi:id="_lMm28FhtEd2aHsyOaYt_3g" type="4001"/>
<styles xmi:type="notation:FontStyle" xmi:id="_lMmP4VhtEd2aHsyOaYt_3g" fontName="Arial"/>
@@ -31,7 +22,7 @@
<styles xmi:type="notation:FillStyle" xmi:id="_lMmP41htEd2aHsyOaYt_3g"/>
<styles xmi:type="notation:LineStyle" xmi:id="_lMmP5FhtEd2aHsyOaYt_3g" lineColor="0"/>
<element xmi:type="bpmn:Activity" href="airticket.bpmn#_lMlo0VhtEd2aHsyOaYt_3g"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lMmP5VhtEd2aHsyOaYt_3g" x="204" y="84"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lMmP5VhtEd2aHsyOaYt_3g" x="96" y="84"/>
</children>
<children xmi:type="notation:Node" xmi:id="_rsRCAFhtEd2aHsyOaYt_3g" type="2001">
<children xmi:type="notation:Node" xmi:id="_rsRpEFhtEd2aHsyOaYt_3g" type="4001"/>
@@ -40,7 +31,7 @@
<styles xmi:type="notation:FillStyle" xmi:id="_rsRCA1htEd2aHsyOaYt_3g"/>
<styles xmi:type="notation:LineStyle" xmi:id="_rsRCBFhtEd2aHsyOaYt_3g" lineColor="0"/>
<element xmi:type="bpmn:Activity" href="airticket.bpmn#_rsQa8VhtEd2aHsyOaYt_3g"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rsRCBVhtEd2aHsyOaYt_3g" x="360" y="72"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rsRCBVhtEd2aHsyOaYt_3g" x="252" y="72"/>
</children>
<children xmi:type="notation:Node" xmi:id="_zUEg4FhtEd2aHsyOaYt_3g" type="2001">
<children xmi:type="notation:Node" xmi:id="_zUEg5lhtEd2aHsyOaYt_3g" type="4001"/>
@@ -49,7 +40,7 @@
<styles xmi:type="notation:FillStyle" xmi:id="_zUEg41htEd2aHsyOaYt_3g"/>
<styles xmi:type="notation:LineStyle" xmi:id="_zUEg5FhtEd2aHsyOaYt_3g" lineColor="0"/>
<element xmi:type="bpmn:Activity" href="airticket.bpmn#_zUDSwVhtEd2aHsyOaYt_3g"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zUEg5VhtEd2aHsyOaYt_3g" x="432"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zUEg5VhtEd2aHsyOaYt_3g" x="324"/>
</children>
<children xmi:type="notation:Node" xmi:id="_9Q1sAVhtEd2aHsyOaYt_3g" type="2001">
<children xmi:type="notation:Node" xmi:id="_9Q2TEFhtEd2aHsyOaYt_3g" type="4001"/>
@@ -58,7 +49,7 @@
<styles xmi:type="notation:FillStyle" xmi:id="_9Q1sBFhtEd2aHsyOaYt_3g"/>
<styles xmi:type="notation:LineStyle" xmi:id="_9Q1sBVhtEd2aHsyOaYt_3g" lineColor="0"/>
<element xmi:type="bpmn:Activity" href="airticket.bpmn#_9Q1sAFhtEd2aHsyOaYt_3g"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9Q1sBlhtEd2aHsyOaYt_3g" x="576" y="72"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9Q1sBlhtEd2aHsyOaYt_3g" x="468" y="72"/>
</children>
<children xmi:type="notation:Node" xmi:id="_BdD00FhuEd2aHsyOaYt_3g" type="2001">
<children xmi:type="notation:Node" xmi:id="_BdD01lhuEd2aHsyOaYt_3g" type="4001"/>
@@ -67,7 +58,7 @@
<styles xmi:type="notation:FillStyle" xmi:id="_BdD001huEd2aHsyOaYt_3g"/>
<styles xmi:type="notation:LineStyle" xmi:id="_BdD01FhuEd2aHsyOaYt_3g" lineColor="0"/>
<element xmi:type="bpmn:Activity" href="airticket.bpmn#_BdDNwVhuEd2aHsyOaYt_3g"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BdD01VhuEd2aHsyOaYt_3g" x="648"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BdD01VhuEd2aHsyOaYt_3g" x="540"/>
</children>
<children xmi:type="notation:Node" xmi:id="_D-J4kFhuEd2aHsyOaYt_3g" type="2001">
<children xmi:type="notation:Node" xmi:id="_D-KfoFhuEd2aHsyOaYt_3g" type="4001"/>
@@ -76,7 +67,7 @@
<styles xmi:type="notation:FillStyle" xmi:id="_D-J4k1huEd2aHsyOaYt_3g"/>
<styles xmi:type="notation:LineStyle" xmi:id="_D-J4lFhuEd2aHsyOaYt_3g" lineColor="0"/>
<element xmi:type="bpmn:Activity" href="airticket.bpmn#_D-IqcVhuEd2aHsyOaYt_3g"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D-J4lVhuEd2aHsyOaYt_3g" x="816" y="132"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D-J4lVhuEd2aHsyOaYt_3g" x="708" y="132"/>
</children>
<children xmi:type="notation:Node" xmi:id="_T7jwcFhuEd2aHsyOaYt_3g" type="2001">
<children xmi:type="notation:Node" xmi:id="_T7kXgFhuEd2aHsyOaYt_3g" type="4001"/>
@@ -85,7 +76,7 @@
<styles xmi:type="notation:FillStyle" xmi:id="_T7jwc1huEd2aHsyOaYt_3g"/>
<styles xmi:type="notation:LineStyle" xmi:id="_T7jwdFhuEd2aHsyOaYt_3g" lineColor="0"/>
<element xmi:type="bpmn:Activity" href="airticket.bpmn#_T7iiUVhuEd2aHsyOaYt_3g"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_T7jwdVhuEd2aHsyOaYt_3g" x="432" y="120"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_T7jwdVhuEd2aHsyOaYt_3g" x="324" y="120"/>
</children>
<children xmi:type="notation:Node" xmi:id="_lVLHolhuEd2aHsyOaYt_3g" type="2001">
<children xmi:type="notation:Node" xmi:id="_lVLuslhuEd2aHsyOaYt_3g" type="4001"/>
@@ -148,7 +139,7 @@
<styles xmi:type="notation:FillStyle" xmi:id="_fHLpc1hwEd2aHsyOaYt_3g"/>
<styles xmi:type="notation:LineStyle" xmi:id="_fHLpdFhwEd2aHsyOaYt_3g" lineColor="0"/>
<element xmi:type="bpmn:Activity" href="airticket.bpmn#_fHKbUVhwEd2aHsyOaYt_3g"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fHLpdVhwEd2aHsyOaYt_3g" x="648" y="120"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fHLpdVhwEd2aHsyOaYt_3g" x="540" y="120"/>
</children>
<children xmi:type="notation:Node" xmi:id="_tTzt8Fh1Ed2aHsyOaYt_3g" type="2001">
<children xmi:type="notation:Node" xmi:id="_tT0VAFh1Ed2aHsyOaYt_3g" type="4001"/>
@@ -157,7 +148,7 @@
<styles xmi:type="notation:FillStyle" xmi:id="_tTzt81h1Ed2aHsyOaYt_3g"/>
<styles xmi:type="notation:LineStyle" xmi:id="_tTzt9Fh1Ed2aHsyOaYt_3g" lineColor="0"/>
<element xmi:type="bpmn:Activity" href="airticket.bpmn#_tTzG4Fh1Ed2aHsyOaYt_3g"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tTzt9Vh1Ed2aHsyOaYt_3g" x="804"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tTzt9Vh1Ed2aHsyOaYt_3g" x="696"/>
</children>
<styles xmi:type="notation:DrawerStyle" xmi:id="_dhSKAVhtEd2aHsyOaYt_3g"/>
<styles xmi:type="notation:SortingStyle" xmi:id="_dhSKAlhtEd2aHsyOaYt_3g"/>
@@ -174,7 +165,7 @@
<styles xmi:type="notation:GuideStyle" xmi:id="_iZDcIlhrEd2aHsyOaYt_3g"/>
<styles xmi:type="notation:DescriptionStyle" xmi:id="_iZDcI1hrEd2aHsyOaYt_3g"/>
<element xmi:type="bpmn:BpmnDiagram" href="airticket.bpmn#_iYxIQFhrEd2aHsyOaYt_3g"/>
- <edges xmi:type="notation:Edge" xmi:id="_iyzuAFhtEd2aHsyOaYt_3g" type="3001" source="_huUyMFhtEd2aHsyOaYt_3g" target="_iyQUYFhtEd2aHsyOaYt_3g">
+ <edges xmi:type="notation:Edge" xmi:id="_iyzuAFhtEd2aHsyOaYt_3g" type="3001" source="_huUyMFhtEd2aHsyOaYt_3g" target="_lMmP4FhtEd2aHsyOaYt_3g">
<children xmi:type="notation:Node" xmi:id="_iy0VFFhtEd2aHsyOaYt_3g" type="4012">
<styles xmi:type="notation:FillStyle" xmi:id="_iy0VFVhtEd2aHsyOaYt_3g" fillColor="16776959"/>
<styles xmi:type="notation:LineStyle" xmi:id="_iy0VFlhtEd2aHsyOaYt_3g" lineColor="16776959"/>
@@ -184,20 +175,8 @@
<styles xmi:type="notation:FontStyle" xmi:id="_iy0VEVhtEd2aHsyOaYt_3g" fontName="Arial"/>
<styles xmi:type="notation:LineStyle" xmi:id="_iy0VElhtEd2aHsyOaYt_3g" lineColor="0"/>
<element xmi:type="bpmn:SequenceEdge" href="airticket.bpmn#_iyzG8VhtEd2aHsyOaYt_3g"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_iy0VE1htEd2aHsyOaYt_3g" points="[-15, -13, 33, 28]$[-46, -39, 2, 2]"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_iy0VE1htEd2aHsyOaYt_3g" points="[0, 0, -30, -133]$[15, 0, -15, -133]$[15, 133, -15, 0]$[30, 133, 0, 0]"/>
</edges>
- <edges xmi:type="notation:Edge" xmi:id="_lMuywFhtEd2aHsyOaYt_3g" type="3001" source="_iyQUYFhtEd2aHsyOaYt_3g" target="_lMmP4FhtEd2aHsyOaYt_3g">
- <children xmi:type="notation:Node" xmi:id="_lMvZ0FhtEd2aHsyOaYt_3g" type="4012">
- <styles xmi:type="notation:FillStyle" xmi:id="_lMvZ0VhtEd2aHsyOaYt_3g" fillColor="16776959"/>
- <styles xmi:type="notation:LineStyle" xmi:id="_lMvZ0lhtEd2aHsyOaYt_3g" lineColor="16776959"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_lMvZ01htEd2aHsyOaYt_3g" y="-10"/>
- </children>
- <styles xmi:type="notation:RoutingStyle" xmi:id="_lMuywVhtEd2aHsyOaYt_3g" routing="Rectilinear" smoothness="Normal" closestDistance="true"/>
- <styles xmi:type="notation:FontStyle" xmi:id="_lMuywlhtEd2aHsyOaYt_3g" fontName="Arial"/>
- <styles xmi:type="notation:LineStyle" xmi:id="_lMuyw1htEd2aHsyOaYt_3g" lineColor="0"/>
- <element xmi:type="bpmn:SequenceEdge" href="airticket.bpmn#_lMqhUFhtEd2aHsyOaYt_3g"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_lMuyxFhtEd2aHsyOaYt_3g" points="[-53, -11, 130, 26]$[-181, -37, 2, 0]"/>
- </edges>
<edges xmi:type="notation:Edge" xmi:id="_rsUFUFhtEd2aHsyOaYt_3g" type="3001" source="_lMmP4FhtEd2aHsyOaYt_3g" target="_rsRCAFhtEd2aHsyOaYt_3g">
<children xmi:type="notation:Node" xmi:id="_rsUsYFhtEd2aHsyOaYt_3g" type="4012">
<styles xmi:type="notation:FillStyle" xmi:id="_rsUsYVhtEd2aHsyOaYt_3g" fillColor="16776959"/>
@@ -306,7 +285,7 @@
<element xmi:type="bpmn:SequenceEdge" href="airticket.bpmn#_Ypm-gVhvEd2aHsyOaYt_3g"/>
<bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YpnllFhvEd2aHsyOaYt_3g" points="[-24, -2, 915, 73]$[-937, -75, 2, 0]"/>
</edges>
- <edges xmi:type="notation:Edge" xmi:id="_1UX50FhvEd2aHsyOaYt_3g" type="3001" source="_D-J4kFhuEd2aHsyOaYt_3g" target="_iyQUYFhtEd2aHsyOaYt_3g">
+ <edges xmi:type="notation:Edge" xmi:id="_1UX50FhvEd2aHsyOaYt_3g" type="3001" source="_D-J4kFhuEd2aHsyOaYt_3g" target="_lMmP4FhtEd2aHsyOaYt_3g">
<children xmi:type="notation:Node" xmi:id="_1UYg4FhvEd2aHsyOaYt_3g" type="4012">
<styles xmi:type="notation:FillStyle" xmi:id="_1UYg4VhvEd2aHsyOaYt_3g" fillColor="16776959"/>
<styles xmi:type="notation:LineStyle" xmi:id="_1UYg4lhvEd2aHsyOaYt_3g" lineColor="16776959"/>
@@ -316,7 +295,7 @@
<styles xmi:type="notation:FontStyle" xmi:id="_1UX50lhvEd2aHsyOaYt_3g" fontName="Arial"/>
<styles xmi:type="notation:LineStyle" xmi:id="_1UX501hvEd2aHsyOaYt_3g" lineColor="0"/>
<element xmi:type="bpmn:SequenceEdge" href="airticket.bpmn#_1UWrsVhvEd2aHsyOaYt_3g"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_1UX51FhvEd2aHsyOaYt_3g" points="[-25, 0, 703, -15]$[-781, 37, -53, 22]"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_1UX51FhvEd2aHsyOaYt_3g" points="[0, 0, 781, 60]$[0, 52, 781, 112]$[-797, 52, -16, 112]$[-797, -60, -16, 0]$[-781, -60, 0, 0]"/>
</edges>
<edges xmi:type="notation:Edge" xmi:id="_Fj6qkFhwEd2aHsyOaYt_3g" type="3001" source="_VtE78FhvEd2aHsyOaYt_3g" target="_Fj1yEFhwEd2aHsyOaYt_3g">
<children xmi:type="notation:Node" xmi:id="_Fj6qlVhwEd2aHsyOaYt_3g" type="4012">
@@ -406,7 +385,7 @@
<children xmi:type="notation:Node" xmi:id="_waFiYFh1Ed2aHsyOaYt_3g" type="4012">
<styles xmi:type="notation:FillStyle" xmi:id="_waFiYVh1Ed2aHsyOaYt_3g" fillColor="16776959"/>
<styles xmi:type="notation:LineStyle" xmi:id="_waFiYlh1Ed2aHsyOaYt_3g" lineColor="16776959"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_waFiY1h1Ed2aHsyOaYt_3g" y="40"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_waFiY1h1Ed2aHsyOaYt_3g" y="-10"/>
</children>
<styles xmi:type="notation:RoutingStyle" xmi:id="_waE7UVh1Ed2aHsyOaYt_3g" routing="Rectilinear" smoothness="Normal" closestDistance="true"/>
<styles xmi:type="notation:FontStyle" xmi:id="_waE7Ulh1Ed2aHsyOaYt_3g" fontName="Arial"/>
17 years, 9 months
JBoss JBPM SVN: r1804 - in jbossbpm/spec/trunk/modules: api/src/main/java/org/jboss/bpm/model and 20 other directories.
by do-not-reply@jboss.org
Author: thomas.diesler(a)jboss.com
Date: 2008-08-02 11:47:06 -0400 (Sat, 02 Aug 2008)
New Revision: 1804
Added:
jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBInclude.java
jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/include/
jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/include/ProcessIncludeTest.java
jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/message/
jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/message/ProcessMessageTest.java
jbossbpm/spec/trunk/modules/dialects/api10/src/test/resources/include/
jbossbpm/spec/trunk/modules/dialects/api10/src/test/resources/include/proc-api10.xml
jbossbpm/spec/trunk/modules/dialects/api10/src/test/resources/include/proc-include-api10.xml
Removed:
jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/ProcessMessageTest.java
Modified:
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/DialectHandler.java
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/ProcessManager.java
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Activity.java
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Message.java
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Process.java
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ProcessBuilder.java
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/PropertySupport.java
jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/DialectHandlerImpl.java
jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/ProcessUnmarshaller.java
jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBProcess.java
jbossbpm/spec/trunk/modules/dialects/jpdl32/src/main/java/org/jboss/bpm/dialect/jpdl32/DialectHandlerImpl.java
jbossbpm/spec/trunk/modules/dialects/jpdl32/src/main/java/org/jboss/bpm/dialect/jpdl32/ProcessDefinitionAdapter.java
jbossbpm/spec/trunk/modules/dialects/stp/src/main/java/org/jboss/bpm/dialect/stp/DialectHandlerImpl.java
jbossbpm/spec/trunk/modules/dialects/stp/src/main/java/org/jboss/bpm/dialect/stp/ProcessUnmarshaller.java
jbossbpm/spec/trunk/modules/dialects/xpdl21/src/main/java/org/jboss/bpm/dialect/xpdl21/DialectHandlerImpl.java
jbossbpm/spec/trunk/modules/dialects/xpdl21/src/main/java/org/jboss/bpm/dialect/xpdl21/WorkflowProcessAdapter.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ActivityImpl.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/FlowObjectImpl.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/InputSetImpl.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/MessageImpl.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/OutputSetImpl.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ProcessBuilderImpl.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ProcessImpl.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ReceiveTaskImpl.java
jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AirticketProcessBuilder.java
jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AvailabilityHandler.java
jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/ValidationHandler.java
jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/server/AirticketServiceImpl.java
jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketTest.java
jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/ProcessMarshallerTest.java
jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/process/ProcessIntegrityTest.java
jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/process/ProcessStartTest.java
jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/processmanager/ProcessRegistryTest.java
jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/task/TaskMessageTest.java
jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/parallelsplit/ParallelSplitTest.java
jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/sequence/BasicSequenceTest.java
jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/task/BasicTaskTest.java
Log:
Add support for include
Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/DialectHandler.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/DialectHandler.java 2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/DialectHandler.java 2008-08-02 15:47:06 UTC (rev 1804)
@@ -44,13 +44,15 @@
/**
* Create a {@link Process} from a descriptor.
+ * @param isInclude TODO
*/
- Process createProcess(String pXML);
+ Process createProcess(String pXML, boolean isInclude);
/**
* Create a {@link Process} from a descriptor URL.
+ * @param isInclude TODO
*/
- Process createProcess(URL pURL) throws IOException;
+ Process createProcess(URL pURL, boolean isInclude) throws IOException;
/**
* Marshall the process to the given writer
Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/ProcessManager.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/ProcessManager.java 2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/ProcessManager.java 2008-08-02 15:47:06 UTC (rev 1804)
@@ -96,7 +96,7 @@
throw new EngineShutdownException("Cannot create new Process while engine is shutting down");
String nsURI = getNamespaceURI(new ByteArrayInputStream(pXML.getBytes()));
- Process proc = getDialectHandler(nsURI).createProcess(pXML);
+ Process proc = getDialectHandler(nsURI).createProcess(pXML, false);
registerProcess(proc);
return proc;
}
@@ -110,7 +110,7 @@
throw new EngineShutdownException("Cannot create new Process while engine is shutting down");
String nsURI = getNamespaceURI(pURL.openStream());
- Process proc = getDialectHandler(nsURI).createProcess(pURL);
+ Process proc = getDialectHandler(nsURI).createProcess(pURL, false);
registerProcess(proc);
return proc;
}
Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Activity.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Activity.java 2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Activity.java 2008-08-02 15:47:06 UTC (rev 1804)
@@ -32,7 +32,7 @@
* @author thomas.diesler(a)jboss.com
* @since 08-Jul-2008
*/
-public interface Activity extends FlowObject, NameSupport
+public interface Activity extends FlowObject, NameSupport, PropertySupport
{
/**
* The ActivityType MUST be of type Task or Sub-Process.
@@ -64,14 +64,6 @@
List<String> getPerformers();
/**
- * Modeler-defined Properties MAY be added to an activity. These Properties are
- * “local” to the activity. These Properties are only for use within the processing of
- * the activity. The fully delineated name of these properties is “<process name>.<activity name>.<property name>”
- * (e.g., “Add Customer.Review Credit.Status”).
- */
- List<Property> getProperties();
-
- /**
* The InputSets attribute defines the data requirements for input to the Activity.
* Zero or more InputSets MAY be defined. Each Input set is sufficient to allow the
* Activity to be performed (if it has first been instantiated by the appropriate signal
Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Message.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Message.java 2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Message.java 2008-08-02 15:47:06 UTC (rev 1804)
@@ -21,7 +21,6 @@
*/
package org.jboss.bpm.model;
-import java.util.List;
//$Id$
@@ -33,7 +32,7 @@
* @author thomas.diesler(a)jboss.com
* @since 21-Jul-2008
*/
-public interface Message extends SupportingElement
+public interface Message extends SupportingElement, PropertySupport
{
/**
* Name is an attribute that is text description of the Message.
@@ -41,21 +40,6 @@
String getName();
/**
- * Multiple Properties MAY entered for the Message.
- */
- List<Property> getProperties();
-
- /**
- * Get a Property with a given name.
- */
- Property getProperty(String name);
-
- /**
- * Get the list of property names
- */
- List<String> getPropertyNames();
-
- /**
* This defines the source of the Message.
*/
Participant getFromRef();
Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Process.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Process.java 2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Process.java 2008-08-02 15:47:06 UTC (rev 1804)
@@ -35,7 +35,7 @@
* @author thomas.diesler(a)jboss.com
* @since 08-Jul-2008
*/
-public interface Process extends SupportingElement, NameSupport
+public interface Process extends SupportingElement, NameSupport, PropertySupport
{
/**
* Defines the type of a {@link Process}
@@ -82,15 +82,6 @@
List<String> getAssignments();
/**
- * Modeler-defined Properties MAY be added to a Process. These Properties are “local” to the Process. All Tasks,
- * Sub-Process objects, and Sub-Processes that are embedded SHALL have access to these Properties. The fully
- * delineated name of these properties are “<process name>.<property name>” (e.g., “Add Customer.Customer Name”). If a
- * process is embedded within another Process, then the fully delineated name SHALL also be preceded by the Parent
- * Process name for as many Parents there are until the top level Process.
- */
- List<Property> getProperties();
-
- /**
* The InputSets attribute defines the data requirements for input to the Process. Zero or more InputSets MAY be
* defined. Each Input set is sufficient to allow the Process to be performed (if it has first been instantiated by
* the appropriate signal arriving from an incoming Sequence Flow)
Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ProcessBuilder.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ProcessBuilder.java 2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ProcessBuilder.java 2008-08-02 15:47:06 UTC (rev 1804)
@@ -43,11 +43,17 @@
ProcessBuilder addProcess(String name);
/**
+ * Merge with another {@link Process}
+ */
+ ProcessBuilder mergeProcess(Process proc);
+
+ /**
* Get the {@link Process}.
* <p/>
* This is the final call to the ProcessBuilder after all elements have been added.
+ * @param initProcess If true the builder initializes the process
*/
- Process getProcess();
+ Process getProcess(boolean initProcess);
/**
* Add a {@link SequenceFlow} with a given name
Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/PropertySupport.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/PropertySupport.java 2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/PropertySupport.java 2008-08-02 15:47:06 UTC (rev 1804)
@@ -40,6 +40,11 @@
Property getProperty(String name);
/**
+ * Get a Property value with a given name.
+ */
+ String getPropertyValue(String name);
+
+ /**
* Multiple Properties MAY entered for the Message.
*/
List<Property> getProperties();
Modified: jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/DialectHandlerImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/DialectHandlerImpl.java 2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/DialectHandlerImpl.java 2008-08-02 15:47:06 UTC (rev 1804)
@@ -50,26 +50,30 @@
return NAMESPACE_URI;
}
- public Process createProcess(String pXML)
+ public Process createProcess(String pXML, boolean isInclude)
{
try
{
ProcessUnmarshaller unmarschaller = new ProcessUnmarshaller();
- Process proc = unmarschaller.unmarshallProcess(new StringReader(pXML));
+ Process proc = unmarschaller.unmarshallProcess(new StringReader(pXML), isInclude);
return proc;
}
catch (JAXBException ex)
{
throw new InvalidProcessException("Cannot unmarschall: " + pXML, ex);
}
+ catch (IOException ex)
+ {
+ throw new InvalidProcessException("Cannot unmarschall: " + pXML, ex);
+ }
}
- public Process createProcess(URL pURL) throws IOException
+ public Process createProcess(URL pURL, boolean isInclude) throws IOException
{
try
{
ProcessUnmarshaller unmarschaller = new ProcessUnmarshaller();
- Process proc = unmarschaller.unmarshallProcess(new InputStreamReader(pURL.openStream()));
+ Process proc = unmarschaller.unmarshallProcess(new InputStreamReader(pURL.openStream()), isInclude);
return proc;
}
catch (JAXBException ex)
Modified: jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/ProcessUnmarshaller.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/ProcessUnmarshaller.java 2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/ProcessUnmarshaller.java 2008-08-02 15:47:06 UTC (rev 1804)
@@ -23,7 +23,10 @@
// $Id$
+import java.io.IOException;
import java.io.Reader;
+import java.net.MalformedURLException;
+import java.net.URL;
import javax.management.ObjectName;
import javax.xml.bind.JAXBContext;
@@ -32,7 +35,9 @@
import org.jboss.bpm.InvalidProcessException;
import org.jboss.bpm.NotImplementedException;
+import org.jboss.bpm.client.DialectHandler;
import org.jboss.bpm.client.ObjectNameFactory;
+import org.jboss.bpm.client.ProcessManager;
import org.jboss.bpm.dialect.api10.model.JAXBComplexGateway;
import org.jboss.bpm.dialect.api10.model.JAXBEndEvent;
import org.jboss.bpm.dialect.api10.model.JAXBEvent;
@@ -42,6 +47,7 @@
import org.jboss.bpm.dialect.api10.model.JAXBFlowObject;
import org.jboss.bpm.dialect.api10.model.JAXBGateway;
import org.jboss.bpm.dialect.api10.model.JAXBHandler;
+import org.jboss.bpm.dialect.api10.model.JAXBInclude;
import org.jboss.bpm.dialect.api10.model.JAXBInclusiveGateway;
import org.jboss.bpm.dialect.api10.model.JAXBInputSet;
import org.jboss.bpm.dialect.api10.model.JAXBMessage;
@@ -73,27 +79,32 @@
*/
public class ProcessUnmarshaller
{
- public Process unmarshallProcess(Reader xml) throws JAXBException
+ public Process unmarshallProcess(Reader xml, boolean isInclude) throws JAXBException, IOException
{
JAXBContext jaxbContext = JAXBContext.newInstance(ObjectFactory.class);
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
unmarshaller.setProperty("com.sun.xml.bind.ObjectFactory", new ObjectFactory());
JAXBProcess jaxbProc = (JAXBProcess)unmarshaller.unmarshal(xml);
- Process proc = adaptProcess(jaxbProc);
+ Process proc = adaptProcess(jaxbProc, isInclude);
return proc;
}
- private Process adaptProcess(JAXBProcess jaxbProc)
+ private Process adaptProcess(JAXBProcess jaxbProc, boolean isInclude) throws IOException
{
ProcessBuilder procBuilder = ProcessBuilderFactory.newInstance().newProcessBuilder();
procBuilder.addProcess(jaxbProc.getName());
+ // Process Includes
+ processIncludes(procBuilder, jaxbProc);
+
+ // Process Messages
for(JAXBMessage jaxb : jaxbProc.getMessages())
{
MessageBuilder msgBuilder = procBuilder.addMessage(jaxb.getName());
adaptJAXBMessage(msgBuilder, jaxb);
}
+ // Process FlowObjects
for (JAXBFlowObject jaxb : jaxbProc.getFlowObjects())
{
if (jaxb instanceof JAXBEvent)
@@ -113,17 +124,46 @@
throw new NotImplementedException(jaxb.toString());
}
}
- Process proc = procBuilder.getProcess();
+
+ Process proc = procBuilder.getProcess(!isInclude);
return proc;
}
+ private void processIncludes(ProcessBuilder procBuilder, JAXBProcess jaxbProc) throws IOException
+ {
+ for(JAXBInclude incl : jaxbProc.getIncludes())
+ {
+ String nsURI = incl.getNamespace();
+ String location = incl.getLocation();
+
+ URL procURL;
+ try
+ {
+ procURL = new URL(location);
+ }
+ catch (MalformedURLException ex)
+ {
+ ClassLoader ctxLoader = Thread.currentThread().getContextClassLoader();
+ procURL = ctxLoader.getResource(location);
+ }
+ if (procURL == null)
+ throw new InvalidProcessException("Cannot find process include: " + location);
+
+ ProcessManager pm = ProcessManager.locateProcessManager();
+ DialectHandler dh = pm.getDialectHandler(nsURI);
+ Process procInclude = dh.createProcess(procURL, true);
+ procBuilder.mergeProcess(procInclude);
+ }
+ }
+
private void adaptJAXBMessage(MessageBuilder msgBuilder, JAXBMessage jaxbMsg)
{
msgBuilder.addFromRef(getObjectName(jaxbMsg.getFromRef()));
msgBuilder.addToRef(getObjectName(jaxbMsg.getToRef()));
for (JAXBProperty jaxbProp : jaxbMsg.getProperties())
{
- msgBuilder.addProperty(jaxbProp.getName(), jaxbProp.getValue(), jaxbProp.isCorrelation());
+ boolean isCorrelation = jaxbProp.isCorrelation() != null ? jaxbProp.isCorrelation() : false;
+ msgBuilder.addProperty(jaxbProp.getName(), jaxbProp.getValue(), isCorrelation);
}
}
@@ -181,11 +221,7 @@
{
JAXBMessageRef jaxbMsgRef = (JAXBMessageRef)jaxbSE;
String msgName = jaxbMsgRef.getNameRef();
- JAXBMessage jaxbMsg = jaxbProc.getMessageByName(msgName);
- if (jaxbMsg == null)
- throw new InvalidProcessException("Cannot find message with name: " + msgName);
- MessageBuilder msgBuilder = taskBuilder.addMessage(msgName);
- adaptJAXBMessage(msgBuilder, jaxbMsg);
+ taskBuilder.addMessageRef(msgName);
}
procBuilder.addExecutionHandler(loadHandler(jaxb.getExecutionHandler()));
procBuilder.addFlowHandler(loadHandler(jaxb.getFlowHandler()));
Added: jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBInclude.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBInclude.java (rev 0)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBInclude.java 2008-08-02 15:47:06 UTC (rev 1804)
@@ -0,0 +1,62 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.bpm.dialect.api10.model;
+
+//$Id$
+
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * An include that can be used as part of the process
+ *
+ * @author thomas.diesler(a)jboss.com
+ * @since 08-Jul-2008
+ */
+@XmlType(name = "Include")
+public class JAXBInclude
+{
+ private String namespace;
+ private String location;
+
+ public String getNamespace()
+ {
+ return namespace;
+ }
+
+ @XmlAttribute(required = true)
+ public void setNamespace(String namespace)
+ {
+ this.namespace = namespace;
+ }
+
+ public String getLocation()
+ {
+ return location;
+ }
+
+ @XmlAttribute(required = true)
+ public void setLocation(String location)
+ {
+ this.location = location;
+ }
+}
\ No newline at end of file
Property changes on: jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBInclude.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Modified: jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBProcess.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBProcess.java 2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBProcess.java 2008-08-02 15:47:06 UTC (rev 1804)
@@ -44,6 +44,7 @@
{
private String name;
private List<JAXBMessage> messages = new ArrayList<JAXBMessage>();
+ private List<JAXBInclude> includes = new ArrayList<JAXBInclude>();
@XmlElements( { @XmlElement(name = "start", type = JAXBStartEvent.class),
@XmlElement(name = "event", type = JAXBIntermediateEvent.class),
@@ -61,7 +62,7 @@
return name;
}
- @XmlAttribute(required = true)
+ @XmlAttribute
public void setName(String name)
{
this.name = name;
@@ -83,6 +84,17 @@
this.messages = messages;
}
+ public List<JAXBInclude> getIncludes()
+ {
+ return includes;
+ }
+
+ @XmlElement(name = "include")
+ public void setIncludes(List<JAXBInclude> includes)
+ {
+ this.includes = includes;
+ }
+
public JAXBMessage getMessageByName(String msgName)
{
for (JAXBMessage msg : messages)
Deleted: jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/ProcessMessageTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/ProcessMessageTest.java 2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/ProcessMessageTest.java 2008-08-02 15:47:06 UTC (rev 1804)
@@ -1,103 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.bpm.dialect.api10;
-
-// $Id$
-
-import java.io.StringWriter;
-
-import org.jboss.bpm.client.DialectHandler;
-import org.jboss.bpm.client.ProcessManager;
-import org.jboss.bpm.model.Process;
-import org.jboss.bpm.model.ProcessBuilder;
-import org.jboss.bpm.model.ProcessBuilderFactory;
-import org.jboss.bpm.model.ReceiveTask;
-import org.jboss.bpm.model.TaskBuilder;
-import org.jboss.bpm.model.Task.TaskType;
-import org.jboss.bpm.test.DefaultEngineTestCase;
-
-/**
- * Test process messages
- *
- * @author thomas.diesler(a)jboss.com
- * @since 03-Jul-2008
- */
-public class ProcessMessageTest extends DefaultEngineTestCase
-{
- public void testProcessMessage() throws Exception
- {
- ProcessBuilder procBuilder = ProcessBuilderFactory.newInstance().newProcessBuilder();
- procBuilder.addProcess(getName()).addStartEvent().addSequenceFlow("End").addEndEvent("End");
- procBuilder.addMessage("FooMsg");
- Process expProc = procBuilder.getProcess();
-
- ProcessManager pm = ProcessManager.locateProcessManager();
- DialectHandler dh = pm.getDialectHandler(DialectHandlerImpl.NAMESPACE_URI);
-
- StringWriter strwr = new StringWriter();
- dh.marshallProcess(expProc, strwr);
-
- Process wasProc = dh.createProcess(strwr.toString());
- assertNotNull(wasProc.getMessageByName("FooMsg"));
- }
-
- public void testReceiveTaskWithMessage() throws Exception
- {
- ProcessBuilder procBuilder = ProcessBuilderFactory.newInstance().newProcessBuilder();
- procBuilder.addProcess(getName()).addStartEvent().addSequenceFlow("A");
- TaskBuilder taskBuilder = procBuilder.addTask("A", TaskType.Receive);
- taskBuilder.addMessage("FooMsg");
- procBuilder.addSequenceFlow("End").addEndEvent("End");
- Process expProc = procBuilder.getProcess();
-
- ProcessManager pm = ProcessManager.locateProcessManager();
- DialectHandler dh = pm.getDialectHandler(DialectHandlerImpl.NAMESPACE_URI);
-
- StringWriter strwr = new StringWriter();
- dh.marshallProcess(expProc, strwr);
-
- Process wasProc = dh.createProcess(strwr.toString());
- ReceiveTask recTask = (ReceiveTask)wasProc.getFlowObjectByName("A");
- assertEquals("FooMsg", recTask.getMessageRef().getName());
- }
-
- public void testReceiveTaskWithMessageRef() throws Exception
- {
- ProcessBuilder procBuilder = ProcessBuilderFactory.newInstance().newProcessBuilder();
- procBuilder.addProcess(getName()).addMessage("FooMsg");
- procBuilder.addStartEvent().addSequenceFlow("A");
- TaskBuilder taskBuilder = procBuilder.addTask("A", TaskType.Receive);
- taskBuilder.addMessageRef("FooMsg");
- procBuilder.addSequenceFlow("End").addEndEvent("End");
- Process expProc = procBuilder.getProcess();
-
- ProcessManager pm = ProcessManager.locateProcessManager();
- DialectHandler dh = pm.getDialectHandler(DialectHandlerImpl.NAMESPACE_URI);
-
- StringWriter strwr = new StringWriter();
- dh.marshallProcess(expProc, strwr);
-
- Process wasProc = dh.createProcess(strwr.toString());
- ReceiveTask recTask = (ReceiveTask)wasProc.getFlowObjectByName("A");
- assertEquals("FooMsg", recTask.getMessageRef().getName());
- }
-}
Added: jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/include/ProcessIncludeTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/include/ProcessIncludeTest.java (rev 0)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/include/ProcessIncludeTest.java 2008-08-02 15:47:06 UTC (rev 1804)
@@ -0,0 +1,50 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.bpm.dialect.api10.include;
+
+// $Id$
+
+import org.jboss.bpm.client.ProcessManager;
+import org.jboss.bpm.model.Message;
+import org.jboss.bpm.model.Process;
+import org.jboss.bpm.model.ReceiveTask;
+import org.jboss.bpm.test.DefaultEngineTestCase;
+
+/**
+ * Test process messages
+ *
+ * @author thomas.diesler(a)jboss.com
+ * @since 03-Jul-2008
+ */
+public class ProcessIncludeTest extends DefaultEngineTestCase
+{
+ public void testInclude() throws Exception
+ {
+ ProcessManager pm = ProcessManager.locateProcessManager();
+ Process proc = pm.createProcess(getResourceURL("include/proc-api10.xml"));
+
+ ReceiveTask recTask = (ReceiveTask)proc.getFlowObjectByName("A");
+ Message msg = recTask.getMessageRef();
+ assertEquals("FooMsg", msg.getName());
+ assertEquals("bar", msg.getPropertyValue("foo"));
+ }
+}
Property changes on: jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/include/ProcessIncludeTest.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Copied: jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/message/ProcessMessageTest.java (from rev 1802, jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/ProcessMessageTest.java)
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/message/ProcessMessageTest.java (rev 0)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/message/ProcessMessageTest.java 2008-08-02 15:47:06 UTC (rev 1804)
@@ -0,0 +1,114 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.bpm.dialect.api10.message;
+
+// $Id$
+
+import java.io.StringWriter;
+
+import org.jboss.bpm.client.DialectHandler;
+import org.jboss.bpm.client.ProcessManager;
+import org.jboss.bpm.dialect.api10.DialectHandlerImpl;
+import org.jboss.bpm.model.Message;
+import org.jboss.bpm.model.MessageBuilder;
+import org.jboss.bpm.model.Process;
+import org.jboss.bpm.model.ProcessBuilder;
+import org.jboss.bpm.model.ProcessBuilderFactory;
+import org.jboss.bpm.model.ReceiveTask;
+import org.jboss.bpm.model.TaskBuilder;
+import org.jboss.bpm.model.Task.TaskType;
+import org.jboss.bpm.test.DefaultEngineTestCase;
+
+/**
+ * Test process messages
+ *
+ * @author thomas.diesler(a)jboss.com
+ * @since 03-Jul-2008
+ */
+public class ProcessMessageTest extends DefaultEngineTestCase
+{
+ public void testProcessMessage() throws Exception
+ {
+ ProcessBuilder procBuilder = ProcessBuilderFactory.newInstance().newProcessBuilder();
+ procBuilder.addProcess(getName()).addStartEvent().addSequenceFlow("End").addEndEvent("End");
+ MessageBuilder msgBuilder = procBuilder.addMessage("FooMsg");
+ msgBuilder.addProperty("foo", "bar");
+ Process expProc = procBuilder.getProcess(true);
+
+ ProcessManager pm = ProcessManager.locateProcessManager();
+ DialectHandler dh = pm.getDialectHandler(DialectHandlerImpl.NAMESPACE_URI);
+
+ StringWriter strwr = new StringWriter();
+ dh.marshallProcess(expProc, strwr);
+
+ Process wasProc = dh.createProcess(strwr.toString(), false);
+ Message msg = wasProc.getMessageByName("FooMsg");
+ assertEquals("bar", msg.getPropertyValue("foo"));
+ }
+
+ public void testReceiveTaskWithMessage() throws Exception
+ {
+ ProcessBuilder procBuilder = ProcessBuilderFactory.newInstance().newProcessBuilder();
+ procBuilder.addProcess(getName()).addStartEvent().addSequenceFlow("A");
+ TaskBuilder taskBuilder = procBuilder.addTask("A", TaskType.Receive);
+ MessageBuilder msgBuilder = taskBuilder.addMessage("FooMsg");
+ msgBuilder.addProperty("foo", "bar");
+ procBuilder.addSequenceFlow("End").addEndEvent("End");
+ Process expProc = procBuilder.getProcess(true);
+
+ ProcessManager pm = ProcessManager.locateProcessManager();
+ DialectHandler dh = pm.getDialectHandler(DialectHandlerImpl.NAMESPACE_URI);
+
+ StringWriter strwr = new StringWriter();
+ dh.marshallProcess(expProc, strwr);
+
+ Process wasProc = dh.createProcess(strwr.toString(), false);
+ ReceiveTask recTask = (ReceiveTask)wasProc.getFlowObjectByName("A");
+ Message msg = recTask.getMessageRef();
+ assertEquals("FooMsg", msg.getName());
+ assertEquals("bar", msg.getPropertyValue("foo"));
+ }
+
+ public void testReceiveTaskWithMessageRef() throws Exception
+ {
+ ProcessBuilder procBuilder = ProcessBuilderFactory.newInstance().newProcessBuilder();
+ procBuilder.addProcess(getName()).addStartEvent().addSequenceFlow("A");
+ MessageBuilder msgBuilder = procBuilder.addMessage("FooMsg");
+ msgBuilder.addProperty("foo", "bar");
+ TaskBuilder taskBuilder = procBuilder.addTask("A", TaskType.Receive);
+ taskBuilder.addMessageRef("FooMsg");
+ procBuilder.addSequenceFlow("End").addEndEvent("End");
+ Process expProc = procBuilder.getProcess(true);
+
+ ProcessManager pm = ProcessManager.locateProcessManager();
+ DialectHandler dh = pm.getDialectHandler(DialectHandlerImpl.NAMESPACE_URI);
+
+ StringWriter strwr = new StringWriter();
+ dh.marshallProcess(expProc, strwr);
+
+ Process wasProc = dh.createProcess(strwr.toString(), false);
+ ReceiveTask recTask = (ReceiveTask)wasProc.getFlowObjectByName("A");
+ Message msg = recTask.getMessageRef();
+ assertEquals("FooMsg", msg.getName());
+ assertEquals("bar", msg.getPropertyValue("foo"));
+ }
+}
Added: jbossbpm/spec/trunk/modules/dialects/api10/src/test/resources/include/proc-api10.xml
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/test/resources/include/proc-api10.xml (rev 0)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/test/resources/include/proc-api10.xml 2008-08-02 15:47:06 UTC (rev 1804)
@@ -0,0 +1,11 @@
+<ns2:process name="testReceiveTaskWithMessageRef" xmlns:ns2="urn:bpm.jboss:pdl-0.1">
+ <include namespace="urn:bpm.jboss:pdl-0.1" location="include/proc-include-api10.xml"/>
+ <start>
+ <seqflow to="A" />
+ </start>
+ <task taskType="Receive" name="A">
+ <seqflow to="End" />
+ <msgref nameRef="FooMsg" />
+ </task>
+ <end name="End" />
+</ns2:process>
\ No newline at end of file
Property changes on: jbossbpm/spec/trunk/modules/dialects/api10/src/test/resources/include/proc-api10.xml
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: jbossbpm/spec/trunk/modules/dialects/api10/src/test/resources/include/proc-include-api10.xml
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/test/resources/include/proc-include-api10.xml (rev 0)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/test/resources/include/proc-include-api10.xml 2008-08-02 15:47:06 UTC (rev 1804)
@@ -0,0 +1,8 @@
+<ns2:process xmlns:ns2="urn:bpm.jboss:pdl-0.1">
+ <message name="FooMsg">
+ <property>
+ <name>foo</name>
+ <value>bar</value>
+ </property>
+ </message>
+</ns2:process>
\ No newline at end of file
Property changes on: jbossbpm/spec/trunk/modules/dialects/api10/src/test/resources/include/proc-include-api10.xml
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Modified: jbossbpm/spec/trunk/modules/dialects/jpdl32/src/main/java/org/jboss/bpm/dialect/jpdl32/DialectHandlerImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/jpdl32/src/main/java/org/jboss/bpm/dialect/jpdl32/DialectHandlerImpl.java 2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/dialects/jpdl32/src/main/java/org/jboss/bpm/dialect/jpdl32/DialectHandlerImpl.java 2008-08-02 15:47:06 UTC (rev 1804)
@@ -52,7 +52,7 @@
return NAMESPACE_URI;
}
- public Process createProcess(String pXML)
+ public Process createProcess(String pXML, boolean isInclude)
{
try
{
@@ -67,7 +67,7 @@
}
}
- public Process createProcess(URL pURL) throws IOException
+ public Process createProcess(URL pURL, boolean isInclude) throws IOException
{
try
{
Modified: jbossbpm/spec/trunk/modules/dialects/jpdl32/src/main/java/org/jboss/bpm/dialect/jpdl32/ProcessDefinitionAdapter.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/jpdl32/src/main/java/org/jboss/bpm/dialect/jpdl32/ProcessDefinitionAdapter.java 2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/dialects/jpdl32/src/main/java/org/jboss/bpm/dialect/jpdl32/ProcessDefinitionAdapter.java 2008-08-02 15:47:06 UTC (rev 1804)
@@ -78,7 +78,7 @@
}
}
- Process proc = builder.getProcess();
+ Process proc = builder.getProcess(true);
return proc;
}
Modified: jbossbpm/spec/trunk/modules/dialects/stp/src/main/java/org/jboss/bpm/dialect/stp/DialectHandlerImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/stp/src/main/java/org/jboss/bpm/dialect/stp/DialectHandlerImpl.java 2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/dialects/stp/src/main/java/org/jboss/bpm/dialect/stp/DialectHandlerImpl.java 2008-08-02 15:47:06 UTC (rev 1804)
@@ -50,7 +50,7 @@
return NAMESPACE_URI;
}
- public Process createProcess(String pXML)
+ public Process createProcess(String pXML, boolean isInclude)
{
try
{
@@ -64,7 +64,7 @@
}
}
- public Process createProcess(URL pURL) throws IOException
+ public Process createProcess(URL pURL, boolean isInclude) throws IOException
{
try
{
Modified: jbossbpm/spec/trunk/modules/dialects/stp/src/main/java/org/jboss/bpm/dialect/stp/ProcessUnmarshaller.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/stp/src/main/java/org/jboss/bpm/dialect/stp/ProcessUnmarshaller.java 2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/dialects/stp/src/main/java/org/jboss/bpm/dialect/stp/ProcessUnmarshaller.java 2008-08-02 15:47:06 UTC (rev 1804)
@@ -133,7 +133,7 @@
adaptActivity(builder, stpActivity);
}
- return builder.getProcess();
+ return builder.getProcess(true);
}
private ProcessBuilder adaptDiagram(BpmnDiagram bpmnDiagram)
Modified: jbossbpm/spec/trunk/modules/dialects/xpdl21/src/main/java/org/jboss/bpm/dialect/xpdl21/DialectHandlerImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/xpdl21/src/main/java/org/jboss/bpm/dialect/xpdl21/DialectHandlerImpl.java 2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/dialects/xpdl21/src/main/java/org/jboss/bpm/dialect/xpdl21/DialectHandlerImpl.java 2008-08-02 15:47:06 UTC (rev 1804)
@@ -52,7 +52,7 @@
return NAMESPACE_URI;
}
- public Process createProcess(String pXML)
+ public Process createProcess(String pXML, boolean isInclude)
{
try
{
@@ -67,7 +67,7 @@
}
}
- public Process createProcess(URL pURL) throws IOException
+ public Process createProcess(URL pURL, boolean isInclude) throws IOException
{
try
{
Modified: jbossbpm/spec/trunk/modules/dialects/xpdl21/src/main/java/org/jboss/bpm/dialect/xpdl21/WorkflowProcessAdapter.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/xpdl21/src/main/java/org/jboss/bpm/dialect/xpdl21/WorkflowProcessAdapter.java 2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/dialects/xpdl21/src/main/java/org/jboss/bpm/dialect/xpdl21/WorkflowProcessAdapter.java 2008-08-02 15:47:06 UTC (rev 1804)
@@ -70,7 +70,7 @@
}
}
- Process proc = builder.getProcess();
+ Process proc = builder.getProcess(true);
return proc;
}
}
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ActivityImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ActivityImpl.java 2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ActivityImpl.java 2008-08-02 15:47:06 UTC (rev 1804)
@@ -137,6 +137,12 @@
return null;
}
+ public String getPropertyValue(String name)
+ {
+ Property prop = getProperty(name);
+ return prop != null ? prop.getValue().getExpressionBody() : null;
+ }
+
public List<Property> getProperties()
{
return Collections.unmodifiableList(props);
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/FlowObjectImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/FlowObjectImpl.java 2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/FlowObjectImpl.java 2008-08-02 15:47:06 UTC (rev 1804)
@@ -95,6 +95,17 @@
// noting to do
}
+ public void merge(FlowObjectImpl foIncl)
+ {
+ // Merge Handlers
+ if (executionHandler == null)
+ executionHandler = foIncl.getExecutionHandler();
+ if (flowHandler == null)
+ flowHandler = foIncl.getFlowHandler();
+ if (signalHandler == null)
+ signalHandler = foIncl.getSignalHandler();
+ }
+
@Override
protected void initialize(Process proc)
{
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/InputSetImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/InputSetImpl.java 2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/InputSetImpl.java 2008-08-02 15:47:06 UTC (rev 1804)
@@ -64,6 +64,12 @@
return null;
}
+ public String getPropertyValue(String name)
+ {
+ Property prop = getProperty(name);
+ return prop != null ? prop.getValue().getExpressionBody() : null;
+ }
+
public List<Property> getProperties()
{
return Collections.unmodifiableList(props);
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/MessageImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/MessageImpl.java 2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/MessageImpl.java 2008-08-02 15:47:06 UTC (rev 1804)
@@ -102,6 +102,12 @@
return null;
}
+ public String getPropertyValue(String name)
+ {
+ Property prop = getProperty(name);
+ return prop != null ? prop.getValue().getExpressionBody() : null;
+ }
+
public List<Property> getProperties()
{
return Collections.unmodifiableList(props);
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/OutputSetImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/OutputSetImpl.java 2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/OutputSetImpl.java 2008-08-02 15:47:06 UTC (rev 1804)
@@ -64,6 +64,12 @@
return null;
}
+ public String getPropertyValue(String name)
+ {
+ Property prop = getProperty(name);
+ return prop != null ? prop.getValue().getExpressionBody() : null;
+ }
+
public List<Property> getProperties()
{
return Collections.unmodifiableList(props);
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ProcessBuilderImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ProcessBuilderImpl.java 2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ProcessBuilderImpl.java 2008-08-02 15:47:06 UTC (rev 1804)
@@ -63,12 +63,20 @@
return this;
}
- public Process getProcess()
+ public ProcessBuilder mergeProcess(Process procInclude)
{
+ proc.merge(procInclude);
+ return this;
+ }
+
+ public Process getProcess(boolean initProcess)
+ {
if (proc == null)
throw new IllegalStateException("No process has been added");
- proc.initialize();
+ if (initProcess)
+ proc.initialize();
+
return proc;
}
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ProcessImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ProcessImpl.java 2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ProcessImpl.java 2008-08-02 15:47:06 UTC (rev 1804)
@@ -47,6 +47,7 @@
import org.jboss.bpm.model.Property;
import org.jboss.bpm.model.StartEvent;
import org.jboss.bpm.runtime.Attachments;
+import org.jboss.bpm.runtime.MutablePropertySupport;
/**
* A Process is any Activity performed within a company or organization.
@@ -55,7 +56,7 @@
* @since 08-Jul-2008
*/
@SuppressWarnings("serial")
-public class ProcessImpl extends SupportingElementImpl implements Process
+public class ProcessImpl extends SupportingElementImpl implements Process, MutablePropertySupport
{
// The required process name
private String name;
@@ -63,6 +64,8 @@
private List<FlowObject> flowObjects = new ArrayList<FlowObject>();
// The list of associated messages
private List<Message> messages = new ArrayList<Message>();
+ // The process properties
+ private List<Property> props = new ArrayList<Property>();
// the status of the process
private Status status = Status.None;
// The possible exception that caused the process to abort
@@ -103,11 +106,42 @@
throw new NotImplementedException();
}
+ public Property getProperty(String name)
+ {
+ for (Property prop : props)
+ {
+ if (prop.getName().equals(name))
+ return prop;
+ }
+ return null;
+ }
+
+ public String getPropertyValue(String name)
+ {
+ Property prop = getProperty(name);
+ return prop != null ? prop.getValue().getExpressionBody() : null;
+ }
+
public List<Property> getProperties()
{
- throw new NotImplementedException();
+ return Collections.unmodifiableList(props);
}
+ public List<String> getPropertyNames()
+ {
+ List<String> names = new ArrayList<String>();
+ for (Property prop : props)
+ {
+ names.add(prop.getName());
+ }
+ return names;
+ }
+
+ public void addProperty(Property prop)
+ {
+ props.add(prop);
+ }
+
public void addFlowObject(FlowObject flowObject)
{
flowObjects.add(flowObject);
@@ -219,7 +253,7 @@
if (name == null)
throw new IllegalArgumentException("Cannot find flow object with name: null");
- FlowObject nfo = null;
+ FlowObject flowObject = null;
for (FlowObject aux : flowObjects)
{
if (aux instanceof NameSupport)
@@ -227,12 +261,12 @@
NameSupport auxnfo = (NameSupport)aux;
if (name.equals(auxnfo.getName()))
{
- nfo = aux;
+ flowObject = aux;
break;
}
}
}
- return nfo;
+ return flowObject;
}
public Status getStatus()
@@ -301,9 +335,32 @@
return null;
}
+ public void merge(Process procIncl)
+ {
+ for(Message msg : procIncl.getMessages())
+ {
+ addMessage(msg);
+ }
+ for(FlowObject foIncl : procIncl.getFlowObjects())
+ {
+ if (foIncl instanceof NameSupport)
+ {
+ String foName = ((NameSupport)foIncl).getName();
+ FlowObjectImpl fo = (FlowObjectImpl)getFlowObjectByName(foName);
+ if (fo != null)
+ {
+ fo.merge((FlowObjectImpl)foIncl);
+ }
+ else
+ {
+ addFlowObject(foIncl);
+ }
+ }
+ }
+ }
+
public String toString()
{
return "Process[" + getName() + "]";
}
-
}
\ No newline at end of file
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ReceiveTaskImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ReceiveTaskImpl.java 2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ReceiveTaskImpl.java 2008-08-02 15:47:06 UTC (rev 1804)
@@ -32,7 +32,6 @@
import org.jboss.bpm.NotImplementedException;
import org.jboss.bpm.ProcessTimeoutException;
import org.jboss.bpm.client.MessageListener;
-import org.jboss.bpm.model.Expression;
import org.jboss.bpm.model.Message;
import org.jboss.bpm.model.Process;
import org.jboss.bpm.model.Property;
@@ -146,8 +145,8 @@
for (Property prop : messageRef.getProperties())
{
String key = prop.getName();
- Expression value = msg.getProperty(key).getValue();
- exContext.addAttachment(key, value.getExpressionBody());
+ String value = msg.getPropertyValue(key);
+ exContext.addAttachment(key, value);
}
// Call default execute
Modified: jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AirticketProcessBuilder.java
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AirticketProcessBuilder.java 2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AirticketProcessBuilder.java 2008-08-02 15:47:06 UTC (rev 1804)
@@ -213,7 +213,7 @@
addProperty("Price", null, true);
// Get the process
- Process proc = procBuilder.getProcess();
+ Process proc = procBuilder.getProcess(true);
return proc;
}
}
\ No newline at end of file
Modified: jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AvailabilityHandler.java
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AvailabilityHandler.java 2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AvailabilityHandler.java 2008-08-02 15:47:06 UTC (rev 1804)
@@ -42,7 +42,7 @@
public void execute(Token token, InputSet inputSet, OutputSet outputSet)
{
PropertyBuilder builder = PropertyBuilderFactory.newInstance().newPropertyBuilder();
- Integer seats = Integer.valueOf(inputSet.getProperty("Seats").getValue().getExpressionBody());
+ Integer seats = Integer.valueOf(inputSet.getPropertyValue("Seats"));
outputSet.addProperty(builder.newProperty("isAvailable", new Boolean(seats < 10).toString()));
outputSet.addProperty(builder.newProperty("Price", new Integer(seats * 111).toString()));
}
Modified: jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/ValidationHandler.java
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/ValidationHandler.java 2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/ValidationHandler.java 2008-08-02 15:47:06 UTC (rev 1804)
@@ -41,11 +41,11 @@
{
public void execute(Token token, InputSet inputSet, OutputSet outputSet)
{
- String name = inputSet.getProperty("Name").getValue().getExpressionBody();
- String from = inputSet.getProperty("From").getValue().getExpressionBody();
- String to = inputSet.getProperty("To").getValue().getExpressionBody();
- String date = inputSet.getProperty("Date").getValue().getExpressionBody();
- String seats = inputSet.getProperty("Seats").getValue().getExpressionBody();
+ String name = inputSet.getPropertyValue("Name");
+ String from = inputSet.getPropertyValue("From");
+ String to = inputSet.getPropertyValue("To");
+ String date = inputSet.getPropertyValue("Date");
+ String seats = inputSet.getPropertyValue("Seats");
boolean isValid = name != null && name.length() > 0;
isValid &= from != null && from.length() > 0;
Modified: jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/server/AirticketServiceImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/server/AirticketServiceImpl.java 2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/server/AirticketServiceImpl.java 2008-08-02 15:47:06 UTC (rev 1804)
@@ -106,43 +106,43 @@
if (msgName.equals("OfferMsg"))
{
OfferMessage gwtMsg = new OfferMessage();
- gwtMsg.name = bpmMsg.getProperty("Name").getValue().getExpressionBody();
- gwtMsg.from = bpmMsg.getProperty("From").getValue().getExpressionBody();
- gwtMsg.to = bpmMsg.getProperty("To").getValue().getExpressionBody();
- gwtMsg.date = bpmMsg.getProperty("Date").getValue().getExpressionBody();
- gwtMsg.seats = bpmMsg.getProperty("Seats").getValue().getExpressionBody();
- gwtMsg.price = bpmMsg.getProperty("Price").getValue().getExpressionBody();
+ gwtMsg.name = bpmMsg.getPropertyValue("Name");
+ gwtMsg.from = bpmMsg.getPropertyValue("From");
+ gwtMsg.to = bpmMsg.getPropertyValue("To");
+ gwtMsg.date = bpmMsg.getPropertyValue("Date");
+ gwtMsg.seats = bpmMsg.getPropertyValue("Seats");
+ gwtMsg.price = bpmMsg.getPropertyValue("Price");
returnMsg = gwtMsg;
}
else if (msgName.equals("InvalidDataMsg"))
{
InvalidDataMessage gwtMsg = new InvalidDataMessage();
- gwtMsg.name = bpmMsg.getProperty("Name").getValue().getExpressionBody();
- gwtMsg.from = bpmMsg.getProperty("From").getValue().getExpressionBody();
- gwtMsg.to = bpmMsg.getProperty("To").getValue().getExpressionBody();
- gwtMsg.date = bpmMsg.getProperty("Date").getValue().getExpressionBody();
- gwtMsg.seats = bpmMsg.getProperty("Seats").getValue().getExpressionBody();
+ gwtMsg.name = bpmMsg.getPropertyValue("Name");
+ gwtMsg.from = bpmMsg.getPropertyValue("From");
+ gwtMsg.to = bpmMsg.getPropertyValue("To");
+ gwtMsg.date = bpmMsg.getPropertyValue("Date");
+ gwtMsg.seats = bpmMsg.getPropertyValue("Seats");
returnMsg = gwtMsg;
}
else if (msgName.equals("NotAvailableMsg"))
{
NotAvailableMessage gwtMsg = new NotAvailableMessage();
- gwtMsg.name = bpmMsg.getProperty("Name").getValue().getExpressionBody();
- gwtMsg.from = bpmMsg.getProperty("From").getValue().getExpressionBody();
- gwtMsg.to = bpmMsg.getProperty("To").getValue().getExpressionBody();
- gwtMsg.date = bpmMsg.getProperty("Date").getValue().getExpressionBody();
- gwtMsg.seats = bpmMsg.getProperty("Seats").getValue().getExpressionBody();
+ gwtMsg.name = bpmMsg.getPropertyValue("Name");
+ gwtMsg.from = bpmMsg.getPropertyValue("From");
+ gwtMsg.to = bpmMsg.getPropertyValue("To");
+ gwtMsg.date = bpmMsg.getPropertyValue("Date");
+ gwtMsg.seats = bpmMsg.getPropertyValue("Seats");
returnMsg = gwtMsg;
}
else if (msgName.equals("ConfirmMsg"))
{
ConfirmMessage gwtMsg = new ConfirmMessage();
- gwtMsg.name = bpmMsg.getProperty("Name").getValue().getExpressionBody();
- gwtMsg.from = bpmMsg.getProperty("From").getValue().getExpressionBody();
- gwtMsg.to = bpmMsg.getProperty("To").getValue().getExpressionBody();
- gwtMsg.date = bpmMsg.getProperty("Date").getValue().getExpressionBody();
- gwtMsg.seats = bpmMsg.getProperty("Seats").getValue().getExpressionBody();
- gwtMsg.price = bpmMsg.getProperty("Price").getValue().getExpressionBody();
+ gwtMsg.name = bpmMsg.getPropertyValue("Name");
+ gwtMsg.from = bpmMsg.getPropertyValue("From");
+ gwtMsg.to = bpmMsg.getPropertyValue("To");
+ gwtMsg.date = bpmMsg.getPropertyValue("Date");
+ gwtMsg.seats = bpmMsg.getPropertyValue("Seats");
+ gwtMsg.price = bpmMsg.getPropertyValue("Price");
returnMsg = gwtMsg;
}
else
Modified: jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketTest.java 2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketTest.java 2008-08-02 15:47:06 UTC (rev 1804)
@@ -92,7 +92,7 @@
Message confirmMessage = msgListener.getConfirmMessage();
assertNotNull("Expected confirm message", confirmMessage);
- String price = confirmMessage.getProperty("Price").getValue().getExpressionBody();
+ String price = confirmMessage.getPropertyValue("Price");
assertEquals("222", price);
}
@@ -111,7 +111,7 @@
Message confirmMessage = msgListener.getConfirmMessage();
assertNotNull("Expected confirm message", confirmMessage);
- String price = confirmMessage.getProperty("Price").getValue().getExpressionBody();
+ String price = confirmMessage.getPropertyValue("Price");
assertEquals("222", price);
}
Modified: jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/ProcessMarshallerTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/ProcessMarshallerTest.java 2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/ProcessMarshallerTest.java 2008-08-02 15:47:06 UTC (rev 1804)
@@ -79,7 +79,7 @@
DialectHandler dialect = pm.getDialectHandler("urn:bpm.jboss:pdl-0.1");
URL expURL = getResourceURL("samples/airticket/airticket-api10.xml");
- Process proc = dialect.createProcess(expURL);
+ Process proc = dialect.createProcess(expURL, false);
StringWriter strwr = new StringWriter();
dialect.marshallProcess(proc, strwr);
Modified: jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/process/ProcessIntegrityTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/process/ProcessIntegrityTest.java 2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/process/ProcessIntegrityTest.java 2008-08-02 15:47:06 UTC (rev 1804)
@@ -48,7 +48,7 @@
// Create a Process through the ProcessBuilder
ProcessBuilder builder = ProcessBuilderFactory.newInstance().newProcessBuilder();
Process proc = builder.addProcess(null).addStartEvent().addSequenceFlow("taskA").addTask("taskA").
- addSequenceFlow("end").addEndEvent("end").getProcess();
+ addSequenceFlow("end").addEndEvent("end").getProcess(true);
assertEquals("AnonymousProcess#0", proc.getName());
StartEvent start = proc.getStartEvent();
@@ -68,7 +68,7 @@
{
// Create a Process through the ProcessBuilder
ProcessBuilder builder = ProcessBuilderFactory.newInstance().newProcessBuilder();
- builder.addProcess(null).addTask("taskA").addSequenceFlow("end").addEndEvent("end").getProcess();
+ builder.addProcess(null).addTask("taskA").addSequenceFlow("end").addEndEvent("end").getProcess(true);
fail("InvalidProcessException expected");
}
catch (InvalidProcessException ex)
@@ -84,7 +84,7 @@
// Create a Process through the ProcessBuilder
ProcessBuilder builder = ProcessBuilderFactory.newInstance().newProcessBuilder();
builder.addProcess(null).addStartEvent().addSequenceFlow("taskA").addTask("taskA").addSequenceFlow("end").
- addTask("end").getProcess();
+ addTask("end").getProcess(true);
fail("InvalidProcessException expected");
}
catch (InvalidProcessException ex)
@@ -100,7 +100,7 @@
// Create a Process through the ProcessBuilder
ProcessBuilder builder = ProcessBuilderFactory.newInstance().newProcessBuilder();
builder.addProcess(null).addStartEvent().addSequenceFlow("taskA").addTask("taskA").addSequenceFlow("end").
- addTask("taskA").addSequenceFlow("end").addEndEvent("end").getProcess();
+ addTask("taskA").addSequenceFlow("end").addEndEvent("end").getProcess(true);
fail("InvalidProcessException expected");
}
catch (InvalidProcessException ex)
Modified: jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/process/ProcessStartTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/process/ProcessStartTest.java 2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/process/ProcessStartTest.java 2008-08-02 15:47:06 UTC (rev 1804)
@@ -66,7 +66,7 @@
{
ProcessBuilder builder = ProcessBuilderFactory.newInstance().newProcessBuilder();
Process proc = builder.addProcess(getName()).addStartEvent().addSequenceFlow("taskA").
- addTask("taskA").addSequenceFlow("end").addEndEvent("end").getProcess();
+ addTask("taskA").addSequenceFlow("end").addEndEvent("end").getProcess(true);
return proc;
}
}
Modified: jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/processmanager/ProcessRegistryTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/processmanager/ProcessRegistryTest.java 2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/processmanager/ProcessRegistryTest.java 2008-08-02 15:47:06 UTC (rev 1804)
@@ -76,7 +76,7 @@
{
ProcessBuilder builder = ProcessBuilderFactory.newInstance().newProcessBuilder();
Process proc = builder.addProcess(getName()).addStartEvent().addSequenceFlow("taskA").
- addTask("taskA").addSequenceFlow("end").addEndEvent("end").getProcess();
+ addTask("taskA").addSequenceFlow("end").addEndEvent("end").getProcess(true);
return proc;
}
}
Modified: jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/task/TaskMessageTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/task/TaskMessageTest.java 2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/task/TaskMessageTest.java 2008-08-02 15:47:06 UTC (rev 1804)
@@ -44,7 +44,7 @@
procBuilder.addTask("A", TaskType.Receive).addSequenceFlow("End").addEndEvent("End");
try
{
- procBuilder.getProcess();
+ procBuilder.getProcess(true);
fail("A Message for the MessageRef attribute MUST be entered");
}
catch (InvalidProcessException ex)
@@ -60,7 +60,7 @@
procBuilder.addTask("A", TaskType.Send).addSequenceFlow("End").addEndEvent("End");
try
{
- procBuilder.getProcess();
+ procBuilder.getProcess(true);
fail("A Message for the MessageRef attribute MUST be entered");
}
catch (InvalidProcessException ex)
Modified: jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/parallelsplit/ParallelSplitTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/parallelsplit/ParallelSplitTest.java 2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/parallelsplit/ParallelSplitTest.java 2008-08-02 15:47:06 UTC (rev 1804)
@@ -73,7 +73,7 @@
// Create a Process through the ProcessBuilder
ProcessBuilder procBuilder = ProcessBuilderFactory.newInstance().newProcessBuilder();
Process proc = procBuilder.addProcess(getName()).addStartEvent().addSequenceFlow("gateway").addGateway("gateway", GatewayType.Parallel).
- addSequenceFlow("endA").addSequenceFlow("endB").addEndEvent("endA").addEndEvent("endB").getProcess();
+ addSequenceFlow("endA").addSequenceFlow("endB").addEndEvent("endA").addEndEvent("endB").getProcess(true);
runProcess(proc);
}
Modified: jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/sequence/BasicSequenceTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/sequence/BasicSequenceTest.java 2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/sequence/BasicSequenceTest.java 2008-08-02 15:47:06 UTC (rev 1804)
@@ -73,7 +73,7 @@
// Create a Process through the ProcessBuilder
ProcessBuilder procBuilder = ProcessBuilderFactory.newInstance().newProcessBuilder();
Process proc = procBuilder.addProcess(getName()).addStartEvent().addSequenceFlow("stateA").addTask("stateA").
- addSequenceFlow("end").addEndEvent("end").getProcess();
+ addSequenceFlow("end").addEndEvent("end").getProcess(true);
runProcess(proc);
}
Modified: jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/task/BasicTaskTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/task/BasicTaskTest.java 2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/task/BasicTaskTest.java 2008-08-02 15:47:06 UTC (rev 1804)
@@ -73,7 +73,7 @@
// Create a Process through the ProcessBuilder
ProcessBuilder procBuilder = ProcessBuilderFactory.newInstance().newProcessBuilder();
Process proc = procBuilder.addProcess(getName()).addStartEvent().addSequenceFlow("stateA").addTask("stateA").
- addExecutionHandler(TaskA.class).addSequenceFlow("end").addEndEvent("end").getProcess();
+ addExecutionHandler(TaskA.class).addSequenceFlow("end").addEndEvent("end").getProcess(true);
runProcess(proc);
}
17 years, 9 months
JBoss JBPM SVN: r1803 - in jbossbpm/spec/trunk/modules/dialects: api10 and 3 other directories.
by do-not-reply@jboss.org
Author: thomas.diesler(a)jboss.com
Date: 2008-08-02 09:11:12 -0400 (Sat, 02 Aug 2008)
New Revision: 1803
Modified:
jbossbpm/spec/trunk/modules/dialects/api10/pom.xml
jbossbpm/spec/trunk/modules/dialects/jpdl32/.classpath
jbossbpm/spec/trunk/modules/dialects/jpdl32/pom.xml
jbossbpm/spec/trunk/modules/dialects/pom.xml
jbossbpm/spec/trunk/modules/dialects/stp/pom.xml
jbossbpm/spec/trunk/modules/dialects/xpdl21/.classpath
jbossbpm/spec/trunk/modules/dialects/xpdl21/pom.xml
Log:
Fix eclipse classpath
Modified: jbossbpm/spec/trunk/modules/dialects/api10/pom.xml
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/pom.xml 2008-08-02 12:51:38 UTC (rev 1802)
+++ jbossbpm/spec/trunk/modules/dialects/api10/pom.xml 2008-08-02 13:11:12 UTC (rev 1803)
@@ -10,7 +10,8 @@
<!-- ====================================================================== -->
<!-- $Id$ -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<name>JBossBPM - Spec Dialect API-1.0</name>
<groupId>org.jboss.bpm</groupId>
@@ -20,33 +21,7 @@
<!-- Parent -->
<parent>
<groupId>org.jboss.bpm</groupId>
- <artifactId>bpm-spec</artifactId>
+ <artifactId>bpm-dialects</artifactId>
<version>1.0.0-SNAPSHOT</version>
- <relativePath>../../pom.xml</relativePath>
</parent>
-
- <!-- Dependencies -->
- <dependencies>
- <dependency>
- <groupId>org.jboss.bpm</groupId>
- <artifactId>bpm-api</artifactId>
- </dependency>
- <dependency>
- <groupId>com.sun.xml.bind</groupId>
- <artifactId>jaxb-impl</artifactId>
- </dependency>
-
- <!-- Runtime Dependencies -->
- <dependency>
- <groupId>org.jboss.bpm</groupId>
- <artifactId>bpm-ri</artifactId>
- <scope>runtime</scope>
- </dependency>
- <dependency>
- <groupId>com.sun.xml.bind</groupId>
- <artifactId>jaxb-xjc</artifactId>
- <scope>runtime</scope>
- </dependency>
- </dependencies>
-
</project>
\ No newline at end of file
Modified: jbossbpm/spec/trunk/modules/dialects/jpdl32/.classpath
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/jpdl32/.classpath 2008-08-02 12:51:38 UTC (rev 1802)
+++ jbossbpm/spec/trunk/modules/dialects/jpdl32/.classpath 2008-08-02 13:11:12 UTC (rev 1803)
@@ -2,7 +2,7 @@
<classpath>
<classpathentry kind="src" output="target/classes" path="src/main/java"/>
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>
Modified: jbossbpm/spec/trunk/modules/dialects/jpdl32/pom.xml
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/jpdl32/pom.xml 2008-08-02 12:51:38 UTC (rev 1802)
+++ jbossbpm/spec/trunk/modules/dialects/jpdl32/pom.xml 2008-08-02 13:11:12 UTC (rev 1803)
@@ -10,7 +10,8 @@
<!-- ====================================================================== -->
<!-- $Id$ -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<name>JBossBPM - Spec Dialect jPDL-3.2</name>
<groupId>org.jboss.bpm</groupId>
@@ -20,28 +21,8 @@
<!-- Parent -->
<parent>
<groupId>org.jboss.bpm</groupId>
- <artifactId>bpm-spec</artifactId>
+ <artifactId>bpm-dialects</artifactId>
<version>1.0.0-SNAPSHOT</version>
- <relativePath>../../pom.xml</relativePath>
</parent>
-
- <!-- Dependencies -->
- <dependencies>
- <dependency>
- <groupId>org.jboss.bpm</groupId>
- <artifactId>bpm-api</artifactId>
- <version>${version}</version>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>com.sun.xml.bind</groupId>
- <artifactId>jaxb-impl</artifactId>
- </dependency>
- <dependency>
- <groupId>com.sun.xml.bind</groupId>
- <artifactId>jaxb-xjc</artifactId>
- <scope>runtime</scope>
- </dependency>
- </dependencies>
</project>
\ No newline at end of file
Modified: jbossbpm/spec/trunk/modules/dialects/pom.xml
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/pom.xml 2008-08-02 12:51:38 UTC (rev 1802)
+++ jbossbpm/spec/trunk/modules/dialects/pom.xml 2008-08-02 13:11:12 UTC (rev 1803)
@@ -33,4 +33,26 @@
<module>xpdl21</module>
</modules>
+ <!-- Dependencies -->
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.bpm</groupId>
+ <artifactId>bpm-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.sun.xml.bind</groupId>
+ <artifactId>jaxb-impl</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.bpm</groupId>
+ <artifactId>bpm-ri</artifactId>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.sun.xml.bind</groupId>
+ <artifactId>jaxb-xjc</artifactId>
+ <scope>runtime</scope>
+ </dependency>
+ </dependencies>
+
</project>
\ No newline at end of file
Modified: jbossbpm/spec/trunk/modules/dialects/stp/pom.xml
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/stp/pom.xml 2008-08-02 12:51:38 UTC (rev 1802)
+++ jbossbpm/spec/trunk/modules/dialects/stp/pom.xml 2008-08-02 13:11:12 UTC (rev 1803)
@@ -20,33 +20,8 @@
<!-- Parent -->
<parent>
<groupId>org.jboss.bpm</groupId>
- <artifactId>bpm-spec</artifactId>
+ <artifactId>bpm-dialects</artifactId>
<version>1.0.0-SNAPSHOT</version>
- <relativePath>../../pom.xml</relativePath>
</parent>
-
- <!-- Dependencies -->
- <dependencies>
- <dependency>
- <groupId>org.jboss.bpm</groupId>
- <artifactId>bpm-api</artifactId>
- </dependency>
- <dependency>
- <groupId>com.sun.xml.bind</groupId>
- <artifactId>jaxb-impl</artifactId>
- </dependency>
-
- <!-- Runtime Dependencies -->
- <dependency>
- <groupId>org.jboss.bpm</groupId>
- <artifactId>bpm-ri</artifactId>
- <scope>runtime</scope>
- </dependency>
- <dependency>
- <groupId>com.sun.xml.bind</groupId>
- <artifactId>jaxb-xjc</artifactId>
- <scope>runtime</scope>
- </dependency>
- </dependencies>
</project>
\ No newline at end of file
Modified: jbossbpm/spec/trunk/modules/dialects/xpdl21/.classpath
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/xpdl21/.classpath 2008-08-02 12:51:38 UTC (rev 1802)
+++ jbossbpm/spec/trunk/modules/dialects/xpdl21/.classpath 2008-08-02 13:11:12 UTC (rev 1803)
@@ -2,7 +2,7 @@
<classpath>
<classpathentry kind="src" output="target/classes" path="src/main/java"/>
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>
Modified: jbossbpm/spec/trunk/modules/dialects/xpdl21/pom.xml
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/xpdl21/pom.xml 2008-08-02 12:51:38 UTC (rev 1802)
+++ jbossbpm/spec/trunk/modules/dialects/xpdl21/pom.xml 2008-08-02 13:11:12 UTC (rev 1803)
@@ -10,7 +10,8 @@
<!-- ====================================================================== -->
<!-- $Id$ -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<name>JBossBPM - Spec Dialect XPDL-2.1</name>
<groupId>org.jboss.bpm</groupId>
@@ -20,28 +21,7 @@
<!-- Parent -->
<parent>
<groupId>org.jboss.bpm</groupId>
- <artifactId>bpm-spec</artifactId>
+ <artifactId>bpm-dialects</artifactId>
<version>1.0.0-SNAPSHOT</version>
- <relativePath>../../pom.xml</relativePath>
</parent>
-
- <!-- Dependencies -->
- <dependencies>
- <dependency>
- <groupId>org.jboss.bpm</groupId>
- <artifactId>bpm-api</artifactId>
- <version>${version}</version>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>com.sun.xml.bind</groupId>
- <artifactId>jaxb-impl</artifactId>
- </dependency>
- <dependency>
- <groupId>com.sun.xml.bind</groupId>
- <artifactId>jaxb-xjc</artifactId>
- <scope>runtime</scope>
- </dependency>
- </dependencies>
-
</project>
\ No newline at end of file
17 years, 9 months
JBoss JBPM SVN: r1802 - in jbossbpm/spec/trunk/modules: api/src/main/java/org/jboss/bpm/model and 24 other directories.
by do-not-reply@jboss.org
Author: thomas.diesler(a)jboss.com
Date: 2008-08-02 08:51:38 -0400 (Sat, 02 Aug 2008)
New Revision: 1802
Added:
jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBMessageRef.java
jbossbpm/spec/trunk/modules/dialects/api10/src/test/
jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/
jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/
jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/
jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/
jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/
jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/
jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/ProcessMessageTest.java
jbossbpm/spec/trunk/modules/dialects/api10/src/test/resources/
jbossbpm/spec/trunk/modules/dialects/api10/src/test/resources/jbpm-beans.xml
jbossbpm/spec/trunk/modules/dialects/api10/src/test/resources/log4j.xml
jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/task/
jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/task/TaskMessageTest.java
Modified:
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/DialectHandler.java
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/MessageBuilder.java
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/SendTask.java
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/TaskBuilder.java
jbossbpm/spec/trunk/modules/dialects/api10/.classpath
jbossbpm/spec/trunk/modules/dialects/api10/pom.xml
jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/DialectHandlerImpl.java
jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/ProcessMarshaller.java
jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/ProcessUnmarshaller.java
jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBMessage.java
jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBTask.java
jbossbpm/spec/trunk/modules/dialects/jpdl32/src/main/java/org/jboss/bpm/dialect/jpdl32/DialectHandlerImpl.java
jbossbpm/spec/trunk/modules/dialects/jpdl32/src/main/resources/jpdl-3.2.xsd
jbossbpm/spec/trunk/modules/dialects/stp/pom.xml
jbossbpm/spec/trunk/modules/dialects/stp/src/main/java/org/jboss/bpm/dialect/stp/DialectHandlerImpl.java
jbossbpm/spec/trunk/modules/dialects/xpdl21/src/main/java/org/jboss/bpm/dialect/xpdl21/DialectHandlerImpl.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/MessageBuilderImpl.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/MessageImpl.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ProcessBuilderImpl.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ReceiveTaskImpl.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/SendTaskImpl.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/TaskBuilderImpl.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/TaskImpl.java
jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AirticketProcessBuilder.java
jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/server/AirticketServiceImpl.java
jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketTest.java
jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/ProcessMarshallerTest.java
jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket-api10.xml
Log:
Add support for msgref
Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/DialectHandler.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/DialectHandler.java 2008-08-01 11:40:47 UTC (rev 1801)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/DialectHandler.java 2008-08-02 12:51:38 UTC (rev 1802)
@@ -38,6 +38,11 @@
public interface DialectHandler
{
/**
+ * Get the the supported namespace from this dialect.
+ */
+ String getNamespaceURI();
+
+ /**
* Create a {@link Process} from a descriptor.
*/
Process createProcess(String pXML);
Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/MessageBuilder.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/MessageBuilder.java 2008-08-01 11:40:47 UTC (rev 1801)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/MessageBuilder.java 2008-08-02 12:51:38 UTC (rev 1802)
@@ -23,6 +23,7 @@
import javax.management.ObjectName;
+
//$Id$
/**
@@ -36,9 +37,19 @@
/**
* Create a {@link Message} with a given name
*/
- MessageBuilder newMessage(String messageName, ObjectName targetID);
+ MessageBuilder newMessage(String msgName);
/**
+ * Add a message destination
+ */
+ MessageBuilder addToRef(ObjectName toRef);
+
+ /**
+ * Add a message source
+ */
+ MessageBuilder addFromRef(ObjectName fromRef);
+
+ /**
* Add a message property
*/
MessageBuilder addProperty(String name, String value);
Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/SendTask.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/SendTask.java 2008-08-01 11:40:47 UTC (rev 1801)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/SendTask.java 2008-08-02 12:51:38 UTC (rev 1802)
@@ -21,6 +21,7 @@
*/
package org.jboss.bpm.model;
+
//$Id$
/**
Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/TaskBuilder.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/TaskBuilder.java 2008-08-01 11:40:47 UTC (rev 1801)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/TaskBuilder.java 2008-08-02 12:51:38 UTC (rev 1802)
@@ -23,7 +23,6 @@
//$Id$
-import javax.management.ObjectName;
/**
* The TaskBuilder can be used to build a {@link Task} dynamically.
@@ -33,9 +32,9 @@
*/
public interface TaskBuilder extends ActivityBuilder
{
- TaskBuilder addMessageRef(String messageName);
+ MessageBuilder addMessage(String msgName);
+
+ TaskBuilder addMessageRef(String msgName);
- TaskBuilder addMessageRef(String messageName, ObjectName targetID);
-
TaskBuilder addExecutionHandler(Class<?> clazz);
}
\ No newline at end of file
Modified: jbossbpm/spec/trunk/modules/dialects/api10/.classpath
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/.classpath 2008-08-01 11:40:47 UTC (rev 1801)
+++ jbossbpm/spec/trunk/modules/dialects/api10/.classpath 2008-08-02 12:51:38 UTC (rev 1802)
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="src" output="target/classes" path="src/main/java"/>
+ <classpathentry kind="src" path="src/main/java"/>
+ <classpathentry kind="src" path="src/test/java"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
<classpathentry kind="output" path="target/classes"/>
Modified: jbossbpm/spec/trunk/modules/dialects/api10/pom.xml
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/pom.xml 2008-08-01 11:40:47 UTC (rev 1801)
+++ jbossbpm/spec/trunk/modules/dialects/api10/pom.xml 2008-08-02 12:51:38 UTC (rev 1802)
@@ -30,14 +30,19 @@
<dependency>
<groupId>org.jboss.bpm</groupId>
<artifactId>bpm-api</artifactId>
- <version>${version}</version>
- <scope>compile</scope>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
</dependency>
+
+ <!-- Runtime Dependencies -->
<dependency>
+ <groupId>org.jboss.bpm</groupId>
+ <artifactId>bpm-ri</artifactId>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-xjc</artifactId>
<scope>runtime</scope>
Modified: jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/DialectHandlerImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/DialectHandlerImpl.java 2008-08-01 11:40:47 UTC (rev 1801)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/DialectHandlerImpl.java 2008-08-02 12:51:38 UTC (rev 1802)
@@ -43,6 +43,13 @@
*/
public class DialectHandlerImpl implements DialectHandler
{
+ public static final String NAMESPACE_URI = "urn:bpm.jboss:pdl-0.1";
+
+ public String getNamespaceURI()
+ {
+ return NAMESPACE_URI;
+ }
+
public Process createProcess(String pXML)
{
try
Modified: jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/ProcessMarshaller.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/ProcessMarshaller.java 2008-08-01 11:40:47 UTC (rev 1801)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/ProcessMarshaller.java 2008-08-02 12:51:38 UTC (rev 1802)
@@ -44,6 +44,7 @@
import org.jboss.bpm.dialect.api10.model.JAXBInclusiveGateway;
import org.jboss.bpm.dialect.api10.model.JAXBInputSet;
import org.jboss.bpm.dialect.api10.model.JAXBMessage;
+import org.jboss.bpm.dialect.api10.model.JAXBMessageRef;
import org.jboss.bpm.dialect.api10.model.JAXBOutputSet;
import org.jboss.bpm.dialect.api10.model.JAXBParallelGateway;
import org.jboss.bpm.dialect.api10.model.JAXBProcess;
@@ -105,6 +106,12 @@
JAXBProcess jaxbProc = new JAXBProcess();
jaxbProc.setName(proc.getName());
+ for (Message msg : proc.getMessages())
+ {
+ JAXBMessage jaxbMsg = adaptMessage(jaxbProc, msg);
+ jaxbProc.getMessages().add(jaxbMsg);
+ }
+
for (FlowObject fo : proc.getFlowObjects())
{
JAXBFlowObject jaxb;
@@ -250,25 +257,44 @@
if (msgRef != null)
{
String msgName = msgRef.getName();
- if (jaxbProc.getMessageByName(msgName) == null)
+ JAXBMessage jaxbMsg = jaxbProc.getMessageByName(msgName);
+ if (jaxbMsg != null)
{
- JAXBMessage jaxbMsg = new JAXBMessage();
- jaxbMsg.setName(msgName);
- for (Property prop : msgRef.getProperties())
- {
- JAXBProperty jaxbProp = getJaxbProperty(prop);
- jaxbMsg.getProperties().add(jaxbProp);
- }
- jaxbProc.getMessages().add(jaxbMsg);
+ JAXBMessageRef jaxbMsgRef = new JAXBMessageRef();
+ jaxbMsgRef.setNameRef(msgName);
+
+ String fromStr = getParticipant(msgRef.getFromRef());
+ if (fromStr != null && fromStr.equals(jaxbMsg.getFromRef()) == false)
+ jaxbMsgRef.setFromRef(fromStr);
+
+ String toStr = getParticipant(msgRef.getToRef());
+ if (toStr != null && toStr.equals(jaxbMsg.getToRef()) == false)
+ jaxbMsgRef.setToRef(toStr);
+
+ jaxb.setMessageRef(jaxbMsgRef);
}
- JAXBMessage jaxbMsg = new JAXBMessage();
- jaxbMsg.setRef(msgName);
- jaxbMsg.setFromRef(getParticipant(msgRef.getFromRef()));
- jaxbMsg.setToRef(getParticipant(msgRef.getToRef()));
- jaxb.setMessageRef(jaxbMsg);
+ else
+ {
+ jaxbMsg = adaptMessage(jaxbProc, msgRef);
+ jaxb.setMessageRef(jaxbMsg);
+ }
}
}
+ private JAXBMessage adaptMessage(JAXBProcess jaxbProc, Message msg)
+ {
+ JAXBMessage jaxbMsg = new JAXBMessage();
+ jaxbMsg.setName(msg.getName());
+ jaxbMsg.setFromRef(getParticipant(msg.getFromRef()));
+ jaxbMsg.setToRef(getParticipant(msg.getToRef()));
+ for (Property prop : msg.getProperties())
+ {
+ JAXBProperty jaxbProp = getJaxbProperty(prop);
+ jaxbMsg.getProperties().add(jaxbProp);
+ }
+ return jaxbMsg;
+ }
+
private String getParticipant(Participant par)
{
String parName = null;
@@ -369,5 +395,3 @@
return jaxb;
}
}
-
-
Modified: jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/ProcessUnmarshaller.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/ProcessUnmarshaller.java 2008-08-01 11:40:47 UTC (rev 1801)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/ProcessUnmarshaller.java 2008-08-02 12:51:38 UTC (rev 1802)
@@ -30,6 +30,7 @@
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
+import org.jboss.bpm.InvalidProcessException;
import org.jboss.bpm.NotImplementedException;
import org.jboss.bpm.client.ObjectNameFactory;
import org.jboss.bpm.dialect.api10.model.JAXBComplexGateway;
@@ -44,12 +45,14 @@
import org.jboss.bpm.dialect.api10.model.JAXBInclusiveGateway;
import org.jboss.bpm.dialect.api10.model.JAXBInputSet;
import org.jboss.bpm.dialect.api10.model.JAXBMessage;
+import org.jboss.bpm.dialect.api10.model.JAXBMessageRef;
import org.jboss.bpm.dialect.api10.model.JAXBOutputSet;
import org.jboss.bpm.dialect.api10.model.JAXBParallelGateway;
import org.jboss.bpm.dialect.api10.model.JAXBProcess;
import org.jboss.bpm.dialect.api10.model.JAXBProperty;
import org.jboss.bpm.dialect.api10.model.JAXBSequenceFlow;
import org.jboss.bpm.dialect.api10.model.JAXBStartEvent;
+import org.jboss.bpm.dialect.api10.model.JAXBSupportingElement;
import org.jboss.bpm.dialect.api10.model.JAXBTask;
import org.jboss.bpm.dialect.api10.model.ObjectFactory;
import org.jboss.bpm.model.GatewayBuilder;
@@ -84,39 +87,53 @@
{
ProcessBuilder procBuilder = ProcessBuilderFactory.newInstance().newProcessBuilder();
procBuilder.addProcess(jaxbProc.getName());
+
+ for(JAXBMessage jaxb : jaxbProc.getMessages())
+ {
+ MessageBuilder msgBuilder = procBuilder.addMessage(jaxb.getName());
+ adaptJAXBMessage(msgBuilder, jaxb);
+ }
+
for (JAXBFlowObject jaxb : jaxbProc.getFlowObjects())
{
if (jaxb instanceof JAXBEvent)
{
- adaptJAXBEvent(procBuilder, (JAXBEvent)jaxb);
+ adaptJAXBEvent(procBuilder, jaxbProc, (JAXBEvent)jaxb);
}
else if (jaxb instanceof JAXBTask)
{
- adaptTask(procBuilder, (JAXBTask)jaxb);
+ adaptTask(procBuilder, jaxbProc, (JAXBTask)jaxb);
}
else if (jaxb instanceof JAXBGateway)
{
- adaptJAXBGateway(procBuilder, (JAXBGateway)jaxb);
+ adaptJAXBGateway(procBuilder, jaxbProc, (JAXBGateway)jaxb);
}
else
{
throw new NotImplementedException(jaxb.toString());
}
}
- for(JAXBMessage jaxb : jaxbProc.getMessages())
- {
- MessageBuilder msgBuilder = procBuilder.addMessage(jaxb.getName());
- for (JAXBProperty jaxbProp : jaxb.getProperties())
- {
- msgBuilder.addProperty(jaxbProp.getName(), jaxbProp.getValue(), jaxbProp.isCorrelation());
- }
- }
Process proc = procBuilder.getProcess();
return proc;
}
- private void adaptJAXBEvent(ProcessBuilder procBuilder, JAXBEvent jaxb)
+ private void adaptJAXBMessage(MessageBuilder msgBuilder, JAXBMessage jaxbMsg)
{
+ msgBuilder.addFromRef(getObjectName(jaxbMsg.getFromRef()));
+ msgBuilder.addToRef(getObjectName(jaxbMsg.getToRef()));
+ for (JAXBProperty jaxbProp : jaxbMsg.getProperties())
+ {
+ msgBuilder.addProperty(jaxbProp.getName(), jaxbProp.getValue(), jaxbProp.isCorrelation());
+ }
+ }
+
+ private ObjectName getObjectName(String toStr)
+ {
+ return (toStr != null ? ObjectNameFactory.create(toStr) : null);
+ }
+
+ private void adaptJAXBEvent(ProcessBuilder procBuilder, JAXBProcess jaxbProc, JAXBEvent jaxb)
+ {
if (jaxb instanceof JAXBStartEvent)
{
procBuilder.addStartEvent();
@@ -137,7 +154,7 @@
procBuilder.addSignalHandler(loadHandler(jaxb.getSignalHandler()));
}
- private void adaptTask(ProcessBuilder procBuilder, JAXBTask jaxb)
+ private void adaptTask(ProcessBuilder procBuilder, JAXBProcess jaxbProc, JAXBTask jaxb)
{
TaskBuilder taskBuilder = procBuilder.addTask(jaxb.getName(), jaxb.getTaskType());
addOutFlow(taskBuilder, jaxb.getOutFlow());
@@ -153,19 +170,29 @@
for (JAXBProperty jaxbProp : jaxbSet.getProperties())
taskBuilder.addPropertyOutput(jaxbProp.getName(), jaxbProp.getValue());
}
- JAXBMessage jaxbMessage = jaxb.getMessageRef();
- if (jaxbMessage != null)
+ JAXBSupportingElement jaxbSE = jaxb.getMessageRef();
+ if (jaxbSE instanceof JAXBMessage)
{
- String toStr = jaxbMessage.getToRef();
- ObjectName toRef = (toStr != null ? ObjectNameFactory.create(toStr) : null);
- taskBuilder.addMessageRef(jaxbMessage.getRef(), toRef);
+ JAXBMessage jaxbMsg = (JAXBMessage)jaxbSE;
+ MessageBuilder msgBuilder = taskBuilder.addMessage(jaxbMsg.getName());
+ adaptJAXBMessage(msgBuilder, jaxbMsg);
}
+ else if (jaxbSE instanceof JAXBMessageRef)
+ {
+ JAXBMessageRef jaxbMsgRef = (JAXBMessageRef)jaxbSE;
+ String msgName = jaxbMsgRef.getNameRef();
+ JAXBMessage jaxbMsg = jaxbProc.getMessageByName(msgName);
+ if (jaxbMsg == null)
+ throw new InvalidProcessException("Cannot find message with name: " + msgName);
+ MessageBuilder msgBuilder = taskBuilder.addMessage(msgName);
+ adaptJAXBMessage(msgBuilder, jaxbMsg);
+ }
procBuilder.addExecutionHandler(loadHandler(jaxb.getExecutionHandler()));
procBuilder.addFlowHandler(loadHandler(jaxb.getFlowHandler()));
procBuilder.addSignalHandler(loadHandler(jaxb.getSignalHandler()));
}
- private void adaptJAXBGateway(ProcessBuilder procBuilder, JAXBGateway jaxb)
+ private void adaptJAXBGateway(ProcessBuilder procBuilder, JAXBProcess jaxbProc, JAXBGateway jaxb)
{
GatewayBuilder gwBuilder;
if (jaxb instanceof JAXBExclusiveGateway)
Modified: jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBMessage.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBMessage.java 2008-08-01 11:40:47 UTC (rev 1801)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBMessage.java 2008-08-02 12:51:38 UTC (rev 1802)
@@ -38,26 +38,14 @@
* @author thomas.diesler(a)jboss.com
* @since 08-Jul-2008
*/
-@XmlType(name = "Message", propOrder = {"fromRef", "toRef", "properties"})
+@XmlType(name = "Message", propOrder = { "fromRef", "toRef", "properties"})
public class JAXBMessage extends JAXBSupportingElement
{
- private String ref;
private String name;
private String fromRef;
private String toRef;
private List<JAXBProperty> properties = new ArrayList<JAXBProperty>();
- public String getRef()
- {
- return ref;
- }
-
- @XmlAttribute
- public void setRef(String ref)
- {
- this.ref = ref;
- }
-
public String getName()
{
return name;
Added: jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBMessageRef.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBMessageRef.java (rev 0)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBMessageRef.java 2008-08-02 12:51:38 UTC (rev 1802)
@@ -0,0 +1,76 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.bpm.dialect.api10.model;
+
+//$Id$
+
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * A Message, which is used in the definition of attributes for a @{link StartEvent},
+ *
+ * @author thomas.diesler(a)jboss.com
+ * @since 08-Jul-2008
+ */
+@XmlType(name = "MessageRef")
+public class JAXBMessageRef extends JAXBSupportingElement
+{
+ private String nameRef;
+ private String fromRef;
+ private String toRef;
+
+ public String getNameRef()
+ {
+ return nameRef;
+ }
+
+ @XmlAttribute
+ public void setNameRef(String ref)
+ {
+ this.nameRef = ref;
+ }
+
+
+ public String getFromRef()
+ {
+ return fromRef;
+ }
+
+ @XmlElement(name = "from")
+ public void setFromRef(String fromRef)
+ {
+ this.fromRef = fromRef;
+ }
+
+ public String getToRef()
+ {
+ return toRef;
+ }
+
+ @XmlElement(name = "to")
+ public void setToRef(String toRef)
+ {
+ this.toRef = toRef;
+ }
+}
\ No newline at end of file
Property changes on: jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBMessageRef.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Modified: jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBTask.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBTask.java 2008-08-01 11:40:47 UTC (rev 1801)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBTask.java 2008-08-02 12:51:38 UTC (rev 1802)
@@ -49,7 +49,6 @@
public class JAXBTask extends JAXBActivity
{
private TaskType taskType;
- private JAXBMessage messageRef;
private Implementation implementation;
private List<JAXBInputSet> inputSets = new ArrayList<JAXBInputSet>();
private List<JAXBOutputSet> outputSets = new ArrayList<JAXBOutputSet>();
@@ -63,6 +62,11 @@
@XmlElement(name = "msgflow", type = JAXBMessageFlow.class) })
private JAXBFlow outFlow;
+ @XmlElements( {
+ @XmlElement(name = "msgref", type = JAXBMessageRef.class),
+ @XmlElement(name = "message", type = JAXBMessage.class) })
+ private JAXBSupportingElement messageRef;
+
public JAXBFlow getOutFlow()
{
return outFlow;
@@ -95,13 +99,13 @@
this.implementation = implementation;
}
- public JAXBMessage getMessageRef()
+ public JAXBSupportingElement getMessageRef()
{
return messageRef;
}
- @XmlElement(name = "message")
- public void setMessageRef(JAXBMessage messageRef)
+ @XmlTransient
+ public void setMessageRef(JAXBSupportingElement messageRef)
{
this.messageRef = messageRef;
}
Added: jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/ProcessMessageTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/ProcessMessageTest.java (rev 0)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/ProcessMessageTest.java 2008-08-02 12:51:38 UTC (rev 1802)
@@ -0,0 +1,103 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.bpm.dialect.api10;
+
+// $Id$
+
+import java.io.StringWriter;
+
+import org.jboss.bpm.client.DialectHandler;
+import org.jboss.bpm.client.ProcessManager;
+import org.jboss.bpm.model.Process;
+import org.jboss.bpm.model.ProcessBuilder;
+import org.jboss.bpm.model.ProcessBuilderFactory;
+import org.jboss.bpm.model.ReceiveTask;
+import org.jboss.bpm.model.TaskBuilder;
+import org.jboss.bpm.model.Task.TaskType;
+import org.jboss.bpm.test.DefaultEngineTestCase;
+
+/**
+ * Test process messages
+ *
+ * @author thomas.diesler(a)jboss.com
+ * @since 03-Jul-2008
+ */
+public class ProcessMessageTest extends DefaultEngineTestCase
+{
+ public void testProcessMessage() throws Exception
+ {
+ ProcessBuilder procBuilder = ProcessBuilderFactory.newInstance().newProcessBuilder();
+ procBuilder.addProcess(getName()).addStartEvent().addSequenceFlow("End").addEndEvent("End");
+ procBuilder.addMessage("FooMsg");
+ Process expProc = procBuilder.getProcess();
+
+ ProcessManager pm = ProcessManager.locateProcessManager();
+ DialectHandler dh = pm.getDialectHandler(DialectHandlerImpl.NAMESPACE_URI);
+
+ StringWriter strwr = new StringWriter();
+ dh.marshallProcess(expProc, strwr);
+
+ Process wasProc = dh.createProcess(strwr.toString());
+ assertNotNull(wasProc.getMessageByName("FooMsg"));
+ }
+
+ public void testReceiveTaskWithMessage() throws Exception
+ {
+ ProcessBuilder procBuilder = ProcessBuilderFactory.newInstance().newProcessBuilder();
+ procBuilder.addProcess(getName()).addStartEvent().addSequenceFlow("A");
+ TaskBuilder taskBuilder = procBuilder.addTask("A", TaskType.Receive);
+ taskBuilder.addMessage("FooMsg");
+ procBuilder.addSequenceFlow("End").addEndEvent("End");
+ Process expProc = procBuilder.getProcess();
+
+ ProcessManager pm = ProcessManager.locateProcessManager();
+ DialectHandler dh = pm.getDialectHandler(DialectHandlerImpl.NAMESPACE_URI);
+
+ StringWriter strwr = new StringWriter();
+ dh.marshallProcess(expProc, strwr);
+
+ Process wasProc = dh.createProcess(strwr.toString());
+ ReceiveTask recTask = (ReceiveTask)wasProc.getFlowObjectByName("A");
+ assertEquals("FooMsg", recTask.getMessageRef().getName());
+ }
+
+ public void testReceiveTaskWithMessageRef() throws Exception
+ {
+ ProcessBuilder procBuilder = ProcessBuilderFactory.newInstance().newProcessBuilder();
+ procBuilder.addProcess(getName()).addMessage("FooMsg");
+ procBuilder.addStartEvent().addSequenceFlow("A");
+ TaskBuilder taskBuilder = procBuilder.addTask("A", TaskType.Receive);
+ taskBuilder.addMessageRef("FooMsg");
+ procBuilder.addSequenceFlow("End").addEndEvent("End");
+ Process expProc = procBuilder.getProcess();
+
+ ProcessManager pm = ProcessManager.locateProcessManager();
+ DialectHandler dh = pm.getDialectHandler(DialectHandlerImpl.NAMESPACE_URI);
+
+ StringWriter strwr = new StringWriter();
+ dh.marshallProcess(expProc, strwr);
+
+ Process wasProc = dh.createProcess(strwr.toString());
+ ReceiveTask recTask = (ReceiveTask)wasProc.getFlowObjectByName("A");
+ assertEquals("FooMsg", recTask.getMessageRef().getName());
+ }
+}
Property changes on: jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/ProcessMessageTest.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: jbossbpm/spec/trunk/modules/dialects/api10/src/test/resources/jbpm-beans.xml
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/test/resources/jbpm-beans.xml (rev 0)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/test/resources/jbpm-beans.xml 2008-08-02 12:51:38 UTC (rev 1802)
@@ -0,0 +1,44 @@
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+
+ <!-- The KernelLocator -->
+ <bean name="KernelLocator" class="org.jboss.kernel.plugins.util.KernelLocator"/>
+
+ <!-- The Builder Factories -->
+ <bean name="jBPMProcessBuilderFactory" class="org.jboss.bpm.model.internal.ProcessBuilderFactoryImpl"/>
+ <bean name="jBPMMessageBuilderFactory" class="org.jboss.bpm.model.internal.MessageBuilderFactoryImpl"/>
+ <bean name="jBPMPropertyBuilderFactory" class="org.jboss.bpm.model.internal.PropertyBuilderFactoryImpl"/>
+
+ <!-- The ProcessEngine -->
+ <bean name="jBPMProcessEngine" class="org.jboss.bpm.client.internal.ProcessEngineImpl">
+ <property name="processManager"><inject bean="jBPMProcessManager"/></property>
+ <property name="executionManager"><inject bean="jBPMExecutionManager"/></property>
+ <property name="signalManager"><inject bean="jBPMSignalManager"/></property>
+ <property name="messageManager"><inject bean="jBPMMessageManager"/></property>
+ </bean>
+
+ <!-- The Managers -->
+ <bean name="jBPMExecutionManager" class="org.jboss.bpm.client.internal.ExecutionManagerImpl"/>
+ <bean name="jBPMSignalManager" class="org.jboss.bpm.client.internal.SignalManagerImpl"/>
+ <bean name="jBPMMessageManager" class="org.jboss.bpm.client.internal.MessageManagerImpl"/>
+
+ <!-- The ProcessManager -->
+ <bean name="jBPMProcessManager" class="org.jboss.bpm.client.internal.ProcessManagerImpl">
+ <property name="dialectRegistry"><inject bean="jBPMDialectRegistry"/></property>
+ <property name="dialectHandlers">
+ <map keyClass="java.lang.String" valueClass="org.jboss.bpm.client.DialectHandler">
+ <entry><key>api10</key><value><inject bean="jBPMDialectHandlerAPI10"/></value></entry>
+ </map>
+ </property>
+ </bean>
+ <bean name="jBPMDialectHandlerAPI10" class="org.jboss.bpm.dialect.api10.DialectHandlerImpl"/>
+
+ <!-- The DialectRegistry -->
+ <bean name="jBPMDialectRegistry" class="org.jboss.bpm.client.DialectRegistry">
+ <property name="registry">
+ <map keyClass="java.lang.String" valueClass="java.lang.String">
+ <entry><key>urn:bpm.jboss:pdl-0.1</key><value>api10</value></entry>
+ </map>
+ </property>
+ </bean>
+
+</deployment>
\ No newline at end of file
Property changes on: jbossbpm/spec/trunk/modules/dialects/api10/src/test/resources/jbpm-beans.xml
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: jbossbpm/spec/trunk/modules/dialects/api10/src/test/resources/log4j.xml
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/test/resources/log4j.xml (rev 0)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/test/resources/log4j.xml 2008-08-02 12:51:38 UTC (rev 1802)
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
+
+ <!-- ================================= -->
+ <!-- Preserve messages in a local file -->
+ <!-- ================================= -->
+
+ <appender name="FILE" class="org.apache.log4j.FileAppender">
+ <param name="File" value="${log4j.output.dir}/test.log"/>
+ <param name="Append" value="false"/>
+ <layout class="org.apache.log4j.PatternLayout">
+ <!-- The default pattern: Date Priority [Category] Message\n -->
+ <param name="ConversionPattern" value="%d %-5p [%c:%L] %m%n"/>
+ </layout>
+ </appender>
+
+ <!-- ============================== -->
+ <!-- Append messages to the console -->
+ <!-- ============================== -->
+
+ <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
+ <param name="Target" value="System.out" />
+ <param name="Threshold" value="INFO" />
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%d{HH:mm:ss,SSS} [%t] %-5p %C{1} : %m%n" />
+ </layout>
+ </appender>
+
+ <!-- ================ -->
+ <!-- Limit categories -->
+ <!-- ================ -->
+
+ <category name="org.jbpm">
+ <priority value="DEBUG" />
+ </category>
+
+ <category name="org.hibernate">
+ <priority value="INFO" />
+ </category>
+
+ <!-- hide optimistic locking failures -->
+ <category name="org.hibernate.event.def.AbstractFlushingEventListener">
+ <priority value="FATAL" />
+ </category>
+
+ <!-- ======================= -->
+ <!-- Setup the Root category -->
+ <!-- ======================= -->
+
+ <root>
+ <!--appender-ref ref="CONSOLE"/-->
+ <appender-ref ref="FILE"/>
+ </root>
+
+</log4j:configuration>
Property changes on: jbossbpm/spec/trunk/modules/dialects/api10/src/test/resources/log4j.xml
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Modified: jbossbpm/spec/trunk/modules/dialects/jpdl32/src/main/java/org/jboss/bpm/dialect/jpdl32/DialectHandlerImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/jpdl32/src/main/java/org/jboss/bpm/dialect/jpdl32/DialectHandlerImpl.java 2008-08-01 11:40:47 UTC (rev 1801)
+++ jbossbpm/spec/trunk/modules/dialects/jpdl32/src/main/java/org/jboss/bpm/dialect/jpdl32/DialectHandlerImpl.java 2008-08-02 12:51:38 UTC (rev 1802)
@@ -45,7 +45,13 @@
*/
public class DialectHandlerImpl implements DialectHandler
{
-
+ public static final String NAMESPACE_URI = "urn:jbpm.org:jpdl-3.2";
+
+ public String getNamespaceURI()
+ {
+ return NAMESPACE_URI;
+ }
+
public Process createProcess(String pXML)
{
try
Modified: jbossbpm/spec/trunk/modules/dialects/jpdl32/src/main/resources/jpdl-3.2.xsd
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/jpdl32/src/main/resources/jpdl-3.2.xsd 2008-08-01 11:40:47 UTC (rev 1801)
+++ jbossbpm/spec/trunk/modules/dialects/jpdl32/src/main/resources/jpdl-3.2.xsd 2008-08-02 12:51:38 UTC (rev 1802)
@@ -1,10 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns="urn:jbpm.org:jpdl-3.2" targetNamespace="urn:jbpm.org:jpdl-3.2" xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ elementFormDefault="qualified">
-<xs:schema xmlns= "urn:jbpm.org:jpdl-3.2"
- targetNamespace="urn:jbpm.org:jpdl-3.2"
- xmlns:xs="http://www.w3.org/2001/XMLSchema"
- elementFormDefault="qualified">
-
<!-- PROCESS-DEFINITION -->
<!-- ################## -->
<xs:element name="process-definition">
@@ -13,8 +10,8 @@
<xs:element ref="description" />
<xs:element ref="swimlane" />
<xs:element ref="start-state" />
- <xs:group ref="node-elements"/>
- <xs:group ref="action-elements" />
+ <xs:group ref="node-elements" />
+ <xs:group ref="action-elements" />
<xs:element ref="event" />
<xs:element ref="exception-handler" />
<xs:element ref="task" />
@@ -28,7 +25,7 @@
<xs:element name="swimlane">
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="1">
- <xs:element ref="assignment"/>
+ <xs:element ref="assignment" />
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required" />
</xs:complexType>
@@ -40,63 +37,58 @@
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="description" />
- <xs:element ref="task"/>
- <xs:element ref="transition"/>
- <xs:element ref="event"/>
- <xs:element ref="exception-handler"/>
+ <xs:element ref="task" />
+ <xs:element ref="transition" />
+ <xs:element ref="event" />
+ <xs:element ref="exception-handler" />
</xs:choice>
- <xs:attribute name="name" type="xs:string"/>
+ <xs:attribute name="name" type="xs:string" />
</xs:complexType>
</xs:element>
-
<xs:element name="end-state">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="description" />
- <xs:element ref="event"/>
- <xs:element ref="exception-handler"/>
+ <xs:element ref="event" />
+ <xs:element ref="exception-handler" />
</xs:choice>
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="end-complete-process" type="booleanType" use="optional" default="false"/>
+ <xs:attribute name="name" type="xs:string" use="required" />
+ <xs:attribute name="end-complete-process" type="booleanType" use="optional" default="false" />
</xs:complexType>
</xs:element>
-
<xs:element name="decision">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="description" />
<xs:element name="handler" type="delegation" />
- <xs:element ref="event"/>
- <xs:element ref="exception-handler"/>
- <xs:element ref="transition"/>
+ <xs:element ref="event" />
+ <xs:element ref="exception-handler" />
+ <xs:element ref="transition" />
</xs:choice>
- <xs:attribute name="name" type="xs:string" use="required"/>
+ <xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="expression" type="xs:string" />
<xs:attribute name="async" type="xs:string" default="false" />
</xs:complexType>
</xs:element>
-
<xs:element name="fork">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="script" />
<xs:group ref="node-content-elements" />
</xs:choice>
- <xs:attribute name="name" type="xs:string" use="required"/>
+ <xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="async" type="xs:string" default="false" />
</xs:complexType>
</xs:element>
-
<xs:element name="join">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="node-content-elements" />
</xs:choice>
- <xs:attribute name="name" type="xs:string" use="required"/>
+ <xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="async" type="xs:string" default="false" />
</xs:complexType>
</xs:element>
-
<xs:element name="node">
<xs:complexType>
<xs:sequence>
@@ -107,91 +99,85 @@
<xs:group ref="node-content-elements" />
</xs:choice>
</xs:sequence>
- <xs:attribute name="name" type="xs:string" use="required"/>
+ <xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="async" type="xs:string" default="false" />
</xs:complexType>
</xs:element>
-
<xs:element name="process-state">
<xs:complexType>
- <xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:element name="sub-process">
- <xs:complexType>
- <xs:attribute name="name" type="xs:string"
- use="required" />
- <xs:attribute name="version" type="xs:integer" />
- <xs:attribute name="binding" type="xs:string" />
- </xs:complexType>
- </xs:element>
- <xs:element ref="variable" />
- <xs:group ref="node-content-elements" />
- </xs:choice>
- <xs:attribute name="name" type="xs:string" use="required" />
- <xs:attribute name="async" type="xs:string" default="false" />
- <xs:attribute name="binding" type="bindingType"></xs:attribute>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="sub-process">
+ <xs:complexType>
+ <xs:attribute name="name" type="xs:string" use="required" />
+ <xs:attribute name="version" type="xs:integer" />
+ <xs:attribute name="binding" type="xs:string" />
+ </xs:complexType>
+ </xs:element>
+ <xs:element ref="variable" />
+ <xs:group ref="node-content-elements" />
+ </xs:choice>
+ <xs:attribute name="name" type="xs:string" use="required" />
+ <xs:attribute name="async" type="xs:string" default="false" />
+ <xs:attribute name="binding" type="bindingType"></xs:attribute>
</xs:complexType>
</xs:element>
-
<xs:element name="state">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:group ref="node-content-elements"/>
+ <xs:group ref="node-content-elements" />
</xs:choice>
- <xs:attribute name="name" type="xs:string" use="required"/>
+ <xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="async" type="xs:string" default="false" />
</xs:complexType>
</xs:element>
-
<xs:element name="super-state">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:group ref="node-elements"/>
- <xs:group ref="node-content-elements"/>
+ <xs:group ref="node-elements" />
+ <xs:group ref="node-content-elements" />
</xs:choice>
- <xs:attribute name="name" type="xs:string" use="required"/>
+ <xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="async" type="xs:string" default="false" />
</xs:complexType>
</xs:element>
-
<xs:element name="task-node">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="task" />
<xs:group ref="node-content-elements" />
</xs:choice>
- <xs:attribute name="name" type="xs:string" use="required"/>
+ <xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="create-tasks" type="booleanType" default="true" />
<xs:attribute name="end-tasks" type="booleanType" default="false" />
<xs:attribute name="signal" default="last">
<xs:simpleType>
<xs:restriction base="xs:string">
- <xs:enumeration value="unsynchronized"/>
- <xs:enumeration value="never"/>
- <xs:enumeration value="first"/>
- <xs:enumeration value="first-wait"/>
- <xs:enumeration value="last"/>
- <xs:enumeration value="last-wait"/>
+ <xs:enumeration value="unsynchronized" />
+ <xs:enumeration value="never" />
+ <xs:enumeration value="first" />
+ <xs:enumeration value="first-wait" />
+ <xs:enumeration value="last" />
+ <xs:enumeration value="last-wait" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="async" type="xs:string" default="false" />
</xs:complexType>
</xs:element>
-
<xs:element name="mail-node">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="subject" />
<xs:element ref="text" />
- <xs:group ref="node-content-elements"/>
+ <xs:group ref="node-content-elements" />
</xs:choice>
- <xs:attribute name="name" type="xs:string" use="required"/>
+ <xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="async" type="xs:string" default="false" />
- <xs:attribute name="template" type="xs:string"/>
- <xs:attribute name="actors" type="xs:string"/>
- <xs:attribute name="to" type="xs:string"/>
- <xs:attribute name="subject" type="xs:string"/>
- <xs:attribute name="text" type="xs:string"/>
+ <xs:attribute name="template" type="xs:string" />
+ <xs:attribute name="actors" type="xs:string" />
+ <xs:attribute name="to" type="xs:string" />
+ <xs:attribute name="subject" type="xs:string" />
+ <xs:attribute name="text" type="xs:string" />
</xs:complexType>
</xs:element>
@@ -201,16 +187,16 @@
<xs:element name="transition">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:element ref="description" />
- <xs:element name="condition">
- <xs:complexType mixed="true">
- <xs:sequence minOccurs="0" maxOccurs="unbounded">
- <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded" />
- </xs:sequence>
- <xs:attribute name="expression" type="xs:string" />
- </xs:complexType>
- </xs:element>
- <xs:group ref="action-elements"/>
+ <xs:element ref="description" />
+ <xs:element name="condition">
+ <xs:complexType mixed="true">
+ <xs:sequence minOccurs="0" maxOccurs="unbounded">
+ <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded" />
+ </xs:sequence>
+ <xs:attribute name="expression" type="xs:string" />
+ </xs:complexType>
+ </xs:element>
+ <xs:group ref="action-elements" />
<xs:element ref="exception-handler" />
</xs:choice>
<xs:attribute name="to" type="xs:string" use="required" />
@@ -234,18 +220,16 @@
<xs:attribute name="async" type="xs:string" />
</xs:complexType>
</xs:element>
-
<xs:element name="cancel-timer">
<xs:complexType>
<xs:attribute name="name" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
-
<xs:element name="create-timer">
<xs:complexType>
- <xs:choice minOccurs="0">
- <xs:element ref="action"/>
- <xs:element ref="script"/>
+ <xs:choice minOccurs="0">
+ <xs:element ref="action" />
+ <xs:element ref="script" />
</xs:choice>
<xs:attribute name="duedate" type="xs:string" use="required" />
<xs:attribute name="name" type="xs:string" />
@@ -253,9 +237,8 @@
<xs:attribute name="transition" type="xs:string" />
</xs:complexType>
</xs:element>
-
<xs:element name="script">
- <xs:complexType mixed="true">
+ <xs:complexType mixed="true">
<xs:sequence>
<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
@@ -263,20 +246,19 @@
<xs:attribute name="accept-propagated-events" type="booleanType" default="true" />
</xs:complexType>
</xs:element>
-
<xs:element name="mail">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="subject" />
<xs:element ref="text" />
</xs:choice>
- <xs:attribute name="name" type="xs:string" use="required"/>
+ <xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="async" type="xs:string" default="false" />
- <xs:attribute name="template" type="xs:string"/>
- <xs:attribute name="actors" type="xs:string"/>
- <xs:attribute name="to" type="xs:string"/>
- <xs:attribute name="subject" type="xs:string"/>
- <xs:attribute name="text" type="xs:string"/>
+ <xs:attribute name="template" type="xs:string" />
+ <xs:attribute name="actors" type="xs:string" />
+ <xs:attribute name="to" type="xs:string" />
+ <xs:attribute name="subject" type="xs:string" />
+ <xs:attribute name="text" type="xs:string" />
</xs:complexType>
</xs:element>
@@ -285,31 +267,31 @@
<xs:element name="event">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:group ref="action-elements"/>
+ <xs:group ref="action-elements" />
</xs:choice>
<xs:attribute name="type" use="required">
<xs:simpleType>
<xs:union>
<xs:simpleType>
- <xs:restriction base="xs:string"/>
+ <xs:restriction base="xs:string" />
</xs:simpleType>
<xs:simpleType>
<xs:restriction base="xs:string">
- <xs:enumeration value="node-enter"/>
- <xs:enumeration value="node-leave"/>
- <xs:enumeration value="process-start"/>
- <xs:enumeration value="process-end"/>
- <xs:enumeration value="task-create"/>
- <xs:enumeration value="task-assign"/>
- <xs:enumeration value="task-start"/>
- <xs:enumeration value="task-end"/>
- <xs:enumeration value="before-signal"/>
- <xs:enumeration value="after-signal"/>
- <xs:enumeration value="superstate-enter"/>
- <xs:enumeration value="superstate-leave"/>
- <xs:enumeration value="timer-create"/>
- <xs:enumeration value="subprocess-created"/>
- <xs:enumeration value="subprocess-end"/>
+ <xs:enumeration value="node-enter" />
+ <xs:enumeration value="node-leave" />
+ <xs:enumeration value="process-start" />
+ <xs:enumeration value="process-end" />
+ <xs:enumeration value="task-create" />
+ <xs:enumeration value="task-assign" />
+ <xs:enumeration value="task-start" />
+ <xs:enumeration value="task-end" />
+ <xs:enumeration value="before-signal" />
+ <xs:enumeration value="after-signal" />
+ <xs:enumeration value="superstate-enter" />
+ <xs:enumeration value="superstate-leave" />
+ <xs:enumeration value="timer-create" />
+ <xs:enumeration value="subprocess-created" />
+ <xs:enumeration value="subprocess-end" />
</xs:restriction>
</xs:simpleType>
</xs:union>
@@ -323,10 +305,10 @@
<xs:element name="exception-handler">
<xs:complexType>
<xs:choice minOccurs="1" maxOccurs="unbounded">
- <xs:element ref="action"/>
- <xs:element ref="script"/>
+ <xs:element ref="action" />
+ <xs:element ref="script" />
</xs:choice>
- <xs:attribute name="exception-class" type="xs:string"/>
+ <xs:attribute name="exception-class" type="xs:string" />
</xs:complexType>
</xs:element>
@@ -336,10 +318,10 @@
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="description" />
- <xs:element ref="assignment"/>
- <xs:element ref="controller"/>
- <xs:element ref="event"/>
- <xs:element ref="timer"/>
+ <xs:element ref="assignment" />
+ <xs:element ref="controller" />
+ <xs:element ref="event" />
+ <xs:element ref="timer" />
<xs:element name="reminder">
<xs:complexType>
<xs:attribute name="duedate" type="xs:string" use="required" />
@@ -348,18 +330,16 @@
</xs:element>
</xs:choice>
<xs:attribute name="name" type="xs:string" />
- <xs:attribute name="blocking" type="booleanType" default="false"/>
- <xs:attribute name="signalling" type="booleanType" default="true"/>
+ <xs:attribute name="blocking" type="booleanType" default="false" />
+ <xs:attribute name="signalling" type="booleanType" default="true" />
<xs:attribute name="description" type="xs:string" />
<xs:attribute name="duedate" type="xs:string" />
<xs:attribute name="swimlane" type="xs:string" />
<xs:attribute name="priority" type="priorityType" default="normal" />
- <xs:attribute name="notify" type="booleanType" default="false"/>
+ <xs:attribute name="notify" type="booleanType" default="false" />
</xs:complexType>
</xs:element>
-
<xs:element name="controller" type="delegation" />
-
<xs:element name="assignment">
<xs:complexType>
<xs:complexContent>
@@ -385,31 +365,28 @@
<xs:attribute name="transition" type="xs:string" />
</xs:complexType>
</xs:element>
-
<xs:element name="variable">
<xs:complexType>
<xs:sequence>
<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="access" type="xs:string" default="read,write"/>
+ <xs:attribute name="name" type="xs:string" use="required" />
+ <xs:attribute name="access" type="xs:string" default="read,write" />
<xs:attribute name="mapped-name" type="xs:string" />
</xs:complexType>
</xs:element>
<!-- MAIL -->
<!-- #### -->
- <xs:element name="to" type="xs:string"/>
- <xs:element name="recipients" type="xs:string"/>
- <xs:element name="subject" type="xs:string"/>
- <xs:element name="text" type="xs:string"/>
- <xs:element name="template" type="xs:string"/>
+ <xs:element name="to" type="xs:string" />
+ <xs:element name="recipients" type="xs:string" />
+ <xs:element name="subject" type="xs:string" />
+ <xs:element name="text" type="xs:string" />
+ <xs:element name="template" type="xs:string" />
<!-- TYPES AND GROUPS -->
<!-- ################ -->
-
<xs:element name="description" type="xs:string" />
-
<xs:complexType name="delegation" mixed="true">
<xs:sequence>
<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded" />
@@ -417,83 +394,76 @@
<xs:attribute name="class" type="xs:string" />
<xs:attribute name="config-type" default="field" type="xs:string" />
</xs:complexType>
-
<xs:simpleType name="configType">
<xs:restriction base="xs:string">
- <xs:enumeration value="field"/>
- <xs:enumeration value="bean"/>
- <xs:enumeration value="constructor"/>
- <xs:enumeration value="configuration-property"/>
+ <xs:enumeration value="field" />
+ <xs:enumeration value="bean" />
+ <xs:enumeration value="constructor" />
+ <xs:enumeration value="configuration-property" />
</xs:restriction>
</xs:simpleType>
-
<xs:simpleType name="booleanType">
<xs:restriction base="xs:string">
- <xs:enumeration value="yes"/>
- <xs:enumeration value="no"/>
- <xs:enumeration value="true"/>
- <xs:enumeration value="false"/>
- <xs:enumeration value="on"/>
- <xs:enumeration value="off"/>
+ <xs:enumeration value="yes" />
+ <xs:enumeration value="no" />
+ <xs:enumeration value="true" />
+ <xs:enumeration value="false" />
+ <xs:enumeration value="on" />
+ <xs:enumeration value="off" />
</xs:restriction>
</xs:simpleType>
-
<xs:simpleType name="priorityType">
<xs:union>
<xs:simpleType>
<xs:restriction base="xs:string">
- <xs:enumeration value="highest"/>
- <xs:enumeration value="high"/>
- <xs:enumeration value="normal"/>
- <xs:enumeration value="low"/>
- <xs:enumeration value="lowest"/>
+ <xs:enumeration value="highest" />
+ <xs:enumeration value="high" />
+ <xs:enumeration value="normal" />
+ <xs:enumeration value="low" />
+ <xs:enumeration value="lowest" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType>
- <xs:restriction base="xs:int"/>
+ <xs:restriction base="xs:int" />
</xs:simpleType>
</xs:union>
</xs:simpleType>
-
<xs:group name="node-elements">
<xs:choice>
- <xs:element ref="node"/>
- <xs:element ref="state"/>
- <xs:element ref="task-node"/>
- <xs:element ref="super-state"/>
- <xs:element ref="process-state"/>
- <xs:element ref="fork"/>
- <xs:element ref="join"/>
- <xs:element ref="decision"/>
- <xs:element ref="end-state"/>
- <xs:element ref="mail-node"/>
+ <xs:element ref="node" />
+ <xs:element ref="state" />
+ <xs:element ref="task-node" />
+ <xs:element ref="super-state" />
+ <xs:element ref="process-state" />
+ <xs:element ref="fork" />
+ <xs:element ref="join" />
+ <xs:element ref="decision" />
+ <xs:element ref="end-state" />
+ <xs:element ref="mail-node" />
</xs:choice>
</xs:group>
-
<xs:group name="action-elements">
<xs:choice>
- <xs:element ref="action"/>
- <xs:element ref="script"/>
- <xs:element ref="create-timer"/>
- <xs:element ref="cancel-timer"/>
- <xs:element ref="mail"/>
+ <xs:element ref="action" />
+ <xs:element ref="script" />
+ <xs:element ref="create-timer" />
+ <xs:element ref="cancel-timer" />
+ <xs:element ref="mail" />
</xs:choice>
</xs:group>
-
<xs:group name="node-content-elements">
<xs:choice>
<xs:element ref="description" />
- <xs:element ref="event"/>
- <xs:element ref="exception-handler"/>
- <xs:element ref="timer"/>
- <xs:element ref="transition"/>
+ <xs:element ref="event" />
+ <xs:element ref="exception-handler" />
+ <xs:element ref="timer" />
+ <xs:element ref="transition" />
</xs:choice>
</xs:group>
-
<xs:simpleType name="bindingType">
- <xs:restriction base="xs:string">
- <xs:enumeration value="late"></xs:enumeration>
- <xs:enumeration value="early"></xs:enumeration>
- </xs:restriction>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="late"></xs:enumeration>
+ <xs:enumeration value="early"></xs:enumeration>
+ </xs:restriction>
</xs:simpleType>
-</xs:schema>
+</xs:schema>
\ No newline at end of file
Modified: jbossbpm/spec/trunk/modules/dialects/stp/pom.xml
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/stp/pom.xml 2008-08-01 11:40:47 UTC (rev 1801)
+++ jbossbpm/spec/trunk/modules/dialects/stp/pom.xml 2008-08-02 12:51:38 UTC (rev 1802)
@@ -30,7 +30,6 @@
<dependency>
<groupId>org.jboss.bpm</groupId>
<artifactId>bpm-api</artifactId>
- <version>${version}</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
@@ -41,7 +40,6 @@
<dependency>
<groupId>org.jboss.bpm</groupId>
<artifactId>bpm-ri</artifactId>
- <version>${version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
Modified: jbossbpm/spec/trunk/modules/dialects/stp/src/main/java/org/jboss/bpm/dialect/stp/DialectHandlerImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/stp/src/main/java/org/jboss/bpm/dialect/stp/DialectHandlerImpl.java 2008-08-01 11:40:47 UTC (rev 1801)
+++ jbossbpm/spec/trunk/modules/dialects/stp/src/main/java/org/jboss/bpm/dialect/stp/DialectHandlerImpl.java 2008-08-02 12:51:38 UTC (rev 1802)
@@ -43,7 +43,13 @@
*/
public class DialectHandlerImpl implements DialectHandler
{
+ public static final String NAMESPACE_URI = "http://stp.eclipse.org/bpmn";
+ public String getNamespaceURI()
+ {
+ return NAMESPACE_URI;
+ }
+
public Process createProcess(String pXML)
{
try
Modified: jbossbpm/spec/trunk/modules/dialects/xpdl21/src/main/java/org/jboss/bpm/dialect/xpdl21/DialectHandlerImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/xpdl21/src/main/java/org/jboss/bpm/dialect/xpdl21/DialectHandlerImpl.java 2008-08-01 11:40:47 UTC (rev 1801)
+++ jbossbpm/spec/trunk/modules/dialects/xpdl21/src/main/java/org/jboss/bpm/dialect/xpdl21/DialectHandlerImpl.java 2008-08-02 12:51:38 UTC (rev 1802)
@@ -45,7 +45,13 @@
*/
public class DialectHandlerImpl implements DialectHandler
{
-
+ public static final String NAMESPACE_URI = "http://www.wfmc.org/2008/XPDL2.1";
+
+ public String getNamespaceURI()
+ {
+ return NAMESPACE_URI;
+ }
+
public Process createProcess(String pXML)
{
try
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/MessageBuilderImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/MessageBuilderImpl.java 2008-08-01 11:40:47 UTC (rev 1801)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/MessageBuilderImpl.java 2008-08-02 12:51:38 UTC (rev 1802)
@@ -39,12 +39,24 @@
{
private MessageImpl message;
- public MessageBuilder newMessage(String name, ObjectName targetID)
+ public MessageBuilder newMessage(String name)
{
- message = new MessageImpl(name, targetID);
+ message = new MessageImpl(name);
return this;
}
+ public MessageBuilder addToRef(ObjectName toRef)
+ {
+ message.setTargetID(toRef);
+ return this;
+ }
+
+ public MessageBuilder addFromRef(ObjectName fromRef)
+ {
+ message.setSourceID(fromRef);
+ return this;
+ }
+
public MessageBuilder addProperty(String name, String value)
{
Property prop = new PropertyImpl(name, new ExpressionImpl(value));
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/MessageImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/MessageImpl.java 2008-08-01 11:40:47 UTC (rev 1801)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/MessageImpl.java 2008-08-02 12:51:38 UTC (rev 1802)
@@ -52,17 +52,17 @@
private ObjectName targetID;
private List<Property> props = new ArrayList<Property>();
- public MessageImpl(String name, ObjectName targetID)
+ public MessageImpl(String name)
{
- this(name, targetID, null);
+ if (name == null)
+ throw new IllegalArgumentException("Message name cannot be null");
+
+ this.name = name;
}
public MessageImpl(String name, ObjectName targetID, FlowObject sourceFO)
{
- if (name == null)
- throw new IllegalArgumentException("Message name cannot be null");
-
- this.name = name;
+ this(name);
this.targetID = targetID;
this.sourceFO = sourceFO;
}
@@ -72,6 +72,26 @@
return name;
}
+ public ObjectName getSourceID()
+ {
+ return sourceID;
+ }
+
+ public void setSourceID(ObjectName sourceID)
+ {
+ this.sourceID = sourceID;
+ }
+
+ public ObjectName getTargetID()
+ {
+ return targetID;
+ }
+
+ public void setTargetID(ObjectName targetID)
+ {
+ this.targetID = targetID;
+ }
+
public Property getProperty(String name)
{
for (Property prop : props)
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ProcessBuilderImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ProcessBuilderImpl.java 2008-08-01 11:40:47 UTC (rev 1801)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ProcessBuilderImpl.java 2008-08-02 12:51:38 UTC (rev 1802)
@@ -187,7 +187,7 @@
public MessageBuilder addMessage(String name)
{
- MessageBuilder msgBuilder = new MessageBuilderImpl().newMessage(name, null);
+ MessageBuilder msgBuilder = new MessageBuilderImpl().newMessage(name);
proc.addMessage(msgBuilder.getMessage());
return msgBuilder;
}
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ReceiveTaskImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ReceiveTaskImpl.java 2008-08-01 11:40:47 UTC (rev 1801)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ReceiveTaskImpl.java 2008-08-02 12:51:38 UTC (rev 1802)
@@ -162,12 +162,8 @@
if (messageRef == null)
throw new InvalidProcessException("A Message for the MessageRef attribute MUST be entered");
- String msgName = messageRef.getName();
- Message procMessage = proc.getMessageByName(msgName);
- if (procMessage == null)
- throw new InvalidProcessException("Cannot find referenced message: " + msgName);
-
- for (Property prop : procMessage.getProperties())
- ((MessageImpl)messageRef).addProperty(prop);
+ initializeMessageRef(proc, messageRef);
+ if (messageRef.getToRef() != null)
+ throw new IllegalArgumentException("Message targetID must be null for: " + this);
}
}
\ No newline at end of file
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/SendTaskImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/SendTaskImpl.java 2008-08-01 11:40:47 UTC (rev 1801)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/SendTaskImpl.java 2008-08-02 12:51:38 UTC (rev 1802)
@@ -105,7 +105,8 @@
Entity entityRef = toRef.getEntityRef();
ObjectName targetID = ObjectNameFactory.create(entityRef.getName());
- msgBuilder.newMessage(messageRef.getName(), targetID);
+ msgBuilder.newMessage(messageRef.getName());
+ msgBuilder.addToRef(targetID);
// Copy the properties from the execution context
// to the send message
@@ -134,12 +135,8 @@
if (messageRef == null)
throw new InvalidProcessException("A Message for the MessageRef attribute MUST be entered");
- String msgName = messageRef.getName();
- Message procMessage = proc.getMessageByName(msgName);
- if (procMessage == null)
- throw new InvalidProcessException("Cannot find referenced message: " + msgName);
-
- for (Property prop : procMessage.getProperties())
- ((MessageImpl)messageRef).addProperty(prop);
+ initializeMessageRef(proc, messageRef);
+ if (messageRef.getToRef() == null)
+ throw new IllegalArgumentException("Message targetID cannot be null for: " + this);
}
}
\ No newline at end of file
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/TaskBuilderImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/TaskBuilderImpl.java 2008-08-01 11:40:47 UTC (rev 1801)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/TaskBuilderImpl.java 2008-08-02 12:51:38 UTC (rev 1802)
@@ -25,7 +25,7 @@
import javax.management.ObjectName;
-import org.jboss.bpm.model.Property;
+import org.jboss.bpm.model.MessageBuilder;
import org.jboss.bpm.model.Task;
import org.jboss.bpm.model.TaskBuilder;
@@ -37,34 +37,49 @@
*/
public class TaskBuilderImpl extends ActivityBuilderImpl implements TaskBuilder
{
- private MessageImpl message;
-
public TaskBuilderImpl(ProcessImpl proc, FlowObjectImpl flowObject)
{
super(proc, flowObject);
}
- public TaskBuilder addMessageRef(String messageName)
+ @Override
+ public MessageBuilder addMessage(String name)
{
- return addMessageRef(messageName, null);
+ MessageBuilder msgBuilder = new MessageBuilderImpl().newMessage(name);
+ if (flowObject instanceof ReceiveTaskImpl)
+ {
+ ReceiveTaskImpl receiveTask = (ReceiveTaskImpl)flowObject;
+ receiveTask.setMessageRef(msgBuilder.getMessage());
+ }
+ else if (flowObject instanceof SendTaskImpl)
+ {
+ SendTaskImpl sendTask = (SendTaskImpl)flowObject;
+ sendTask.setMessageRef(msgBuilder.getMessage());
+ }
+ else
+ {
+ throw new IllegalStateException("Cannot add message to: " + flowObject);
+ }
+ return msgBuilder;
}
- public TaskBuilder addMessageRef(String msgRef, ObjectName targetID)
+ public TaskBuilder addMessageRef(String msgName)
{
- message = new MessageImpl(msgRef, targetID);
+ return addMessageRef(msgName, null, null);
+ }
+
+ public TaskBuilder addMessageRef(String msgName, ObjectName fromID, ObjectName toID)
+ {
+ MessageImpl message = new MessageImpl(msgName);
if (flowObject instanceof ReceiveTaskImpl)
{
- if (targetID != null)
- throw new IllegalArgumentException("Message targetID must be null for ReceiveTask: " + flowObject);
-
ReceiveTaskImpl receiveTask = (ReceiveTaskImpl)flowObject;
receiveTask.setMessageRef(message);
}
else if (flowObject instanceof SendTaskImpl)
{
- if (targetID == null)
- throw new IllegalArgumentException("Message targetID cannot be null for SendTask: " + flowObject);
-
+ message.setSourceID(fromID);
+ message.setTargetID(toID);
SendTaskImpl sendTask = (SendTaskImpl)flowObject;
sendTask.setMessageRef(message);
}
@@ -75,13 +90,6 @@
return this;
}
- public TaskBuilder addMessageProperty(String name, String value, boolean isCorrelation)
- {
- Property prop = new PropertyImpl(name, new ExpressionImpl(value), isCorrelation);
- message.addProperty(prop);
- return this;
- }
-
public TaskBuilder addExecutionHandler(Class<?> clazz)
{
super.addExecutionHandler(clazz);
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/TaskImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/TaskImpl.java 2008-08-01 11:40:47 UTC (rev 1801)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/TaskImpl.java 2008-08-02 12:51:38 UTC (rev 1802)
@@ -21,6 +21,9 @@
*/
package org.jboss.bpm.model.internal;
+import org.jboss.bpm.model.Message;
+import org.jboss.bpm.model.Process;
+import org.jboss.bpm.model.Property;
import org.jboss.bpm.model.Signal;
import org.jboss.bpm.model.Task;
import org.jboss.bpm.runtime.SignalHandler;
@@ -76,4 +79,21 @@
{
return "Task[" + getName() + "]";
}
+
+ protected void initializeMessageRef(Process proc, Message msg)
+ {
+ String msgName = msg.getName();
+ MessageImpl procMsg = (MessageImpl)proc.getMessageByName(msgName);
+ if (procMsg != null)
+ {
+ MessageImpl msgImpl = (MessageImpl)msg;
+ if (msgImpl.getSourceID() == null && procMsg.getSourceID() != null)
+ msgImpl.setSourceID(procMsg.getSourceID());
+ if (msgImpl.getTargetID() == null && procMsg.getTargetID() != null)
+ msgImpl.setTargetID(procMsg.getTargetID());
+
+ for (Property prop : procMsg.getProperties())
+ ((MessageImpl)msg).addProperty(prop);
+ }
+ }
}
\ No newline at end of file
Modified: jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AirticketProcessBuilder.java
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AirticketProcessBuilder.java 2008-08-01 11:40:47 UTC (rev 1801)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AirticketProcessBuilder.java 2008-08-02 12:51:38 UTC (rev 1802)
@@ -54,7 +54,10 @@
// Create a Process through the ProcessBuilder
ProcessBuilderFactory procFactory = ProcessBuilderFactory.newInstance();
ProcessBuilder procBuilder = procFactory.newProcessBuilder();
- procBuilder.addProcess("Airticket").addStartEvent().addSequenceFlow("ReceiveReqTask");
+ procBuilder.addProcess("Airticket");
+
+ // Add Start Event
+ procBuilder.addStartEvent().addSequenceFlow("ReceiveReqTask");
// Build the ReceiveReqTask
TaskBuilder taskBuilder = procBuilder.addTask("ReceiveReqTask", TaskType.Receive);
@@ -94,7 +97,7 @@
// Build the SendInvalidTask
taskBuilder = procBuilder.addTask("SendInvalidTask", TaskType.Send);
- taskBuilder.addMessageRef("InvalidDataMsg", listenerID).
+ taskBuilder.addMessageRef("InvalidDataMsg").
addSequenceFlow("ReceiveReqTask");
// Build the AvailabilityGateway
@@ -104,12 +107,12 @@
// Build the SendOfferTask
taskBuilder = procBuilder.addTask("SendOfferTask", TaskType.Send);
- taskBuilder.addMessageRef("OfferMsg", listenerID).
+ taskBuilder.addMessageRef("OfferMsg").
addSequenceFlow("ReceiveOrderTask");
// Build the SendNotAvailableTask
taskBuilder = procBuilder.addTask("SendNotAvailableTask", TaskType.Send);
- taskBuilder.addMessageRef("NotAvailableMsg", listenerID).
+ taskBuilder.addMessageRef("NotAvailableMsg").
addSequenceFlow("ReceiveReqTask");
// Build the ReceiveReqTask
@@ -151,9 +154,12 @@
// Build the SendConfirmTask
taskBuilder = procBuilder.addTask("SendConfirmTask", TaskType.Send);
- taskBuilder.addMessageRef("ConfirmMsg", listenerID).
+ taskBuilder.addMessageRef("ConfirmMsg").
addSequenceFlow("End");
+ // Add the EndEvent
+ procBuilder.addEndEvent("End");
+
// Add ReqDataMsg
procBuilder.addMessage("ReqDataMsg").
addProperty("Name", null, true).
@@ -164,6 +170,7 @@
// Add InvalidDataMsg
procBuilder.addMessage("InvalidDataMsg").
+ addToRef(listenerID).
addProperty("Name", null, true).
addProperty("From", null, true).
addProperty("To", null, true).
@@ -172,6 +179,7 @@
// Add NotAvailableMsg
procBuilder.addMessage("NotAvailableMsg").
+ addToRef(listenerID).
addProperty("Name", null, true).
addProperty("From", null, true).
addProperty("To", null, true).
@@ -180,6 +188,7 @@
// Add OfferMsg
procBuilder.addMessage("OfferMsg").
+ addToRef(listenerID).
addProperty("Name", null, true).
addProperty("From", null, true).
addProperty("To", null, true).
@@ -195,6 +204,7 @@
// Add ConfirmMsg
procBuilder.addMessage("ConfirmMsg").
+ addToRef(listenerID).
addProperty("Name", null, true).
addProperty("From", null, true).
addProperty("To", null, true).
@@ -202,9 +212,7 @@
addProperty("Seats", null, true).
addProperty("Price", null, true);
- // Add the EndEvent
- procBuilder.addEndEvent("End");
-
+ // Get the process
Process proc = procBuilder.getProcess();
return proc;
}
Modified: jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/server/AirticketServiceImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/server/AirticketServiceImpl.java 2008-08-01 11:40:47 UTC (rev 1801)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/server/AirticketServiceImpl.java 2008-08-02 12:51:38 UTC (rev 1802)
@@ -157,7 +157,7 @@
{
MessageBuilderFactory msgFactory = MessageBuilderFactory.newInstance();
MessageBuilder msgBuilder = msgFactory.newMessageBuilder();
- Message msg = msgBuilder.newMessage("ReqDataMsg", null).
+ Message msg = msgBuilder.newMessage("ReqDataMsg").
addProperty("Name", gwtMsg.name).
addProperty("From", gwtMsg.from).
addProperty("To", gwtMsg.to).
@@ -171,7 +171,7 @@
{
MessageBuilderFactory msgFactory = MessageBuilderFactory.newInstance();
MessageBuilder msgBuilder = msgFactory.newMessageBuilder();
- Message msg = msgBuilder.newMessage("AcceptOfferMsg", null).
+ Message msg = msgBuilder.newMessage("AcceptOfferMsg").
addProperty("CreditCard", gwtMsg.creditCard).
addProperty("Expire", gwtMsg.expire).
addProperty("isOfferAccepted", "" + gwtMsg.acceptOffer).
Modified: jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketTest.java 2008-08-01 11:40:47 UTC (rev 1801)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketTest.java 2008-08-02 12:51:38 UTC (rev 1802)
@@ -119,8 +119,12 @@
{
MessageBuilderFactory msgFactory = MessageBuilderFactory.newInstance();
MessageBuilder msgBuilder = msgFactory.newMessageBuilder();
- Message msg = msgBuilder.newMessage("ReqDataMsg", null).addProperty("Name", "Kermit").addProperty("From", "MUC")
- .addProperty("To", "NYC").addProperty("Date", "25-Jul-2008").addProperty("Seats", "2").getMessage();
+ Message msg = msgBuilder.newMessage("ReqDataMsg").
+ addProperty("Name", "Kermit").
+ addProperty("From", "MUC").
+ addProperty("To", "NYC").
+ addProperty("Date", "25-Jul-2008").
+ addProperty("Seats", "2").getMessage();
return msg;
}
@@ -128,10 +132,14 @@
{
MessageBuilderFactory msgFactory = MessageBuilderFactory.newInstance();
MessageBuilder msgBuilder = msgFactory.newMessageBuilder();
- Message msg = msgBuilder.newMessage("ReqDataMsg", getMessageListenerID()).addProperty("Name", "Kermit")
- .addProperty("From", "MUC").addProperty("To", "NYC").addProperty("Date", "25-Jul-2008").addProperty("Seats",
- "0"). // Invalid number of seats
- getMessage();
+ Message msg = msgBuilder.newMessage("ReqDataMsg").
+ addToRef(getMessageListenerID()).
+ addProperty("Name", "Kermit").
+ addProperty("From", "MUC").
+ addProperty("To", "NYC").
+ addProperty("Date", "25-Jul-2008").
+ addProperty("Seats", "0"). // Invalid number of seats
+ getMessage();
return msg;
}
@@ -139,8 +147,11 @@
{
MessageBuilderFactory msgFactory = MessageBuilderFactory.newInstance();
MessageBuilder msgBuilder = msgFactory.newMessageBuilder();
- Message msg = msgBuilder.newMessage("AcceptOfferMsg", null).addProperty("CreditCard", "1234-1234-1234-1234")
- .addProperty("Expire", "25-Jul-2012").addProperty("isOfferAccepted", "true").getMessage();
+ Message msg = msgBuilder.newMessage("AcceptOfferMsg").
+ addProperty("CreditCard", "1234-1234-1234-1234").
+ addProperty("Expire", "25-Jul-2012").
+ addProperty("isOfferAccepted", "true").
+ getMessage();
return msg;
}
Modified: jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/ProcessMarshallerTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/ProcessMarshallerTest.java 2008-08-01 11:40:47 UTC (rev 1801)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/ProcessMarshallerTest.java 2008-08-02 12:51:38 UTC (rev 1802)
@@ -24,6 +24,7 @@
// $Id$
import java.io.ByteArrayInputStream;
+import java.io.FileWriter;
import java.io.StringWriter;
import java.net.URL;
@@ -62,8 +63,13 @@
Element expEl = DOMUtils.parse(expURL.openStream());
String expStr = DOMWriter.printNode(expEl, true);
- //System.out.println(expStr);
- //System.out.println(wasStr);
+ if (expStr.equals(wasStr) == false)
+ {
+ FileWriter fileWriter = new FileWriter("airticket-was-api10.xml");
+ fileWriter.write(wasStr);
+ fileWriter.close();
+ }
+
assertEquals(expStr, wasStr);
}
Modified: jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket-api10.xml
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket-api10.xml 2008-08-01 11:40:47 UTC (rev 1801)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket-api10.xml 2008-08-02 12:51:38 UTC (rev 1802)
@@ -1,251 +1,247 @@
<ns2:process name='Airticket' xmlns:ns2='urn:bpm.jboss:pdl-0.1'>
- <start>
- <seqflow to='ReceiveReqTask' />
- </start>
- <task name='ReceiveReqTask' taskType='Receive'>
- <seqflow to='ValidateTask' />
- <message ref='ReqDataMsg' />
- </task>
- <task name='ValidateTask' taskType='None'>
- <seqflow to='ValidateGateway' />
- <execution-handler class='org.jboss.bpm.samples.airticket.ValidationHandler' />
- <input-set>
- <property>
- <name>Name</name>
- </property>
- <property>
- <name>From</name>
- </property>
- <property>
- <name>To</name>
- </property>
- <property>
- <name>Date</name>
- </property>
- <property>
- <name>Seats</name>
- </property>
- </input-set>
- <output-set>
- <property>
- <name>isReqDataValid</name>
- </property>
- </output-set>
- </task>
- <exclusive-gateway name='ValidateGateway'>
- <seqflow conditionType='Expression' to='CheckAvailabilityTask'>
- <condition lang='MVEL'>isReqDataValid == true</condition>
- </seqflow>
- <seqflow conditionType='Default' to='SendInvalidTask' />
- </exclusive-gateway>
- <task name='CheckAvailabilityTask' taskType='None'>
- <seqflow to='AvailabilityGateway' />
- <execution-handler class='org.jboss.bpm.samples.airticket.AvailabilityHandler' />
- <input-set>
- <property>
- <name>From</name>
- </property>
- <property>
- <name>To</name>
- </property>
- <property>
- <name>Date</name>
- </property>
- <property>
- <name>Seats</name>
- </property>
- </input-set>
- <output-set>
- <property>
- <name>isAvailable</name>
- </property>
- <property>
- <name>Price</name>
- </property>
- </output-set>
- </task>
- <task name='SendInvalidTask' taskType='Send'>
- <seqflow to='ReceiveReqTask' />
- <message ref='InvalidDataMsg'>
- <to>jboss.bpm:test=testProcessMarshaller</to>
- </message>
- </task>
- <exclusive-gateway name='AvailabilityGateway'>
- <seqflow conditionType='Expression' to='SendOfferTask'>
- <condition lang='MVEL'>isAvailable == true</condition>
- </seqflow>
- <seqflow conditionType='Default' to='SendNotAvailableTask' />
- </exclusive-gateway>
- <task name='SendOfferTask' taskType='Send'>
- <seqflow to='ReceiveOrderTask' />
- <message ref='OfferMsg'>
- <to>jboss.bpm:test=testProcessMarshaller</to>
- </message>
- </task>
- <task name='SendNotAvailableTask' taskType='Send'>
- <seqflow to='ReceiveReqTask' />
- <message ref='NotAvailableMsg'>
- <to>jboss.bpm:test=testProcessMarshaller</to>
- </message>
- </task>
- <task name='ReceiveOrderTask' taskType='Receive'>
- <seqflow to='AcceptOfferGateway' />
- <message ref='AcceptOfferMsg' />
- </task>
- <exclusive-gateway name='AcceptOfferGateway'>
- <seqflow conditionType='Expression' to='ParallelSplitGateway'>
- <condition lang='MVEL'>isOfferAccepted == true</condition>
- </seqflow>
- <seqflow conditionType='Default' to='ReceiveReqTask' />
- </exclusive-gateway>
- <parallel-gateway name='ParallelSplitGateway'>
- <seqflow to='CreditCardTask' />
- <seqflow to='BookingTask' />
- </parallel-gateway>
- <task name='CreditCardTask' taskType='None'>
- <seqflow to='SynchronizedJoinGateway' />
- <input-set>
- <property>
- <name>CreditCard</name>
- </property>
- <property>
- <name>Expire</name>
- </property>
- <property>
- <name>Price</name>
- </property>
- </input-set>
- </task>
- <task name='BookingTask' taskType='None'>
- <seqflow to='SynchronizedJoinGateway' />
- <input-set>
- <property>
- <name>Name</name>
- </property>
- <property>
- <name>From</name>
- </property>
- <property>
- <name>To</name>
- </property>
- <property>
- <name>Date</name>
- </property>
- <property>
- <name>Seats</name>
- </property>
- </input-set>
- </task>
- <parallel-gateway name='SynchronizedJoinGateway'>
- <seqflow to='SendConfirmTask' />
- </parallel-gateway>
- <task name='SendConfirmTask' taskType='Send'>
- <seqflow to='End' />
- <message ref='ConfirmMsg'>
- <to>jboss.bpm:test=testProcessMarshaller</to>
- </message>
- </task>
- <end name='End' />
- <message name='ReqDataMsg'>
- <property correlation='true'>
- <name>Name</name>
- </property>
- <property correlation='true'>
- <name>From</name>
- </property>
- <property correlation='true'>
- <name>To</name>
- </property>
- <property correlation='true'>
- <name>Date</name>
- </property>
- <property correlation='true'>
- <name>Seats</name>
- </property>
- </message>
- <message name='InvalidDataMsg'>
- <property correlation='true'>
- <name>Name</name>
- </property>
- <property correlation='true'>
- <name>From</name>
- </property>
- <property correlation='true'>
- <name>To</name>
- </property>
- <property correlation='true'>
- <name>Date</name>
- </property>
- <property correlation='true'>
- <name>Seats</name>
- </property>
- </message>
- <message name='OfferMsg'>
- <property correlation='true'>
- <name>Name</name>
- </property>
- <property correlation='true'>
- <name>From</name>
- </property>
- <property correlation='true'>
- <name>To</name>
- </property>
- <property correlation='true'>
- <name>Date</name>
- </property>
- <property correlation='true'>
- <name>Seats</name>
- </property>
- <property correlation='true'>
- <name>Price</name>
- </property>
- </message>
- <message name='NotAvailableMsg'>
- <property correlation='true'>
- <name>Name</name>
- </property>
- <property correlation='true'>
- <name>From</name>
- </property>
- <property correlation='true'>
- <name>To</name>
- </property>
- <property correlation='true'>
- <name>Date</name>
- </property>
- <property correlation='true'>
- <name>Seats</name>
- </property>
- </message>
- <message name='AcceptOfferMsg'>
- <property correlation='true'>
- <name>CreditCard</name>
- </property>
- <property correlation='true'>
- <name>Expire</name>
- </property>
- <property correlation='true'>
- <name>isOfferAccepted</name>
- </property>
- </message>
- <message name='ConfirmMsg'>
- <property correlation='true'>
- <name>Name</name>
- </property>
- <property correlation='true'>
- <name>From</name>
- </property>
- <property correlation='true'>
- <name>To</name>
- </property>
- <property correlation='true'>
- <name>Date</name>
- </property>
- <property correlation='true'>
- <name>Seats</name>
- </property>
- <property correlation='true'>
- <name>Price</name>
- </property>
- </message>
+ <start>
+ <seqflow to='ReceiveReqTask'/>
+ </start>
+ <task name='ReceiveReqTask' taskType='Receive'>
+ <seqflow to='ValidateTask'/>
+ <msgref nameRef='ReqDataMsg'/>
+ </task>
+ <task name='ValidateTask' taskType='None'>
+ <seqflow to='ValidateGateway'/>
+ <execution-handler class='org.jboss.bpm.samples.airticket.ValidationHandler'/>
+ <input-set>
+ <property>
+ <name>Name</name>
+ </property>
+ <property>
+ <name>From</name>
+ </property>
+ <property>
+ <name>To</name>
+ </property>
+ <property>
+ <name>Date</name>
+ </property>
+ <property>
+ <name>Seats</name>
+ </property>
+ </input-set>
+ <output-set>
+ <property>
+ <name>isReqDataValid</name>
+ </property>
+ </output-set>
+ </task>
+ <exclusive-gateway name='ValidateGateway'>
+ <seqflow conditionType='Expression' to='CheckAvailabilityTask'>
+ <condition lang='MVEL'>isReqDataValid == true</condition>
+ </seqflow>
+ <seqflow conditionType='Default' to='SendInvalidTask'/>
+ </exclusive-gateway>
+ <task name='CheckAvailabilityTask' taskType='None'>
+ <seqflow to='AvailabilityGateway'/>
+ <execution-handler class='org.jboss.bpm.samples.airticket.AvailabilityHandler'/>
+ <input-set>
+ <property>
+ <name>From</name>
+ </property>
+ <property>
+ <name>To</name>
+ </property>
+ <property>
+ <name>Date</name>
+ </property>
+ <property>
+ <name>Seats</name>
+ </property>
+ </input-set>
+ <output-set>
+ <property>
+ <name>isAvailable</name>
+ </property>
+ <property>
+ <name>Price</name>
+ </property>
+ </output-set>
+ </task>
+ <task name='SendInvalidTask' taskType='Send'>
+ <seqflow to='ReceiveReqTask'/>
+ <msgref nameRef='InvalidDataMsg'/>
+ </task>
+ <exclusive-gateway name='AvailabilityGateway'>
+ <seqflow conditionType='Expression' to='SendOfferTask'>
+ <condition lang='MVEL'>isAvailable == true</condition>
+ </seqflow>
+ <seqflow conditionType='Default' to='SendNotAvailableTask'/>
+ </exclusive-gateway>
+ <task name='SendOfferTask' taskType='Send'>
+ <seqflow to='ReceiveOrderTask'/>
+ <msgref nameRef='OfferMsg'/>
+ </task>
+ <task name='SendNotAvailableTask' taskType='Send'>
+ <seqflow to='ReceiveReqTask'/>
+ <msgref nameRef='NotAvailableMsg'/>
+ </task>
+ <task name='ReceiveOrderTask' taskType='Receive'>
+ <seqflow to='AcceptOfferGateway'/>
+ <msgref nameRef='AcceptOfferMsg'/>
+ </task>
+ <exclusive-gateway name='AcceptOfferGateway'>
+ <seqflow conditionType='Expression' to='ParallelSplitGateway'>
+ <condition lang='MVEL'>isOfferAccepted == true</condition>
+ </seqflow>
+ <seqflow conditionType='Default' to='ReceiveReqTask'/>
+ </exclusive-gateway>
+ <parallel-gateway name='ParallelSplitGateway'>
+ <seqflow to='CreditCardTask'/>
+ <seqflow to='BookingTask'/>
+ </parallel-gateway>
+ <task name='CreditCardTask' taskType='None'>
+ <seqflow to='SynchronizedJoinGateway'/>
+ <input-set>
+ <property>
+ <name>CreditCard</name>
+ </property>
+ <property>
+ <name>Expire</name>
+ </property>
+ <property>
+ <name>Price</name>
+ </property>
+ </input-set>
+ </task>
+ <task name='BookingTask' taskType='None'>
+ <seqflow to='SynchronizedJoinGateway'/>
+ <input-set>
+ <property>
+ <name>Name</name>
+ </property>
+ <property>
+ <name>From</name>
+ </property>
+ <property>
+ <name>To</name>
+ </property>
+ <property>
+ <name>Date</name>
+ </property>
+ <property>
+ <name>Seats</name>
+ </property>
+ </input-set>
+ </task>
+ <parallel-gateway name='SynchronizedJoinGateway'>
+ <seqflow to='SendConfirmTask'/>
+ </parallel-gateway>
+ <task name='SendConfirmTask' taskType='Send'>
+ <seqflow to='End'/>
+ <msgref nameRef='ConfirmMsg'/>
+ </task>
+ <end name='End'/>
+ <message name='ReqDataMsg'>
+ <property correlation='true'>
+ <name>Name</name>
+ </property>
+ <property correlation='true'>
+ <name>From</name>
+ </property>
+ <property correlation='true'>
+ <name>To</name>
+ </property>
+ <property correlation='true'>
+ <name>Date</name>
+ </property>
+ <property correlation='true'>
+ <name>Seats</name>
+ </property>
+ </message>
+ <message name='InvalidDataMsg'>
+ <to>jboss.bpm:test=testProcessMarshaller</to>
+ <property correlation='true'>
+ <name>Name</name>
+ </property>
+ <property correlation='true'>
+ <name>From</name>
+ </property>
+ <property correlation='true'>
+ <name>To</name>
+ </property>
+ <property correlation='true'>
+ <name>Date</name>
+ </property>
+ <property correlation='true'>
+ <name>Seats</name>
+ </property>
+ </message>
+ <message name='NotAvailableMsg'>
+ <to>jboss.bpm:test=testProcessMarshaller</to>
+ <property correlation='true'>
+ <name>Name</name>
+ </property>
+ <property correlation='true'>
+ <name>From</name>
+ </property>
+ <property correlation='true'>
+ <name>To</name>
+ </property>
+ <property correlation='true'>
+ <name>Date</name>
+ </property>
+ <property correlation='true'>
+ <name>Seats</name>
+ </property>
+ </message>
+ <message name='OfferMsg'>
+ <to>jboss.bpm:test=testProcessMarshaller</to>
+ <property correlation='true'>
+ <name>Name</name>
+ </property>
+ <property correlation='true'>
+ <name>From</name>
+ </property>
+ <property correlation='true'>
+ <name>To</name>
+ </property>
+ <property correlation='true'>
+ <name>Date</name>
+ </property>
+ <property correlation='true'>
+ <name>Seats</name>
+ </property>
+ <property correlation='true'>
+ <name>Price</name>
+ </property>
+ </message>
+ <message name='AcceptOfferMsg'>
+ <property correlation='true'>
+ <name>CreditCard</name>
+ </property>
+ <property correlation='true'>
+ <name>Expire</name>
+ </property>
+ <property correlation='true'>
+ <name>isOfferAccepted</name>
+ </property>
+ </message>
+ <message name='ConfirmMsg'>
+ <to>jboss.bpm:test=testProcessMarshaller</to>
+ <property correlation='true'>
+ <name>Name</name>
+ </property>
+ <property correlation='true'>
+ <name>From</name>
+ </property>
+ <property correlation='true'>
+ <name>To</name>
+ </property>
+ <property correlation='true'>
+ <name>Date</name>
+ </property>
+ <property correlation='true'>
+ <name>Seats</name>
+ </property>
+ <property correlation='true'>
+ <name>Price</name>
+ </property>
+ </message>
</ns2:process>
\ No newline at end of file
Added: jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/task/TaskMessageTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/task/TaskMessageTest.java (rev 0)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/task/TaskMessageTest.java 2008-08-02 12:51:38 UTC (rev 1802)
@@ -0,0 +1,71 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.bpm.cts.task;
+
+// $Id$
+
+import org.jboss.bpm.InvalidProcessException;
+import org.jboss.bpm.model.ProcessBuilder;
+import org.jboss.bpm.model.ProcessBuilderFactory;
+import org.jboss.bpm.model.Task.TaskType;
+import org.jboss.bpm.test.DefaultEngineTestCase;
+
+/**
+ * Test process messages
+ *
+ * @author thomas.diesler(a)jboss.com
+ * @since 03-Jul-2008
+ */
+public class TaskMessageTest extends DefaultEngineTestCase
+{
+ public void testReceiveTaskWithNoMessage() throws Exception
+ {
+ ProcessBuilder procBuilder = ProcessBuilderFactory.newInstance().newProcessBuilder();
+ procBuilder.addProcess(getName()).addStartEvent().addSequenceFlow("A");
+ procBuilder.addTask("A", TaskType.Receive).addSequenceFlow("End").addEndEvent("End");
+ try
+ {
+ procBuilder.getProcess();
+ fail("A Message for the MessageRef attribute MUST be entered");
+ }
+ catch (InvalidProcessException ex)
+ {
+ // expected
+ }
+ }
+
+ public void testSendTaskWithNoMessage() throws Exception
+ {
+ ProcessBuilder procBuilder = ProcessBuilderFactory.newInstance().newProcessBuilder();
+ procBuilder.addProcess(getName()).addStartEvent().addSequenceFlow("A");
+ procBuilder.addTask("A", TaskType.Send).addSequenceFlow("End").addEndEvent("End");
+ try
+ {
+ procBuilder.getProcess();
+ fail("A Message for the MessageRef attribute MUST be entered");
+ }
+ catch (InvalidProcessException ex)
+ {
+ // expected
+ }
+ }
+}
Property changes on: jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/task/TaskMessageTest.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
17 years, 9 months