[jbpm-commits] JBoss JBPM SVN: r5599 - in projects/demos/trainticket-demo/jbpm-on-rails/trunk: ejb/src/main/java/org/jbpm/trainticketdemo/bi/esper and 18 other directories.
do-not-reply at jboss.org
do-not-reply at jboss.org
Mon Aug 31 06:41:43 EDT 2009
Author: jbarrez
Date: 2009-08-31 06:41:42 -0400 (Mon, 31 Aug 2009)
New Revision: 5599
Added:
projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/java/org/jbpm/trainticketdemo/DeployProcess.java
projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/java/org/jbpm/trainticketdemo/action/SendSmsAction.java
projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/resources/org/jbpm/trainticketdemo/accept_quote.ftl
projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/resources/production.jbpm.cfg.xml
projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/resources/production.jbpm.hibernate.cfg.xml
projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/test/
projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/test/java/
projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/test/java/org/
projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/test/java/org/jbpm/
projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/test/java/org/jbpm/trainticketdemo/
projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/test/java/org/jbpm/trainticketdemo/TrainTicketProcessUnitTestDemo.java
Modified:
projects/demos/trainticket-demo/jbpm-on-rails/trunk/domain/src/main/java/org/jbpm/trainticketdemo/domain/Quote.java
projects/demos/trainticket-demo/jbpm-on-rails/trunk/ejb/src/main/java/org/jbpm/trainticketdemo/bi/esper/EventQueueProcessor.java
projects/demos/trainticket-demo/jbpm-on-rails/trunk/ejb/src/main/java/org/jbpm/trainticketdemo/business/TicketServiceImpl.java
projects/demos/trainticket-demo/jbpm-on-rails/trunk/ejb/src/main/java/org/jbpm/trainticketdemo/business/external/QuoteServiceImpl.java
projects/demos/trainticket-demo/jbpm-on-rails/trunk/ejb/src/main/java/org/jbpm/trainticketdemo/helper/ProcessEngineManagerImpl.java
projects/demos/trainticket-demo/jbpm-on-rails/trunk/ejb/src/main/resources/jbpm.hsqldb.create.sql
projects/demos/trainticket-demo/jbpm-on-rails/trunk/jboss-integration/src/main/java/org/jbpm/trainticketdemo/integration/ProcessEngineFactory.java
projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/java/org/jbpm/trainticketdemo/action/CalculateQuoteAction.java
projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/java/org/jbpm/trainticketdemo/action/ChargeCustomerAction.java
projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/java/org/jbpm/trainticketdemo/action/SendQuoteToCustomerAction.java
projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/java/org/jbpm/trainticketdemo/business/external/QuoteService.java
projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/java/org/jbpm/trainticketdemo/decision/CheckCustomerDecision.java
projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/java/org/jbpm/trainticketdemo/util/SmsUtil.java
projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/resources/jbpm.cfg.xml
projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/resources/jbpm.hibernate.cfg.xml
projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/resources/log4j.properties
projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/resources/logging.properties
projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/resources/org/jbpm/trainticketdemo/process.jpdl.xml
projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/resources/org/jbpm/trainticketdemo/process.png
Log:
* Added unit test for process
* Simplified domain model
Modified: projects/demos/trainticket-demo/jbpm-on-rails/trunk/domain/src/main/java/org/jbpm/trainticketdemo/domain/Quote.java
===================================================================
--- projects/demos/trainticket-demo/jbpm-on-rails/trunk/domain/src/main/java/org/jbpm/trainticketdemo/domain/Quote.java 2009-08-31 09:34:27 UTC (rev 5598)
+++ projects/demos/trainticket-demo/jbpm-on-rails/trunk/domain/src/main/java/org/jbpm/trainticketdemo/domain/Quote.java 2009-08-31 10:41:42 UTC (rev 5599)
@@ -33,27 +33,25 @@
private static final long serialVersionUID = 1L;
- private TicketRequest ticketRequest;
+ private String from;
+ private String to;
+
+ private String cellPhoneNr;
+
private Double price;
public Quote() {
}
-
- public Quote(TicketRequest ticketRequest) {
- this.ticketRequest = ticketRequest;
+ public Quote(String from, String to, String cellphoneNr) {
+ this.from = from;
+ this.to = to;
+ this.cellPhoneNr = cellphoneNr;
}
- public TicketRequest getTicketRequest() {
- return ticketRequest;
- }
- public void setTicketRequest(TicketRequest ticketRequest) {
- this.ticketRequest = ticketRequest;
- }
-
public Double getPrice() {
return price;
}
@@ -62,4 +60,28 @@
this.price = price;
}
+ public String getFrom() {
+ return from;
+ }
+
+ public void setFrom(String from) {
+ this.from = from;
+ }
+
+ public String getTo() {
+ return to;
+ }
+
+ public void setTo(String to) {
+ this.to = to;
+ }
+
+ public String getCellPhoneNr() {
+ return cellPhoneNr;
+ }
+
+ public void setCellPhoneNr(String cellPhoneNr) {
+ this.cellPhoneNr = cellPhoneNr;
+ }
+
}
Modified: projects/demos/trainticket-demo/jbpm-on-rails/trunk/ejb/src/main/java/org/jbpm/trainticketdemo/bi/esper/EventQueueProcessor.java
===================================================================
--- projects/demos/trainticket-demo/jbpm-on-rails/trunk/ejb/src/main/java/org/jbpm/trainticketdemo/bi/esper/EventQueueProcessor.java 2009-08-31 09:34:27 UTC (rev 5598)
+++ projects/demos/trainticket-demo/jbpm-on-rails/trunk/ejb/src/main/java/org/jbpm/trainticketdemo/bi/esper/EventQueueProcessor.java 2009-08-31 10:41:42 UTC (rev 5599)
@@ -43,6 +43,7 @@
ObjectMessage objMsg = (ObjectMessage) message;
Object obj = objMsg.getObject();
+ LOGGER.info("Received event of type " + obj.getClass().getName());
epsProvider.getEPRuntime().sendEvent(obj);
}
Modified: projects/demos/trainticket-demo/jbpm-on-rails/trunk/ejb/src/main/java/org/jbpm/trainticketdemo/business/TicketServiceImpl.java
===================================================================
--- projects/demos/trainticket-demo/jbpm-on-rails/trunk/ejb/src/main/java/org/jbpm/trainticketdemo/business/TicketServiceImpl.java 2009-08-31 09:34:27 UTC (rev 5598)
+++ projects/demos/trainticket-demo/jbpm-on-rails/trunk/ejb/src/main/java/org/jbpm/trainticketdemo/business/TicketServiceImpl.java 2009-08-31 10:41:42 UTC (rev 5599)
@@ -68,7 +68,9 @@
}
Map<String, Object> variables = new HashMap<String, Object>();
- variables.put(ProcessVariable.TICKET_REQUEST, ticketRequest);
+ variables.put(ProcessVariable.FROM, ticketRequest.getFrom());
+ variables.put(ProcessVariable.TO, ticketRequest.getTo());
+ variables.put(ProcessVariable.CELLPHONE_NUMBER, ticketRequest.getCellPhoneNr());
ProcessInstance processInstance = executionService.startProcessInstanceByKey(TICKET_PROCESS, variables);
if (LOG.isInfoEnabled()) {
Modified: projects/demos/trainticket-demo/jbpm-on-rails/trunk/ejb/src/main/java/org/jbpm/trainticketdemo/business/external/QuoteServiceImpl.java
===================================================================
--- projects/demos/trainticket-demo/jbpm-on-rails/trunk/ejb/src/main/java/org/jbpm/trainticketdemo/business/external/QuoteServiceImpl.java 2009-08-31 09:34:27 UTC (rev 5598)
+++ projects/demos/trainticket-demo/jbpm-on-rails/trunk/ejb/src/main/java/org/jbpm/trainticketdemo/business/external/QuoteServiceImpl.java 2009-08-31 10:41:42 UTC (rev 5599)
@@ -29,7 +29,6 @@
import javax.ejb.Stateless;
import org.jbpm.trainticketdemo.domain.Quote;
-import org.jbpm.trainticketdemo.domain.TicketRequest;
/**
* @author Joram Barrez
@@ -39,12 +38,14 @@
@Stateless
public class QuoteServiceImpl implements QuoteService {
+ private static final long serialVersionUID = 1L;
+
private Random random = new Random();
private DecimalFormat df = new DecimalFormat("#.##");
- public Quote calculateQuote(TicketRequest ticketRequest) {
- Quote quote = new Quote(ticketRequest);
+ public Quote calculateQuote(String from, String to, String cellphoneNr) {
+ Quote quote = new Quote(from, to, cellphoneNr);
quote.setPrice(new Double(df.format(random.nextInt(20) + random.nextDouble())));
return quote;
}
Modified: projects/demos/trainticket-demo/jbpm-on-rails/trunk/ejb/src/main/java/org/jbpm/trainticketdemo/helper/ProcessEngineManagerImpl.java
===================================================================
--- projects/demos/trainticket-demo/jbpm-on-rails/trunk/ejb/src/main/java/org/jbpm/trainticketdemo/helper/ProcessEngineManagerImpl.java 2009-08-31 09:34:27 UTC (rev 5598)
+++ projects/demos/trainticket-demo/jbpm-on-rails/trunk/ejb/src/main/java/org/jbpm/trainticketdemo/helper/ProcessEngineManagerImpl.java 2009-08-31 10:41:42 UTC (rev 5599)
@@ -75,6 +75,7 @@
deployment.addResourceFromClasspath("org/jbpm/trainticketdemo/process.jpdl.xml");
deployment.addResourceFromClasspath("org/jbpm/trainticketdemo/process.png");
deployment.addResourceFromClasspath("org/jbpm/trainticketdemo/trainticket_startform.ftl");
+ deployment.addResourceFromClasspath("org/jbpm/trainticketdemo/accept_quote.ftl");
deployment.setName("Ticket train DEMO deployment");
deployment.deploy();
LOG.info("Deployed process: trainTicket");
Modified: projects/demos/trainticket-demo/jbpm-on-rails/trunk/ejb/src/main/resources/jbpm.hsqldb.create.sql
===================================================================
--- projects/demos/trainticket-demo/jbpm-on-rails/trunk/ejb/src/main/resources/jbpm.hsqldb.create.sql 2009-08-31 09:34:27 UTC (rev 5598)
+++ projects/demos/trainticket-demo/jbpm-on-rails/trunk/ejb/src/main/resources/jbpm.hsqldb.create.sql 2009-08-31 10:41:42 UTC (rev 5599)
@@ -468,7 +468,7 @@
INSERT INTO JBPM4_ID_USER VALUES (2,0,'mike','password','Mike',NULL,'mike at jbpm.org');
INSERT INTO JBPM4_ID_USER VALUES (3,0,'peter','password','Peter',NULL,'peter at jbpm.org');
INSERT INTO JBPM4_ID_USER VALUES (4,0,'mary','password','Mary',NULL,'mary at jbpm.org');
-INSERT INTO JBPM4_ID_USER VALUES (5,0,'joram','password','Joram',NULL,'jbarrez at redhat.com');
+INSERT INTO JBPM4_ID_USER VALUES (5,0,'123456789','password','Joram',NULL,'jbarrez at redhat.com');
INSERT INTO JBPM4_ID_MEMBERSHIP VALUES (1,0,1,2,NULL);
INSERT INTO JBPM4_ID_MEMBERSHIP VALUES (2,0,2,1,NULL);
@@ -493,7 +493,9 @@
);
INSERT INTO USERS(NAME,CELL_PHONE, PASSWORD, CREDIT) VALUES('jBPMPhone', 'EMULATOR-http://localhost:4321/cellphone_sms_listener', 'test', 100.0);
+INSERT INTO USERS(NAME,CELL_PHONE, PASSWORD, CREDIT) VALUES('demoPhoneNr', '123456789', 'test', 100.0);
+
create table TICKET_RESPONSE_TIMINGS (
ID bigint generated by default as identity (start with 1),
PROC_INST_ID varchar(255),
Modified: projects/demos/trainticket-demo/jbpm-on-rails/trunk/jboss-integration/src/main/java/org/jbpm/trainticketdemo/integration/ProcessEngineFactory.java
===================================================================
--- projects/demos/trainticket-demo/jbpm-on-rails/trunk/jboss-integration/src/main/java/org/jbpm/trainticketdemo/integration/ProcessEngineFactory.java 2009-08-31 09:34:27 UTC (rev 5598)
+++ projects/demos/trainticket-demo/jbpm-on-rails/trunk/jboss-integration/src/main/java/org/jbpm/trainticketdemo/integration/ProcessEngineFactory.java 2009-08-31 10:41:42 UTC (rev 5599)
@@ -39,7 +39,8 @@
synchronized (ProcessEngineFactory.class) {
if (processEngine == null) {
LOG.info("No cached ProcessEngine found, retrieving ProcessEngine");
- processEngine = new Configuration().buildProcessEngine();
+ //processEngine = new Configuration().buildProcessEngine();
+ processEngine = new Configuration().setResource("production.jbpm.cfg.xml").buildProcessEngine();
}
}
} else {
Added: projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/java/org/jbpm/trainticketdemo/DeployProcess.java
===================================================================
--- projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/java/org/jbpm/trainticketdemo/DeployProcess.java (rev 0)
+++ projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/java/org/jbpm/trainticketdemo/DeployProcess.java 2009-08-31 10:41:42 UTC (rev 5599)
@@ -0,0 +1,43 @@
+/*
+ * 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.jbpm.trainticketdemo;
+
+import org.jbpm.api.Configuration;
+import org.jbpm.api.NewDeployment;
+
+/**
+ * @author Joram Barrez
+ */
+public class DeployProcess {
+
+ public static void main(String[] args) {
+ NewDeployment deployment = new Configuration().buildProcessEngine().getRepositoryService().createDeployment();
+ deployment.addResourceFromClasspath("org/jbpm/trainticketdemo/process.jpdl.xml");
+ deployment.addResourceFromClasspath("org/jbpm/trainticketdemo/process.png");
+ deployment.addResourceFromClasspath("org/jbpm/trainticketdemo/trainticket_startform.ftl");
+ deployment.addResourceFromClasspath("org/jbpm/trainticketdemo/accept_quote.ftl");
+ deployment.setName("Ticket train DEMO deployment");
+ deployment.deploy();
+ System.out.println("DONE!");
+ }
+
+}
Modified: projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/java/org/jbpm/trainticketdemo/action/CalculateQuoteAction.java
===================================================================
--- projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/java/org/jbpm/trainticketdemo/action/CalculateQuoteAction.java 2009-08-31 09:34:27 UTC (rev 5598)
+++ projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/java/org/jbpm/trainticketdemo/action/CalculateQuoteAction.java 2009-08-31 10:41:42 UTC (rev 5599)
@@ -21,13 +21,10 @@
*/
package org.jbpm.trainticketdemo.action;
-import java.util.Date;
-
import org.jbpm.api.activity.ActivityBehaviour;
import org.jbpm.api.activity.ActivityExecution;
import org.jbpm.trainticketdemo.business.external.QuoteService;
import org.jbpm.trainticketdemo.domain.Quote;
-import org.jbpm.trainticketdemo.domain.TicketRequest;
import org.jbpm.trainticketdemo.util.EjbUtil;
import org.jbpm.trainticketdemo.variable.ProcessVariable;
@@ -41,35 +38,18 @@
private QuoteService quoteService;
public CalculateQuoteAction() {
- this.quoteService = EjbUtil.getQuoteServiceLocal();
+ this.quoteService = EjbUtil.getQuoteService();
}
public void execute(ActivityExecution activityExecution) throws Exception {
- TicketRequest ticketRequest = getTicketRequest(activityExecution);
- Quote quote = quoteService.calculateQuote(ticketRequest);
+
+ String from = (String) activityExecution.getVariable(ProcessVariable.FROM);
+ String to = (String) activityExecution.getVariable(ProcessVariable.TO);
+ String cellphoneNr = (String) activityExecution.getVariable(ProcessVariable.CELLPHONE_NUMBER);
+
+ Quote quote = quoteService.calculateQuote(from, to, cellphoneNr);
+
activityExecution.setVariable(ProcessVariable.QUOTE, quote);
}
-
- /**
- * When using the jBPM console, there is currently now way to set a Java
- * object as a process variable. This methods checks if there is a
- * {@link TicketRequest} stored as process variable, if so it returns this
- * object. If not, a new {@link TicketRequest} is created from the console
- * task form input and stored as a process variable.
- */
- private TicketRequest getTicketRequest(ActivityExecution execution) {
- TicketRequest ticketRequest = (TicketRequest) execution.getVariable(ProcessVariable.TICKET_REQUEST);
-
- if (ticketRequest == null) {
- ticketRequest = new TicketRequest();
- ticketRequest.setFrom((String) execution.getVariable(ProcessVariable.FROM));
- ticketRequest.setTo((String) execution.getVariable(ProcessVariable.TO));
- ticketRequest.setCellPhoneNr((String) execution.getVariable(ProcessVariable.CELLPHONE_NUMBER));
- ticketRequest.setDate(new Date());
- execution.setVariable(ProcessVariable.TICKET_REQUEST, ticketRequest);
- }
-
- return ticketRequest;
- }
}
Modified: projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/java/org/jbpm/trainticketdemo/action/ChargeCustomerAction.java
===================================================================
--- projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/java/org/jbpm/trainticketdemo/action/ChargeCustomerAction.java 2009-08-31 09:34:27 UTC (rev 5598)
+++ projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/java/org/jbpm/trainticketdemo/action/ChargeCustomerAction.java 2009-08-31 10:41:42 UTC (rev 5599)
@@ -60,7 +60,7 @@
Session session = env.get(Session.class);
Criteria criteria = session.createCriteria(User.class);
- criteria.add(Restrictions.eq("cellphoneNr", quote.getTicketRequest().getCellPhoneNr()));
+ criteria.add(Restrictions.eq("cellphoneNr", quote.getCellPhoneNr()));
return (User) criteria.uniqueResult();
}
Modified: projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/java/org/jbpm/trainticketdemo/action/SendQuoteToCustomerAction.java
===================================================================
--- projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/java/org/jbpm/trainticketdemo/action/SendQuoteToCustomerAction.java 2009-08-31 09:34:27 UTC (rev 5598)
+++ projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/java/org/jbpm/trainticketdemo/action/SendQuoteToCustomerAction.java 2009-08-31 10:41:42 UTC (rev 5599)
@@ -41,8 +41,8 @@
// Send the sms
SmsUtil.sendSms(quote,
- "Ticket from " + quote.getTicketRequest().getFrom()
- + " - " + quote.getTicketRequest().getTo() + " "
+ "Ticket from " + quote.getFrom()
+ + " - " + quote.getTo() + " "
+ "price is " + quote.getPrice() + " euro. "
+ "To accept reply with 'ACCEPT " + realId +"'. "
+ "Regards, jBPM-on-Rails.");
Added: projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/java/org/jbpm/trainticketdemo/action/SendSmsAction.java
===================================================================
--- projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/java/org/jbpm/trainticketdemo/action/SendSmsAction.java (rev 0)
+++ projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/java/org/jbpm/trainticketdemo/action/SendSmsAction.java 2009-08-31 10:41:42 UTC (rev 5599)
@@ -0,0 +1,61 @@
+/*
+ * 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.jbpm.trainticketdemo.action;
+
+import org.jbpm.api.activity.ActivityBehaviour;
+import org.jbpm.api.activity.ActivityExecution;
+import org.jbpm.trainticketdemo.util.SmsUtil;
+
+/**
+ * Only to be used in the 'agile' movie !
+ *
+ * @author Joram Barrez
+ */
+public class SendSmsAction implements ActivityBehaviour {
+
+ private static final long serialVersionUID = 1L;
+
+ private String message;
+
+ private String cellPhoneNr;
+
+ public void execute(ActivityExecution execution) throws Exception {
+ SmsUtil.sendSms(cellPhoneNr, message);
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public String getCellPhoneNr() {
+ return cellPhoneNr;
+ }
+
+ public void setCellPhoneNr(String cellPhoneNr) {
+ this.cellPhoneNr = cellPhoneNr;
+ }
+
+}
Modified: projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/java/org/jbpm/trainticketdemo/business/external/QuoteService.java
===================================================================
--- projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/java/org/jbpm/trainticketdemo/business/external/QuoteService.java 2009-08-31 09:34:27 UTC (rev 5598)
+++ projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/java/org/jbpm/trainticketdemo/business/external/QuoteService.java 2009-08-31 10:41:42 UTC (rev 5599)
@@ -31,6 +31,6 @@
*/
public interface QuoteService {
- Quote calculateQuote(TicketRequest ticketReques);
+ Quote calculateQuote(String from, String to, String cellphoneNr);
}
Modified: projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/java/org/jbpm/trainticketdemo/decision/CheckCustomerDecision.java
===================================================================
--- projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/java/org/jbpm/trainticketdemo/decision/CheckCustomerDecision.java 2009-08-31 09:34:27 UTC (rev 5598)
+++ projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/java/org/jbpm/trainticketdemo/decision/CheckCustomerDecision.java 2009-08-31 10:41:42 UTC (rev 5599)
@@ -61,7 +61,7 @@
Session session = env.get(Session.class);
Criteria criteria = session.createCriteria(User.class);
- criteria.add(Restrictions.eq("cellphoneNr", quote.getTicketRequest().getCellPhoneNr()));
+ criteria.add(Restrictions.eq("cellphoneNr", quote.getCellPhoneNr()));
return (User) criteria.uniqueResult();
}
Modified: projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/java/org/jbpm/trainticketdemo/util/SmsUtil.java
===================================================================
--- projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/java/org/jbpm/trainticketdemo/util/SmsUtil.java 2009-08-31 09:34:27 UTC (rev 5598)
+++ projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/java/org/jbpm/trainticketdemo/util/SmsUtil.java 2009-08-31 10:41:42 UTC (rev 5599)
@@ -52,7 +52,7 @@
public static void sendSms(Quote quote, String textMessage) throws HttpException, IOException {
if (isQuoteForEmulator(quote)) {
- sendSms(getEmulatorUrl(quote.getTicketRequest().getCellPhoneNr()), textMessage);
+ sendSms(getEmulatorUrl(quote.getCellPhoneNr()), textMessage);
} else {
// TODO
}
@@ -63,7 +63,7 @@
}
public static boolean isQuoteForEmulator(Quote quote ) {
- return isMessageFromEmulator(quote.getTicketRequest().getCellPhoneNr());
+ return isMessageFromEmulator(quote.getCellPhoneNr());
}
public static String getEmulatorUrl(String phoneNr) {
Modified: projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/resources/jbpm.cfg.xml
===================================================================
--- projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/resources/jbpm.cfg.xml 2009-08-31 09:34:27 UTC (rev 5598)
+++ projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/resources/jbpm.cfg.xml 2009-08-31 10:41:42 UTC (rev 5599)
@@ -3,20 +3,10 @@
<jbpm-configuration>
<import resource="jbpm.default.cfg.xml" />
-
- <import resource="jbpm.tx.jta.cfg.xml" />
-
- <!--
<import resource="jbpm.tx.hibernate.cfg.xml" />
- -->
-
<import resource="jbpm.jpdl.cfg.xml" />
<import resource="jbpm.identity.cfg.xml" />
<import resource="jbpm.businesscalendar.cfg.xml" />
-
- <process-engine-context>
- <job-executor threads="3" idle="30000" idle-max="60000" lock-millis="3600000" />
- </process-engine-context>
-
+ <import resource="jbpm.jobexecutor.cfg.xml" />
</jbpm-configuration>
Modified: projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/resources/jbpm.hibernate.cfg.xml
===================================================================
--- projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/resources/jbpm.hibernate.cfg.xml 2009-08-31 09:34:27 UTC (rev 5598)
+++ projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/resources/jbpm.hibernate.cfg.xml 2009-08-31 10:41:42 UTC (rev 5599)
@@ -8,29 +8,19 @@
<session-factory>
<!-- HSQLDB -->
- <property name="hibernate.connection.datasource">java:JbpmDS</property>
<property name="hibernate.dialect">org.hibernate.dialect.HSQLDialect</property>
+ <property name="hibernate.connection.driver_class">org.hsqldb.jdbcDriver</property>
+ <property name="hibernate.connection.url">jdbc:hsqldb:hsql://localhost:1701</property>
+ <property name="hibernate.connection.username">sa</property>
+ <property name="hibernate.connection.password"></property>
+ <property name="hibernate.hbm2ddl.auto">create-drop</property>
- <!--
- POSTGRES <property
- name="hibernate.connection.driver_class">org.postgresql.Driver</property>
- <property name="hibernate.connection.url">jdbc:postgresql://localhost:5432/jbpm</property>
- <property name="hibernate.connection.username">postgres</property>
- <property name="hibernate.connection.password">postgres</property>
- <property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>
- <property name="hibernate.hbm2ddl.auto">create-drop</property>
- -->
-
- <property name="hibernate.transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</property>
- <property name="hibernate.transaction.manager_lookup_class">org.hibernate.transaction.JBossTransactionManagerLookup</property>
- <property name="jta.UserTransaction">UserTransaction</property>
-
<mapping resource="jbpm.repository.hbm.xml" />
<mapping resource="jbpm.execution.hbm.xml" />
<mapping resource="jbpm.history.hbm.xml" />
<mapping resource="jbpm.task.hbm.xml" />
<mapping resource="jbpm.identity.hbm.xml" />
-
+
<mapping resource="org/jbpm/trainticketdemo/domain/User.hbm.xml" />
</session-factory>
Modified: projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/resources/log4j.properties
===================================================================
--- projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/resources/log4j.properties 2009-08-31 09:34:27 UTC (rev 5598)
+++ projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/resources/log4j.properties 2009-08-31 10:41:42 UTC (rev 5599)
@@ -1,4 +1,4 @@
-log4j.rootLogger=INFO,CONSOLE
+log4j.rootLogger=DEBUG,CONSOLE
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
Modified: projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/resources/logging.properties
===================================================================
--- projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/resources/logging.properties 2009-08-31 09:34:27 UTC (rev 5598)
+++ projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/resources/logging.properties 2009-08-31 10:41:42 UTC (rev 5599)
@@ -1,18 +1,64 @@
-handlers= java.util.logging.ConsoleHandler
-redirect.commons.logging = enabled
-
-java.util.logging.ConsoleHandler.level = FINE
-java.util.logging.ConsoleHandler.formatter = org.jbpm.internal.log.LogFormatter
-
-org.jbpm.level=FINE
-# org.jbpm.pvm.internal.tx.level=FINE
-# org.jbpm.pvm.internal.wire.level=FINE
-# org.jbpm.pvm.internal.util.level=FINE
-
-org.hibernate.level=INFO
-org.hibernate.cfg.SettingsFactory.level=SEVERE
-org.hibernate.cfg.HbmBinder.level=SEVERE
-# org.hibernate.SQL.level=FINEST
-# org.hibernate.type.level=FINEST
-# org.hibernate.tool.hbm2ddl.SchemaExport.level=FINEST
-# org.hibernate.transaction.level=FINEST
\ No newline at end of file
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler, 4host-manager.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
+
+.handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
+
+############################################################
+# Handler specific properties.
+# Describes specific configuration info for Handlers.
+############################################################
+
+1catalina.org.apache.juli.FileHandler.level = FINE
+1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
+1catalina.org.apache.juli.FileHandler.prefix = catalina.
+
+2localhost.org.apache.juli.FileHandler.level = FINE
+2localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
+2localhost.org.apache.juli.FileHandler.prefix = localhost.
+
+3manager.org.apache.juli.FileHandler.level = FINE
+3manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
+3manager.org.apache.juli.FileHandler.prefix = manager.
+
+4host-manager.org.apache.juli.FileHandler.level = FINE
+4host-manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
+4host-manager.org.apache.juli.FileHandler.prefix = host-manager.
+
+java.util.logging.ConsoleHandler.level = FINE
+java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
+
+
+############################################################
+# Facility specific properties.
+# Provides extra control for each logger.
+############################################################
+
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.FileHandler
+
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.FileHandler
+
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = INFO
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = 4host-manager.org.apache.juli.FileHandler
+
+# For example, set the com.xyz.foo logger to only log SEVERE
+# messages:
+#org.apache.catalina.startup.ContextConfig.level = FINE
+#org.apache.catalina.startup.HostConfig.level = FINE
+#org.apache.catalina.session.ManagerBase.level = FINE
+#org.apache.catalina.core.AprLifecycleListener.level=FINE
Added: projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/resources/org/jbpm/trainticketdemo/accept_quote.ftl
===================================================================
--- projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/resources/org/jbpm/trainticketdemo/accept_quote.ftl (rev 0)
+++ projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/resources/org/jbpm/trainticketdemo/accept_quote.ftl 2009-08-31 10:41:42 UTC (rev 5599)
@@ -0,0 +1,26 @@
+<html>
+ <body>
+
+ <form action="${form.action}" method="POST" enctype="multipart/form-data">
+
+ <h3>Accept Quote:</h3>
+ <table>
+ <tr>
+ <td>From:</td>
+ <td>${from}</td>
+ </tr>
+ <tr>
+ <td>To:</td>
+ <td>${to}</td>
+ </tr>
+ <tr>
+ <td>Price:</td>
+ <td><b>${quote.price}</b></td>
+ </tr>
+ </table>
+
+ <input type="submit" name="Accept"/>
+
+ </form>
+ </body>
+</html>
\ No newline at end of file
Modified: projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/resources/org/jbpm/trainticketdemo/process.jpdl.xml
===================================================================
--- projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/resources/org/jbpm/trainticketdemo/process.jpdl.xml 2009-08-31 09:34:27 UTC (rev 5598)
+++ projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/resources/org/jbpm/trainticketdemo/process.jpdl.xml 2009-08-31 10:41:42 UTC (rev 5599)
@@ -13,15 +13,15 @@
</event-listener>
</on>
- <start form="org/jbpm/trainticketdemo/trainticket_startform.ftl" g="21,244,48,48" name="start">
+ <start form="org/jbpm/trainticketdemo/trainticket_startform.ftl" g="11,105,48,48" name="start">
<transition to="Calculate quote"/>
</start>
- <custom class="org.jbpm.trainticketdemo.action.CalculateQuoteAction" g="109,242,132,52" name="Calculate quote">
+ <custom class="org.jbpm.trainticketdemo.action.CalculateQuoteAction" g="99,103,132,52" name="Calculate quote">
<transition to="Check customer credit"/>
</custom>
- <custom class="org.jbpm.trainticketdemo.action.SendQuoteToCustomerAction" g="393,155,209,52" name="Send price quote to customer">
+ <custom class="org.jbpm.trainticketdemo.action.SendQuoteToCustomerAction" g="383,16,209,52" name="Send price quote to customer">
<on event="end">
<event-listener class="org.jbpm.trainticketdemo.eventlistener.SendEventToQueue">
<field name="eventClass">
@@ -35,24 +35,27 @@
<transition to="Accept quote"/>
</custom>
- <custom class="org.jbpm.trainticketdemo.action.SendRejectionMsgAction" g="391,337,160,52" name="Send reject message">
+ <custom class="org.jbpm.trainticketdemo.action.SendRejectionMsgAction" g="381,198,160,52" name="Send reject message">
<transition to="cancel"/>
</custom>
- <decision g="284,246,48,48" name="Check customer credit">
+ <decision g="274,107,48,48" name="Check customer credit">
<handler class="org.jbpm.trainticketdemo.decision.CheckCustomerDecision" />
+ <handler class="org.jbpm.trainticketdemo.decision.CheckCustomerDecision"/>
+ <handler class="org.jbpm.trainticketdemo.decision.CheckCustomerDecision"/>
<transition g="-67,-16" name="credit OK" to="Send price quote to customer"/>
<transition g="-68,5" name="credit NOK" to="Send reject message"/>
</decision>
- <task assignee="#{ticketRequest.cellPhoneNr}" g="651,156,107,52" name="Accept quote">
+ <task assignee="#{cellPhoneNr}" form="org/jbpm/trainticketdemo/accept_quote.ftl" g="641,17,107,52" name="Accept quote">
<transition to="charge customer"/>
<transition g="11,-13" name="timeout" to="cancel">
- <timer duedate="1 day"/>
+ <timer duedate="10 seconds"/>
+ <timer duedate="10 seconds"/>
</transition>
</task>
- <custom class="org.jbpm.trainticketdemo.action.ChargeCustomerAction" g="806,157,135,52" name="charge customer">
+ <custom class="org.jbpm.trainticketdemo.action.ChargeCustomerAction" g="796,18,135,52" name="charge customer">
<on event="end">
<event-listener class="org.jbpm.trainticketdemo.eventlistener.SendEventToQueue">
<field name="eventClass">
@@ -62,11 +65,11 @@
<map>
<entry>
<key><string value="from"/></key>
- <value><string value="#{ticketRequest.from}"/></value>
+ <value><string value="#{from}"/></value>
</entry>
<entry>
<key><string value="to"/></key>
- <value><string value="#{ticketRequest.to}"/></value>
+ <value><string value="#{to}"/></value>
</entry>
<entry>
<key><string value="amount"/></key>
@@ -79,8 +82,8 @@
<transition to="end"/>
</custom>
- <end-cancel g="682,337,48,48" name="cancel"/>
+ <end-cancel g="672,198,48,48" name="cancel"/>
- <end g="1001,158,48,48" name="end"/>
+ <end g="991,19,48,48" name="end"/>
</process>
\ No newline at end of file
Modified: projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/resources/org/jbpm/trainticketdemo/process.png
===================================================================
(Binary files differ)
Added: projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/resources/production.jbpm.cfg.xml
===================================================================
--- projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/resources/production.jbpm.cfg.xml (rev 0)
+++ projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/resources/production.jbpm.cfg.xml 2009-08-31 10:41:42 UTC (rev 5599)
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<jbpm-configuration>
+
+ <process-engine-context>
+
+ <repository-service />
+ <repository-cache />
+ <execution-service />
+ <history-service />
+ <management-service />
+ <identity-service />
+ <task-service />
+
+ <hibernate-configuration>
+ <cfg resource="production.jbpm.hibernate.cfg.xml" />
+ </hibernate-configuration>
+
+ <hibernate-session-factory />
+
+ <script-manager default-expression-language="juel"
+ default-script-language="juel">
+ <script-language name="juel" factory="org.jbpm.pvm.internal.script.JuelScriptEngineFactory" />
+ </script-manager>
+
+ <id-generator />
+ <types resource="jbpm.variable.types.xml" />
+
+ <address-resolver />
+
+ </process-engine-context>
+
+ <transaction-context>
+ <repository-session />
+ <db-session />
+
+ <message-session />
+ <timer-session />
+ <history-session />
+ <mail-session>
+ <mail-server>
+ <session-properties resource="jbpm.mail.properties" />
+ </mail-server>
+ </mail-session>
+ </transaction-context>
+
+ <import resource="jbpm.tx.jta.cfg.xml" />
+ <import resource="jbpm.jpdl.cfg.xml" />
+ <import resource="jbpm.identity.cfg.xml" />
+ <import resource="jbpm.businesscalendar.cfg.xml" />
+
+ <import resource="jbpm.jobexecutor.cfg.xml" />
+
+
+
+</jbpm-configuration>
Added: projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/resources/production.jbpm.hibernate.cfg.xml
===================================================================
--- projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/resources/production.jbpm.hibernate.cfg.xml (rev 0)
+++ projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/main/resources/production.jbpm.hibernate.cfg.xml 2009-08-31 10:41:42 UTC (rev 5599)
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!DOCTYPE hibernate-configuration PUBLIC
+ "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
+ "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
+
+<hibernate-configuration>
+ <session-factory>
+
+ <!-- In production, we're using a JNDI datasource and JTA transactions -->
+
+ <!-- HSQLDB -->
+ <property name="hibernate.connection.datasource">java:JbpmDS</property>
+ <property name="hibernate.dialect">org.hibernate.dialect.HSQLDialect</property>
+ <property name="hibernate.transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</property>
+ <property name="hibernate.transaction.manager_lookup_class">org.hibernate.transaction.JBossTransactionManagerLookup</property>
+ <property name="jta.UserTransaction">UserTransaction</property>
+
+ <mapping resource="jbpm.repository.hbm.xml" />
+ <mapping resource="jbpm.execution.hbm.xml" />
+ <mapping resource="jbpm.history.hbm.xml" />
+ <mapping resource="jbpm.task.hbm.xml" />
+ <mapping resource="jbpm.identity.hbm.xml" />
+
+ <mapping resource="org/jbpm/trainticketdemo/domain/User.hbm.xml" />
+
+ </session-factory>
+</hibernate-configuration>
Added: projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/test/java/org/jbpm/trainticketdemo/TrainTicketProcessUnitTestDemo.java
===================================================================
--- projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/test/java/org/jbpm/trainticketdemo/TrainTicketProcessUnitTestDemo.java (rev 0)
+++ projects/demos/trainticket-demo/jbpm-on-rails/trunk/process-logic/src/test/java/org/jbpm/trainticketdemo/TrainTicketProcessUnitTestDemo.java 2009-08-31 10:41:42 UTC (rev 5599)
@@ -0,0 +1,122 @@
+/*
+ * 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.jbpm.trainticketdemo;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.hibernate.Session;
+import org.hibernate.SessionFactory;
+import org.hibernate.Transaction;
+import org.jbpm.api.NewDeployment;
+import org.jbpm.api.ProcessInstance;
+import org.jbpm.api.task.Task;
+import org.jbpm.test.JbpmTestCase;
+import org.jbpm.trainticketdemo.domain.User;
+import org.jbpm.trainticketdemo.variable.ProcessVariable;
+
+/**
+ * @author Joram Barrez
+ */
+public class TrainTicketProcessUnitTestDemo extends JbpmTestCase {
+
+ private SessionFactory sessionFactory;
+
+ private User testUser;
+
+ // ###### SETUP & TEARDOWN ###################################
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ sessionFactory = processEngine.get(SessionFactory.class);
+
+ // Add dummy user
+
+ testUser = new User();
+ testUser.setCellphoneNr("+32 123 45 67 89");
+ testUser.setCurrentCredit(100.0);
+ save(testUser);
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+
+ // Cleanup our own test data
+ Session session = sessionFactory.openSession();
+ Transaction t = session.beginTransaction();
+ session.delete(testUser);
+ t.commit();
+ session.close();
+
+ // Let jBPM clean up its stuff
+ super.tearDown();
+ }
+
+ // This is the unit test shown in the presentation
+ public void testTrainTicketProcessWithEnoughCredit() {
+
+ // First we deploy the latest version of the train ticket process
+ NewDeployment deployment = repositoryService.createDeployment();
+ deployment.addResourceFromClasspath("org/jbpm/trainticketdemo/process.jpdl.xml");
+ deployment.deploy();
+
+ // Start a new Process instance
+ Map<String, String> vars = new HashMap<String, String>();
+ vars.put(ProcessVariable.FROM, "Brussels");
+ vars.put(ProcessVariable.TO, "Antwerp");
+ vars.put(ProcessVariable.CELLPHONE_NUMBER, testUser.getCellphoneNr());
+
+ ProcessInstance pi = executionService.startProcessInstanceByKey("ticketProcess", vars);
+
+ // Since I have enough money, the 'Accept Quote' task should be assigned to the test user's cellphone nr
+ List<Task> tasks = taskService.findPersonalTasks(testUser.getCellphoneNr());
+ assertTrue("Nr of tasks for cellphone nr = " + tasks.size(), tasks.size() == 1);
+
+ // or we can use the new Query API
+ Task task = taskService.createTaskQuery()
+ .assignee(testUser.getCellphoneNr())
+ .uniqueResult();
+ assertEquals(tasks.get(0).getName(), task.getName());
+
+ // After task completion, the process is finished
+ taskService.completeTask(task.getId());
+ assertProcessInstanceEnded(pi);
+
+ // We always clean up after ourselves
+ repositoryService.deleteDeploymentCascade(deployment.getId());
+
+ }
+
+
+ // ########## HELPER METHODS #####################""
+
+ private void save(User user) {
+ Session session = sessionFactory.openSession();
+ Transaction t = session.beginTransaction();
+ session.saveOrUpdate(testUser);
+ t.commit();
+ session.close();
+ }
+
+}
More information about the jbpm-commits
mailing list