[jbpm-commits] JBoss JBPM SVN: r4535 - in jbpm4/trunk/modules: distro/src/main/resources/config-tool/jbpm and 6 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Fri Apr 10 08:03:38 EDT 2009


Author: tom.baeyens at jboss.com
Date: 2009-04-10 08:03:38 -0400 (Fri, 10 Apr 2009)
New Revision: 4535

Added:
   jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JpdlAutomaticActivity.java
   jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/eventlistener/HqlEventListenerTest.java
Modified:
   jbpm4/trunk/modules/api/src/main/resources/jpdl.xsd
   jbpm4/trunk/modules/distro/src/main/resources/config-tool/jbpm/jbpm.jpdl.eventlisteners.xml
   jbpm4/trunk/modules/examples/src/test/resources/jbpm.jpdl.eventlisteners.xml
   jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/EsbActivity.java
   jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/HqlActivity.java
   jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JavaActivity.java
   jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/ScriptActivity.java
   jbpm4/trunk/modules/jpdl/src/test/resources/jbpm.jpdl.eventlisteners.xml
   jbpm4/trunk/modules/pvm/src/test/resources/jbpm.jpdl.eventlisteners.xml
   jbpm4/trunk/modules/test-db/src/test/resources/jbpm.jpdl.eventlisteners.xml
Log:
JBPM-2027 adding all automatic activities as event listeners

Modified: jbpm4/trunk/modules/api/src/main/resources/jpdl.xsd
===================================================================
--- jbpm4/trunk/modules/api/src/main/resources/jpdl.xsd	2009-04-10 09:57:59 UTC (rev 4534)
+++ jbpm4/trunk/modules/api/src/main/resources/jpdl.xsd	2009-04-10 12:03:38 UTC (rev 4535)
@@ -635,10 +635,12 @@
   
   <group name="eventListenerGroup">
     <choice>
-      <element name="event-listener" type="tns:wireObjectType" >
-        <annotation><documentation>An EventListener
-        </documentation></annotation>
-      </element>
+      <element name="event-listener" type="tns:wireObjectType" />
+      <element name="hql" type="tns:qlType" />
+      <element name="sql" type="tns:qlType" />
+      <element name="java" type="tns:javaType" />
+      <element name="script" type="tns:scriptType" />
+      <element name="esb" type="tns:esbType" />
     </choice>
   </group>
 

Modified: jbpm4/trunk/modules/distro/src/main/resources/config-tool/jbpm/jbpm.jpdl.eventlisteners.xml
===================================================================
--- jbpm4/trunk/modules/distro/src/main/resources/config-tool/jbpm/jbpm.jpdl.eventlisteners.xml	2009-04-10 09:57:59 UTC (rev 4534)
+++ jbpm4/trunk/modules/distro/src/main/resources/config-tool/jbpm/jbpm.jpdl.eventlisteners.xml	2009-04-10 12:03:38 UTC (rev 4535)
@@ -1,4 +1,8 @@
 <eventlisteners>
+  <eventlistener binding="org.jbpm.jpdl.internal.activity.EventListenerBinding" />
   <eventlistener binding="org.jbpm.jpdl.internal.activity.JavaBinding" />
-  <eventlistener binding="org.jbpm.jpdl.internal.activity.EventListenerBinding" />
+  <eventlistener binding="org.jbpm.jpdl.internal.activity.EsbBinding" />
+  <eventlistener binding="org.jbpm.jpdl.internal.activity.HqlBinding" />
+  <eventlistener binding="org.jbpm.jpdl.internal.activity.SqlBinding" />
+  <eventlistener binding="org.jbpm.jpdl.internal.activity.ScriptBinding" />
 </eventlisteners>

Modified: jbpm4/trunk/modules/examples/src/test/resources/jbpm.jpdl.eventlisteners.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/jbpm.jpdl.eventlisteners.xml	2009-04-10 09:57:59 UTC (rev 4534)
+++ jbpm4/trunk/modules/examples/src/test/resources/jbpm.jpdl.eventlisteners.xml	2009-04-10 12:03:38 UTC (rev 4535)
@@ -1,4 +1,8 @@
 <eventlisteners>
+  <eventlistener binding="org.jbpm.jpdl.internal.activity.EventListenerBinding" />
   <eventlistener binding="org.jbpm.jpdl.internal.activity.JavaBinding" />
-  <eventlistener binding="org.jbpm.jpdl.internal.activity.EventListenerBinding" />
+  <eventlistener binding="org.jbpm.jpdl.internal.activity.EsbBinding" />
+  <eventlistener binding="org.jbpm.jpdl.internal.activity.HqlBinding" />
+  <eventlistener binding="org.jbpm.jpdl.internal.activity.SqlBinding" />
+  <eventlistener binding="org.jbpm.jpdl.internal.activity.ScriptBinding" />
 </eventlisteners>

Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/EsbActivity.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/EsbActivity.java	2009-04-10 09:57:59 UTC (rev 4534)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/EsbActivity.java	2009-04-10 12:03:38 UTC (rev 4535)
@@ -25,8 +25,8 @@
 import org.jboss.soa.esb.message.Body;
 import org.jboss.soa.esb.message.Message;
 import org.jboss.soa.esb.message.format.MessageFactory;
-import org.jbpm.activity.ActivityExecution;
 import org.jbpm.internal.log.Log;
+import org.jbpm.model.OpenExecution;
 import org.jbpm.pvm.internal.model.ExpressionEvaluator;
 import org.jbpm.pvm.internal.wire.Descriptor;
 import org.jbpm.pvm.internal.wire.WireContext;
@@ -36,7 +36,7 @@
 /**
  * @author Tom Baeyens
  */
-public class EsbActivity extends JpdlActivity {
+public class EsbActivity extends JpdlAutomaticActivity {
 
   private static final long serialVersionUID = 1L;
   
@@ -46,7 +46,7 @@
   protected String service = null;
   protected ListDescriptor partsListDescriptor = null;
 
-  public void execute(ActivityExecution execution) throws Exception {
+  public void perform(OpenExecution execution) throws Exception {
     Message message = MessageFactory.getInstance().getMessage();
     Body body = message.getBody();
     

Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/HqlActivity.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/HqlActivity.java	2009-04-10 09:57:59 UTC (rev 4534)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/HqlActivity.java	2009-04-10 12:03:38 UTC (rev 4535)
@@ -24,9 +24,9 @@
 import org.hibernate.Query;
 import org.hibernate.Session;
 import org.jbpm.JbpmException;
-import org.jbpm.activity.ActivityExecution;
 import org.jbpm.env.Environment;
 import org.jbpm.internal.log.Log;
+import org.jbpm.model.OpenExecution;
 import org.jbpm.pvm.internal.wire.Descriptor;
 import org.jbpm.pvm.internal.wire.WireContext;
 import org.jbpm.pvm.internal.wire.descriptor.ListDescriptor;
@@ -35,7 +35,7 @@
 /**
  * @author Tom Baeyens
  */
-public class HqlActivity extends JpdlActivity {
+public class HqlActivity extends JpdlAutomaticActivity {
   
   private static final Log log = Log.getLog(HqlActivity.class.getName());
 
@@ -46,7 +46,7 @@
   protected String resultVariableName;
   protected boolean isResultUnique;
 
-  public void execute(ActivityExecution execution) {
+  public void perform(OpenExecution execution) {
     Environment environment = Environment.getCurrent();
     if (environment==null) {
       throw new JbpmException("no environment for jpdl activity "+HqlBinding.TAG);
@@ -71,8 +71,6 @@
     }
     
     execution.setVariable(resultVariableName, result);
-    
-    execution.historyAutomatic();
   }
 
   protected Query createQuery(Session session) {

Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JavaActivity.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JavaActivity.java	2009-04-10 09:57:59 UTC (rev 4534)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JavaActivity.java	2009-04-10 12:03:38 UTC (rev 4535)
@@ -24,9 +24,6 @@
 import java.lang.reflect.Method;
 import java.util.List;
 
-import org.jbpm.activity.ActivityExecution;
-import org.jbpm.listener.EventListener;
-import org.jbpm.listener.EventListenerExecution;
 import org.jbpm.model.OpenExecution;
 import org.jbpm.pvm.internal.util.ReflectUtil;
 import org.jbpm.pvm.internal.wire.Descriptor;
@@ -40,7 +37,7 @@
 /**
  * @author Tom Baeyens
  */
-public class JavaActivity extends JpdlActivity implements EventListener {
+public class JavaActivity extends JpdlAutomaticActivity {
 
   private static final long serialVersionUID = 1L;
   
@@ -49,15 +46,6 @@
   protected String variableName;
   protected InvokeOperation invokeOperation;
   
-  public void execute(ActivityExecution execution) throws Exception {
-    perform(execution);
-    execution.historyAutomatic();
-  }
-    
-  public void notify(EventListenerExecution execution) throws Exception {
-    perform(execution);
-  }    
-    
   public void perform(OpenExecution execution) throws Exception {
     WireContext wireContext = new WireContext();
     Object target = wireContext.create(descriptor, false);

Added: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JpdlAutomaticActivity.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JpdlAutomaticActivity.java	                        (rev 0)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JpdlAutomaticActivity.java	2009-04-10 12:03:38 UTC (rev 4535)
@@ -0,0 +1,23 @@
+package org.jbpm.jpdl.internal.activity;
+
+import org.jbpm.activity.ActivityExecution;
+import org.jbpm.listener.EventListener;
+import org.jbpm.listener.EventListenerExecution;
+import org.jbpm.model.OpenExecution;
+
+
+public abstract class JpdlAutomaticActivity extends JpdlActivity implements EventListener {
+
+  private static final long serialVersionUID = 1L;
+
+  public void execute(ActivityExecution execution) throws Exception {
+    perform(execution);
+    execution.historyAutomatic();
+  }
+    
+  public void notify(EventListenerExecution execution) throws Exception {
+    perform(execution);
+  }    
+    
+  abstract void perform(OpenExecution execution) throws Exception;
+}


Property changes on: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JpdlAutomaticActivity.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/ScriptActivity.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/ScriptActivity.java	2009-04-10 09:57:59 UTC (rev 4534)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/ScriptActivity.java	2009-04-10 12:03:38 UTC (rev 4535)
@@ -21,15 +21,15 @@
  */
 package org.jbpm.jpdl.internal.activity;
 
-import org.jbpm.activity.ActivityExecution;
 import org.jbpm.env.Environment;
+import org.jbpm.model.OpenExecution;
 import org.jbpm.pvm.internal.script.ScriptManager;
 
 
 /**
  * @author Tom Baeyens
  */
-public class ScriptActivity extends JpdlActivity {
+public class ScriptActivity extends JpdlAutomaticActivity {
 
   private static final long serialVersionUID = 1L;
   
@@ -37,15 +37,13 @@
   protected String language;
   protected String variableName;
 
-  public void execute(ActivityExecution execution) {
+  public void perform(OpenExecution execution) {
     ScriptManager scriptManager = Environment.getFromCurrent(ScriptManager.class);
     Object returnValue = scriptManager.evaluateScript(script, execution, language);
     
     if (variableName!=null) {
       execution.setVariable(variableName, returnValue);
     }
-    
-    execution.historyAutomatic();
   }
 
   public void setScript(String script) {

Modified: jbpm4/trunk/modules/jpdl/src/test/resources/jbpm.jpdl.eventlisteners.xml
===================================================================
--- jbpm4/trunk/modules/jpdl/src/test/resources/jbpm.jpdl.eventlisteners.xml	2009-04-10 09:57:59 UTC (rev 4534)
+++ jbpm4/trunk/modules/jpdl/src/test/resources/jbpm.jpdl.eventlisteners.xml	2009-04-10 12:03:38 UTC (rev 4535)
@@ -1,4 +1,8 @@
 <eventlisteners>
+  <eventlistener binding="org.jbpm.jpdl.internal.activity.EventListenerBinding" />
   <eventlistener binding="org.jbpm.jpdl.internal.activity.JavaBinding" />
-  <eventlistener binding="org.jbpm.jpdl.internal.activity.EventListenerBinding" />
+  <eventlistener binding="org.jbpm.jpdl.internal.activity.EsbBinding" />
+  <eventlistener binding="org.jbpm.jpdl.internal.activity.HqlBinding" />
+  <eventlistener binding="org.jbpm.jpdl.internal.activity.SqlBinding" />
+  <eventlistener binding="org.jbpm.jpdl.internal.activity.ScriptBinding" />
 </eventlisteners>

Modified: jbpm4/trunk/modules/pvm/src/test/resources/jbpm.jpdl.eventlisteners.xml
===================================================================
--- jbpm4/trunk/modules/pvm/src/test/resources/jbpm.jpdl.eventlisteners.xml	2009-04-10 09:57:59 UTC (rev 4534)
+++ jbpm4/trunk/modules/pvm/src/test/resources/jbpm.jpdl.eventlisteners.xml	2009-04-10 12:03:38 UTC (rev 4535)
@@ -1,4 +1,8 @@
 <eventlisteners>
+  <eventlistener binding="org.jbpm.jpdl.internal.activity.EventListenerBinding" />
   <eventlistener binding="org.jbpm.jpdl.internal.activity.JavaBinding" />
-  <eventlistener binding="org.jbpm.jpdl.internal.activity.EventListenerBinding" />
+  <eventlistener binding="org.jbpm.jpdl.internal.activity.EsbBinding" />
+  <eventlistener binding="org.jbpm.jpdl.internal.activity.HqlBinding" />
+  <eventlistener binding="org.jbpm.jpdl.internal.activity.SqlBinding" />
+  <eventlistener binding="org.jbpm.jpdl.internal.activity.ScriptBinding" />
 </eventlisteners>

Added: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/eventlistener/HqlEventListenerTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/eventlistener/HqlEventListenerTest.java	                        (rev 0)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/eventlistener/HqlEventListenerTest.java	2009-04-10 12:03:38 UTC (rev 4535)
@@ -0,0 +1,62 @@
+package org.jbpm.test.eventlistener;
+
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Set;
+
+import org.jbpm.Execution;
+import org.jbpm.task.Task;
+import org.jbpm.test.JbpmTestCase;
+
+
+public class HqlEventListenerTest extends JbpmTestCase {
+
+  public void testHql() {
+    deployJpdlXmlString(
+      "<process name='HqlEventListener' xmlns='http://jbpm.org/4/jpdl'>" +
+      "  <start >" +
+      "    <transition to='wait' />" +
+      "  </start>" +
+      "  <state name='wait'>" +
+      "    <on event='start'>" +
+      "      <hql var='tasknames with i'>" +
+      "        <query>" +
+      "          select task.name" +
+      "          from org.jbpm.pvm.internal.task.TaskImpl as task" +
+      "          where task.name like :taskName" +
+      "        </query>" +
+      "        <parameters>" +
+      "          <string name='taskName' value='%i%' />" +
+      "        </parameters>" +
+      "      </hql>" +
+      "    </on>" +
+      "  </state>" +
+      "</process>"
+    );
+    
+    // add task laundry
+    Task task = taskService.newTask();
+    task.setName("laundry");
+    saveAndRegisterTask(task);
+
+    // add task dishes
+    task = taskService.newTask();
+    task.setName("dishes");
+    saveAndRegisterTask(task);
+
+    // add task iron
+    task = taskService.newTask();
+    task.setName("iron");
+    saveAndRegisterTask(task);
+
+    Execution execution = executionService.startProcessInstanceByKey("HqlEventListener");
+    String executionId = execution.getId();
+
+    Set<String> expectedTaskNames = new HashSet<String>();
+    expectedTaskNames.add("dishes");
+    expectedTaskNames.add("iron");
+    Collection<String> taskNames = (Collection<String>) executionService.getVariable(executionId, "tasknames with i");
+    taskNames = new HashSet<String>(taskNames);
+    assertEquals(expectedTaskNames, taskNames);
+  }
+}


Property changes on: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/eventlistener/HqlEventListenerTest.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Modified: jbpm4/trunk/modules/test-db/src/test/resources/jbpm.jpdl.eventlisteners.xml
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/resources/jbpm.jpdl.eventlisteners.xml	2009-04-10 09:57:59 UTC (rev 4534)
+++ jbpm4/trunk/modules/test-db/src/test/resources/jbpm.jpdl.eventlisteners.xml	2009-04-10 12:03:38 UTC (rev 4535)
@@ -1,4 +1,8 @@
 <eventlisteners>
+  <eventlistener binding="org.jbpm.jpdl.internal.activity.EventListenerBinding" />
   <eventlistener binding="org.jbpm.jpdl.internal.activity.JavaBinding" />
-  <eventlistener binding="org.jbpm.jpdl.internal.activity.EventListenerBinding" />
+  <eventlistener binding="org.jbpm.jpdl.internal.activity.EsbBinding" />
+  <eventlistener binding="org.jbpm.jpdl.internal.activity.HqlBinding" />
+  <eventlistener binding="org.jbpm.jpdl.internal.activity.SqlBinding" />
+  <eventlistener binding="org.jbpm.jpdl.internal.activity.ScriptBinding" />
 </eventlisteners>




More information about the jbpm-commits mailing list