[jbpm-commits] JBoss JBPM SVN: r2424 - in jbpm3/trunk: modules/examples and 3 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Mon Sep 29 05:28:02 EDT 2008


Author: thomas.diesler at jboss.com
Date: 2008-09-29 05:28:02 -0400 (Mon, 29 Sep 2008)
New Revision: 2424

Modified:
   jbpm3/trunk/modules/examples/.classpath
   jbpm3/trunk/modules/examples/pom.xml
   jbpm3/trunk/modules/examples/src/test/java/org/jbpm/examples/assignment/RulesAssignmentHandler.java
   jbpm3/trunk/modules/examples/src/test/java/org/jbpm/examples/assignment/RulesAssignmentTest.java
   jbpm3/trunk/modules/examples/src/test/java/org/jbpm/examples/rulesAction/RulesActionHandler.java
   jbpm3/trunk/modules/examples/src/test/resources/assignment/Assignment.drl
   jbpm3/trunk/modules/examples/src/test/resources/assignment/processdefinition.xml
   jbpm3/trunk/pom.xml
Log:
[JBPM-1743] Fix examples/assignment

Modified: jbpm3/trunk/modules/examples/.classpath
===================================================================
--- jbpm3/trunk/modules/examples/.classpath	2008-09-29 08:14:22 UTC (rev 2423)
+++ jbpm3/trunk/modules/examples/.classpath	2008-09-29 09:28:02 UTC (rev 2424)
@@ -4,5 +4,5 @@
 	<classpathentry excluding="**" kind="src" path="src/test/resources"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
 	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
-	<classpathentry kind="output" path="target/classes"/>
+	<classpathentry kind="output" path="target/test-classes"/>
 </classpath>

Modified: jbpm3/trunk/modules/examples/pom.xml
===================================================================
--- jbpm3/trunk/modules/examples/pom.xml	2008-09-29 08:14:22 UTC (rev 2423)
+++ jbpm3/trunk/modules/examples/pom.xml	2008-09-29 09:28:02 UTC (rev 2424)
@@ -36,15 +36,21 @@
       <artifactId>jbpm-identity</artifactId>
       <version>${version}</version>
     </dependency>
+    <dependency>
+      <groupId>org.jbpm.jbpm3</groupId>
+      <artifactId>jbpm-core</artifactId>
+      <classifier>config</classifier>
+      <version>${version}</version>
+    </dependency>
 
     <!-- Test Dependencies -->
     <dependency>
-      <groupId>drools</groupId>
+      <groupId>org.drools</groupId>
       <artifactId>drools-compiler</artifactId>
       <scope>test</scope>
     </dependency>
     <dependency>
-      <groupId>drools</groupId>
+      <groupId>org.drools</groupId>
       <artifactId>drools-core</artifactId>
       <scope>test</scope>
     </dependency>

Modified: jbpm3/trunk/modules/examples/src/test/java/org/jbpm/examples/assignment/RulesAssignmentHandler.java
===================================================================
--- jbpm3/trunk/modules/examples/src/test/java/org/jbpm/examples/assignment/RulesAssignmentHandler.java	2008-09-29 08:14:22 UTC (rev 2423)
+++ jbpm3/trunk/modules/examples/src/test/java/org/jbpm/examples/assignment/RulesAssignmentHandler.java	2008-09-29 09:28:02 UTC (rev 2424)
@@ -1,107 +1,118 @@
 package org.jbpm.examples.assignment;
 
-import java.io.IOException;
+import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.util.Iterator;
 import java.util.List;
 
-import org.drools.PackageIntegrationException;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.drools.RuleBase;
 import org.drools.RuleBaseFactory;
-import org.drools.RuleIntegrationException;
 import org.drools.WorkingMemory;
-import org.drools.compiler.DroolsParserException;
 import org.drools.compiler.PackageBuilder;
-import org.drools.rule.InvalidPatternException;
 import org.hibernate.Query;
 import org.hibernate.Session;
+import org.jbpm.JbpmConfiguration;
 import org.jbpm.context.exe.ContextInstance;
 import org.jbpm.graph.exe.ExecutionContext;
 import org.jbpm.identity.Entity;
 import org.jbpm.taskmgmt.def.AssignmentHandler;
 import org.jbpm.taskmgmt.exe.Assignable;
 
-public class RulesAssignmentHandler implements AssignmentHandler {
-
+public class RulesAssignmentHandler implements AssignmentHandler
+{
   private static final long serialVersionUID = 1L;
 
+  private static Log log = LogFactory.getLog(RulesAssignmentHandler.class);
+  
   public String group;
-  public static String ruleFile;
+  public String ruleFile;
   public List objectNames;
 
-  public void assign(Assignable assignable, ExecutionContext executionContext) throws Exception {
+  public void assign(Assignable assignable, ExecutionContext executionContext) throws Exception
+  {
     // load up the rulebase
     RuleBase ruleBase = readRule(ruleFile);
-    WorkingMemory workingMemory = ruleBase.newWorkingMemory();
+    WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
     // load the data
     Session s = executionContext.getJbpmContext().getSession();
-    System.out.println("************** Session is :" + s.toString());
+    log.debug("************** Session is :" + s.toString());
 
     assertObjects(getUsers(s), workingMemory);
     assertObjects(getGroupByName(s, group), workingMemory);
     assertObjects(getMemberships(s), workingMemory);
 
     Object object = null;
-    System.out.println(objectNames.toString());
+    log.debug(objectNames.toString());
     Iterator iter = objectNames.iterator();
     String objectName = "";
     ContextInstance ci = executionContext.getContextInstance();
-    while (iter.hasNext()) {
-      objectName = (String) iter.next();
+    while (iter.hasNext())
+    {
+      objectName = (String)iter.next();
       object = ci.getVariable(objectName);
 
-      System.out.println("object name is: " + objectName);
+      log.debug("object name is: " + objectName);
       // assert the object into the rules engine
-      workingMemory.assertObject(object);
+      workingMemory.insert(object);
     }
 
     // assert the assignable so that it may be used to set results
-    System.out.println("assignable is: " + assignable);
+    log.debug("assignable is: " + assignable);
 
-    workingMemory.assertObject(assignable);
-    System.out.println("fire all rules: ");
+    workingMemory.insert(assignable);
+    log.debug("fire all rules: ");
     workingMemory.fireAllRules();
   }
 
   /**
    * Please note that this is the "low level" rule assembly API.
    */
-  private static RuleBase readRule(String ruleFileName) throws IOException, DroolsParserException, RuleIntegrationException, PackageIntegrationException,
-      InvalidPatternException, Exception {
+  private static RuleBase readRule(String ruleFileName) throws Exception
+  {
+    InputStream resStream = RulesAssignmentHandler.class.getResourceAsStream(ruleFileName);
+    if (resStream == null)
+      throw new IllegalStateException("Cannot obtain rules from: " + ruleFileName);
 
     PackageBuilder builder = new PackageBuilder();
-    builder.addPackageFromDrl(new InputStreamReader(RulesAssignmentHandler.class.getResourceAsStream(ruleFileName)));
+    builder.addPackageFromDrl(new InputStreamReader(resStream));
 
     RuleBase ruleBase = RuleBaseFactory.newRuleBase();
     ruleBase.addPackage(builder.getPackage());
     return ruleBase;
   }
 
-  private List getUsers(Session session) {
+  private List getUsers(Session session)
+  {
     Query query = session.createQuery("select u " + "from org.jbpm.identity.User as u");
     return query.list();
   }
 
-  private List getGroupByName(Session session, String groupName) {
+  private List getGroupByName(Session session, String groupName)
+  {
     Query query = session.createQuery("select g " + "from org.jbpm.identity.Group as g " + "where g.name = :groupName");
-    System.out.println("groupName is: " + groupName);
+    log.debug("groupName is: " + groupName);
     query.setString("groupName", groupName);
     return query.list();
   }
 
-  private List getMemberships(Session session) {
+  private List getMemberships(Session session)
+  {
     Query query = session.createQuery("select m " + "from org.jbpm.identity.Membership as m");
     return query.list();
   }
 
-  private void assertObjects(List objectList, WorkingMemory workingMemory) {
+  private void assertObjects(List objectList, WorkingMemory workingMemory)
+  {
     Iterator iter = objectList.iterator();
     Entity entity = null;
-    while (iter.hasNext()) {
-      entity = (Entity) iter.next();
-      System.out.println("object is: " + entity.getName());
-      workingMemory.assertObject(entity);
+    while (iter.hasNext())
+    {
+      entity = (Entity)iter.next();
+      log.debug("object is: " + entity.getName());
+      workingMemory.insert(entity);
     }
 
   }

Modified: jbpm3/trunk/modules/examples/src/test/java/org/jbpm/examples/assignment/RulesAssignmentTest.java
===================================================================
--- jbpm3/trunk/modules/examples/src/test/java/org/jbpm/examples/assignment/RulesAssignmentTest.java	2008-09-29 08:14:22 UTC (rev 2423)
+++ jbpm3/trunk/modules/examples/src/test/java/org/jbpm/examples/assignment/RulesAssignmentTest.java	2008-09-29 09:28:02 UTC (rev 2424)
@@ -43,16 +43,17 @@
 /**
  * This example shows how to invoke JBoss Rules from an AssignmentHandler.
  */
-public class RulesAssignmentTest extends TestCase {
-
+public class RulesAssignmentTest extends TestCase
+{
   JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance();
 
-  DbPersistenceServiceFactory dbPersistenceServiceFactory = (DbPersistenceServiceFactory) jbpmConfiguration.getServiceFactory(Services.SERVICENAME_PERSISTENCE);
+  DbPersistenceServiceFactory dbPersistenceServiceFactory = (DbPersistenceServiceFactory)jbpmConfiguration.getServiceFactory(Services.SERVICENAME_PERSISTENCE);
 
   JbpmContext jbpmContext;
   long processInstanceId;
 
-  public void setUp() {
+  public void setUp()
+  {
     dbPersistenceServiceFactory.createSchema();
 
     loadIdentities();
@@ -60,41 +61,53 @@
     jbpmContext = jbpmConfiguration.createJbpmContext();
   }
 
-  protected void tearDown() {
+  protected void tearDown()
+  {
     jbpmContext.close();
     dbPersistenceServiceFactory.dropSchema();
     jbpmContext = null;
   }
 
-  public void deployProcess() {
+  public void deployProcess()
+  {
     JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
-    try {
-      ProcessDefinition processDefinition = ProcessDefinition.parseXmlResource("RulesAssignment/processdefinition.xml");
+    try
+    {
+      ProcessDefinition processDefinition = ProcessDefinition.parseXmlResource("assignment/processdefinition.xml");
       jbpmContext.deployProcessDefinition(processDefinition);
-    } finally {
+    }
+    finally
+    {
       jbpmContext.close();
     }
   }
 
-  public void loadIdentities() {
+  public void loadIdentities()
+  {
     JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
-    try {
-      Entity[] entities = IdentityXmlParser.parseEntitiesResource("identity.db.xml");
+    try
+    {
+      Entity[] entities = IdentityXmlParser.parseEntitiesResource("assignment/identity.db.xml");
       IdentitySession identitySession = new IdentitySession(jbpmContext.getSession());
-      for (int i = 0; i < entities.length; i++) {
+      for (int i = 0; i < entities.length; i++)
+      {
         identitySession.saveEntity(entities[i]);
       }
-    } finally {
+    }
+    finally
+    {
       jbpmContext.close();
     }
   }
 
-  public void newTransaction() {
+  public void newTransaction()
+  {
     jbpmContext.close();
     jbpmContext = jbpmConfiguration.createJbpmContext();
   }
 
-  public void testRulesAssignment() {
+  public void testRulesAssignment()
+  {
     // start process
     newTransaction();
     processInstanceId = createNewProcessInstance();
@@ -121,7 +134,8 @@
 
   }
 
-  public long createNewProcessInstance() {
+  public long createNewProcessInstance()
+  {
     String processDefinitionName = "RulesAssignment";
     ProcessInstance processInstance = jbpmContext.newProcessInstanceForUpdate(processDefinitionName);
     long id = processInstance.getId();
@@ -134,14 +148,16 @@
     return id;
   }
 
-  public long acquireTask(String actorId) {
+  public long acquireTask(String actorId)
+  {
     List<TaskInstance> tasklist = getTaskList(actorId);
     Iterator taskIterator = tasklist.iterator();
 
     TaskInstance taskInstance = null;
     long taskInstanceId = 0;
-    while (taskIterator.hasNext()) {
-      taskInstance = (TaskInstance) taskIterator.next();
+    while (taskIterator.hasNext())
+    {
+      taskInstance = (TaskInstance)taskIterator.next();
 
       taskInstanceId = taskInstance.getId();
       taskInstance.start();
@@ -149,19 +165,22 @@
     return taskInstanceId;
   }
 
-  public void completeTask(long taskInstanceId) {
+  public void completeTask(long taskInstanceId)
+  {
     TaskInstance taskInstance = jbpmContext.getTaskInstance(taskInstanceId);
     taskInstance.end();
   }
 
-  public List<TaskInstance> getTaskList(String actorId) {
+  public List<TaskInstance> getTaskList(String actorId)
+  {
     newTransaction();
     List<TaskInstance> taskList = jbpmContext.getTaskList(actorId);
     return taskList;
   }
 
-  public ProcessInstance getProcessInstance(long processInstanceId) {
-    ProcessInstance processInstance = (ProcessInstance) jbpmContext.loadProcessInstanceForUpdate(processInstanceId);
+  public ProcessInstance getProcessInstance(long processInstanceId)
+  {
+    ProcessInstance processInstance = (ProcessInstance)jbpmContext.loadProcessInstanceForUpdate(processInstanceId);
     return processInstance;
   }
 

Modified: jbpm3/trunk/modules/examples/src/test/java/org/jbpm/examples/rulesAction/RulesActionHandler.java
===================================================================
--- jbpm3/trunk/modules/examples/src/test/java/org/jbpm/examples/rulesAction/RulesActionHandler.java	2008-09-29 08:14:22 UTC (rev 2423)
+++ jbpm3/trunk/modules/examples/src/test/java/org/jbpm/examples/rulesAction/RulesActionHandler.java	2008-09-29 09:28:02 UTC (rev 2424)
@@ -17,7 +17,8 @@
 import org.jbpm.graph.def.ActionHandler;
 import org.jbpm.graph.exe.ExecutionContext;
 
-public class RulesActionHandler implements ActionHandler {
+public class RulesActionHandler implements ActionHandler
+{
 
   private static final long serialVersionUID = 1L;
 
@@ -28,34 +29,32 @@
   public List queryStrings;
 
   /**
-   * The RulesActionHandler gets variables from the ContextInstance, and asserts
-   * them into the Rules Engine and invokes the rules.
+   * The RulesActionHandler gets variables from the ContextInstance, and asserts them into the Rules Engine and invokes the rules.
    */
-  public void execute(ExecutionContext executionContext) throws Exception {
+  public void execute(ExecutionContext executionContext) throws Exception
+  {
 
     // load up the rulebase
     RuleBase ruleBase = readRule(ruleFile);
-    WorkingMemory workingMemory = ruleBase.newWorkingMemory();
+    WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
     // final WorkingMemoryFileLogger logger = new WorkingMemoryFileLogger(
     // workingMemory );
     // logger.setFileName( "jpdl/examples/rulesActionHandler/log/rulesAction" );
 
-    // load the data
-    System.out.println(objectNames.toString());
-
     // get an iterator of fully qualified object names
     Iterator iter = objectNames.iterator();
     String objectName = "";
     ContextInstance ci = executionContext.getContextInstance();
 
-    while (iter.hasNext()) {
-      objectName = (String) iter.next();
+    while (iter.hasNext())
+    {
+      objectName = (String)iter.next();
 
       // assume the objects are stored as process variables
       // workingMemory.assertObject(ci.getVariable(objectName));
       Object object = ci.getVariable(objectName);
-      workingMemory.assertObject(object);
+      workingMemory.insert(object);
 
       // alternately the objects could be returned with a query
       // to Hibernate or an EJB3 entity manager
@@ -68,7 +67,7 @@
 
     workingMemory.fireAllRules();
 
-    workingMemory.dispose();
+    workingMemory.clearAgenda();
 
     // logger.writeToDisk();
 
@@ -81,7 +80,8 @@
    * Please note that this is the "low level" rule assembly API.
    */
   private static RuleBase readRule(String ruleFileName) throws IOException, DroolsParserException, RuleIntegrationException, PackageIntegrationException,
-      InvalidPatternException, Exception {
+      InvalidPatternException, Exception
+  {
 
     PackageBuilder builder = new PackageBuilder();
     builder.addPackageFromDrl(new InputStreamReader(RulesActionHandler.class.getResourceAsStream(ruleFileName)));

Modified: jbpm3/trunk/modules/examples/src/test/resources/assignment/Assignment.drl
===================================================================
--- jbpm3/trunk/modules/examples/src/test/resources/assignment/Assignment.drl	2008-09-29 08:14:22 UTC (rev 2423)
+++ jbpm3/trunk/modules/examples/src/test/resources/assignment/Assignment.drl	2008-09-29 09:28:02 UTC (rev 2424)
@@ -4,8 +4,8 @@
 import org.jbpm.identity.Group;
 import org.jbpm.identity.Membership;
 import org.jbpm.taskmgmt.exe.Assignable;
-import org.jbpm.assignment.Order;
-import org.jbpm.assignment.Role;
+import org.jbpm.examples.assignment.Order;
+import org.jbpm.examples.assignment.Role;
 
 
 rule "Determine Senior Role"
@@ -14,8 +14,6 @@
 		Order( totalAmount >= 500 )
 	then
 		insert(new Role("senior"));
-		System.out.println("assigned role as senior");
-		
 end
 
 
@@ -25,8 +23,6 @@
 		Order( totalAmount < 500)
 	then
 		insert(new Role("junior"));
-		System.out.println("assigned role as junior");
-		
 end
 
 
@@ -46,7 +42,4 @@
 
 	then
 		$a.setActorId($user.getName());
-		System.out.println("assigned User " + $user.getName() );
-		System.out.println("role is: " + $roleName);
-		System.out.println("group is: " + $group.getName());
 end
\ No newline at end of file

Modified: jbpm3/trunk/modules/examples/src/test/resources/assignment/processdefinition.xml
===================================================================
--- jbpm3/trunk/modules/examples/src/test/resources/assignment/processdefinition.xml	2008-09-29 08:14:22 UTC (rev 2423)
+++ jbpm3/trunk/modules/examples/src/test/resources/assignment/processdefinition.xml	2008-09-29 09:28:02 UTC (rev 2424)
@@ -8,12 +8,12 @@
    <end-state name="end1"></end-state>
    <task-node name="Approve Order">
       <task name="Approve Order">
-         <assignment class="org.jbpm.assignment.RulesAssignmentHandler" >
+         <assignment class="org.jbpm.examples.assignment.RulesAssignmentHandler" >
            		<group>reviewers</group>
    				<objectNames>
 					<element>order</element>
 				</objectNames>
-	       		<ruleFile>/Assignment.drl</ruleFile>
+	       		<ruleFile>/assignment/Assignment.drl</ruleFile>
 			</assignment>
       </task>
       <transition name="" to="end1"></transition>

Modified: jbpm3/trunk/pom.xml
===================================================================
--- jbpm3/trunk/pom.xml	2008-09-29 08:14:22 UTC (rev 2423)
+++ jbpm3/trunk/pom.xml	2008-09-29 09:28:02 UTC (rev 2424)
@@ -49,7 +49,7 @@
     <commons.logging.version>1.1.1</commons.logging.version>
     <desmoj.version>2.1.1</desmoj.version>
     <dom4j.version>1.6.1</dom4j.version>
-    <drools.version>3.0.4</drools.version>
+    <drools.version>4.0.7</drools.version>
     <dumbster.version>1.6</dumbster.version>
     <gwt.version>1.5.2</gwt.version>
     <hibernate.version>3.2.6.ga</hibernate.version>
@@ -144,18 +144,12 @@
         <version>${dom4j.version}</version>
       </dependency>
       <dependency>
-        <groupId>drools</groupId>
+        <groupId>org.drools</groupId>
         <artifactId>drools-compiler</artifactId>
         <version>${drools.version}</version>
-        <exclusions>
-          <exclusion>
-            <groupId>org.apache.jakarta.commons</groupId>
-            <artifactId>commons-jci-core</artifactId>
-          </exclusion>
-        </exclusions>
       </dependency>
       <dependency>
-        <groupId>drools</groupId>
+        <groupId>org.drools</groupId>
         <artifactId>drools-core</artifactId>
         <version>${drools.version}</version>
       </dependency>




More information about the jbpm-commits mailing list