[jboss-svn-commits] JBL Code SVN: r33495 - in labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid: drools-grid and 15 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Jun 14 15:23:10 EDT 2010
Author: salaboy21
Date: 2010-06-14 15:23:09 -0400 (Mon, 14 Jun 2010)
New Revision: 33495
Added:
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/task/
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/task/MockUserInfo.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/resources/
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/resources/META-INF/
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/resources/META-INF/drools.email.conf
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/resources/META-INF/orm.xml
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/resources/META-INF/persistence.xml
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/resources/org/
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/resources/org/drools/
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/resources/org/drools/task/
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/resources/org/drools/task/LoadGroups.mvel
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/resources/org/drools/task/LoadUsers.mvel
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid/
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid/pom.xml
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid/src/
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid/src/main/
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid/src/main/java/
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid/src/test/
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid/src/test/java/
Modified:
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/RemoteConnection.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/pom.xml
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/TaskServerInstance.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterTaskTest.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/ServiceAPITest.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/CommandBasedServicesWSHumanTaskHandler.java
Log:
Adding support HumanTask Service Nodes in Drools Grid Services
Added: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid/pom.xml
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid/pom.xml (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid/pom.xml 2010-06-14 19:23:09 UTC (rev 33495)
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>drools-grid</artifactId>
+ <groupId>org.drools</groupId>
+ <version>5.1.0.SNAPSHOT</version>
+ </parent>
+ <groupId>org.drools</groupId>
+ <artifactId>drools-grid-remote-dir-min</artifactId>
+
+ <name>Drools :: Grid :: Remote Directory :: Mina</name>
+
+ <dependencies>
+
+
+ <dependency>
+ <groupId>org.drools</groupId>
+ <artifactId>drools-grid-remote-api</artifactId>
+ <version>5.1.0.SNAPSHOT</version>
+ </dependency>
+
+ <!-- Apache Mina for default Service Remote Implementation -->
+ <dependency>
+ <groupId>org.apache.mina</groupId>
+ <artifactId>mina-core</artifactId>
+ <version>2.0.0-M6</version>
+ </dependency>
+
+
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.8.1</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+</project>
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/RemoteConnection.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/RemoteConnection.java 2010-06-14 18:29:30 UTC (rev 33494)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/RemoteConnection.java 2010-06-14 19:23:09 UTC (rev 33495)
@@ -75,7 +75,7 @@
}
/**
- * @throws IllegalStateException if unnable to connect to node
+ * @throws IllegalStateException if unable to connect to node
*/
public ExecutionNode getExecutionNode(NodeSelectionStrategy strategy) {
ExecutionNode node = null;
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/pom.xml
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/pom.xml 2010-06-14 18:29:30 UTC (rev 33494)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/pom.xml 2010-06-14 19:23:09 UTC (rev 33495)
@@ -9,7 +9,7 @@
</parent>
<artifactId>drools-grid-remote-mina</artifactId>
<version>5.1.0.SNAPSHOT</version>
- <name>Drools :: Grid :: Remote Impl :: Mina</name>
+ <name>Drools :: Grid :: Remote Node :: Mina</name>
<dependencies>
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/TaskServerInstance.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/TaskServerInstance.java 2010-06-14 18:29:30 UTC (rev 33494)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/TaskServerInstance.java 2010-06-14 19:23:09 UTC (rev 33495)
@@ -15,7 +15,12 @@
public HumanTaskService getTaskClient() {
GenericConnection connection = getConnector().getConnection();
- return connection.getTaskService(new ReturnFirstHumanTaskServiceSelectionStrategy(1, getConnector()));
+ org.drools.grid.task.HumanTaskService htService = (org.drools.grid.task.HumanTaskService) connection.getTaskService(new ReturnFirstHumanTaskServiceSelectionStrategy(1, getConnector()));
+
+ if(htService.connect()){
+ return htService;
+ }
+ return null;
}
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterTaskTest.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterTaskTest.java 2010-06-14 18:29:30 UTC (rev 33494)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterTaskTest.java 2010-06-14 19:23:09 UTC (rev 33495)
@@ -14,33 +14,88 @@
* limitations under the License.
* under the License.
*/
-
package org.drools.services;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.net.InetSocketAddress;
+import java.net.SocketAddress;
import java.rmi.RemoteException;
-import org.drools.grid.services.local.LocalDirectoryProvider;
-import org.drools.grid.DirectoryNodeService;
-import org.drools.grid.services.DirectoryInstance;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import javax.persistence.EntityManagerFactory;
+import javax.persistence.Persistence;
+import org.apache.commons.collections.map.HashedMap;
+import org.apache.mina.transport.socket.SocketAcceptor;
+import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
+import org.drools.KnowledgeBase;
+import org.drools.KnowledgeBaseFactoryService;
+import org.drools.SystemEventListenerFactory;
+import org.drools.builder.KnowledgeBuilder;
+import org.drools.builder.KnowledgeBuilderFactoryService;
+import org.drools.grid.ExecutionNode;
+import org.drools.grid.internal.GenericMessageHandlerImpl;
+import org.drools.grid.internal.NodeData;
+import org.drools.grid.remote.mina.MinaAcceptor;
+import org.drools.grid.remote.mina.MinaIoHandler;
import org.drools.grid.services.GenericProvider;
+import org.drools.grid.services.GridResource;
import org.drools.grid.services.GridTopology;
import org.drools.grid.services.TaskServerInstance;
-import org.drools.grid.services.local.LocalEnvironmentProvider;
+import org.drools.grid.services.remote.MinaEnvironmentProvider;
import org.drools.grid.services.remote.task.MinaTaskEnvironmentProvider;
-import org.drools.grid.services.strategies.DirectoryInstanceByPrioritySelectionStrategy;
-import org.drools.grid.HumanTaskService;
+import org.drools.grid.task.CommandBasedServicesWSHumanTaskHandler;
+import org.drools.grid.task.HumanTaskService;
+import org.drools.grid.task.TaskServerMessageHandlerImpl;
+import org.drools.grid.task.responseHandlers.BlockingTaskOperationMessageResponseHandler;
+import org.drools.grid.task.responseHandlers.BlockingTaskSummaryMessageResponseHandler;
+import org.drools.io.impl.ClassPathResource;
+import org.drools.process.instance.impl.WorkItemImpl;
+import org.drools.runtime.StatefulKnowledgeSession;
+import org.drools.runtime.process.WorkItem;
+import org.drools.runtime.process.WorkItemHandler;
+import org.drools.runtime.process.WorkItemManager;
+
+import org.drools.services.task.MockUserInfo;
+import org.drools.task.Group;
+import org.drools.task.Status;
+import org.drools.task.User;
+import org.drools.task.query.TaskSummary;
+import org.drools.task.service.MinaTaskServer;
+import org.drools.task.service.TaskService;
+import org.drools.task.service.TaskServiceSession;
+
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
+import org.mvel2.MVEL;
+import org.mvel2.ParserContext;
+import org.mvel2.compiler.ExpressionCompiler;
/**
*
* @author salaboy
*/
public class RegisterTaskTest {
-
+ private GridTopology grid;
+ private MinaAcceptor serverTask;
+ private MinaAcceptor serverNode;
+ private HumanTaskService client;
+ private EntityManagerFactory emf;
+ private TaskService taskService;
+ private TaskServiceSession taskSession;
+ protected Map<String, User> users;
+ protected Map<String, Group> groups;
+ protected static final int DEFAULT_WAIT_TIME = 5000;
+ protected static final int MANAGER_COMPLETION_WAIT_TIME = DEFAULT_WAIT_TIME;
+ protected static final int MANAGER_ABORT_WAIT_TIME = DEFAULT_WAIT_TIME;
+ protected CommandBasedServicesWSHumanTaskHandler handler;
public RegisterTaskTest() {
}
@@ -53,69 +108,304 @@
}
@Before
- public void setUp() {
+ public void setUp() throws InterruptedException, IOException {
+
+ //Task Related Stuff
+ // Use persistence.xml configuration
+ emf = Persistence.createEntityManagerFactory("org.drools.task");
+
+ taskService = new TaskService(emf, SystemEventListenerFactory.getSystemEventListener());
+ taskSession = taskService.createSession();
+ MockUserInfo userInfo = new MockUserInfo();
+ taskService.setUserinfo(userInfo);
+ Map vars = new HashedMap();
+
+ Reader reader = null;
+
+ try {
+ reader = new InputStreamReader(new ClassPathResource("org/drools/task/LoadUsers.mvel").getInputStream());
+ users = (Map<String, User>) eval(reader, vars);
+ for (User user : users.values()) {
+ taskSession.addUser(user);
+ }
+ } finally {
+ if (reader != null) {
+ reader.close();
+ }
+ reader = null;
+ }
+
+ try {
+ reader = new InputStreamReader(new ClassPathResource("org/drools/task/LoadGroups.mvel").getInputStream());
+ groups = (Map<String, Group>) eval(reader, vars);
+ for (Group group : groups.values()) {
+ taskSession.addGroup(group);
+ }
+ } finally {
+ if (reader != null) {
+ reader.close();
+ }
+ }
+
+
+ // Human task Server configuration
+ SocketAddress htAddress = new InetSocketAddress("127.0.0.1", 9123);
+ SocketAcceptor htAcceptor = new NioSocketAcceptor();
+
+ htAcceptor.setHandler(new MinaIoHandler(SystemEventListenerFactory.getSystemEventListener(),
+ new TaskServerMessageHandlerImpl(taskService,
+ SystemEventListenerFactory.getSystemEventListener())));
+ this.serverTask = new MinaAcceptor(htAcceptor, htAddress);
+ this.serverTask.start();
+ Thread.sleep(5000);
+ // End Execution Server
+
+ //Execution Node related stuff
+
+ System.out.println("Server 1 Starting!");
+ // the servers should be started in a different machine (jvm or physical) or in another thread
+ SocketAddress address = new InetSocketAddress("127.0.0.1", 9124);
+ NodeData nodeData = new NodeData();
+ // setup Server
+ SocketAcceptor acceptor = new NioSocketAcceptor();
+ acceptor.setHandler(new MinaIoHandler(SystemEventListenerFactory.getSystemEventListener(),
+ new GenericMessageHandlerImpl(nodeData,
+ SystemEventListenerFactory.getSystemEventListener())));
+ serverNode = new MinaAcceptor(acceptor, address);
+ serverNode.start();
+ System.out.println("Server 1 Started! at = " + address.toString());
+
+ Thread.sleep(5000);
+
}
@After
- public void tearDown() {
- }
+ public void tearDown() throws RemoteException, InterruptedException {
+ client.disconnect();
-
- @Test
- public void MinaTaskTest() throws RemoteException {
- GridTopology grid = new GridTopology("MyBusinessUnit");
-
- GenericProvider remoteTaskProvider = new MinaTaskEnvironmentProvider("MyMinaTask","127.0.0.1", 9213 );
+ grid.disconectAllClients();
- grid.registerGridResource("MyMinaTask", remoteTaskProvider);
- TaskServerInstance taskServer = grid.getGridResource("MyMinaTask", TaskServerInstance.class);
- Assert.assertNotNull(taskServer);
+ handler.dispose();
- HumanTaskService client = taskServer.getTaskClient();
- Assert.assertNotNull(client);
+ serverNode.stop();
+ System.out.println("Execution Server Stopped!");
+
+ serverTask.stop();
+ System.out.println("Task Server Stopped!");
+ taskSession.dispose();
+ emf.close();
- }
- @Test
- public void multiDirectoryLocalTest() throws RemoteException {
- GridTopology grid = new GridTopology("MyBusinessUnit");
- GenericProvider localDirProvider = new LocalDirectoryProvider();
- GenericProvider localDirProvider2 = new LocalDirectoryProvider();
- GenericProvider localEnvProvider = new LocalEnvironmentProvider();
- GenericProvider localEnvProvider2 = new LocalEnvironmentProvider();
- grid.registerGridResource("MyLocalDir", localDirProvider);
- grid.registerGridResource("MyLocalDir2", localDirProvider2);
- grid.registerGridResource("MyLocalEnv", localEnvProvider);
- grid.registerGridResource("MyLocalEnv2", localEnvProvider2);
+ }
+ @Test
+ public void MinaTaskTest() throws RemoteException, InterruptedException {
+ grid = new GridTopology("MyBusinessUnit");
+ GenericProvider remoteTaskProvider = new MinaTaskEnvironmentProvider("MyMinaTask", "127.0.0.1", 9123);
- //DirectoryInstance directory = grid.getBestDirectoryInstance(new DirectoryInstanceByPrioritySelectionStrategy());
- DirectoryInstance directory = grid.getGridResource("MyLocalDir", DirectoryInstance.class);
- Assert.assertNotNull(directory);
+ grid.registerGridResource("MyMinaTask", remoteTaskProvider);
- DirectoryNodeService dir = directory.getDirectoryService();
- Assert.assertNotNull(dir);
+ TaskServerInstance taskServer = grid.getGridResource("MyMinaTask", TaskServerInstance.class);
+
+ //Create the provider
+ MinaEnvironmentProvider provider = new MinaEnvironmentProvider("Mina1", "127.0.0.1", 9124);
+ //Register the provider into the topology
+ grid.registerGridResource("MyMinaExecutionEnv1", provider);
+
+ Assert.assertNotNull(taskServer);
+
+ client = (HumanTaskService) taskServer.getTaskClient();
+ Assert.assertNotNull(client);
- Assert.assertEquals(3, dir.getDirectoryMap().size());
- DirectoryInstance directory2 = grid.getGridResource("MyLocalDir2", DirectoryInstance.class);
- Assert.assertNotNull(directory2);
+ //Create a task to test the HT client. For that we need to have a ksession with a workitem that creates it
+ GridResource ee = grid.getGridResource("MyMinaExecutionEnv1");
+ Assert.assertNotNull(ee);
- DirectoryNodeService dir2 = directory2.getDirectoryService();
- Assert.assertNotNull(dir2);
+ // Give me an ExecutionNode in the selected environment
+ // For the Mina we have just one Execution Node per server instance
+ ExecutionNode node = grid.getExecutionNode(ee);
- Assert.assertEquals(2, dir2.getDirectoryMap().size());
+ Assert.assertNotNull(node);
+ KnowledgeBuilder kbuilder =
+ node.get(KnowledgeBuilderFactoryService.class).newKnowledgeBuilder();
+ KnowledgeBase kbase =
+ node.get(KnowledgeBaseFactoryService.class).newKnowledgeBase();
+ Assert.assertNotNull(kbase);
- }
-
+ kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());
-}
\ No newline at end of file
+ StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
+ Assert.assertNotNull(ksession);
+
+ handler = new CommandBasedServicesWSHumanTaskHandler(ksession);
+ handler.setAddress("127.0.0.1", 9123);
+
+ TestWorkItemManager manager = new TestWorkItemManager();
+ WorkItemImpl workItem = new WorkItemImpl();
+ workItem.setName("Human Task");
+ workItem.setParameter("TaskName", "TaskName");
+ workItem.setParameter("Comment", "Comment");
+ workItem.setParameter("Priority", "10");
+ workItem.setParameter("ActorId", "Darth Vader");
+ handler.executeWorkItem(workItem, manager);
+
+ Thread.sleep(500);
+
+ BlockingTaskSummaryMessageResponseHandler responseHandler = new BlockingTaskSummaryMessageResponseHandler();
+ client.getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK", responseHandler);
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+ List<TaskSummary> tasks = responseHandler.getResults();
+ Assert.assertEquals(1, tasks.size());
+ TaskSummary task = tasks.get(0);
+ Assert.assertEquals("TaskName", task.getName());
+ Assert.assertEquals(10, task.getPriority());
+ Assert.assertEquals("Comment", task.getDescription());
+ Assert.assertEquals(Status.Reserved, task.getStatus());
+ Assert.assertEquals("Darth Vader", task.getActualOwner().getId());
+
+ System.out.println("Starting task " + task.getId());
+ BlockingTaskOperationMessageResponseHandler operationResponseHandler = new BlockingTaskOperationMessageResponseHandler();
+ client.start(task.getId(), "Darth Vader", operationResponseHandler);
+ operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+ System.out.println("Started task " + task.getId());
+
+ System.out.println("Completing task " + task.getId());
+ operationResponseHandler = new BlockingTaskOperationMessageResponseHandler();
+ client.complete(task.getId(), "Darth Vader", null, operationResponseHandler);
+ operationResponseHandler.waitTillDone(15000);
+ System.out.println("Completed task " + task.getId());
+ Assert.assertTrue(manager.waitTillCompleted(DEFAULT_WAIT_TIME));
+ Thread.sleep(500);
+
+
+ }
+
+ private Object eval(Reader reader, Map<String, Object> vars) {
+ try {
+ return eval(toString(reader), vars);
+ } catch (IOException e) {
+ throw new RuntimeException("Exception Thrown", e);
+ }
+ }
+
+ private String toString(Reader reader) throws IOException {
+ int charValue = 0;
+ StringBuffer sb = new StringBuffer(1024);
+ while ((charValue = reader.read()) != -1) {
+ // result = result + (char) charValue;
+ sb.append((char) charValue);
+ }
+ return sb.toString();
+ }
+
+ private Object eval(String str, Map<String, Object> vars) {
+ ExpressionCompiler compiler = new ExpressionCompiler(str.trim());
+
+ ParserContext context = new ParserContext();
+ context.addPackageImport("org.drools.task");
+ context.addPackageImport("org.drools.task.service");
+ context.addPackageImport("org.drools.task.query");
+ context.addPackageImport("java.util");
+
+ vars.put("now", new Date());
+ return MVEL.executeExpression(compiler.compile(context), vars);
+ }
+
+
+
+}
+
+class TestWorkItemManager implements WorkItemManager {
+
+ private volatile boolean completed;
+ private volatile boolean aborted;
+ private volatile Map<String, Object> results;
+
+ public synchronized boolean waitTillCompleted(long time) {
+ if (!isCompleted()) {
+ try {
+ wait(time);
+ } catch (InterruptedException e) {
+ // swallow and return state of completed
+ }
+ }
+
+ return isCompleted();
+ }
+
+ public synchronized boolean waitTillAborted(long time) {
+ if (!isAborted()) {
+ try {
+ wait(time);
+ } catch (InterruptedException e) {
+ // swallow and return state of aborted
+ }
+ }
+
+ return isAborted();
+ }
+
+ public void abortWorkItem(long id) {
+ setAborted(true);
+ }
+
+ public synchronized boolean isAborted() {
+ return aborted;
+ }
+
+ private synchronized void setAborted(boolean aborted) {
+ this.aborted = aborted;
+ notifyAll();
+ }
+
+ public void completeWorkItem(long id, Map<String, Object> results) {
+ this.results = results;
+ setCompleted(true);
+ }
+
+ private synchronized void setCompleted(boolean completed) {
+ this.completed = completed;
+ notifyAll();
+ }
+
+ public synchronized boolean isCompleted() {
+ return completed;
+ }
+
+ public WorkItem getWorkItem(long id) {
+ return null;
+ }
+
+ public Set<WorkItem> getWorkItems() {
+ return null;
+ }
+
+ public Map<String, Object> getResults() {
+ return results;
+ }
+
+ public void internalAbortWorkItem(long id) {
+ }
+
+ public void internalAddWorkItem(WorkItem workItem) {
+ }
+
+ public void internalExecuteWorkItem(WorkItem workItem) {
+ }
+
+ public void registerWorkItemHandler(String workItemName, WorkItemHandler handler) {
+ }
+
+
+
+ }
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/ServiceAPITest.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/ServiceAPITest.java 2010-06-14 18:29:30 UTC (rev 33494)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/ServiceAPITest.java 2010-06-14 19:23:09 UTC (rev 33495)
@@ -88,6 +88,7 @@
@After
public void tearDown() {
+ server1.stop();
}
Added: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/task/MockUserInfo.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/task/MockUserInfo.java (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/task/MockUserInfo.java 2010-06-14 19:23:09 UTC (rev 33495)
@@ -0,0 +1,77 @@
+package org.drools.services.task;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import org.drools.task.Group;
+import org.drools.task.OrganizationalEntity;
+import org.drools.task.UserInfo;
+
+public class MockUserInfo implements UserInfo {
+
+ private Map<Group, List<OrganizationalEntity>> groups = new HashMap<Group, List<OrganizationalEntity>>();
+
+ private Map<OrganizationalEntity, String> emails = new HashMap<OrganizationalEntity, String>();
+
+ private Map<OrganizationalEntity, String> languages = new HashMap<OrganizationalEntity, String>();
+
+ private Map<OrganizationalEntity, String> displayNames = new HashMap<OrganizationalEntity, String>();
+
+ public Map<Group, List<OrganizationalEntity>> getGroups() {
+ return groups;
+ }
+
+ public void setGroups(Map<Group, List<OrganizationalEntity>> groups) {
+ this.groups = groups;
+ }
+
+ public Map<OrganizationalEntity, String> getEmails() {
+ return emails;
+ }
+
+ public void setEmails(Map<OrganizationalEntity, String> emails) {
+ this.emails = emails;
+ }
+
+ public String getEmailForEntity(OrganizationalEntity entity) {
+ return emails.get( entity );
+ }
+
+
+
+ public Map<OrganizationalEntity, String> getDisplayNames() {
+ return displayNames;
+ }
+
+ public void setDisplayNames(Map<OrganizationalEntity, String> displayNames) {
+ this.displayNames = displayNames;
+ }
+
+ public Map<OrganizationalEntity, String> getLanguages() {
+ return languages;
+ }
+
+ public void setLanguages(Map<OrganizationalEntity, String> languages) {
+ this.languages = languages;
+ }
+
+ public Iterator<OrganizationalEntity> getMembersForGroup(Group group) {
+ return groups.get( group ).iterator();
+ }
+
+ public boolean hasEmail(Group group) {
+ return emails.containsKey( group );
+ }
+
+ public String getDisplayName(OrganizationalEntity entity) {
+ String displayName = displayNames.get( entity );
+ return ( displayName != null ) ? displayName : entity.getId();
+ }
+
+ public String getLanguageForEntity(OrganizationalEntity entity) {
+ return languages.get( entity );
+ }
+
+
+}
Added: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/resources/META-INF/drools.email.conf
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/resources/META-INF/drools.email.conf (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/resources/META-INF/drools.email.conf 2010-06-14 19:23:09 UTC (rev 33495)
@@ -0,0 +1,5 @@
+from = from at domain.com
+replyTo = replyTo at domain.com
+mail.smtp.host = localhost
+mail.smtp.port = 25
+defaultLanguage = en-UK
\ No newline at end of file
Added: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/resources/META-INF/orm.xml
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/resources/META-INF/orm.xml (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/resources/META-INF/orm.xml 2010-06-14 19:23:09 UTC (rev 33495)
@@ -0,0 +1,546 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm orm_1_0.xsd"
+ version="1.0">
+ <named-query name="TasksAssignedAsBusinessAdministrator">
+ <query>
+select
+ new org.drools.task.query.TaskSummary(
+ t.id,
+ names.text,
+ subjects.text,
+ descriptions.text,
+ t.taskData.status,
+ t.priority,
+ t.taskData.skipable,
+ t.taskData.actualOwner,
+ t.taskData.createdBy,
+ t.taskData.createdOn,
+ t.taskData.activationTime,
+ t.taskData.expirationTime)
+from
+ Task t left join t.taskData.createdBy,
+ I18NText names,
+ I18NText subjects,
+ I18NText descriptions,
+ OrganizationalEntity businessAdministrator
+where
+ businessAdministrator.id = :userId and
+ businessAdministrator in elements ( t.peopleAssignments.businessAdministrators ) and
+
+ names.language = :language and
+ names in elements( t.names) and
+
+ (
+ subjects.language = :language and
+ subjects in elements( t.subjects)
+ or t.subjects.size = 0
+ ) and
+
+ (
+ descriptions.language = :language and
+ descriptions in elements( t.descriptions)
+ or t.descriptions.size = 0
+ ) and
+
+ t.taskData.expirationTime is null
+ </query>
+ <!-- hint name="org.hibernate.timeout" value="200"/ -->
+ </named-query>
+ <named-query name="TasksAssignedAsExcludedOwner">
+ <query>
+select
+ new org.drools.task.query.TaskSummary(
+ t.id,
+ names.text,
+ subjects.text,
+ descriptions.text,
+ t.taskData.status,
+ t.priority,
+ t.taskData.skipable,
+ t.taskData.actualOwner,
+ t.taskData.createdBy,
+ t.taskData.createdOn,
+ t.taskData.activationTime,
+ t.taskData.expirationTime)
+from
+ Task t left join t.taskData.createdBy,
+ I18NText names,
+ I18NText subjects,
+ I18NText descriptions,
+ OrganizationalEntity excludedOwners
+where
+ excludedOwners.id = :userId and
+ excludedOwners in elements ( t.peopleAssignments.excludedOwners ) and
+
+ names.language = :language and
+ names in elements( t.names) and
+
+ (
+ subjects.language = :language and
+ subjects in elements( t.subjects)
+ or t.subjects.size = 0
+ ) and
+
+ (
+ descriptions.language = :language and
+ descriptions in elements( t.descriptions)
+ or t.descriptions.size = 0
+ ) and
+
+ t.taskData.expirationTime is null
+ </query>
+ <!-- hint name="org.hibernate.timeout" value="200"/ -->
+ </named-query>
+ <named-query name="TasksAssignedAsPotentialOwner">
+ <query>
+select
+ new org.drools.task.query.TaskSummary(
+ t.id,
+ names.text,
+ subject.text,
+ descriptions.text,
+ t.taskData.status,
+ t.priority,
+ t.taskData.skipable,
+ t.taskData.actualOwner,
+ t.taskData.createdBy,
+ t.taskData.createdOn,
+ t.taskData.activationTime,
+ t.taskData.expirationTime)
+from
+ Task t
+ left join t.taskData.createdBy
+ left join t.taskData.actualOwner
+ left join t.subjects as subject,
+ I18NText names,
+ I18NText descriptions,
+ OrganizationalEntity potentialOwners
+where
+ potentialOwners.id = :userId and
+ potentialOwners in elements ( t.peopleAssignments.potentialOwners ) and
+
+ names.language = :language and
+ names in elements( t.names) and
+
+ (
+ subject.language = :language
+ or t.subjects.size = 0
+ ) and
+
+ (
+ descriptions.language = :language and
+ descriptions in elements( t.descriptions)
+ or t.descriptions.size = 0
+ ) and
+
+
+
+
+ t.taskData.status in ('Created', 'Ready', 'Reserved', 'InProgress', 'Suspended') and
+
+ t.taskData.expirationTime is null
+ </query>
+ <!-- hint name="org.hibernate.timeout" value="200"/ -->
+ </named-query>
+ <named-query name="TasksAssignedAsPotentialOwnerWithGroups">
+ <query>
+select
+ new org.drools.task.query.TaskSummary(
+ t.id,
+ names.text,
+ subjects.text,
+ descriptions.text,
+ t.taskData.status,
+ t.priority,
+ t.taskData.skipable,
+ t.taskData.actualOwner,
+ t.taskData.createdBy,
+ t.taskData.createdOn,
+ t.taskData.activationTime,
+ t.taskData.expirationTime)
+from
+ Task t left join t.taskData.createdBy left join t.taskData.actualOwner,
+ I18NText names,
+ I18NText subjects,
+ I18NText descriptions,
+ OrganizationalEntity potentialOwners
+where
+ ( potentialOwners.id = :userId or potentialOwners.id in (:groupIds) ) and
+ potentialOwners in elements ( t.peopleAssignments.potentialOwners ) and
+
+ names.language = :language and
+ names in elements( t.names) and
+
+
+ (
+ subjects.language = :language and
+ subjects in elements( t.subjects)
+ or t.subjects.size = 0
+ ) and
+
+ (
+ descriptions.language = :language and
+ descriptions in elements( t.descriptions)
+ or t.descriptions.size = 0
+ ) and
+
+ t.taskData.status in ('Created', 'Ready', 'Reserved', 'InProgress', 'Suspended') and
+
+ t.taskData.expirationTime is null
+ </query>
+ <!-- hint name="org.hibernate.timeout" value="200"/ -->
+ </named-query>
+
+ <named-query name="TasksAssignedAsPotentialOwnerByGroup">
+ <query>
+select
+ new org.drools.task.query.TaskSummary(
+ t.id,
+ names.text,
+ subjects.text,
+ descriptions.text,
+ t.taskData.status,
+ t.priority,
+ t.taskData.skipable,
+ t.taskData.actualOwner,
+ t.taskData.createdBy,
+ t.taskData.createdOn,
+ t.taskData.activationTime,
+ t.taskData.expirationTime)
+from
+ Task t left join t.taskData.createdBy left join t.taskData.actualOwner,
+ I18NText names,
+ I18NText subjects,
+ I18NText descriptions,
+ OrganizationalEntity potentialOwners
+where
+ potentialOwners.id = :groupId and
+ potentialOwners in elements ( t.peopleAssignments.potentialOwners ) and
+
+ names.language = :language and
+ names in elements( t.names) and
+
+ (
+ subjects.language = :language and
+ subjects in elements( t.subjects)
+ or t.subjects.size = 0
+ ) and
+
+ (
+ descriptions.language = :language and
+ descriptions in elements( t.descriptions)
+ or t.descriptions.size = 0
+ ) and
+
+ t.taskData.status in ('Created', 'Ready', 'Reserved', 'InProgress', 'Suspended') and
+
+ t.taskData.expirationTime is null
+ </query>
+ <!-- hint name="org.hibernate.timeout" value="200"/ -->
+ </named-query>
+
+ <named-query name="SubTasksAssignedAsPotentialOwner">
+ <query>
+select
+ new org.drools.task.query.TaskSummary(
+ t.id,
+ names.text,
+ subjects.text,
+ descriptions.text,
+ t.taskData.status,
+ t.priority,
+ t.taskData.skipable,
+ t.taskData.actualOwner,
+ t.taskData.createdBy,
+ t.taskData.createdOn,
+ t.taskData.activationTime,
+ t.taskData.expirationTime)
+from
+ Task t left join t.taskData.createdBy left join t.taskData.actualOwner,
+ I18NText names,
+ I18NText subjects,
+ I18NText descriptions,
+ OrganizationalEntity potentialOwners
+where
+ t.taskData.parentId = :parentId and
+ potentialOwners.id = :userId and
+ potentialOwners in elements ( t.peopleAssignments.potentialOwners ) and
+
+ names.language = :language and
+ names in elements( t.names) and
+
+ (
+ subjects.language = :language and
+ subjects in elements( t.subjects)
+ or t.subjects.size = 0
+ ) and
+
+ (
+ descriptions.language = :language and
+ descriptions in elements( t.descriptions)
+ or t.descriptions.size = 0
+ ) and
+
+ t.taskData.status in ('Created', 'Ready', 'Reserved', 'InProgress', 'Suspended') and
+
+ t.taskData.expirationTime is null
+ </query>
+ <!-- hint name="org.hibernate.timeout" value="200"/ -->
+ </named-query>
+
+<named-query name="GetSubTasksByParentTaskId">
+ <query>
+select
+ new org.drools.task.query.TaskSummary(
+ t.id,
+ names.text,
+ subjects.text,
+ descriptions.text,
+ t.taskData.status,
+ t.priority,
+ t.taskData.skipable,
+ t.taskData.actualOwner,
+ t.taskData.createdBy,
+ t.taskData.createdOn,
+ t.taskData.activationTime,
+ t.taskData.expirationTime)
+from
+ Task t,
+ I18NText names,
+ I18NText subjects,
+ I18NText descriptions
+
+where
+ t.taskData.parentId = :parentId and
+ names.language = :language and
+ names in elements( t.names) and
+
+ (
+ subjects.language = :language and
+ subjects in elements( t.subjects)
+ or t.subjects.size = 0
+ ) and
+
+ (
+ descriptions.language = :language and
+ descriptions in elements( t.descriptions)
+ or t.descriptions.size = 0
+ ) and
+
+ t.taskData.status in ('Created', 'Ready', 'Reserved', 'InProgress', 'Suspended') and
+
+ t.taskData.expirationTime is null
+ </query>
+ <!-- hint name="org.hibernate.timeout" value="200"/ -->
+ </named-query>
+
+
+ <named-query name="TasksAssignedAsRecipient">
+ <query>
+select
+ new org.drools.task.query.TaskSummary(
+ t.id,
+ names.text,
+ subjects.text,
+ descriptions.text,
+ t.taskData.status,
+ t.priority,
+ t.taskData.skipable,
+ t.taskData.actualOwner,
+ t.taskData.createdBy,
+ t.taskData.createdOn,
+ t.taskData.activationTime,
+ t.taskData.expirationTime)
+from
+ Task t left join t.taskData.createdBy,
+ I18NText names,
+ I18NText subjects,
+ I18NText descriptions,
+ OrganizationalEntity recipients
+where
+ recipients.id = :userId and
+ recipients in elements ( t.peopleAssignments.recipients ) and
+
+ names.language = :language and
+ names in elements( t.names) and
+
+ (
+ subjects.language = :language and
+ subjects in elements( t.subjects)
+ or t.subjects.size = 0
+ ) and
+
+ (
+ descriptions.language = :language and
+ descriptions in elements( t.descriptions)
+ or t.descriptions.size = 0
+ ) and
+
+ t.taskData.expirationTime is null
+ </query>
+ <!-- hint name="org.hibernate.timeout" value="200"/ -->
+ </named-query>
+ <named-query name="TasksAssignedAsTaskInitiator">
+ <query>
+select
+ new org.drools.task.query.TaskSummary(
+ t.id,
+ names.text,
+ subjects.text,
+ descriptions.text,
+ t.taskData.status,
+ t.priority,
+ t.taskData.skipable,
+ t.taskData.actualOwner,
+ t.taskData.createdBy,
+ t.taskData.createdOn,
+ t.taskData.activationTime,
+ t.taskData.expirationTime)
+from
+ Task t left join t.taskData.createdBy,
+ I18NText names,
+ I18NText subjects,
+ I18NText descriptions,
+ OrganizationalEntity taskInitiator
+where
+ taskInitiator.id = :userId and
+ taskInitiator = t.peopleAssignments.taskInitiator and
+
+ names.language = :language and
+ names in elements( t.names) and
+
+ (
+ subjects.language = :language and
+ subjects in elements( t.subjects)
+ or t.subjects.size = 0
+ ) and
+
+ (
+ descriptions.language = :language and
+ descriptions in elements( t.descriptions)
+ or t.descriptions.size = 0
+ ) and
+
+ t.taskData.expirationTime is null
+ </query>
+ <!-- hint name="org.hibernate.timeout" value="200"/ -->
+ </named-query>
+ <named-query name="TasksAssignedAsTaskStakeholder">
+ <query>
+select
+ new org.drools.task.query.TaskSummary(
+ t.id,
+ names.text,
+ subjects.text,
+ descriptions.text,
+ t.taskData.status,
+ t.priority,
+ t.taskData.skipable,
+ t.taskData.actualOwner,
+ t.taskData.createdBy,
+ t.taskData.createdOn,
+ t.taskData.activationTime,
+ t.taskData.expirationTime)
+from
+ Task t left join t.taskData.createdBy,
+ I18NText names,
+ I18NText subjects,
+ I18NText descriptions,
+ OrganizationalEntity taskStakeholder
+where
+ taskStakeholder.id = :userId and
+ taskStakeholder in elements ( t.peopleAssignments.taskStakeholders ) and
+
+ names.language = :language and
+ names in elements( t.names) and
+
+ (
+ subjects.language = :language and
+ subjects in elements( t.subjects)
+ or t.subjects.size = 0
+ ) and
+
+ (
+ descriptions.language = :language and
+ descriptions in elements( t.descriptions)
+ or t.descriptions.size = 0
+ ) and
+
+ t.taskData.expirationTime is null
+ </query>
+ <!-- hint name="org.hibernate.timeout" value="200"/ -->
+ </named-query>
+ <named-query name="TasksOwned">
+ <query>
+select
+ new org.drools.task.query.TaskSummary(
+ t.id,
+ names.text,
+ subjects.text,
+ descriptions.text,
+ t.taskData.status,
+ t.priority,
+ t.taskData.skipable,
+ t.taskData.actualOwner,
+ t.taskData.createdBy,
+ t.taskData.createdOn,
+ t.taskData.activationTime,
+ t.taskData.expirationTime)
+from
+ Task t left join t.taskData.createdBy,
+ I18NText names,
+ I18NText subjects,
+ I18NText descriptions
+where
+ t.taskData.actualOwner.id = :userId and
+ names in elements( t.names) and
+ names.language = :language and
+
+ (
+ subjects.language = :language and
+ subjects in elements( t.subjects)
+ or t.subjects.size = 0
+ ) and
+
+ (
+ descriptions.language = :language and
+ descriptions in elements( t.descriptions)
+ or t.descriptions.size = 0
+ ) and
+
+ t.taskData.expirationTime is null
+ </query>
+ <!-- hint name="org.hibernate.timeout" value="200"/ -->
+ </named-query>
+ <named-query name="UnescalatedDeadlines">
+ <query>
+select
+ new org.drools.task.query.DeadlineSummary(
+ t.id,
+ d.id,
+ d.date)
+from
+ Task t,
+ Deadline d
+where
+ (d in elements( t.deadlines.startDeadlines ) or d in elements( t.deadlines.endDeadlines ) ) and
+ d.escalated = false
+order by
+ d.date
+ </query>
+ <!-- hint name="org.hibernate.timeout" value="200"/ -->
+ </named-query>
+ <named-query name="TaskByWorkItemId">
+ <query>
+select
+ t
+from
+ Task t
+where
+ t.taskData.workItemId = :workItemId
+ </query>
+ <!-- hint name="org.hibernate.timeout" value="200"/ -->
+ </named-query>
+</entity-mappings>
Added: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/resources/META-INF/persistence.xml
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/resources/META-INF/persistence.xml (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/resources/META-INF/persistence.xml 2010-06-14 19:23:09 UTC (rev 33495)
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<persistence version="1.0" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd
+http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_1_0.xsd" xmlns:orm="http://java.sun.com/xml/ns/persistence/orm" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/persistence">
+ <persistence-unit name="org.drools.task">
+ <provider>org.hibernate.ejb.HibernatePersistence</provider>
+ <class>org.drools.task.Attachment</class>
+ <class>org.drools.task.Content</class>
+ <class>org.drools.task.BooleanExpression</class>
+ <class>org.drools.task.Comment</class>
+ <class>org.drools.task.Deadline</class>
+ <class>org.drools.task.Comment</class>
+ <class>org.drools.task.Deadline</class>
+ <class>org.drools.task.Delegation</class>
+ <class>org.drools.task.Escalation</class>
+ <class>org.drools.task.Group</class>
+ <class>org.drools.task.I18NText</class>
+ <class>org.drools.task.Notification</class>
+ <class>org.drools.task.EmailNotification</class>
+ <class>org.drools.task.EmailNotificationHeader</class>
+ <class>org.drools.task.PeopleAssignments</class>
+ <class>org.drools.task.Reassignment</class>
+ <class>org.drools.task.Status</class>
+ <class>org.drools.task.Task</class>
+ <class>org.drools.task.TaskData</class>
+ <class>org.drools.task.SubTasksStrategy</class>
+ <class>org.drools.task.OnParentAbortAllSubTasksEndStrategy</class>
+ <class>org.drools.task.OnAllSubTasksEndParentEndStrategy</class>
+
+ <class>org.drools.task.User</class>
+
+ <properties>
+ <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/>
+ <property name="hibernate.connection.driver_class" value="org.h2.Driver"/>
+ <property name="hibernate.connection.url" value="jdbc:h2:mem:mydb" />
+ <!-- property name="hibernate.connection.url" value="jdbc:h2:file:\dev\drools\trunk7\drools-process\drools-process-task\mydb"/ -->
+
+<!-- <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect"/>-->
+<!-- <property name="hibernate.connection.driver_class" value="org.postgresql.Driver"/> -->
+<!-- <property name="hibernate.connection.url" value="jdbc:postgresql://localhost/postgres"/>-->
+
+
+ <property name="hibernate.connection.username" value="sa"/>
+ <property name="hibernate.connection.password" value="sasa"/>
+ <property name="hibernate.connection.autocommit" value="false" />
+ <property name="hibernate.max_fetch_depth" value="3"/>
+ <property name="hibernate.hbm2ddl.auto" value="create" />
+ <property name="hibernate.show_sql" value="true" />
+ </properties>
+ </persistence-unit>
+
+</persistence>
Added: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/resources/org/drools/task/LoadGroups.mvel
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/resources/org/drools/task/LoadGroups.mvel (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/resources/org/drools/task/LoadGroups.mvel 2010-06-14 19:23:09 UTC (rev 33495)
@@ -0,0 +1,6 @@
+groups = [ 'knightsTempler' : new Group( "Knights Templer" ),
+ 'crusaders' : new Group( "Crusaders" )
+ ];
+
+return groups;
+
\ No newline at end of file
Added: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/resources/org/drools/task/LoadUsers.mvel
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/resources/org/drools/task/LoadUsers.mvel (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/resources/org/drools/task/LoadUsers.mvel 2010-06-14 19:23:09 UTC (rev 33495)
@@ -0,0 +1,14 @@
+users = [ 'darth' : new User('Darth Vader'),
+ 'bobba' : new User( 'Bobba Fet'), 'jabba' : new User('Jabba Hutt'),
+ 'dalai' : new User('Dalai Lama'), 'christoper' : new User('Christoper Columbus'),
+ 'stuart' : new User('Stuart Little'), 'jane' : new User('Jane Austin'),
+ 'peter' : new User('Peter Parker'), 'steve' : new User('Steve Rogers'),
+ 'sly' : new User('Sly Stalone'), 'liz' : new User('Elizabeth Windsor'),
+ 'bruce' : new User('Bruce Wayne' ), 'tony' : new User('Tony Stark'),
+ 'luke' : new User('Luke Cage'), 'admin' : new User('Administrator'),
+ 'krisv' : new User('krisv'), 'john' : new User('john'),
+ 'mary' : new User('mary'), 'sales' : new User('sales-rep')
+ ];
+
+return users;
+
\ No newline at end of file
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/CommandBasedServicesWSHumanTaskHandler.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/CommandBasedServicesWSHumanTaskHandler.java 2010-06-14 18:29:30 UTC (rev 33494)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/CommandBasedServicesWSHumanTaskHandler.java 2010-06-14 19:23:09 UTC (rev 33495)
@@ -74,6 +74,9 @@
this.session = session;
this.address = new InetSocketAddress(ipAddress, port);
}
+ public void setAddress(String ipAddress, int port){
+ this.address = new InetSocketAddress(ipAddress, port);
+ }
public void connect() throws RemoteException {
if (connector == null) {
More information about the jboss-svn-commits
mailing list