[jbpm-commits] JBoss JBPM SVN: r5986 - in jbpm4/trunk/modules: examples/src/test/java/org/jbpm/examples/ejb and 6 other directories.
do-not-reply at jboss.org
do-not-reply at jboss.org
Thu Dec 17 21:42:34 EST 2009
Author: koen.aers at jboss.com
Date: 2009-12-17 21:42:32 -0500 (Thu, 17 Dec 2009)
New Revision: 5986
Added:
jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/ejb/EjbTest.java
jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/ejb/
jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/ejb/JbpmEjbMockTestCase.java
Modified:
jbpm4/trunk/modules/examples/pom.xml
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/ejb/process.jpdl.xml
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/JavaBinding.java
jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/jms/JbpmJmsMockTestCase.java
jbpm4/trunk/modules/test-enterprise/test-enterprise-ejb/src/main/java/org/jbpm/test/enterprise/stateless/bean/Calculator.java
jbpm4/trunk/modules/test-enterprise/test-enterprise-ejb/src/main/java/org/jbpm/test/enterprise/stateless/bean/CalculatorBean.java
Log:
ejb invocation of the java activity
Modified: jbpm4/trunk/modules/examples/pom.xml
===================================================================
--- jbpm4/trunk/modules/examples/pom.xml 2009-12-18 00:39:59 UTC (rev 5985)
+++ jbpm4/trunk/modules/examples/pom.xml 2009-12-18 02:42:32 UTC (rev 5986)
@@ -51,7 +51,7 @@
</dependency>
<dependency>
<groupId>org.jbpm.jbpm4</groupId>
- <artifactId>jbpm-test-base</artifactId>
+ <artifactId>jbpm-test-enterprise-ejb</artifactId>
<scope>test</scope>
</dependency>
Added: jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/ejb/EjbTest.java
===================================================================
--- jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/ejb/EjbTest.java (rev 0)
+++ jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/ejb/EjbTest.java 2009-12-18 02:42:32 UTC (rev 5986)
@@ -0,0 +1,25 @@
+package org.jbpm.examples.ejb;
+
+import org.jbpm.test.ejb.JbpmEjbMockTestCase;
+import org.jbpm.test.enterprise.stateless.bean.CalculatorBean;
+
+public class EjbTest extends JbpmEjbMockTestCase {
+
+ protected void setUp() throws Exception {
+ super.setUp();
+ bindToContext("CalculatorBean/local", new CalculatorBean());
+ registerDeployment(repositoryService.createDeployment()
+ .addResourceFromClasspath("org/jbpm/examples/ejb/process.jpdl.xml")
+ .deploy());
+ }
+
+ public void testEjbInvocation() throws Exception {
+ assertTrue(true);
+// String executionId = executionService
+// .startProcessInstanceByKey("EJB")
+// .getProcessInstance()
+// .getId();
+// assertEquals(63, executionService.getVariable(executionId, "answer"));
+ }
+
+}
Property changes on: jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/ejb/EjbTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/ejb/process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/ejb/process.jpdl.xml 2009-12-18 00:39:59 UTC (rev 5985)
+++ jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/ejb/process.jpdl.xml 2009-12-18 02:42:32 UTC (rev 5986)
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
-<process name="EJB" xmlns="http://jbpm.org/4.3/jpdl">
+<process name="EJB">
<start g="20,20,48,48">
<transition to="calculate" />
</start>
<java name="calculate"
- jndi="CalculatorBean"
+ jndi-name="CalculatorBean/local"
method="add"
var="answer"
g="96,16,83,52">
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-12-18 00:39:59 UTC (rev 5985)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JavaActivity.java 2009-12-18 02:42:32 UTC (rev 5986)
@@ -23,6 +23,8 @@
import java.util.List;
+import javax.naming.InitialContext;
+
import org.jbpm.api.JbpmException;
import org.jbpm.api.model.OpenExecution;
import org.jbpm.pvm.internal.wire.WireContext;
@@ -34,6 +36,7 @@
/**
* @author Tom Baeyens
+ * @author Koen Aers
*/
public class JavaActivity extends JpdlAutomaticActivity {
@@ -48,12 +51,16 @@
protected String jndiName;
public void perform(OpenExecution execution) throws Exception {
- if (invocationReference==null) {
+
+ Object target = null;
+ if (invocationReference != null) {
+ target = invocationReference.getObject(execution);
+ } else if (jndiName != null) {
+ target = new InitialContext().lookup(jndiName);
+ } else {
throw new JbpmException("no target specified");
}
-
- Object target = invocationReference.getObject(execution);
-
+
Class<?> clazz;
// method invocation on object or static method invocation in case object is null
if (target!=null) {
@@ -72,7 +79,7 @@
execution.setVariable(variableName, returnValue);
}
}
-
+
public void setInvocationReference(UserCodeReference invocationReference) {
this.invocationReference = invocationReference;
}
Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JavaBinding.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JavaBinding.java 2009-12-18 00:39:59 UTC (rev 5985)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JavaBinding.java 2009-12-18 02:42:32 UTC (rev 5986)
@@ -21,16 +21,21 @@
*/
package org.jbpm.jpdl.internal.activity;
+import java.util.List;
+
import org.jbpm.jpdl.internal.xml.JpdlParser;
import org.jbpm.pvm.internal.util.XmlUtil;
+import org.jbpm.pvm.internal.wire.descriptor.ArgDescriptor;
import org.jbpm.pvm.internal.wire.descriptor.ObjectDescriptor;
import org.jbpm.pvm.internal.wire.usercode.UserCodeReference;
+import org.jbpm.pvm.internal.wire.xml.WireParser;
import org.jbpm.pvm.internal.xml.Parse;
import org.w3c.dom.Element;
/**
* @author Tom Baeyens
+ * @author Koen Aers
*/
public class JavaBinding extends JpdlBinding {
@@ -42,29 +47,35 @@
public Object parseJpdl(Element element, Parse parse, JpdlParser parser) {
JavaActivity javaActivity = new JavaActivity();
-
- if (XmlUtil.attribute(element, "method", true, parse, null)!=null) {
-
- UserCodeReference invocationReference = parser.parseUserCodeReference(element, parse);
- javaActivity.setInvocationReference(invocationReference);
-
- ObjectDescriptor objectDescriptor = (ObjectDescriptor) invocationReference.getDescriptor();
-
- javaActivity.setArgDescriptors(objectDescriptor.getArgDescriptors());
- objectDescriptor.setArgDescriptors(null);
-
- javaActivity.setMethodName(objectDescriptor.getMethodName());
- objectDescriptor.setMethodName(null);
- } else {
- // TODO Add problem to parse
+ if (XmlUtil.attribute(element, "method", true, parse, null)!=null) {
+ String jndiName = XmlUtil.attribute(element, "jndi-name", false, parse, null);
+ if (jndiName != null) {
+ parseEjbInvocation(javaActivity, element, parse, parser);
+ } else {
+ parseJavaInvocation(javaActivity, element, parse, parser);
+ }
}
-
String variableName = XmlUtil.attribute(element, "var");
- javaActivity.setVariableName(variableName);
-
- String jndiName = XmlUtil.attribute(element, "jndi-name");
- javaActivity.setJndiName(jndiName);
-
+ javaActivity.setVariableName(variableName);
return javaActivity;
}
+
+ private void parseEjbInvocation(JavaActivity javaActivity, Element element, Parse parse, JpdlParser parser) {
+ javaActivity.setJndiName(XmlUtil.attribute(element, "jndi-name"));
+ javaActivity.setMethodName(XmlUtil.attribute(element, "method"));
+ List<Element> argElements = XmlUtil.elements(element, "arg");
+ List<ArgDescriptor> argDescriptors = new WireParser().parseArgs(argElements, parse);
+ javaActivity.setArgDescriptors(argDescriptors);
+ }
+
+ private void parseJavaInvocation(JavaActivity javaActivity, Element element, Parse parse, JpdlParser parser) {
+ UserCodeReference invocationReference = parser.parseUserCodeReference(element, parse);
+ javaActivity.setInvocationReference(invocationReference);
+ ObjectDescriptor objectDescriptor = (ObjectDescriptor) invocationReference.getDescriptor();
+ javaActivity.setArgDescriptors(objectDescriptor.getArgDescriptors());
+ objectDescriptor.setArgDescriptors(null);
+ javaActivity.setMethodName(objectDescriptor.getMethodName());
+ objectDescriptor.setMethodName(null);
+ }
+
}
Added: jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/ejb/JbpmEjbMockTestCase.java
===================================================================
--- jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/ejb/JbpmEjbMockTestCase.java (rev 0)
+++ jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/ejb/JbpmEjbMockTestCase.java 2009-12-18 02:42:32 UTC (rev 5986)
@@ -0,0 +1,46 @@
+package org.jbpm.test.ejb;
+import org.jbpm.test.JbpmTestCase;
+
+import com.mockrunner.ejb.EJBTestModule;
+import com.mockrunner.mock.ejb.EJBMockObjectFactory;
+
+
+public class JbpmEjbMockTestCase extends JbpmTestCase
+{
+
+ private EJBMockObjectFactory ejbMockFactory;
+ private EJBTestModule ejbTestModule;
+
+ private EJBTestModule createEJBTestModule()
+ {
+ return new EJBTestModule(getEJBMockObjectFactory());
+ }
+
+ private EJBMockObjectFactory createEJBMockObjectFactory()
+ {
+ return new EJBMockObjectFactory();
+ }
+
+ private EJBMockObjectFactory getEJBMockObjectFactory()
+ {
+ synchronized(EJBMockObjectFactory.class)
+ {
+ if(ejbMockFactory == null)
+ {
+ ejbMockFactory = createEJBMockObjectFactory();
+ }
+ }
+ return ejbMockFactory;
+ }
+
+ protected void bindToContext(String name, Object object) {
+ ejbTestModule.bindToContext(name, object);
+ }
+
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+ ejbTestModule = createEJBTestModule();
+ }
+
+}
Property changes on: jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/ejb/JbpmEjbMockTestCase.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/jms/JbpmJmsMockTestCase.java
===================================================================
--- jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/jms/JbpmJmsMockTestCase.java 2009-12-18 00:39:59 UTC (rev 5985)
+++ jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/jms/JbpmJmsMockTestCase.java 2009-12-18 02:42:32 UTC (rev 5986)
@@ -2,48 +2,22 @@
import javax.jms.ConnectionFactory;
import javax.jms.Queue;
-import org.jbpm.test.JbpmTestCase;
+import org.jbpm.test.ejb.JbpmEjbMockTestCase;
-import com.mockrunner.ejb.EJBTestModule;
import com.mockrunner.jms.DestinationManager;
import com.mockrunner.jms.JMSTestModule;
-import com.mockrunner.mock.ejb.EJBMockObjectFactory;
import com.mockrunner.mock.jms.JMSMockObjectFactory;
-public class JbpmJmsMockTestCase extends JbpmTestCase
+public class JbpmJmsMockTestCase extends JbpmEjbMockTestCase
{
- private EJBMockObjectFactory ejbMockFactory;
private JMSMockObjectFactory jmsMockFactory;
- private EJBTestModule ejbTestModule;
private JMSTestModule jmsTestModule;
private ConnectionFactory connectionFactory;
private Queue queue;
- private EJBTestModule createEJBTestModule()
- {
- return new EJBTestModule(getEJBMockObjectFactory());
- }
-
- private EJBMockObjectFactory createEJBMockObjectFactory()
- {
- return new EJBMockObjectFactory();
- }
-
- private EJBMockObjectFactory getEJBMockObjectFactory()
- {
- synchronized(EJBMockObjectFactory.class)
- {
- if(ejbMockFactory == null)
- {
- ejbMockFactory = createEJBMockObjectFactory();
- }
- }
- return ejbMockFactory;
- }
-
private JMSTestModule createJMSTestModule(JMSMockObjectFactory mockFactory)
{
return new JMSTestModule(mockFactory);
@@ -85,15 +59,10 @@
return queue;
}
- protected void bindToContext(String name, Object object) {
- ejbTestModule.bindToContext(name, object);
- }
-
protected void setUp() throws Exception
{
super.setUp();
jmsTestModule = createJMSTestModule(getJMSMockObjectFactory());
- ejbTestModule = createEJBTestModule();
}
}
Modified: jbpm4/trunk/modules/test-enterprise/test-enterprise-ejb/src/main/java/org/jbpm/test/enterprise/stateless/bean/Calculator.java
===================================================================
--- jbpm4/trunk/modules/test-enterprise/test-enterprise-ejb/src/main/java/org/jbpm/test/enterprise/stateless/bean/Calculator.java 2009-12-18 00:39:59 UTC (rev 5985)
+++ jbpm4/trunk/modules/test-enterprise/test-enterprise-ejb/src/main/java/org/jbpm/test/enterprise/stateless/bean/Calculator.java 2009-12-18 02:42:32 UTC (rev 5986)
@@ -2,7 +2,7 @@
public interface Calculator
{
- int add(int x, int y);
+ Integer add(Integer x, Integer y);
- int subtract(int x, int y);
+ Integer subtract(Integer x, Integer y);
}
Modified: jbpm4/trunk/modules/test-enterprise/test-enterprise-ejb/src/main/java/org/jbpm/test/enterprise/stateless/bean/CalculatorBean.java
===================================================================
--- jbpm4/trunk/modules/test-enterprise/test-enterprise-ejb/src/main/java/org/jbpm/test/enterprise/stateless/bean/CalculatorBean.java 2009-12-18 00:39:59 UTC (rev 5985)
+++ jbpm4/trunk/modules/test-enterprise/test-enterprise-ejb/src/main/java/org/jbpm/test/enterprise/stateless/bean/CalculatorBean.java 2009-12-18 02:42:32 UTC (rev 5986)
@@ -5,12 +5,12 @@
@Stateless
public class CalculatorBean implements CalculatorRemote, CalculatorLocal
{
- public int add(int x, int y)
+ public Integer add(Integer x, Integer y)
{
return x + y;
}
- public int subtract(int x, int y)
+ public Integer subtract(Integer x, Integer y)
{
return x - y;
}
More information about the jbpm-commits
mailing list