[jbpm-commits] JBoss JBPM SVN: r6669 - in jbpm3/branches/jbpm-3.2-soa: core/src/main/java/org/jbpm/graph/node and 8 other directories.
do-not-reply at jboss.org
do-not-reply at jboss.org
Thu Sep 23 23:33:49 EDT 2010
Author: alex.guizar at jboss.com
Date: 2010-09-23 23:33:49 -0400 (Thu, 23 Sep 2010)
New Revision: 6669
Modified:
jbpm3/branches/jbpm-3.2-soa/core/src/main/java/org/jbpm/graph/node/Join.java
jbpm3/branches/jbpm-3.2-soa/core/src/main/java/org/jbpm/job/executor/JobExecutor.java
jbpm3/branches/jbpm-3.2-soa/core/src/main/java/org/jbpm/job/executor/JobExecutorThread.java
jbpm3/branches/jbpm-3.2-soa/core/src/main/java/org/jbpm/jpdl/xml/JpdlParser.java
jbpm3/branches/jbpm-3.2-soa/core/src/main/java/org/jbpm/util/XmlUtil.java
jbpm3/branches/jbpm-3.2-soa/core/src/main/resources/org/jbpm/default.jbpm.cfg.xml
jbpm3/branches/jbpm-3.2-soa/core/src/test/java/org/jbpm/jbpm1071/JBPM1071Test.java
jbpm3/branches/jbpm-3.2-soa/core/src/test/java/org/jbpm/jbpm2908/JBPM2908Test.java
jbpm3/branches/jbpm-3.2-soa/core/src/test/resources/org/jbpm/jbpm2094/gpd.xml
jbpm3/branches/jbpm-3.2-soa/core/src/test/resources/org/jbpm/jbpm2094/processdefinition.xml
jbpm3/branches/jbpm-3.2-soa/core/src/test/resources/org/jbpm/jbpm2787/gpd.xml
jbpm3/branches/jbpm-3.2-soa/core/src/test/resources/org/jbpm/jbpm2787/processdefinition.xml
jbpm3/branches/jbpm-3.2-soa/pom.xml
Log:
JBPM-2787 implement exclusive jobs by locking process instance instead of batching;
separate retryInterval property from idleInterval;
interpret null Join.parentLockMode as requesting no lock
Modified: jbpm3/branches/jbpm-3.2-soa/core/src/main/java/org/jbpm/graph/node/Join.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/core/src/main/java/org/jbpm/graph/node/Join.java 2010-09-23 04:57:13 UTC (rev 6668)
+++ jbpm3/branches/jbpm-3.2-soa/core/src/main/java/org/jbpm/graph/node/Join.java 2010-09-24 03:33:49 UTC (rev 6669)
@@ -36,6 +36,7 @@
import org.jbpm.graph.action.Script;
import org.jbpm.graph.def.Node;
import org.jbpm.graph.exe.ExecutionContext;
+import org.jbpm.graph.exe.ProcessInstance;
import org.jbpm.graph.exe.Token;
import org.jbpm.jpdl.xml.JpdlXmlReader;
@@ -44,31 +45,31 @@
private static final long serialVersionUID = 1L;
/**
- * specifies what type of hibernate lock should be acquired. null value defaults to
- * LockMode.UPGRADE
+ * specifies what type of hibernate lock should be acquired. <code>null</code> means no lock
+ * is to be acquired.
*/
- String parentLockMode;
+ private String parentLockMode;
/**
* specifies if this join is a discriminator. a descriminator reactivates the parent when the
* first child token enters the join.
*/
- boolean isDiscriminator;
+ private boolean isDiscriminator;
/**
* a fixed set of child tokens.
*/
- Collection tokenNames;
+ private Collection tokenNames;
/**
* a script that calculates child tokens at runtime.
*/
- Script script;
+ private Script script;
/**
* reactivate the parent if the n-th token arrives in the join.
*/
- int nOutOfM = -1;
+ private int nOutOfM = -1;
public Join() {
}
@@ -109,20 +110,25 @@
if (!arrivingToken.isAbleToReactivateParent()) return;
arrivingToken.setAbleToReactivateParent(false);
- Token parentToken = arrivingToken.getParent();
- JbpmContext jbpmContext = executionContext.getJbpmContext();
- Session session;
- if (jbpmContext != null && (session = jbpmContext.getSession()) != null) {
- // obtain update lock by default (LockMode.UPGRADE)
- LockMode lockMode = parentLockMode != null ? LockMode.parse(parentLockMode)
- : LockMode.UPGRADE;
- // load() hits the database as required, no need to flush() here
- parentToken = (Token) session.load(Token.class, new Long(parentToken.getId()), lockMode);
- if (log.isDebugEnabled()) {
- log.debug(this + " acquires " + lockMode + " lock on " + parentToken);
+ if (parentLockMode != null) {
+ JbpmContext jbpmContext = executionContext.getJbpmContext();
+ Session session;
+ if (jbpmContext != null && (session = jbpmContext.getSession()) != null) {
+ // parse lock mode
+ LockMode lockMode = LockMode.parse(parentLockMode);
+ // call load() instead of lock() to obtain an unversioned lock
+ // https://jira.jboss.org/browse/SOA-1476
+ ProcessInstance processInstance = (ProcessInstance) session.load(ProcessInstance.class,
+ new Long(arrivingToken.getProcessInstance().getId()), lockMode);
+ // load() hits the database as required, no need to flush() here
+ // session.flush();
+ if (log.isDebugEnabled()) {
+ log.debug(this + " acquires " + lockMode + " lock on " + processInstance);
+ }
}
}
+ Token parentToken = arrivingToken.getParent();
boolean reactivateParent;
// if this is a discriminator
if (isDiscriminator) {
Modified: jbpm3/branches/jbpm-3.2-soa/core/src/main/java/org/jbpm/job/executor/JobExecutor.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/core/src/main/java/org/jbpm/job/executor/JobExecutor.java 2010-09-23 04:57:13 UTC (rev 6668)
+++ jbpm3/branches/jbpm-3.2-soa/core/src/main/java/org/jbpm/job/executor/JobExecutor.java 2010-09-24 03:33:49 UTC (rev 6669)
@@ -27,6 +27,7 @@
protected int nbrOfThreads;
protected int idleInterval;
protected int maxIdleInterval;
+ private int retryInterval;
/** @deprecated property has no effect */
protected int historyMaxSize;
@@ -243,6 +244,9 @@
}
public void setIdleInterval(int idleInterval) {
+ if (idleInterval <= 0) {
+ throw new IllegalArgumentException("idle interval must be positive");
+ }
this.idleInterval = idleInterval;
}
@@ -269,11 +273,25 @@
this.jbpmConfiguration = jbpmConfiguration;
}
+ public int getRetryInterval() {
+ return retryInterval;
+ }
+
+ public void setRetryInterval(int retryInterval) {
+ if (retryInterval <= 0) {
+ throw new IllegalArgumentException("retry interval must be positive");
+ }
+ this.retryInterval = retryInterval;
+ }
+
public int getMaxIdleInterval() {
return maxIdleInterval;
}
public void setMaxIdleInterval(int maxIdleInterval) {
+ if (maxIdleInterval <= 0) {
+ throw new IllegalArgumentException("max idle interval must be positive");
+ }
this.maxIdleInterval = maxIdleInterval;
}
@@ -324,6 +342,9 @@
}
public void setMaxLockTime(int maxLockTime) {
+ if (maxLockTime <= 0) {
+ throw new IllegalArgumentException("max lock time must be positive");
+ }
this.maxLockTime = maxLockTime;
}
@@ -342,6 +363,9 @@
}
public void setLockMonitorInterval(int lockMonitorInterval) {
+ if (lockMonitorInterval <= 0) {
+ throw new IllegalArgumentException("lock monitor interval must be positive");
+ }
this.lockMonitorInterval = lockMonitorInterval;
}
@@ -350,6 +374,9 @@
}
public void setNbrOfThreads(int nbrOfThreads) {
+ if (nbrOfThreads <= 0) {
+ throw new IllegalArgumentException("number of threads must be positive");
+ }
this.nbrOfThreads = nbrOfThreads;
}
Modified: jbpm3/branches/jbpm-3.2-soa/core/src/main/java/org/jbpm/job/executor/JobExecutorThread.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/core/src/main/java/org/jbpm/job/executor/JobExecutorThread.java 2010-09-23 04:57:13 UTC (rev 6668)
+++ jbpm3/branches/jbpm-3.2-soa/core/src/main/java/org/jbpm/job/executor/JobExecutorThread.java 2010-09-24 03:33:49 UTC (rev 6669)
@@ -6,7 +6,6 @@
import java.util.Collections;
import java.util.Date;
import java.util.Iterator;
-import java.util.Random;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -23,7 +22,6 @@
private final JobExecutor jobExecutor;
private volatile boolean isActive = true;
- private final Random random = new Random();
public JobExecutorThread(String name, JobExecutor jobExecutor) {
super(jobExecutor.getThreadGroup(), name);
@@ -41,14 +39,13 @@
}
public void run() {
- int currentIdleInterval = jobExecutor.getIdleInterval();
+ int retryInterval = jobExecutor.getRetryInterval();
while (isActive) {
- // acquire jobs; on exception, call returns empty collection
- Collection acquiredJobs = acquireJobs();
- // execute jobs
+ // acquire job; on exception, call returns null
+ Job job = acquireJob();
+ // execute job
boolean success = true;
- for (Iterator i = acquiredJobs.iterator(); i.hasNext() && isActive;) {
- Job job = (Job) i.next();
+ if (job != null) {
try {
executeJob(job);
}
@@ -56,7 +53,6 @@
// on exception, call returns normally
saveJobException(job, e);
success = false;
- break;
}
}
@@ -64,10 +60,10 @@
if (isActive) {
try {
if (success) {
- // reset current idle interval
- currentIdleInterval = jobExecutor.getIdleInterval();
+ // reset the current retry interval
+ retryInterval = jobExecutor.getRetryInterval();
// wait for next due job
- long waitPeriod = getWaitPeriod(currentIdleInterval);
+ long waitPeriod = getWaitPeriod(jobExecutor.getIdleInterval());
if (waitPeriod > 0) {
synchronized (jobExecutor) {
jobExecutor.wait(waitPeriod);
@@ -75,18 +71,16 @@
}
}
else {
- // wait a random period, at least half the current idle interval
- int waitPeriod = currentIdleInterval / 2;
// sleep instead of waiting on jobExecutor
// to prevent DbMessageService from waking up this thread
- sleep(waitPeriod + random.nextInt(waitPeriod));
- // after an exception, double the current idle interval
+ sleep(retryInterval);
+ // after an exception, double the current retry interval
// to avoid continuous failures during anomalous conditions
- currentIdleInterval *= 2;
+ retryInterval *= 2;
// enforce maximum idle interval
int maxIdleInterval = jobExecutor.getMaxIdleInterval();
- if (currentIdleInterval > maxIdleInterval || currentIdleInterval < 0) {
- currentIdleInterval = maxIdleInterval;
+ if (retryInterval > maxIdleInterval || retryInterval < 0) {
+ retryInterval = maxIdleInterval;
}
}
}
@@ -98,14 +92,15 @@
log.info(getName() + " leaves cyberspace");
}
+ /** @deprecated call {@link #acquireJob()} instead **/
protected Collection acquireJobs() {
boolean debug = log.isDebugEnabled();
Collection jobs;
- // acquire monitor before creating context and allocating resources
+ // acquire job executor's monitor before creating context and allocating resources
synchronized (jobExecutor) {
JbpmContext jbpmContext = jobExecutor.getJbpmConfiguration().createJbpmContext();
try {
- // search for acquirable job
+ // search for available job
String lockOwner = getName();
JobSession jobSession = jbpmContext.getJobSession();
Job firstJob = jobSession.getFirstAcquirableJob(lockOwner);
@@ -167,14 +162,69 @@
return jobs;
}
+ protected Job acquireJob() {
+ boolean debug = log.isDebugEnabled();
+ Job job;
+ // acquire job executor's monitor before creating context and allocating resources
+ synchronized (jobExecutor) {
+ JbpmContext jbpmContext = jobExecutor.getJbpmConfiguration().createJbpmContext();
+ try {
+ // search for available job
+ String lockOwner = getName();
+ JobSession jobSession = jbpmContext.getJobSession();
+ job = jobSession.getFirstAcquirableJob(lockOwner);
+ // is there a job?
+ if (job != null) {
+ // acquire jobs
+ Date lockTime = new Date();
+ // lock job
+ job.setLockOwner(lockOwner);
+ job.setLockTime(lockTime);
+ // has job failed previously?
+ if (job.getException() != null) {
+ // decrease retry count
+ int retries = job.getRetries() - 1;
+ job.setRetries(retries);
+ if (debug) log.debug(job + " has " + retries + " retries remaining");
+ }
+ if (debug) log.debug("acquired " + job);
+ }
+ else if (debug) log.debug("no acquirable job found");
+ }
+ catch (RuntimeException e) {
+ jbpmContext.setRollbackOnly();
+ job = null;
+ if (debug) log.debug("failed to acquire job", e);
+ }
+ catch (Error e) {
+ jbpmContext.setRollbackOnly();
+ throw e;
+ }
+ finally {
+ try {
+ jbpmContext.close();
+ }
+ catch (RuntimeException e) {
+ job = null;
+ if (debug) log.debug("failed to acquire job", e);
+ }
+ }
+ }
+ return job;
+ }
+
protected void executeJob(Job job) throws Exception {
JbpmContext jbpmContext = jobExecutor.getJbpmConfiguration().createJbpmContext();
try {
+ if (job.isExclusive()) {
+ jbpmContext.getGraphSession().lockProcessInstance(job.getProcessInstance());
+ }
+
JobSession jobSession = jbpmContext.getJobSession();
jobSession.reattachJob(job);
// register process instance for automatic save
- // see https://jira.jboss.org/jira/browse/JBPM-1015
+ // https://jira.jboss.org/browse/JBPM-1015
jbpmContext.addAutoSaveProcessInstance(job.getProcessInstance());
if (log.isDebugEnabled()) log.debug("executing " + job);
Modified: jbpm3/branches/jbpm-3.2-soa/core/src/main/java/org/jbpm/jpdl/xml/JpdlParser.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/core/src/main/java/org/jbpm/jpdl/xml/JpdlParser.java 2010-09-23 04:57:13 UTC (rev 6668)
+++ jbpm3/branches/jbpm-3.2-soa/core/src/main/java/org/jbpm/jpdl/xml/JpdlParser.java 2010-09-24 03:33:49 UTC (rev 6669)
@@ -61,8 +61,8 @@
private static final String W3C_XML_SCHEMA = "http://www.w3.org/2001/XMLSchema";
private static final String JAXP_SCHEMA_SOURCE = "http://java.sun.com/xml/jaxp/properties/schemaSource";
- private static SAXParserFactory saxParserFactory = createSaxParserFactory();
- private static Set schemaResources = getDefaultSchemaResources();
+ private static final SAXParserFactory saxParserFactory = createSaxParserFactory();
+ private static final Set schemaResources = getDefaultSchemaResources();
private static Object schemaSource;
private JpdlParser() {
Modified: jbpm3/branches/jbpm-3.2-soa/core/src/main/java/org/jbpm/util/XmlUtil.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/core/src/main/java/org/jbpm/util/XmlUtil.java 2010-09-23 04:57:13 UTC (rev 6668)
+++ jbpm3/branches/jbpm-3.2-soa/core/src/main/java/org/jbpm/util/XmlUtil.java 2010-09-24 03:33:49 UTC (rev 6669)
@@ -113,7 +113,7 @@
return document;
}
- public synchronized static DocumentBuilder getDocumentBuilder() {
+ public static DocumentBuilder getDocumentBuilder() {
try {
return documentBuilderFactory.newDocumentBuilder();
}
Modified: jbpm3/branches/jbpm-3.2-soa/core/src/main/resources/org/jbpm/default.jbpm.cfg.xml
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/core/src/main/resources/org/jbpm/default.jbpm.cfg.xml 2010-09-23 04:57:13 UTC (rev 6668)
+++ jbpm3/branches/jbpm-3.2-soa/core/src/main/resources/org/jbpm/default.jbpm.cfg.xml 2010-09-24 03:33:49 UTC (rev 6669)
@@ -99,9 +99,13 @@
<int value="1" />
</property>
<property name="idleInterval">
- <!-- 5 seconds -->
- <int value="5000" />
+ <!-- 1 minute -->
+ <int value="60000" />
</property>
+ <property name="retryInterval">
+ <!-- 1 second -->
+ <int value="1000" />
+ </property>
<property name="maxIdleInterval">
<!-- 1 hour -->
<int value="3600000" />
Modified: jbpm3/branches/jbpm-3.2-soa/core/src/test/java/org/jbpm/jbpm1071/JBPM1071Test.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/core/src/test/java/org/jbpm/jbpm1071/JBPM1071Test.java 2010-09-23 04:57:13 UTC (rev 6668)
+++ jbpm3/branches/jbpm-3.2-soa/core/src/test/java/org/jbpm/jbpm1071/JBPM1071Test.java 2010-09-24 03:33:49 UTC (rev 6669)
@@ -18,14 +18,14 @@
import org.jbpm.util.Semaphore;
/**
- * Possible problem in concurrent signaling from multiple threads
+ * Possible problem in concurrent signaling from multiple threads.
*
* @see <a href='https://jira.jboss.org/jira/browse/JBPM-1071'>JBPM-1071</a>
*/
public class JBPM1071Test extends AbstractDbTestCase {
static final int nbrOfThreads = 4;
- static final int nbrOfIterations = 20;
+ static final int nbrOfIterations = 10;
protected void setUp() throws Exception {
super.setUp();
Modified: jbpm3/branches/jbpm-3.2-soa/core/src/test/java/org/jbpm/jbpm2908/JBPM2908Test.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/core/src/test/java/org/jbpm/jbpm2908/JBPM2908Test.java 2010-09-23 04:57:13 UTC (rev 6668)
+++ jbpm3/branches/jbpm-3.2-soa/core/src/test/java/org/jbpm/jbpm2908/JBPM2908Test.java 2010-09-24 03:33:49 UTC (rev 6669)
@@ -22,17 +22,13 @@
package org.jbpm.jbpm2908;
import org.jbpm.JbpmConfiguration;
-import org.jbpm.JbpmContext;
import org.jbpm.db.AbstractDbTestCase;
import org.jbpm.graph.def.ProcessDefinition;
import org.jbpm.graph.exe.ProcessInstance;
-import org.jbpm.persistence.JbpmPersistenceException;
/**
- * Change {@link JbpmConfiguration} and start a process instance in an action handler. This test
- * is only for detecting {@link StackOverflowError}. This nested {@link JbpmContext} usage may
- * not be properly asserted except in an integration test using JTA, so this test ignores many
- * {@link JbpmPersistenceException}s.
+ * Load an alternate {@link JbpmConfiguration} and start a process instance from within an
+ * action handler. This test chases a {@link StackOverflowError} or an infinite loop.
*
* @see <a href="https://jira.jboss.org/jira/browse/JBPM-2908">JBPM-2908</a>
* @author Toshiya Kobayashi
Modified: jbpm3/branches/jbpm-3.2-soa/core/src/test/resources/org/jbpm/jbpm2094/gpd.xml
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/core/src/test/resources/org/jbpm/jbpm2094/gpd.xml 2010-09-23 04:57:13 UTC (rev 6668)
+++ jbpm3/branches/jbpm-3.2-soa/core/src/test/resources/org/jbpm/jbpm2094/gpd.xml 2010-09-24 03:33:49 UTC (rev 6669)
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
-<root-container name="bpm_orchestration2" width="494" height="548">
+<root-container name="jbpm2094" width="487" height="552">
<node name="Start" x="181" y="26" width="132" height="36">
<edge>
<label x="5" y="-10"/>
@@ -63,4 +63,11 @@
<label x="5" y="-10"/>
</edge>
</node>
+ <deployment serverName="" serverPort="" serverDeployer="">
+ <classesAndResources/>
+ <filesAndFolders>
+ <element value="/jbpm-jpdl/src/test/resources/org/jbpm/jbpm2094/gpd.xml"/>
+ <element value="/jbpm-jpdl/src/test/resources/org/jbpm/jbpm2094/processdefinition.xml"/>
+ </filesAndFolders>
+ </deployment>
</root-container>
Modified: jbpm3/branches/jbpm-3.2-soa/core/src/test/resources/org/jbpm/jbpm2094/processdefinition.xml
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/core/src/test/resources/org/jbpm/jbpm2094/processdefinition.xml 2010-09-23 04:57:13 UTC (rev 6668)
+++ jbpm3/branches/jbpm-3.2-soa/core/src/test/resources/org/jbpm/jbpm2094/processdefinition.xml 2010-09-24 03:33:49 UTC (rev 6669)
@@ -6,7 +6,7 @@
<transition to="Receive Order"/>
</start-state>
- <node async="true" name="Receive Order">
+ <node name="Receive Order" async="true">
<action class="org.jbpm.mock.EsbActionHandler">
<esbCategoryName>BPM_Orchestration2_Service1</esbCategoryName>
<esbServiceName>Service1</esbServiceName>
@@ -40,7 +40,7 @@
<transition name="Atlanta" to="Atlanta WHSE"/>
</fork>
- <node async="true" name="Los Angeles WHSE">
+ <node name="Los Angeles WHSE" async="true" >
<action class="org.jbpm.mock.EsbActionHandler">
<esbCategoryName>BPM_Orchestration2_Service5</esbCategoryName>
<esbServiceName>Service5</esbServiceName>
@@ -54,7 +54,7 @@
<transition to="join1"/>
</node>
- <node async="true" name="Dallas WHSE">
+ <node name="Dallas WHSE" async="true">
<action class="org.jbpm.mock.EsbActionHandler">
<esbCategoryName>BPM_Orchestration2_Service6</esbCategoryName>
<esbServiceName>Service6</esbServiceName>
@@ -68,7 +68,7 @@
<transition to="join1"/>
</node>
- <node async="true" name="Atlanta WHSE">
+ <node name="Atlanta WHSE" async="true">
<action class="org.jbpm.mock.EsbActionHandler">
<esbCategoryName>BPM_Orchestration2_Service7</esbCategoryName>
<esbServiceName>Service7</esbServiceName>
@@ -82,7 +82,7 @@
<transition to="join1"/>
</node>
- <join async="true" name="join1">
+ <join name="join1" async="exclusive">
<transition to="Shipment Notice"/>
</join>
@@ -105,7 +105,7 @@
<end-state name="End"/>
- <node async="true" name="Inventory Check">
+ <node name="Inventory Check" async="true">
<action class="org.jbpm.mock.EsbActionHandler">
<esbCategoryName>BPM_Orchestration2_Service4</esbCategoryName>
<esbServiceName>Service4</esbServiceName>
Modified: jbpm3/branches/jbpm-3.2-soa/core/src/test/resources/org/jbpm/jbpm2787/gpd.xml
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/core/src/test/resources/org/jbpm/jbpm2787/gpd.xml 2010-09-23 04:57:13 UTC (rev 6668)
+++ jbpm3/branches/jbpm-3.2-soa/core/src/test/resources/org/jbpm/jbpm2787/gpd.xml 2010-09-24 03:33:49 UTC (rev 6669)
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
-<root-container name="prequalification" width="883" height="1236">
+<root-container name="jbpm2787" width="845" height="1236">
<node name="StartPrequalification" x="379" y="46" width="165" height="36">
<edge>
<label x="5" y="-10"/>
@@ -16,13 +16,13 @@
</node>
<node name="fork2" x="224" y="524" width="136" height="24">
<edge>
- <label x="-51" y="-9"/>
+ <label x="-110" y="-7"/>
</edge>
<edge>
- <label x="5" y="-10"/>
+ <label x="4" y="8"/>
</edge>
<edge>
- <label x="5" y="-10"/>
+ <label x="42" y="-6"/>
</edge>
</node>
<node name="join1" x="211" y="712" width="161" height="24">
@@ -114,4 +114,13 @@
</edge>
</node>
<node name="EndPrequalification" x="516" y="1199" width="181" height="36"/>
+ <deployment serverName="" serverPort="" serverDeployer="">
+ <classesAndResources>
+ <element value="/jbpm-jpdl/src/test/java/org/jbpm/mock/EsbActionHandler.java"/>
+ </classesAndResources>
+ <filesAndFolders>
+ <element value="/jbpm-jpdl/src/test/resources/org/jbpm/jbpm2787/gpd.xml"/>
+ <element value="/jbpm-jpdl/src/test/resources/org/jbpm/jbpm2787/processdefinition.xml"/>
+ </filesAndFolders>
+ </deployment>
</root-container>
Modified: jbpm3/branches/jbpm-3.2-soa/core/src/test/resources/org/jbpm/jbpm2787/processdefinition.xml
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/core/src/test/resources/org/jbpm/jbpm2787/processdefinition.xml 2010-09-23 04:57:13 UTC (rev 6668)
+++ jbpm3/branches/jbpm-3.2-soa/core/src/test/resources/org/jbpm/jbpm2787/processdefinition.xml 2010-09-24 03:33:49 UTC (rev 6669)
@@ -17,11 +17,11 @@
<transition to="LocateEBSACentral" name="to FindEBSA" />
</fork>
- <join name="join1" async="true">
+ <join name="join1" async="exclusive">
<transition to="ChooseCentralType" />
</join>
- <join name="join2" async="true">
+ <join name="join2" async="exclusive">
<transition to="ChooseLocalLoopType" />
</join>
@@ -45,12 +45,12 @@
<node name="LookupCentralOffice" async="true">
<action class="org.jbpm.mock.EsbActionHandler">
<esbServiceName>LookupCentralOffice</esbServiceName>
- <esbCategoryName>dk.telenor.esb.harlequin.tdc.columbine</esbCategoryName>
+ <esbCategoryName>org.jbpm.jbpm2787</esbCategoryName>
<bpmToEsbVars>
- <mapping bpm="contactInfoXML" esb="body.'dk.telenor.esb.harlequin.tdc.columbine.InputPayload'" />
+ <mapping bpm="contactInfoXML" esb="body.'org.jbpm.jbpm2787.InputPayload'" />
</bpmToEsbVars>
<esbToBpmVars>
- <mapping bpm="lookupCentralXML" esb="body.'dk.telenor.esb.harlequin.tdc.columbine.OutputPayload'" />
+ <mapping bpm="lookupCentralXML" esb="body.'org.jbpm.jbpm2787.OutputPayload'" />
</esbToBpmVars>
</action>
<transition to="FindCentralRequestMapper" />
@@ -59,12 +59,12 @@
<node name="LookupConnection" async="true">
<action class="org.jbpm.mock.EsbActionHandler">
<esbServiceName>LookupConnection</esbServiceName>
- <esbCategoryName>dk.telenor.esb.harlequin.tdc.columbine</esbCategoryName>
+ <esbCategoryName>org.jbpm.jbpm2787</esbCategoryName>
<bpmToEsbVars>
- <mapping bpm="contactInfoXML" esb="body.'dk.telenor.esb.harlequin.tdc.columbine.InputPayload'" />
+ <mapping bpm="contactInfoXML" esb="body.'org.jbpm.jbpm2787.InputPayload'" />
</bpmToEsbVars>
<esbToBpmVars>
- <mapping bpm="connectionXML" esb="body.'dk.telenor.esb.harlequin.tdc.columbine.OutputPayload'" />
+ <mapping bpm="connectionXML" esb="body.'org.jbpm.jbpm2787.OutputPayload'" />
</esbToBpmVars>
</action>
<transition to="join2" />
@@ -73,12 +73,12 @@
<node name="LocateBSACentral" async="true">
<action class="org.jbpm.mock.EsbActionHandler">
<esbServiceName>LocateCentralOffice</esbServiceName>
- <esbCategoryName>dk.telenor.esb.ods.geodata</esbCategoryName>
+ <esbCategoryName>org.jbpm.jbpm2787</esbCategoryName>
<bpmToEsbVars>
- <mapping bpm="bsaCentralXML" esb="body.'dk.telenor.esb.ods.geodata.InputPayload'" />
+ <mapping bpm="bsaCentralXML" esb="body.'org.jbpm.jbpm2787.InputPayload'" />
</bpmToEsbVars>
<esbToBpmVars>
- <mapping bpm="bsaCentralXML" esb="body.'dk.telenor.esb.ods.geodata.OutputPayload'" />
+ <mapping bpm="bsaCentralXML" esb="body.'org.jbpm.jbpm2787.OutputPayload'" />
</esbToBpmVars>
</action>
<transition to="join1" />
@@ -92,12 +92,12 @@
<node name="LocateColocCentral" async="true">
<action class="org.jbpm.mock.EsbActionHandler">
<esbServiceName>LocateCentralOffice</esbServiceName>
- <esbCategoryName>dk.telenor.esb.ods.geodata</esbCategoryName>
+ <esbCategoryName>org.jbpm.jbpm2787</esbCategoryName>
<bpmToEsbVars>
- <mapping bpm="colocCentralXML" esb="body.'dk.telenor.esb.ods.geodata.InputPayload'" />
+ <mapping bpm="colocCentralXML" esb="body.'org.jbpm.jbpm2787.InputPayload'" />
</bpmToEsbVars>
<esbToBpmVars>
- <mapping bpm="colocCentralXML" esb="body.'dk.telenor.esb.ods.geodata.OutputPayload'" />
+ <mapping bpm="colocCentralXML" esb="body.'org.jbpm.jbpm2787.OutputPayload'" />
</esbToBpmVars>
</action>
<transition to="join1" />
@@ -107,13 +107,13 @@
<event type="node-leave">
<action name="StoreResult" class="org.jbpm.mock.EsbActionHandler">
<esbServiceName>StoreResourceOrder</esbServiceName>
- <esbCategoryName>dk.telenor.esb.harlequin.resourceorder</esbCategoryName>
+ <esbCategoryName>org.jbpm.jbpm2787</esbCategoryName>
<bpmToEsbVars>
- <mapping bpm="prequalificationXML" esb="body.'dk.telenor.esb.harlequin.resourceorder.InputPayload'" />
+ <mapping bpm="prequalificationXML" esb="body.'org.jbpm.jbpm2787.InputPayload'" />
<mapping bpm="storeStatus"
- esb="body.'dk.telenor.esb.harlequin.resourceorder.InternalPayloadStatus'" />
+ esb="body.'org.jbpm.jbpm2787.InternalPayloadStatus'" />
<mapping bpm="transactionId"
- esb="body.'dk.telenor.esb.harlequin.resourceorder.InternalPayloadTransactionId'" />
+ esb="body.'org.jbpm.jbpm2787.InternalPayloadTransactionId'" />
</bpmToEsbVars>
</action>
</event>
@@ -128,12 +128,12 @@
<node name="LocateEBSACentral" async="true">
<action class="org.jbpm.mock.EsbActionHandler">
<esbServiceName>LocateCentralOffice</esbServiceName>
- <esbCategoryName>dk.telenor.esb.ods.geodata</esbCategoryName>
+ <esbCategoryName>org.jbpm.jbpm2787</esbCategoryName>
<bpmToEsbVars>
- <mapping bpm="ebsaCentralXML" esb="body.'dk.telenor.esb.ods.geodata.InputPayload'" />
+ <mapping bpm="ebsaCentralXML" esb="body.'org.jbpm.jbpm2787.InputPayload'" />
</bpmToEsbVars>
<esbToBpmVars>
- <mapping bpm="ebsaCentralXML" esb="body.'dk.telenor.esb.ods.geodata.OutputPayload'" />
+ <mapping bpm="ebsaCentralXML" esb="body.'org.jbpm.jbpm2787.OutputPayload'" />
</esbToBpmVars>
</action>
<transition to="join1" />
Modified: jbpm3/branches/jbpm-3.2-soa/pom.xml
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/pom.xml 2010-09-23 04:57:13 UTC (rev 6668)
+++ jbpm3/branches/jbpm-3.2-soa/pom.xml 2010-09-24 03:33:49 UTC (rev 6669)
@@ -816,9 +816,6 @@
<plugins>
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
- <configuration>
- <quiet>true</quiet>
- </configuration>
<executions>
<execution>
<id>attach-javadocs</id>
More information about the jbpm-commits
mailing list