[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