[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