[jboss-svn-commits] JBL Code SVN: r20272 - in labs/jbossrules/trunk/drools-process: drools-process-enterprise and 18 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Jun 3 11:59:53 EDT 2008
Author: KrisVerlaenen
Date: 2008-06-03 11:59:53 -0400 (Tue, 03 Jun 2008)
New Revision: 20272
Added:
labs/jbossrules/trunk/drools-process/drools-process-enterprise/
labs/jbossrules/trunk/drools-process/drools-process-enterprise/.classpath
labs/jbossrules/trunk/drools-process/drools-process-enterprise/.project
labs/jbossrules/trunk/drools-process/drools-process-enterprise/JarDescription.jardesc
labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/
labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/main/
labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/main/java/
labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/main/java/org/
labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/main/java/org/drools/
labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/main/java/org/drools/process/
labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/main/java/org/drools/process/enterprise/
labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/main/java/org/drools/process/enterprise/processinstance/
labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/main/java/org/drools/process/enterprise/processinstance/ProcessInstanceInfo.java
labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/main/java/org/drools/process/enterprise/processinstance/ProcessService.java
labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/main/java/org/drools/process/enterprise/processinstance/ProcessServiceBean.java
labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/main/java/org/drools/process/enterprise/processinstance/WorkItemInfo.java
labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/main/java/org/drools/process/enterprise/repository/
labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/main/java/org/drools/process/enterprise/repository/ProcessInfo.java
labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/main/java/org/drools/process/enterprise/repository/ProcessRepository.java
labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/main/java/org/drools/process/enterprise/repository/ProcessRepositoryBean.java
labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/main/resources/
labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/main/resources/META-INF/
labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/main/resources/META-INF/persistence.xml
labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/main/resources/jndi.properties
labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/test/
labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/test/java/
labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/test/java/org/
labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/test/java/org/drools/
labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/test/java/org/drools/process/
labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/test/java/org/drools/process/enterprise/
labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/test/java/org/drools/process/enterprise/client/
labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/test/java/org/drools/process/enterprise/client/ProcessRepositoryClient.java
labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/test/java/org/drools/process/enterprise/client/ProcessServiceClient.java
labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/test/java/org/drools/process/enterprise/client/WorkItemServiceClient.java
Log:
Initial commit of drools-process-enterprise
Added: labs/jbossrules/trunk/drools-process/drools-process-enterprise/.classpath
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-enterprise/.classpath (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-enterprise/.classpath 2008-06-03 15:59:53 UTC (rev 20272)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src/main/java"/>
+ <classpathentry kind="src" path="src/main/resources"/>
+ <classpathentry kind="src" path="src/test/java"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/3"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/drools-compiler"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/drools-core"/>
+ <classpathentry kind="lib" path="lib/jboss-ejb3x.jar"/>
+ <classpathentry kind="lib" path="lib/jbossall-client.jar"/>
+ <classpathentry kind="lib" path="lib/ejb3-persistence.jar"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
Added: labs/jbossrules/trunk/drools-process/drools-process-enterprise/.project
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-enterprise/.project (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-enterprise/.project 2008-06-03 15:59:53 UTC (rev 20272)
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>drools-process-enterprise</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
Added: labs/jbossrules/trunk/drools-process/drools-process-enterprise/JarDescription.jardesc
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-enterprise/JarDescription.jardesc (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-enterprise/JarDescription.jardesc 2008-06-03 15:59:53 UTC (rev 20272)
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="WINDOWS-1252"?>
+<jardesc>
+<jar path="C:/jboss-4.2.2.GA/server/default/deploy/ProcessService.jar"/>
+<options buildIfNeeded="true" compress="true" descriptionLocation="/drools-process-enterprise/JarDescription.jardesc" exportErrors="true" exportWarnings="true" includeDirectoryEntries="false" overwrite="false" saveDescription="true" storeRefactorings="false" useSourceFolders="false"/>
+<storedRefactorings deprecationInfo="true" structuralOnly="false"/>
+<selectedProjects/>
+<manifest generateManifest="true" manifestLocation="" manifestVersion="1.0" reuseManifest="false" saveManifest="false" usesManifest="true">
+<sealing sealJar="false">
+<packagesToSeal/>
+<packagesToUnSeal/>
+</sealing>
+</manifest>
+<selectedElements exportClassFiles="true" exportJavaFiles="false" exportOutputFolder="false">
+<javaElement handleIdentifier="=drools-process-enterprise/src\/main\/resources"/>
+<javaElement handleIdentifier="=drools-process-enterprise/src\/main\/java"/>
+</selectedElements>
+</jardesc>
Added: labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/main/java/org/drools/process/enterprise/processinstance/ProcessInstanceInfo.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/main/java/org/drools/process/enterprise/processinstance/ProcessInstanceInfo.java (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/main/java/org/drools/process/enterprise/processinstance/ProcessInstanceInfo.java 2008-06-03 15:59:53 UTC (rev 20272)
@@ -0,0 +1,67 @@
+package org.drools.process.enterprise.processinstance;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Lob;
+import javax.persistence.Transient;
+
+import org.drools.marshalling.InputMarshaller;
+import org.drools.marshalling.MarshallerReaderContext;
+import org.drools.marshalling.MarshallerWriteContext;
+import org.drools.marshalling.OutputMarshaller;
+import org.drools.process.instance.ProcessInstance;
+import org.drools.ruleflow.instance.RuleFlowProcessInstance;
+
+ at Entity
+public class ProcessInstanceInfo {
+
+ private @Id long processInstanceId;
+ private String processId;
+ private @Lob byte[] processInstanceByteArray;
+ private @Transient ProcessInstance processInstance;
+
+ public long getId() {
+ return processInstanceId;
+ }
+
+ public String getProcessId() {
+ return processId;
+ }
+
+ public ProcessInstance getProcessInstance() {
+ if (processInstance == null) {
+ try {
+ ByteArrayInputStream bais = new ByteArrayInputStream(processInstanceByteArray);
+ MarshallerReaderContext context = new MarshallerReaderContext(bais, null, null, null);
+ processInstance = InputMarshaller.readProcessInstance(context);
+ context.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ throw new IllegalArgumentException(
+ "IOException while loading process instance: " + e.getMessage());
+ }
+ }
+ return processInstance;
+ }
+
+ public void setProcessInstance(ProcessInstance processInstance) {
+ this.processInstance = processInstance;
+ this.processInstanceId = processInstance.getId();
+ this.processId = processInstance.getProcessId();
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ try {
+ MarshallerWriteContext context = new MarshallerWriteContext(baos, null, null, null, null);
+ OutputMarshaller.writeProcessInstance(context, (RuleFlowProcessInstance) processInstance);
+ context.close();
+ this.processInstanceByteArray = baos.toByteArray();
+ } catch (IOException e) {
+ throw new IllegalArgumentException(
+ "IOException while storing process instance " + processInstance.getId() + ": " + e.getMessage());
+ }
+ }
+
+}
Added: labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/main/java/org/drools/process/enterprise/processinstance/ProcessService.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/main/java/org/drools/process/enterprise/processinstance/ProcessService.java (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/main/java/org/drools/process/enterprise/processinstance/ProcessService.java 2008-06-03 15:59:53 UTC (rev 20272)
@@ -0,0 +1,14 @@
+package org.drools.process.enterprise.processinstance;
+
+import java.util.Map;
+
+import javax.ejb.Remote;
+
+ at Remote
+public interface ProcessService {
+
+ long startProcess(String processId);
+
+ void completeWorkItem(long workItemId, Map<String, Object> results);
+
+}
Added: labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/main/java/org/drools/process/enterprise/processinstance/ProcessServiceBean.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/main/java/org/drools/process/enterprise/processinstance/ProcessServiceBean.java (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/main/java/org/drools/process/enterprise/processinstance/ProcessServiceBean.java 2008-06-03 15:59:53 UTC (rev 20272)
@@ -0,0 +1,123 @@
+package org.drools.process.enterprise.processinstance;
+
+import java.io.StringReader;
+import java.util.List;
+import java.util.Map;
+
+import javax.ejb.EJB;
+import javax.ejb.Stateless;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+
+import org.drools.RuleBase;
+import org.drools.RuleBaseFactory;
+import org.drools.WorkingMemory;
+import org.drools.common.InternalRuleBase;
+import org.drools.common.InternalWorkingMemory;
+import org.drools.compiler.PackageBuilder;
+import org.drools.process.enterprise.repository.ProcessInfo;
+import org.drools.process.enterprise.repository.ProcessRepository;
+import org.drools.process.instance.ProcessInstance;
+import org.drools.process.instance.WorkItem;
+import org.drools.process.instance.WorkItemHandler;
+import org.drools.process.instance.WorkItemManager;
+import org.drools.process.instance.impl.ProcessInstanceImpl;
+import org.drools.process.instance.impl.demo.SystemOutWorkItemHandler;
+import org.drools.rule.Package;
+
+ at Stateless
+public class ProcessServiceBean implements ProcessService {
+
+ private @PersistenceContext EntityManager manager;
+ private @EJB ProcessRepository processRepository;
+
+ public long startProcess(String processId) {
+ System.out.println("Starting process " + processId);
+ InternalWorkingMemory workingMemory = createWorkingMemory();
+ // start process
+ ProcessInstance processInstance = workingMemory.startProcess(processId);
+ persistProcessInstances(workingMemory);
+ return processInstance.getId();
+ }
+
+ public void completeWorkItem(long workItemId, Map<String, Object> results) {
+ InternalWorkingMemory workingMemory = createWorkingMemory();
+ WorkItemInfo workItemInfo = manager.find(WorkItemInfo.class, workItemId);
+ if (workItemInfo == null) {
+ throw new IllegalArgumentException(
+ "Could not find work item " + workItemId);
+ }
+ manager.remove(workItemInfo);
+ // TODO: should load other process instances as well
+ long processInstanceId = workItemInfo.getProcessInstanceId();
+ ProcessInstanceInfo processInstanceInfo = manager.find(ProcessInstanceInfo.class, processInstanceId);
+ if (processInstanceInfo == null) {
+ throw new IllegalArgumentException(
+ "Could not find process instance " + processInstanceId);
+ }
+ ProcessInstanceImpl processInstance = (ProcessInstanceImpl) processInstanceInfo.getProcessInstance();
+ processInstance.setProcess(((InternalRuleBase) workingMemory.getRuleBase()).getProcess(processInstance.getProcessId()));
+ processInstance.setWorkingMemory(workingMemory);
+ processInstance.reconnect();
+ workingMemory.getWorkItemManager().completeWorkItem(workItemId, results);
+ persistProcessInstances(workingMemory);
+ }
+
+ private InternalWorkingMemory createWorkingMemory() {
+ // TODO: share rule base
+ List<ProcessInfo> processInfos = processRepository.getProcessInfos();
+ PackageBuilder builder = new PackageBuilder();
+ for (ProcessInfo processInfo: processInfos) {
+ builder.addRuleFlow(new StringReader(processInfo.getProcessXML()));
+ }
+ Package pkg = builder.getPackage();
+ RuleBase ruleBase = RuleBaseFactory.newRuleBase();
+ ruleBase.addPackage(pkg);
+ // create new working memory
+ InternalWorkingMemory workingMemory = (InternalWorkingMemory) ruleBase.newStatefulSession();
+ // TODO auto-register work item handlers (e.g. based on config)
+ workingMemory.getWorkItemManager().registerWorkItemHandler("Log", new SystemOutWorkItemHandler());
+ workingMemory.getWorkItemManager().registerWorkItemHandler("Human Task", new EnterpriseWorkItemHandler());
+ return workingMemory;
+ }
+
+ private void persistProcessInstances(WorkingMemory workingMemory) {
+ for (ProcessInstance pi: workingMemory.getProcessInstances()) {
+ // persist process instance if necessary
+ ProcessInstanceInfo processInstanceInfo = manager.find(ProcessInstanceInfo.class, pi.getId());
+ if (processInstanceInfo == null) {
+ processInstanceInfo = new ProcessInstanceInfo();
+ }
+ processInstanceInfo.setProcessInstance(pi);
+ manager.persist(processInstanceInfo);
+ System.out.println("Persisted process instance" + pi.getId());
+ }
+ // TODO remove process instances that are not longer there
+ // TODO make smarter, e.g. by registering a listener
+ // before starting execution and only updating changed instances
+ }
+
+ public class EnterpriseWorkItemHandler implements WorkItemHandler {
+
+ public void executeWorkItem(WorkItem workItem, WorkItemManager manager) {
+ WorkItemInfo workItemInfo = new WorkItemInfo();
+ workItemInfo.setWorkItemId(workItem.getId());
+ workItemInfo.setProcessInstanceId(workItem.getProcessInstanceId());
+ workItemInfo.setName(workItem.getName());
+ workItemInfo.setParameters(workItem.getParameters());
+ ProcessServiceBean.this.manager.persist(workItemInfo);
+ System.out.println("Persisted work item " + workItem.getName() + " [" + workItem.getId() + "]");
+ for (Map.Entry<String, Object> entry: workItem.getParameters().entrySet()) {
+ System.out.println(" " + entry.getKey() + " = " + entry.getValue());
+ }
+ }
+
+ public void abortWorkItem(WorkItem workItem, WorkItemManager manager) {
+ WorkItemInfo workItemInfo = ProcessServiceBean.this.manager.find(WorkItemInfo.class, workItem.getId());
+ ProcessServiceBean.this.manager.remove(workItemInfo);
+ System.out.println("Aborted work item " + workItem.getName() + " [" + workItem.getId() + "]");
+ }
+
+ }
+
+}
Added: labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/main/java/org/drools/process/enterprise/processinstance/WorkItemInfo.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/main/java/org/drools/process/enterprise/processinstance/WorkItemInfo.java (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/main/java/org/drools/process/enterprise/processinstance/WorkItemInfo.java 2008-06-03 15:59:53 UTC (rev 20272)
@@ -0,0 +1,50 @@
+package org.drools.process.enterprise.processinstance;
+
+import java.util.Map;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Transient;
+
+ at Entity
+public class WorkItemInfo {
+
+ private @Id long workItemId;
+ private String name;
+ // TODO
+ private @Transient Map<String, Object> parameters;
+ private long processInstanceId;
+
+ public long getWorkItemId() {
+ return workItemId;
+ }
+
+ public void setWorkItemId(long workItemId) {
+ this.workItemId = workItemId;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public Map<String, Object> getParameters() {
+ return parameters;
+ }
+
+ public void setParameters(Map<String, Object> parameters) {
+ this.parameters = parameters;
+ }
+
+ public long getProcessInstanceId() {
+ return processInstanceId;
+ }
+
+ public void setProcessInstanceId(long processInstanceId) {
+ this.processInstanceId = processInstanceId;
+ }
+
+}
Added: labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/main/java/org/drools/process/enterprise/repository/ProcessInfo.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/main/java/org/drools/process/enterprise/repository/ProcessInfo.java (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/main/java/org/drools/process/enterprise/repository/ProcessInfo.java 2008-06-03 15:59:53 UTC (rev 20272)
@@ -0,0 +1,52 @@
+package org.drools.process.enterprise.repository;
+
+import java.io.IOException;
+import java.io.StringReader;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Lob;
+import javax.persistence.Transient;
+
+import org.drools.compiler.PackageBuilderConfiguration;
+import org.drools.process.core.Process;
+import org.drools.xml.XmlProcessReader;
+import org.xml.sax.SAXException;
+
+ at Entity
+public class ProcessInfo {
+
+ private @Id String processId;
+ private @Lob String processXML;
+ private @Transient Process process;
+
+ public String getProcessId() {
+ return processId;
+ }
+
+ public void setProcessXML(String processId, String processXML) {
+ this.processId = processId;
+ this.processXML = processXML;
+ }
+
+ public Process getProcess() {
+ if (process == null) {
+ try {
+ PackageBuilderConfiguration configuration = new PackageBuilderConfiguration();
+ process = new XmlProcessReader(configuration.getSemanticModules()).read(new StringReader(processXML));
+ } catch (IOException e) {
+ throw new IllegalArgumentException(
+ "IOException while loading process: " + e.getMessage());
+ } catch (SAXException e) {
+ throw new IllegalArgumentException(
+ "SAXException while loading process: " + e.getMessage());
+ }
+ }
+ return process;
+ }
+
+ public String getProcessXML() {
+ return processXML;
+ }
+
+}
Added: labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/main/java/org/drools/process/enterprise/repository/ProcessRepository.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/main/java/org/drools/process/enterprise/repository/ProcessRepository.java (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/main/java/org/drools/process/enterprise/repository/ProcessRepository.java 2008-06-03 15:59:53 UTC (rev 20272)
@@ -0,0 +1,16 @@
+package org.drools.process.enterprise.repository;
+
+import java.util.List;
+
+import javax.ejb.Remote;
+
+ at Remote
+public interface ProcessRepository {
+
+ void storeProcess(String processId, String processXML);
+
+ ProcessInfo getProcessInfo(String processId);
+
+ List<ProcessInfo> getProcessInfos();
+
+}
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/main/java/org/drools/process/enterprise/repository/ProcessRepositoryBean.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/main/java/org/drools/process/enterprise/repository/ProcessRepositoryBean.java (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/main/java/org/drools/process/enterprise/repository/ProcessRepositoryBean.java 2008-06-03 15:59:53 UTC (rev 20272)
@@ -0,0 +1,34 @@
+package org.drools.process.enterprise.repository;
+
+import java.util.List;
+
+import javax.ejb.Stateless;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+
+ at Stateless
+public class ProcessRepositoryBean implements ProcessRepository {
+
+ private @PersistenceContext EntityManager manager;
+
+ public void storeProcess(String processId, String processXML) {
+ ProcessInfo processInfo = manager.find(ProcessInfo.class, processId);
+ if (processInfo != null) {
+ System.out.println("Overriding existing process definition " + processId);
+ } else {
+ processInfo = new ProcessInfo();
+ }
+ processInfo.setProcessXML(processId, processXML);
+ manager.persist(processInfo);
+ System.out.println("Stored process " + processId);
+ }
+
+ public ProcessInfo getProcessInfo(String processId) {
+ return manager.find(ProcessInfo.class, processId);
+ }
+
+ public List<ProcessInfo> getProcessInfos() {
+ return manager.createQuery("from ProcessInfo p").getResultList();
+ }
+
+}
Added: labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/main/resources/META-INF/persistence.xml
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/main/resources/META-INF/persistence.xml (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/main/resources/META-INF/persistence.xml 2008-06-03 15:59:53 UTC (rev 20272)
@@ -0,0 +1,8 @@
+<persistence>
+ <persistence-unit name="ProcessService">
+ <jta-data-source>java:/DefaultDS</jta-data-source>
+ <properties>
+ <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
+ </properties>
+ </persistence-unit>
+</persistence>
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/main/resources/jndi.properties
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/main/resources/jndi.properties (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/main/resources/jndi.properties 2008-06-03 15:59:53 UTC (rev 20272)
@@ -0,0 +1,3 @@
+java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
+java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
+java.naming.provider.url=localhost:1099
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/test/java/org/drools/process/enterprise/client/ProcessRepositoryClient.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/test/java/org/drools/process/enterprise/client/ProcessRepositoryClient.java (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/test/java/org/drools/process/enterprise/client/ProcessRepositoryClient.java 2008-06-03 15:59:53 UTC (rev 20272)
@@ -0,0 +1,59 @@
+package org.drools.process.enterprise.client;
+
+import javax.naming.InitialContext;
+
+import org.drools.process.enterprise.repository.ProcessRepository;
+
+public class ProcessRepositoryClient {
+
+ public static void main(String[] args) throws Exception {
+ InitialContext ctx = new InitialContext();
+ ProcessRepository processRepository = (ProcessRepository)
+ ctx.lookup("ProcessRepositoryBean/remote");
+ String processXML =
+ "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
+ "<process xmlns=\"http://drools.org/drools-4.0/process\"\n" +
+ " xmlns:xs=\"http://www.w3.org/2001/XMLSchema-instance\"\n" +
+ " xs:schemaLocation=\"http://drools.org/drools-4.0/process drools-processes-4.0.xsd\"\n" +
+ " type=\"RuleFlow\" name=\"ruleflow\" id=\"com.sample.ruleflow\" package-name=\"com.sample\" >\n" +
+ "\n" +
+ " <header>\n" +
+ " </header>\n" +
+ "\n" +
+ " <nodes>\n" +
+ " <start id=\"1\" name=\"Start\" />\n" +
+ " <action id=\"2\" name=\"java\" dialect=\"java\" >System.out.println(\"Executing action\");</action>\n" +
+ " <split id=\"3\" name=\"Split\" type=\"1\" />\n" +
+ " <workItem id=\"4\" name=\"Log\" >\n" +
+ " <work name=\"Log\" >\n" +
+ " <parameter name=\"Message\" type=\"org.drools.process.core.datatype.impl.type.StringDataType\" >This is a log message !</parameter>\n" +
+ " </work>\n" +
+ " </workItem>\n" +
+ " <workItem id=\"5\" name=\"Human Task\" >\n" +
+ " <work name=\"Human Task\" >\n" +
+ " <parameter name=\"Priority\" type=\"org.drools.process.core.datatype.impl.type.StringDataType\" >HIGH</parameter>\n" +
+ " <parameter name=\"TaskName\" type=\"org.drools.process.core.datatype.impl.type.StringDataType\" >Phone customer</parameter>\n" +
+ " <parameter name=\"Comment\" type=\"org.drools.process.core.datatype.impl.type.StringDataType\" >This is a comment !</parameter>\n" +
+ " <parameter name=\"ActorId\" type=\"org.drools.process.core.datatype.impl.type.StringDataType\" />\n" +
+ " </work>\n" +
+ " </workItem>\n" +
+ " <join id=\"6\" name=\"Join\" type=\"1\" />\n" +
+ " <end id=\"7\" name=\"End\" />\n" +
+ " </nodes>\n" +
+ "\n" +
+ " <connections>\n" +
+ " <connection from=\"1\" to=\"2\"/>\n" +
+ " <connection from=\"2\" to=\"3\"/>\n" +
+ " <connection from=\"3\" to=\"4\"/>\n" +
+ " <connection from=\"3\" to=\"5\"/>\n" +
+ " <connection from=\"4\" to=\"6\"/>\n" +
+ " <connection from=\"5\" to=\"6\"/>\n" +
+ " <connection from=\"6\" to=\"7\"/>\n" +
+ " </connections>\n" +
+ "\n" +
+ "</process>";
+
+ processRepository.storeProcess("com.sample.ruleflow", processXML);
+ }
+
+}
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/test/java/org/drools/process/enterprise/client/ProcessServiceClient.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/test/java/org/drools/process/enterprise/client/ProcessServiceClient.java (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/test/java/org/drools/process/enterprise/client/ProcessServiceClient.java 2008-06-03 15:59:53 UTC (rev 20272)
@@ -0,0 +1,17 @@
+package org.drools.process.enterprise.client;
+
+import javax.naming.InitialContext;
+
+import org.drools.process.enterprise.processinstance.ProcessService;
+
+public class ProcessServiceClient {
+
+ public static void main(String[] args) throws Exception {
+ InitialContext ctx = new InitialContext();
+ ProcessService processService = (ProcessService)
+ ctx.lookup("ProcessServiceBean/remote");
+
+ System.out.println(processService.startProcess("com.sample.ruleflow"));
+ }
+
+}
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/test/java/org/drools/process/enterprise/client/WorkItemServiceClient.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/test/java/org/drools/process/enterprise/client/WorkItemServiceClient.java (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/test/java/org/drools/process/enterprise/client/WorkItemServiceClient.java 2008-06-03 15:59:53 UTC (rev 20272)
@@ -0,0 +1,17 @@
+package org.drools.process.enterprise.client;
+
+import javax.naming.InitialContext;
+
+import org.drools.process.enterprise.processinstance.ProcessService;
+
+public class WorkItemServiceClient {
+
+ public static void main(String[] args) throws Exception {
+ InitialContext ctx = new InitialContext();
+ ProcessService processService = (ProcessService)
+ ctx.lookup("ProcessServiceBean/remote");
+
+ processService.completeWorkItem(2, null);
+ }
+
+}
\ No newline at end of file
More information about the jboss-svn-commits
mailing list