[jbpm-commits] JBoss JBPM SVN: r1774 - in jbossbpm/spec/trunk/modules: samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket and 5 other directories.
do-not-reply at jboss.org
do-not-reply at jboss.org
Wed Jul 30 08:00:17 EDT 2008
Author: thomas.diesler at jboss.com
Date: 2008-07-30 08:00:16 -0400 (Wed, 30 Jul 2008)
New Revision: 1774
Added:
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/server/RequestData.java
jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/resources/jbpm-beans.xml
Removed:
jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketProcessBuilder.java
jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AvailabilityHandler.java
jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/FrontGateServlet.java
jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/jbpm-beans.xml
Modified:
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/MessageBuilderFactory.java
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ProcessBuilderFactory.java
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/PropertyBuilderFactory.java
jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/server/AirticketServiceImpl.java
jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/client/ProcessEngineLocatorTest.java
Log:
WIP
Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/MessageBuilderFactory.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/MessageBuilderFactory.java 2008-07-30 11:25:20 UTC (rev 1773)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/MessageBuilderFactory.java 2008-07-30 12:00:16 UTC (rev 1774)
@@ -21,12 +21,13 @@
*/
package org.jboss.bpm.model;
+//$Id$
+
+import org.jboss.bpm.client.ProcessEngineLocator;
import org.jboss.kernel.Kernel;
import org.jboss.kernel.plugins.util.KernelLocator;
import org.jboss.kernel.spi.registry.KernelRegistryEntry;
-//$Id$
-
/**
* A Factory for the {@link MessageBuilder}.
*
@@ -49,6 +50,8 @@
@SuppressWarnings("deprecation")
public static MessageBuilderFactory newInstance()
{
+ // Make sure the engine is bootstrapped
+ ProcessEngineLocator.locateProcessEngine();
Kernel kernel = KernelLocator.getKernel();
KernelRegistryEntry entry = kernel.getRegistry().getEntry(BEAN_NAME);
return (MessageBuilderFactory)entry.getTarget();
Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ProcessBuilderFactory.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ProcessBuilderFactory.java 2008-07-30 11:25:20 UTC (rev 1773)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ProcessBuilderFactory.java 2008-07-30 12:00:16 UTC (rev 1774)
@@ -21,12 +21,13 @@
*/
package org.jboss.bpm.model;
+//$Id$
+
+import org.jboss.bpm.client.ProcessEngineLocator;
import org.jboss.kernel.Kernel;
import org.jboss.kernel.plugins.util.KernelLocator;
import org.jboss.kernel.spi.registry.KernelRegistryEntry;
-//$Id$
-
/**
* A Factory for the {@link ProcessBuilder}.
*
@@ -37,23 +38,25 @@
{
/** The bean name - jBPMProcessBuilderFactory */
public static final String BEAN_NAME = "jBPMProcessBuilderFactory";
-
+
// Hide the constructor
protected ProcessBuilderFactory()
{
}
-
+
/**
* Get a ProcessBuilderFactory instance.
*/
@SuppressWarnings("deprecation")
public static ProcessBuilderFactory newInstance()
{
+ // Make sure the engine is bootstrapped
+ ProcessEngineLocator.locateProcessEngine();
Kernel kernel = KernelLocator.getKernel();
KernelRegistryEntry entry = kernel.getRegistry().getEntry(BEAN_NAME);
return (ProcessBuilderFactory)entry.getTarget();
}
-
+
/**
* Get a {@link ProcessBuilder}.
*/
Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/PropertyBuilderFactory.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/PropertyBuilderFactory.java 2008-07-30 11:25:20 UTC (rev 1773)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/PropertyBuilderFactory.java 2008-07-30 12:00:16 UTC (rev 1774)
@@ -21,12 +21,13 @@
*/
package org.jboss.bpm.model;
+//$Id$
+
+import org.jboss.bpm.client.ProcessEngineLocator;
import org.jboss.kernel.Kernel;
import org.jboss.kernel.plugins.util.KernelLocator;
import org.jboss.kernel.spi.registry.KernelRegistryEntry;
-//$Id$
-
/**
* A Factory for the {@link PropertyBuilder}.
*
@@ -49,6 +50,8 @@
@SuppressWarnings("deprecation")
public static PropertyBuilderFactory newInstance()
{
+ // Make sure the engine is bootstrapped
+ ProcessEngineLocator.locateProcessEngine();
Kernel kernel = KernelLocator.getKernel();
KernelRegistryEntry entry = kernel.getRegistry().getEntry(BEAN_NAME);
return (PropertyBuilderFactory)entry.getTarget();
Copied: jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AirticketProcessBuilder.java (from rev 1771, jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/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 (rev 0)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AirticketProcessBuilder.java 2008-07-30 12:00:16 UTC (rev 1774)
@@ -0,0 +1,194 @@
+/*
+ * 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.ProcessManager;
+import org.jboss.bpm.model.GatewayBuilder;
+import org.jboss.bpm.model.Process;
+import org.jboss.bpm.model.ProcessBuilder;
+import org.jboss.bpm.model.ProcessBuilderFactory;
+import org.jboss.bpm.model.TaskBuilder;
+import org.jboss.bpm.model.Expression.ExpressionLanguage;
+import org.jboss.bpm.model.Gateway.GatewayType;
+import org.jboss.bpm.model.Task.TaskType;
+
+/**
+ * Test the Airticket sample application
+ *
+ * @author thomas.diesler at jboss.com
+ * @since 03-Jul-2008
+ */
+public class AirticketProcessBuilder
+{
+ private ObjectName messageListenerID;
+
+ public AirticketProcessBuilder(ObjectName listenerID)
+ {
+ this.messageListenerID = listenerID;
+ }
+
+ public Process buildProcess()
+ {
+ // Create a Process through the ProcessBuilder
+ ProcessBuilderFactory procFactory = ProcessBuilderFactory.newInstance();
+ ProcessBuilder procBuilder = procFactory.newProcessBuilder();
+ procBuilder.addProcess("Airticket").addStartEvent().addSequenceFlow("ReceiveReqTask");
+
+ // Build the ReceiveReqTask
+ TaskBuilder taskBuilder = procBuilder.addTask("ReceiveReqTask", TaskType.Receive);
+ taskBuilder.addMessageRef("ReqDataMsg", null).
+ addMessageProperty("Name", null, true).
+ addMessageProperty("From", null, true).
+ addMessageProperty("To", null, true).
+ addMessageProperty("Date", null, true).
+ addMessageProperty("Seats", null, true).
+ addSequenceFlow("ValidateTask");
+
+ // Build the ValidateTask
+ taskBuilder = procBuilder.addTask("ValidateTask", TaskType.None);
+ taskBuilder.addInputSet().
+ addPropertyInput("Name", null).
+ addPropertyInput("From", null).
+ addPropertyInput("To", null).
+ addPropertyInput("Date", null).
+ addPropertyInput("Seats", null).
+ addOutputSet().
+ addPropertyOutput("isReqDataValid", null).
+ addIORule("Name != null && From != null && To != null && Date != null && Seats > 0", ExpressionLanguage.MVEL).
+ addSequenceFlow("ValidateGateway");
+
+ // Build the ValidateGateway
+ GatewayBuilder gatewayBuilder = procBuilder.addGateway("ValidateGateway", GatewayType.Exclusive);
+ gatewayBuilder.addConditionalGate("CheckAvailabilityTask", ExpressionLanguage.MVEL, "isReqDataValid == true").
+ addDefaultGate("SendInvalidTask");
+
+ // Build the CheckAvailabilityTask
+ taskBuilder = procBuilder.addTask("CheckAvailabilityTask", TaskType.None);
+ taskBuilder.addExecutionHandler(AvailabilityHandler.class).
+ addInputSet().
+ addPropertyInput("From", null).
+ addPropertyInput("To", null).
+ addPropertyInput("Date", null).
+ addPropertyInput("Seats", null).
+ addOutputSet().
+ addPropertyOutput("isAvailable", null).
+ addPropertyOutput("Price", null).
+ addSequenceFlow("AvailabilityGateway");
+
+ // Build the SendInvalidTask
+ taskBuilder = procBuilder.addTask("SendInvalidTask", TaskType.Send);
+ taskBuilder.addMessageRef("InvalidDataMsg", messageListenerID).
+ addMessageProperty("Name", null, true).
+ addMessageProperty("From", null, true).
+ addMessageProperty("To", null, true).
+ addMessageProperty("Date", null, true).
+ addMessageProperty("Seats", null, true).
+ addSequenceFlow("ReceiveReqTask");
+
+ // Build the AvailabilityGateway
+ gatewayBuilder = procBuilder.addGateway("AvailabilityGateway", GatewayType.Exclusive);
+ gatewayBuilder.addConditionalGate("SendOfferTask", ExpressionLanguage.MVEL, "isAvailable == true").
+ addDefaultGate("SendNotAvailableTask");
+
+ // Build the SendOfferTask
+ taskBuilder = procBuilder.addTask("SendOfferTask", TaskType.Send);
+ taskBuilder.addMessageRef("OfferMsg", messageListenerID).
+ addMessageProperty("Name", null, true).
+ addMessageProperty("From", null, true).
+ addMessageProperty("To", null, true).
+ addMessageProperty("Date", null, true).
+ addMessageProperty("Seats", null, true).
+ addMessageProperty("Price", null, true).
+ addSequenceFlow("ReceiveOrderTask");
+
+ // Build the SendNotAvailableTask
+ taskBuilder = procBuilder.addTask("SendNotAvailableTask", TaskType.Send);
+ taskBuilder.addMessageRef("NotAvailableMsg", messageListenerID).
+ addMessageProperty("Name", null, true).
+ addMessageProperty("From", null, true).
+ addMessageProperty("To", null, true).
+ addMessageProperty("Date", null, true).
+ addMessageProperty("Seats", null, true).
+ addSequenceFlow("ReceiveReqTask");
+
+ // Build the ReceiveReqTask
+ taskBuilder = procBuilder.addTask("ReceiveOrderTask", TaskType.Receive);
+ taskBuilder.addMessageRef("AcceptOfferMsg", null).
+ addMessageProperty("CreditCard", null, true).
+ addMessageProperty("Expire", null, true).
+ addMessageProperty("isOfferAccepted", null, true).
+ addSequenceFlow("AcceptOfferGateway");
+
+ // Build the AcceptOfferGateway
+ gatewayBuilder = procBuilder.addGateway("AcceptOfferGateway", GatewayType.Exclusive);
+ gatewayBuilder.addConditionalGate("ParallelSplitGateway", ExpressionLanguage.MVEL, "isOfferAccepted == true").
+ addDefaultGate("ReceiveReqTask");
+
+ // Build the AcceptOfferGateway
+ gatewayBuilder = procBuilder.addGateway("ParallelSplitGateway", GatewayType.Parallel);
+ gatewayBuilder.addGate("CreditCardTask").
+ addGate("BookingTask");
+
+ // Build the CreditCardTask
+ taskBuilder = procBuilder.addTask("CreditCardTask", TaskType.None);
+ taskBuilder.addInputSet().
+ addPropertyInput("CreditCard", null).
+ addPropertyInput("Expire", null).
+ addPropertyInput("Price", null).
+ addSequenceFlow("SynchronizedJoinGateway");
+
+ // Build the BookingTask
+ taskBuilder = procBuilder.addTask("BookingTask", TaskType.None);
+ taskBuilder.addInputSet().
+ addPropertyInput("Name", null).
+ addPropertyInput("From", null).
+ addPropertyInput("To", null).
+ addPropertyInput("Date", null).
+ addPropertyInput("Seats", null).
+ addSequenceFlow("SynchronizedJoinGateway");
+
+ // Build the SynchronizedJoinGateway
+ gatewayBuilder = procBuilder.addGateway("SynchronizedJoinGateway", GatewayType.Parallel);
+ gatewayBuilder.addGate("SendConfirmTask");
+
+ // Build the SendConfirmTask
+ taskBuilder = procBuilder.addTask("SendConfirmTask", TaskType.Send);
+ taskBuilder.addMessageRef("ConfirmMsg", messageListenerID).
+ addMessageProperty("Name", null, true).
+ addMessageProperty("From", null, true).
+ addMessageProperty("To", null, true).
+ addMessageProperty("Date", null, true).
+ addMessageProperty("Seats", null, true).
+ addMessageProperty("Price", null, true).
+ addSequenceFlow("End");
+
+ // Add the EndEvent
+ Process proc = procBuilder.addEndEvent("End").getProcess();
+ ProcessManager pm = ProcessManager.locateProcessManager();
+ pm.registerProcess(proc);
+ return proc;
+ }
+}
\ No newline at end of file
Copied: jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AvailabilityHandler.java (from rev 1771, jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/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 (rev 0)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AvailabilityHandler.java 2008-07-30 12:00:16 UTC (rev 1774)
@@ -0,0 +1,49 @@
+/*
+ * 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.InputSet;
+import org.jboss.bpm.model.OutputSet;
+import org.jboss.bpm.model.PropertyBuilder;
+import org.jboss.bpm.model.PropertyBuilderFactory;
+import org.jboss.bpm.runtime.ExecutionHandler;
+import org.jboss.bpm.runtime.Token;
+
+/**
+ * An ExecutionHandler that adds the required outputSet properties
+ *
+ * @author Thomas.Diesler at jboss.com
+ * @since 04-Jul-2008
+ */
+ at SuppressWarnings("serial")
+public class AvailabilityHandler implements ExecutionHandler
+{
+ public void execute(Token token, InputSet inputSet, OutputSet outputSet)
+ {
+ PropertyBuilder builder = PropertyBuilderFactory.newInstance().newPropertyBuilder();
+ Integer seats = Integer.valueOf(inputSet.getProperty("Seats").getValue().getExpressionBody());
+ 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/server/AirticketServiceImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/server/AirticketServiceImpl.java 2008-07-30 11:25:20 UTC (rev 1773)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/server/AirticketServiceImpl.java 2008-07-30 12:00:16 UTC (rev 1774)
@@ -1,14 +1,70 @@
package org.jboss.bpm.samples.airticket.server;
+import java.util.ArrayList;
+import java.util.List;
+
+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.model.Message;
+import org.jboss.bpm.model.MessageBuilder;
+import org.jboss.bpm.model.MessageBuilderFactory;
+import org.jboss.bpm.model.Process;
+import org.jboss.bpm.samples.airticket.AirticketProcessBuilder;
import org.jboss.bpm.samples.airticket.client.AirticketService;
+import org.jboss.bpm.samples.airticket.client.RequestData;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
@SuppressWarnings("serial")
public class AirticketServiceImpl extends RemoteServiceServlet implements AirticketService
{
+ private ObjectName listenerID = ObjectNameFactory.create("mydomain:type=MessageListener");
+ private List<Message> messageQueue = new ArrayList<Message>();
+
public void sendUserRequest(String name, String from, String to, String date, String seats)
{
- System.out.println(name);
+ AirticketProcessBuilder procBuilder = new AirticketProcessBuilder(listenerID);
+ Process proc = procBuilder.buildProcess();
+
+ MessageManager mm = MessageManager.locateMessageManager();
+ mm.addMessageListener(new AirticketMessageListener());
+
+ proc.startProcess();
+ new RequestData(name, from, to, date, seats);
+
+ Message msg = getRequestMessage(name, from, to, date, seats);
+ mm.sendMessage(proc.getID(), "ReceiveReqTask", msg);
}
+
+ private Message getRequestMessage(String name, String from, String to, String date, String seats)
+ {
+ MessageBuilderFactory msgFactory = MessageBuilderFactory.newInstance();
+ MessageBuilder msgBuilder = msgFactory.newMessageBuilder();
+ Message msg = msgBuilder.newMessage("ReqDataMsg", null).
+ addProperty("Name", name).
+ addProperty("From", from).
+ addProperty("To", to).
+ addProperty("Date", date).
+ addProperty("Seats", seats).
+ getMessage();
+ return msg;
+ }
+
+ class AirticketMessageListener implements MessageListener
+ {
+ public void catchMessage(Message message)
+ {
+ messageQueue.add(message);
+ System.out.println(message);
+ }
+
+ public ObjectName getMessageListenerID()
+ {
+ return listenerID;
+ }
+
+ }
}
Added: jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/server/RequestData.java
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/server/RequestData.java (rev 0)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/server/RequestData.java 2008-07-30 12:00:16 UTC (rev 1774)
@@ -0,0 +1,22 @@
+package org.jboss.bpm.samples.airticket.server;
+
+public class RequestData
+{
+ private String name;
+ private String from;
+ private String to;
+ private String date;
+ private String seats;
+
+ public RequestData(String name, String from, String to, String date, String seats)
+ {
+ super();
+ this.name = name;
+ this.from = from;
+ this.to = to;
+ this.date = date;
+ this.seats = seats;
+ }
+
+
+}
Property changes on: jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/server/RequestData.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Copied: jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/resources/jbpm-beans.xml (from rev 1771, jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/jbpm-beans.xml)
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/resources/jbpm-beans.xml (rev 0)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/resources/jbpm-beans.xml 2008-07-30 12:00:16 UTC (rev 1774)
@@ -0,0 +1,57 @@
+<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>
+ <entry><key>jpdl32</key><value><inject bean="jBPMDialectHandlerJPDL32"/></value></entry>
+ <entry><key>stp</key><value><inject bean="jBPMDialectHandlerSTP"/></value></entry>
+ <entry><key>xpdl21</key><value><inject bean="jBPMDialectHandlerXPDL21"/></value></entry>
+ -->
+ </map>
+ </property>
+ </bean>
+ <!--
+ <bean name="jBPMDialectHandlerAPI10" class="org.jboss.bpm.dialect.api10.DialectHandlerImpl"/>
+ <bean name="jBPMDialectHandlerJPDL32" class="org.jboss.bpm.dialect.jpdl32.DialectHandlerImpl"/>
+ <bean name="jBPMDialectHandlerSTP" class="org.jboss.bpm.dialect.stp.DialectHandlerImpl"/>
+ <bean name="jBPMDialectHandlerXPDL21" class="org.jboss.bpm.dialect.xpdl21.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:api.bpm.jboss:jpdl-0.1</key><value>api10</value></entry>
+ <entry><key>urn:jbpm.org:jpdl-3.2</key><value>jpdl32</value></entry>
+ <entry><key>http://stp.eclipse.org/bpmn</key><value>stp</value></entry>
+ <entry><key>http://www.wfmc.org/2008/XPDL2.1</key><value>xpdl21</value></entry>
+ </map>
+ </property>
+ </bean>
+
+</deployment>
\ No newline at end of file
Deleted: jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketProcessBuilder.java
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketProcessBuilder.java 2008-07-30 11:25:20 UTC (rev 1773)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketProcessBuilder.java 2008-07-30 12:00:16 UTC (rev 1774)
@@ -1,194 +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 javax.management.ObjectName;
-
-import org.jboss.bpm.client.ProcessManager;
-import org.jboss.bpm.model.GatewayBuilder;
-import org.jboss.bpm.model.Process;
-import org.jboss.bpm.model.ProcessBuilder;
-import org.jboss.bpm.model.ProcessBuilderFactory;
-import org.jboss.bpm.model.TaskBuilder;
-import org.jboss.bpm.model.Expression.ExpressionLanguage;
-import org.jboss.bpm.model.Gateway.GatewayType;
-import org.jboss.bpm.model.Task.TaskType;
-
-/**
- * Test the Airticket sample application
- *
- * @author thomas.diesler at jboss.com
- * @since 03-Jul-2008
- */
-public class AirticketProcessBuilder
-{
- private ObjectName messageListenerID;
-
- public AirticketProcessBuilder(ObjectName listenerID)
- {
- this.messageListenerID = listenerID;
- }
-
- public Process buildProcess()
- {
- // Create a Process through the ProcessBuilder
- ProcessBuilderFactory procFactory = ProcessBuilderFactory.newInstance();
- ProcessBuilder procBuilder = procFactory.newProcessBuilder();
- procBuilder.addProcess("Airticket").addStartEvent().addSequenceFlow("ReceiveReqTask");
-
- // Build the ReceiveReqTask
- TaskBuilder taskBuilder = procBuilder.addTask("ReceiveReqTask", TaskType.Receive);
- taskBuilder.addMessageRef("ReqDataMsg", null).
- addMessageProperty("Name", null, true).
- addMessageProperty("From", null, true).
- addMessageProperty("To", null, true).
- addMessageProperty("Date", null, true).
- addMessageProperty("Seats", null, true).
- addSequenceFlow("ValidateTask");
-
- // Build the ValidateTask
- taskBuilder = procBuilder.addTask("ValidateTask", TaskType.None);
- taskBuilder.addInputSet().
- addPropertyInput("Name", null).
- addPropertyInput("From", null).
- addPropertyInput("To", null).
- addPropertyInput("Date", null).
- addPropertyInput("Seats", null).
- addOutputSet().
- addPropertyOutput("isReqDataValid", null).
- addIORule("Name != null && From != null && To != null && Date != null && Seats > 0", ExpressionLanguage.MVEL).
- addSequenceFlow("ValidateGateway");
-
- // Build the ValidateGateway
- GatewayBuilder gatewayBuilder = procBuilder.addGateway("ValidateGateway", GatewayType.Exclusive);
- gatewayBuilder.addConditionalGate("CheckAvailabilityTask", ExpressionLanguage.MVEL, "isReqDataValid == true").
- addDefaultGate("SendInvalidTask");
-
- // Build the CheckAvailabilityTask
- taskBuilder = procBuilder.addTask("CheckAvailabilityTask", TaskType.None);
- taskBuilder.addExecutionHandler(AvailabilityHandler.class).
- addInputSet().
- addPropertyInput("From", null).
- addPropertyInput("To", null).
- addPropertyInput("Date", null).
- addPropertyInput("Seats", null).
- addOutputSet().
- addPropertyOutput("isAvailable", null).
- addPropertyOutput("Price", null).
- addSequenceFlow("AvailabilityGateway");
-
- // Build the SendInvalidTask
- taskBuilder = procBuilder.addTask("SendInvalidTask", TaskType.Send);
- taskBuilder.addMessageRef("InvalidDataMsg", messageListenerID).
- addMessageProperty("Name", null, true).
- addMessageProperty("From", null, true).
- addMessageProperty("To", null, true).
- addMessageProperty("Date", null, true).
- addMessageProperty("Seats", null, true).
- addSequenceFlow("ReceiveReqTask");
-
- // Build the AvailabilityGateway
- gatewayBuilder = procBuilder.addGateway("AvailabilityGateway", GatewayType.Exclusive);
- gatewayBuilder.addConditionalGate("SendOfferTask", ExpressionLanguage.MVEL, "isAvailable == true").
- addDefaultGate("SendNotAvailableTask");
-
- // Build the SendOfferTask
- taskBuilder = procBuilder.addTask("SendOfferTask", TaskType.Send);
- taskBuilder.addMessageRef("OfferMsg", messageListenerID).
- addMessageProperty("Name", null, true).
- addMessageProperty("From", null, true).
- addMessageProperty("To", null, true).
- addMessageProperty("Date", null, true).
- addMessageProperty("Seats", null, true).
- addMessageProperty("Price", null, true).
- addSequenceFlow("ReceiveOrderTask");
-
- // Build the SendNotAvailableTask
- taskBuilder = procBuilder.addTask("SendNotAvailableTask", TaskType.Send);
- taskBuilder.addMessageRef("NotAvailableMsg", messageListenerID).
- addMessageProperty("Name", null, true).
- addMessageProperty("From", null, true).
- addMessageProperty("To", null, true).
- addMessageProperty("Date", null, true).
- addMessageProperty("Seats", null, true).
- addSequenceFlow("ReceiveReqTask");
-
- // Build the ReceiveReqTask
- taskBuilder = procBuilder.addTask("ReceiveOrderTask", TaskType.Receive);
- taskBuilder.addMessageRef("AcceptOfferMsg", null).
- addMessageProperty("CreditCard", null, true).
- addMessageProperty("Expire", null, true).
- addMessageProperty("isOfferAccepted", null, true).
- addSequenceFlow("AcceptOfferGateway");
-
- // Build the AcceptOfferGateway
- gatewayBuilder = procBuilder.addGateway("AcceptOfferGateway", GatewayType.Exclusive);
- gatewayBuilder.addConditionalGate("ParallelSplitGateway", ExpressionLanguage.MVEL, "isOfferAccepted == true").
- addDefaultGate("ReceiveReqTask");
-
- // Build the AcceptOfferGateway
- gatewayBuilder = procBuilder.addGateway("ParallelSplitGateway", GatewayType.Parallel);
- gatewayBuilder.addGate("CreditCardTask").
- addGate("BookingTask");
-
- // Build the CreditCardTask
- taskBuilder = procBuilder.addTask("CreditCardTask", TaskType.None);
- taskBuilder.addInputSet().
- addPropertyInput("CreditCard", null).
- addPropertyInput("Expire", null).
- addPropertyInput("Price", null).
- addSequenceFlow("SynchronizedJoinGateway");
-
- // Build the BookingTask
- taskBuilder = procBuilder.addTask("BookingTask", TaskType.None);
- taskBuilder.addInputSet().
- addPropertyInput("Name", null).
- addPropertyInput("From", null).
- addPropertyInput("To", null).
- addPropertyInput("Date", null).
- addPropertyInput("Seats", null).
- addSequenceFlow("SynchronizedJoinGateway");
-
- // Build the SynchronizedJoinGateway
- gatewayBuilder = procBuilder.addGateway("SynchronizedJoinGateway", GatewayType.Parallel);
- gatewayBuilder.addGate("SendConfirmTask");
-
- // Build the SendConfirmTask
- taskBuilder = procBuilder.addTask("SendConfirmTask", TaskType.Send);
- taskBuilder.addMessageRef("ConfirmMsg", messageListenerID).
- addMessageProperty("Name", null, true).
- addMessageProperty("From", null, true).
- addMessageProperty("To", null, true).
- addMessageProperty("Date", null, true).
- addMessageProperty("Seats", null, true).
- addMessageProperty("Price", null, true).
- addSequenceFlow("End");
-
- // Add the EndEvent
- Process proc = procBuilder.addEndEvent("End").getProcess();
- ProcessManager pm = ProcessManager.locateProcessManager();
- pm.registerProcess(proc);
- return proc;
- }
-}
\ No newline at end of file
Deleted: jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AvailabilityHandler.java
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AvailabilityHandler.java 2008-07-30 11:25:20 UTC (rev 1773)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AvailabilityHandler.java 2008-07-30 12:00:16 UTC (rev 1774)
@@ -1,49 +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 org.jboss.bpm.model.InputSet;
-import org.jboss.bpm.model.OutputSet;
-import org.jboss.bpm.model.PropertyBuilder;
-import org.jboss.bpm.model.PropertyBuilderFactory;
-import org.jboss.bpm.runtime.ExecutionHandler;
-import org.jboss.bpm.runtime.Token;
-
-/**
- * An ExecutionHandler that adds the required outputSet properties
- *
- * @author Thomas.Diesler at jboss.com
- * @since 04-Jul-2008
- */
- at SuppressWarnings("serial")
-public class AvailabilityHandler implements ExecutionHandler
-{
- public void execute(Token token, InputSet inputSet, OutputSet outputSet)
- {
- PropertyBuilder builder = PropertyBuilderFactory.newInstance().newPropertyBuilder();
- Integer seats = Integer.valueOf(inputSet.getProperty("Seats").getValue().getExpressionBody());
- outputSet.addProperty(builder.newProperty("isAvailable", new Boolean(seats < 10).toString()));
- outputSet.addProperty(builder.newProperty("Price", new Integer(seats * 111).toString()));
- }
-}
Deleted: jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/FrontGateServlet.java
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/FrontGateServlet.java 2008-07-30 11:25:20 UTC (rev 1773)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/FrontGateServlet.java 2008-07-30 12:00:16 UTC (rev 1774)
@@ -1,64 +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.IOException;
-import java.net.MalformedURLException;
-
-import javax.servlet.ServletConfig;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-/**
- * Test that the execution context
- *
- * @author thomas.diesler at jboss.com
- * @since 03-Jul-2008
- */
- at SuppressWarnings("serial")
-public class FrontGateServlet extends HttpServlet
-{
- @Override
- public void init(ServletConfig config) throws ServletException
- {
- super.init(config);
-
- try
- {
- config.getServletContext().getResource("airticket.bpmn");
- }
- catch (MalformedURLException e)
- {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
-
- @Override
- protected void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException
- {
- }
-}
Deleted: jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/jbpm-beans.xml
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/jbpm-beans.xml 2008-07-30 11:25:20 UTC (rev 1773)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/jbpm-beans.xml 2008-07-30 12:00:16 UTC (rev 1774)
@@ -1,57 +0,0 @@
-<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>
- <entry><key>jpdl32</key><value><inject bean="jBPMDialectHandlerJPDL32"/></value></entry>
- <entry><key>stp</key><value><inject bean="jBPMDialectHandlerSTP"/></value></entry>
- <entry><key>xpdl21</key><value><inject bean="jBPMDialectHandlerXPDL21"/></value></entry>
- -->
- </map>
- </property>
- </bean>
- <!--
- <bean name="jBPMDialectHandlerAPI10" class="org.jboss.bpm.dialect.api10.DialectHandlerImpl"/>
- <bean name="jBPMDialectHandlerJPDL32" class="org.jboss.bpm.dialect.jpdl32.DialectHandlerImpl"/>
- <bean name="jBPMDialectHandlerSTP" class="org.jboss.bpm.dialect.stp.DialectHandlerImpl"/>
- <bean name="jBPMDialectHandlerXPDL21" class="org.jboss.bpm.dialect.xpdl21.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:api.bpm.jboss:jpdl-0.1</key><value>api10</value></entry>
- <entry><key>urn:jbpm.org:jpdl-3.2</key><value>jpdl32</value></entry>
- <entry><key>http://stp.eclipse.org/bpmn</key><value>stp</value></entry>
- <entry><key>http://www.wfmc.org/2008/XPDL2.1</key><value>xpdl21</value></entry>
- </map>
- </property>
- </bean>
-
-</deployment>
\ No newline at end of file
Modified: jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/client/ProcessEngineLocatorTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/client/ProcessEngineLocatorTest.java 2008-07-30 11:25:20 UTC (rev 1773)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/client/ProcessEngineLocatorTest.java 2008-07-30 12:00:16 UTC (rev 1774)
@@ -30,7 +30,7 @@
public void testLocateProcessEngine() throws Exception
{
- SignalManager engine = SignalManager.locateSignalManager();
+ ProcessEngine engine = ProcessEngineLocator.locateProcessEngine();
assertNotNull(engine);
}
}
More information about the jbpm-commits
mailing list