[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