[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