[jbpm-commits] JBoss JBPM SVN: r5449 - in jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/java/org/jbpm/examples: rulesaction and 1 other directory.

do-not-reply at jboss.org do-not-reply at jboss.org
Sat Aug 8 04:47:32 EDT 2009


Author: alex.guizar at jboss.com
Date: 2009-08-08 04:47:32 -0400 (Sat, 08 Aug 2009)
New Revision: 5449

Modified:
   jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/java/org/jbpm/examples/assignment/RulesAssignmentHandler.java
   jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/java/org/jbpm/examples/assignment/RulesAssignmentTest.java
   jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/java/org/jbpm/examples/rulesaction/Customer.java
   jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/java/org/jbpm/examples/rulesaction/RulesActionHandler.java
   jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/java/org/jbpm/examples/rulesaction/RulesActionTest.java
Log:
delete process definition in separate transaction

Modified: jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/java/org/jbpm/examples/assignment/RulesAssignmentHandler.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/java/org/jbpm/examples/assignment/RulesAssignmentHandler.java	2009-08-07 21:25:41 UTC (rev 5448)
+++ jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/java/org/jbpm/examples/assignment/RulesAssignmentHandler.java	2009-08-08 08:47:32 UTC (rev 5449)
@@ -11,67 +11,71 @@
 import org.drools.RuleBaseFactory;
 import org.drools.WorkingMemory;
 import org.drools.compiler.PackageBuilder;
-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.identity.Group;
+import org.jbpm.identity.Membership;
+import org.jbpm.identity.User;
+import org.jbpm.identity.hibernate.IdentitySession;
 import org.jbpm.taskmgmt.def.AssignmentHandler;
 import org.jbpm.taskmgmt.exe.Assignable;
 
-public class RulesAssignmentHandler implements AssignmentHandler
-{
-  private static final long serialVersionUID = 1L;
+public class RulesAssignmentHandler implements AssignmentHandler {
 
+  protected String group;
+  protected String ruleFile;
+  protected List objectNames;
+
+  private static final long serialVersionUID = 1L;
   private static Log log = LogFactory.getLog(RulesAssignmentHandler.class);
-  
-  public String group;
-  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.newStatefulSession();
 
-    // load the data
-    Session s = executionContext.getJbpmContext().getSession();
-    log.debug("************** Session is :" + s.toString());
+    // load identity data
+    IdentitySession identitySession = new IdentitySession(executionContext.getJbpmContext()
+        .getSession());
+    // users
+    for (Iterator iter = identitySession.getUsers().iterator(); iter.hasNext();) {
+      User user = (User) iter.next();
+      log.debug("user: " + user.getName());
+      workingMemory.insert(user);
+    }
+    // group
+    Group group = identitySession.getGroupByName(this.group);
+    log.debug("group: " + group.getName());
+    workingMemory.insert(group);
+    // memberships
+    for (Iterator iter = group.getMemberships().iterator(); iter.hasNext();) {
+      Membership membership = (Membership) iter.next();
+      log.debug("membership: " + membership.getName());
+      workingMemory.insert(membership);
+    }
 
-    assertObjects(getUsers(s), workingMemory);
-    assertObjects(getGroupByName(s, group), workingMemory);
-    assertObjects(getMemberships(s), workingMemory);
-
-    Object object = null;
-    log.debug(objectNames.toString());
-    Iterator iter = objectNames.iterator();
-    String objectName = "";
+    // read variables
     ContextInstance ci = executionContext.getContextInstance();
-    while (iter.hasNext())
-    {
-      objectName = (String)iter.next();
-      object = ci.getVariable(objectName);
+    for (Iterator iter = objectNames.iterator(); iter.hasNext();) {
+      String objectName = (String) iter.next();
+      Object object = ci.getVariable(objectName);
 
-      log.debug("object name is: " + objectName);
-      // assert the object into the rules engine
+      log.debug("variable '" + objectName + "': " + object);
       workingMemory.insert(object);
     }
 
-    // assert the assignable so that it may be used to set results
-    log.debug("assignable is: " + assignable);
-
+    // insert the assignable so that it may be used to set results
+    log.debug("assignable: " + assignable);
     workingMemory.insert(assignable);
-    log.debug("fire all rules: ");
+
+    log.debug("firing all rulles");
     workingMemory.fireAllRules();
   }
 
   /**
    * Please note that this is the "low level" rule assembly API.
    */
-  private static RuleBase readRule(String ruleFileName) throws 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);
@@ -84,37 +88,4 @@
     return ruleBase;
   }
 
-  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)
-  {
-    Query query = session.createQuery("select g " + "from org.jbpm.identity.Group as g " + "where g.name = :groupName");
-    log.debug("groupName is: " + groupName);
-    query.setString("groupName", groupName);
-    return query.list();
-  }
-
-  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)
-  {
-    Iterator iter = objectList.iterator();
-    Entity entity = null;
-    while (iter.hasNext())
-    {
-      entity = (Entity)iter.next();
-      log.debug("object is: " + entity.getName());
-      workingMemory.insert(entity);
-    }
-
-  }
-
 }

Modified: jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/java/org/jbpm/examples/assignment/RulesAssignmentTest.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/java/org/jbpm/examples/assignment/RulesAssignmentTest.java	2009-08-07 21:25:41 UTC (rev 5448)
+++ jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/java/org/jbpm/examples/assignment/RulesAssignmentTest.java	2009-08-08 08:47:32 UTC (rev 5449)
@@ -48,6 +48,7 @@
   }
 
   protected void tearDown() throws Exception {
+    newTransaction();
     graphSession.deleteProcessDefinition(processDefinitionId);
     deleteIdentities();
     super.tearDown();
@@ -74,10 +75,11 @@
   }
 
   void deleteIdentities() {
+    IdentitySession identitySession = new IdentitySession(jbpmContext.getSession());
     for (int i = 0; i < entities.length; i++) {
       Entity entity = entities[i];
       if (entity instanceof Membership) continue;
-      session.delete(entity);
+      identitySession.deleteEntity(entity);
     }
   }
 

Modified: jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/java/org/jbpm/examples/rulesaction/Customer.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/java/org/jbpm/examples/rulesaction/Customer.java	2009-08-07 21:25:41 UTC (rev 5448)
+++ jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/java/org/jbpm/examples/rulesaction/Customer.java	2009-08-08 08:47:32 UTC (rev 5449)
@@ -3,58 +3,62 @@
  *
  * Distributable under LGPL license.
  * See terms of license at gnu.org.
- */ 
+ */
 package org.jbpm.examples.rulesaction;
 
 import java.io.Serializable;
 
+public class Customer implements Serializable {
 
-public class Customer
-     implements Serializable
-{
-	long    id;
+  long id;
 
-	String 	name;
-    Integer region;
-    Integer age;
-    Long    income;
+  String name;
+  Integer region;
+  Integer age;
+  Long income;
 
-    public Customer() {
-    }
-    
-    public Customer(String name, Integer region, Integer age, Long income) {
-    	setName(name);
-    	setRegion(region);
-    	setAge(age);
-    	setIncome(income);
-    }
+  private static final long serialVersionUID = 1L;
 
-    public String getName() {
-        return name;
-    }
-    public void setName(String name) {
-        this.name = name;
-    }
+  public Customer() {
+  }
 
-    public Integer getRegion() {
-        return region;
-    }
-    public void setRegion(Integer region) {
-        this.region = region;
-    }
- 
-    public Integer getAge() {
-        return age;
-    }
-    public void setAge(Integer age) {
-        this.age = age;
-    }
+  public Customer(String name, Integer region, Integer age, Long income) {
+    setName(name);
+    setRegion(region);
+    setAge(age);
+    setIncome(income);
+  }
 
-    public Long getIncome() {
-        return income;
-    }
-    public void setIncome(Long income) {
-        this.income = income;
-    }
+  public String getName() {
+    return name;
+  }
 
+  public void setName(String name) {
+    this.name = name;
+  }
+
+  public Integer getRegion() {
+    return region;
+  }
+
+  public void setRegion(Integer region) {
+    this.region = region;
+  }
+
+  public Integer getAge() {
+    return age;
+  }
+
+  public void setAge(Integer age) {
+    this.age = age;
+  }
+
+  public Long getIncome() {
+    return income;
+  }
+
+  public void setIncome(Long income) {
+    this.income = income;
+  }
+
 }

Modified: jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/java/org/jbpm/examples/rulesaction/RulesActionHandler.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/java/org/jbpm/examples/rulesaction/RulesActionHandler.java	2009-08-07 21:25:41 UTC (rev 5448)
+++ jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/java/org/jbpm/examples/rulesaction/RulesActionHandler.java	2009-08-08 08:47:32 UTC (rev 5449)
@@ -1,90 +1,68 @@
 package org.jbpm.examples.rulesaction;
 
-import java.io.IOException;
 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.jbpm.context.exe.ContextInstance;
 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;
+  protected List objectNames;
 
-  public List objectNames;
+  protected String ruleFile;
 
-  public String ruleFile;
+  protected List queryStrings;
 
-  public List queryStrings;
+  private static final long serialVersionUID = 1L;
+  private static final Log log = LogFactory.getLog(RulesActionHandler.class.getName());
 
   /**
-   * 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.newStatefulSession();
 
-    // final WorkingMemoryFileLogger logger = new WorkingMemoryFileLogger(
-    // workingMemory );
-    // logger.setFileName( "jpdl/examples/rulesActionHandler/log/rulesAction" );
-
-    // get an iterator of fully qualified object names
-    Iterator iter = objectNames.iterator();
-    String objectName = "";
+    // read variables
     ContextInstance ci = executionContext.getContextInstance();
-
-    while (iter.hasNext())
-    {
-      objectName = (String)iter.next();
-
-      // assume the objects are stored as process variables
-      // workingMemory.assertObject(ci.getVariable(objectName));
+    for (Iterator iter = objectNames.iterator(); iter.hasNext();) {
+      String objectName = (String) iter.next();
       Object object = ci.getVariable(objectName);
-      workingMemory.insert(object);
 
-      // alternately the objects could be returned with a query
-      // to Hibernate or an EJB3 entity manager
-
+      log.debug("variable '" + objectName + "': " + object);
+      workingMemory.insert(object);
     }
 
-    // now assert the context instance as a global, so that the rules
-    // can update the process, and fire the rules
+    // now assert the context instance as a global,
+    // so that the rules can update the process
     workingMemory.setGlobal("ci", ci);
-
     workingMemory.fireAllRules();
 
     workingMemory.clearAgenda();
 
-    // logger.writeToDisk();
-
     // propagate the token so that the process continues
     executionContext.getToken().signal();
-
   }
 
   /**
    * 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 {
     PackageBuilder builder = new PackageBuilder();
-    builder.addPackageFromDrl(new InputStreamReader(RulesActionHandler.class.getResourceAsStream(ruleFileName)));
+    builder.addPackageFromDrl(new InputStreamReader(
+        RulesActionHandler.class.getResourceAsStream(ruleFileName)));
 
     RuleBase ruleBase = RuleBaseFactory.newRuleBase();
     ruleBase.addPackage(builder.getPackage());

Modified: jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/java/org/jbpm/examples/rulesaction/RulesActionTest.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/java/org/jbpm/examples/rulesaction/RulesActionTest.java	2009-08-07 21:25:41 UTC (rev 5448)
+++ jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/java/org/jbpm/examples/rulesaction/RulesActionTest.java	2009-08-08 08:47:32 UTC (rev 5449)
@@ -39,6 +39,7 @@
   }
 
   protected void tearDown() throws Exception {
+    newTransaction();
     graphSession.deleteProcessDefinition(processDefinitionId);
     super.tearDown();
   }



More information about the jbpm-commits mailing list