[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