[jboss-svn-commits] JBL Code SVN: r33116 - in labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid: drools-grid-local and 38 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu May 27 09:28:57 EDT 2010


Author: salaboy21
Date: 2010-05-27 09:28:51 -0400 (Thu, 27 May 2010)
New Revision: 33116

Added:
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/pom.xml
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/resources/
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/test/
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/test/java/
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/test/java/org/
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/test/java/org/drools/
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/test/java/org/drools/grid/
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/test/java/org/drools/grid/ExecutionNodeBase.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/test/java/org/drools/grid/LocalExecutionNodeTest.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/test/resources/
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/pom.xml
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/DirectoryLookupProviderRemoteClient.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/KnowledgeBaseProviderRemoteClient.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/KnowledgeBaseRemoteClient.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/KnowledgeBuilderProviderRemoteClient.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/KnowledgeBuilderRemoteClient.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/ProcessInstanceRemoteClient.java
   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/StatefulKnowledgeSessionRemoteClient.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/WorkItemManagerRemoteClient.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/internal/
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/internal/commands/
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/internal/commands/GetWorkItemManagerCommand.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/internal/commands/StartProcessRemoteCommand.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/test/
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/test/java/
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/test/java/org/
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/
   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/src/
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/ClientGenericMessageReceiverImpl.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/MinaAcceptor.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/MinaIoHandler.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/MinaIoWriter.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/MinaNodeConnector.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/resources/
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/test/
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/test/java/
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/test/java/org/
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/test/java/org/drools/
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/test/java/org/drools/grid/
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/test/java/org/drools/grid/ExecutionNodeBase.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/test/java/org/drools/grid/RemoteExecutionNodeTest.java
Modified:
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/pom.xml
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/pom.xml
   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/GenericEventTransport.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/HumanTaskFactoryService.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/HumanTaskServiceImpl.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/HumanTaskServiceProviderRemoteClient.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/TaskClientMessageHandlerImpl.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/TaskServerMessageHandlerImpl.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/eventmessaging/EventMessageResponseHandler.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/responseHandlers/BlockingAddAttachmentMessageResponseHandler.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/responseHandlers/BlockingAddCommentMessageResponseHandler.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/responseHandlers/BlockingAddTaskMessageResponseHandler.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/responseHandlers/BlockingDeleteAttachmentMessageResponseHandler.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/responseHandlers/BlockingDeleteCommentMessageResponseHandler.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/responseHandlers/BlockingEventMessageResponseHandler.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/responseHandlers/BlockingGetContentMessageResponseHandler.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/responseHandlers/BlockingGetTaskMessageResponseHandler.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/responseHandlers/BlockingSetContentMessageResponseHandler.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/responseHandlers/BlockingTaskOperationMessageResponseHandler.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/responseHandlers/BlockingTaskSummaryMessageResponseHandler.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/pom.xml
Log:
moving everything and refactoring apis


Property changes on: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local
___________________________________________________________________
Name: svn:ignore
   + target


Added: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/pom.xml
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/pom.xml	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/pom.xml	2010-05-27 13:28:51 UTC (rev 33116)
@@ -0,0 +1,123 @@
+<?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>
+    
+    <artifactId>drools-grid-local</artifactId>
+    <version>5.1.0.SNAPSHOT</version>
+    <name>Drools :: Grid :: Local Impl</name>
+    
+    <dependencies>
+       
+
+        <dependency>
+            <groupId>org.drools</groupId>
+            <artifactId>drools-api</artifactId>
+            <type>jar</type>
+        </dependency>
+
+        <dependency>
+            <groupId>org.drools</groupId>
+            <artifactId>drools-grid-api</artifactId>
+            <version>5.1.0.SNAPSHOT</version>
+            <type>jar</type>
+        </dependency>
+
+        
+
+     <!-- Test deps -->
+
+      <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.8.1</version>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.drools</groupId>
+            <artifactId>drools-persistence-jpa</artifactId>
+            <version>5.1.0.SNAPSHOT</version>
+            <scope>test</scope>
+            <type>jar</type>
+        </dependency>
+
+        <dependency>
+            <groupId>org.codehaus.btm</groupId>
+            <artifactId>btm</artifactId>
+            <version>1.3.3</version>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>javax.transaction</groupId>
+            <artifactId>jta</artifactId>
+            <version>1.1</version>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.codehaus.btm</groupId>
+            <artifactId>btm</artifactId>
+            <version>1.3.3</version>
+            <scope>test</scope>
+        </dependency>
+          <!-- Persistence Provider: Hibernate -->
+        <dependency>
+            <groupId>org.hibernate</groupId>
+            <artifactId>hibernate-entitymanager</artifactId>
+            <version>3.4.0.GA</version>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.hibernate</groupId>
+            <artifactId>hibernate-annotations</artifactId>
+            <version>3.4.0.GA</version>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.hibernate</groupId>
+            <artifactId>hibernate-commons-annotations</artifactId>
+            <version>3.1.0.GA</version>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.hibernate</groupId>
+            <artifactId>hibernate-core</artifactId>
+            <version>3.3.0.SP1</version>
+            <scope>test</scope>
+        </dependency>
+
+         <!-- DB H2 -->
+        <dependency>
+            <groupId>com.h2database</groupId>
+            <artifactId>h2</artifactId>
+            <version>1.2.128</version>
+            <scope>test</scope>
+        </dependency>
+
+          <!-- logging -->
+
+
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-jdk14</artifactId>
+            <version>1.5.10</version>
+            <scope>test</scope>
+        </dependency>
+        
+    </dependencies>
+</project>

Copied: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/test/java/org/drools/grid/ExecutionNodeBase.java (from rev 33093, labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-core/src/test/java/org/drools/grid/ExecutionNodeBaseTest.java)
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/test/java/org/drools/grid/ExecutionNodeBase.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/test/java/org/drools/grid/ExecutionNodeBase.java	2010-05-27 13:28:51 UTC (rev 33116)
@@ -0,0 +1,218 @@
+/*
+ *  Copyright 2010 salaboy.
+ * 
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ * 
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *  under the License.
+ */
+
+package org.drools.grid;
+
+
+import org.drools.KnowledgeBase;
+import org.drools.KnowledgeBaseFactoryService;
+import org.drools.builder.DirectoryLookupFactoryService;
+import org.drools.builder.KnowledgeBuilder;
+import org.drools.builder.KnowledgeBuilderFactoryService;
+import org.drools.builder.ResourceType;
+import org.drools.command.runtime.rule.FireAllRulesCommand;
+import org.drools.io.ResourceFactory;
+import org.drools.runtime.ExecutionResults;
+import org.drools.runtime.StatefulKnowledgeSession;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+/**
+ *
+ * @author salaboy
+ */
+
+public abstract class ExecutionNodeBase {
+
+    protected ExecutionNode node;
+    
+
+    
+    public ExecutionNodeBase() {
+        
+    }
+
+
+    @Test
+    public void fireAllRules(){
+
+        String str = "";
+        str += "package org.drools \n";
+        str += "global java.util.List list \n";
+        str += "rule rule1 \n";
+        str += "    dialect \"java\" \n";
+        str += "when \n";
+        str += "then \n";
+        str += "    System.out.println( \"hello1!!!\" ); \n";
+        str += "end \n";
+        str += "rule rule2 \n";
+        str += "    dialect \"java\" \n";
+        str += "when \n";
+        str += "then \n";
+        str += "    System.out.println( \"hello2!!!\" ); \n";
+        str += "end \n";
+
+         
+        KnowledgeBuilder kbuilder =
+                node.get(KnowledgeBuilderFactoryService.class).newKnowledgeBuilder();
+        kbuilder.add( ResourceFactory.newByteArrayResource( str.getBytes() ),
+                      ResourceType.DRL );
+
+        if ( kbuilder.hasErrors() ) {
+            System.out.println( "Errors: " + kbuilder.getErrors() );
+        }
+
+        KnowledgeBase kbase =
+                node.get(KnowledgeBaseFactoryService.class).newKnowledgeBase();
+        Assert.assertNotNull(kbase);
+
+        kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
+
+        StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
+        Assert.assertNotNull(ksession);
+
+        int fired = ksession.fireAllRules();
+        Assert.assertEquals( 2, fired );
+
+
+    }
+    @Test
+    public void testExecute() throws Exception {
+        
+        String str = "";
+        str += "package org.drools \n";
+        str += "global java.util.List list \n";
+        str += "rule rule1 \n";
+        str += "    dialect \"java\" \n";
+        str += "when \n";
+        str += "then \n";
+        str += "    System.out.println( \"hello1!!!\" ); \n";
+        str += "end \n";
+        str += "rule rule2 \n";
+        str += "    dialect \"java\" \n";
+        str += "when \n";
+        str += "then \n";
+        str += "    System.out.println( \"hello2!!!\" ); \n";
+        str += "end \n";
+
+        KnowledgeBuilder kbuilder = node.get(KnowledgeBuilderFactoryService.class).newKnowledgeBuilder();
+        kbuilder.add( ResourceFactory.newByteArrayResource( str.getBytes() ),
+                      ResourceType.DRL );
+
+        if ( kbuilder.hasErrors() ) {
+            System.out.println( "Errors: " + kbuilder.getErrors() );
+        }
+
+        KnowledgeBase kbase = node.get(KnowledgeBaseFactoryService.class).newKnowledgeBase();
+        Assert.assertNotNull(kbase);
+
+        kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
+
+        StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
+
+        ExecutionResults results = ksession.execute( new FireAllRulesCommand( "fired" ) );
+
+        Assert.assertEquals( 2,
+                      (int) (Integer) results.getValue( "fired" ) );
+    }
+    @Test
+    public void testNamedService() throws Exception {
+        String str = "";
+        str += "package org.drools \n";
+        str += "global java.util.List list \n";
+        str += "rule rule1 \n";
+        str += "    dialect \"java\" \n";
+        str += "when \n";
+        str += "then \n";
+        str += "    System.out.println( \"hello1!!!\" ); \n";
+        str += "end \n";
+        str += "rule rule2 \n";
+        str += "    dialect \"java\" \n";
+        str += "when \n";
+        str += "then \n";
+        str += "    System.out.println( \"hello2!!!\" ); \n";
+        str += "end \n";
+
+        KnowledgeBuilder kbuilder = node.get(KnowledgeBuilderFactoryService.class).newKnowledgeBuilder();
+        
+        kbuilder.add( ResourceFactory.newByteArrayResource( str.getBytes() ),
+                      ResourceType.DRL );
+
+        if ( kbuilder.hasErrors() ) {
+            System.out.println( "Errors: " + kbuilder.getErrors() );
+        }
+
+        KnowledgeBase kbase = node.get(KnowledgeBaseFactoryService.class).newKnowledgeBase();
+        Assert.assertNotNull(kbase);
+
+
+        kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
+
+        StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
+
+        node.get(DirectoryLookupFactoryService.class).register( "ksession1",
+                              ksession );
+
+        ExecutionResults results = node.get(DirectoryLookupFactoryService.class).lookup( "ksession1" ).execute( new FireAllRulesCommand( "fired" ) );
+
+        Assert.assertEquals( 2,
+                      (int) (Integer) results.getValue( "fired" ) );
+    }
+    @Test
+    public void testVsmPipeline() throws Exception {
+        String str = "";
+        str += "package org.drools \n";
+        str += "global java.util.List list \n";
+        str += "rule rule1 \n";
+        str += "    dialect \"java\" \n";
+        str += "when \n";
+        str += "then \n";
+        str += "    System.out.println( \"hello1!!!\" ); \n";
+        str += "end \n";
+        str += "rule rule2 \n";
+        str += "    dialect \"java\" \n";
+        str += "when \n";
+        str += "then \n";
+        str += "    System.out.println( \"hello2!!!\" ); \n";
+        str += "end \n";
+
+        KnowledgeBuilder kbuilder = node.get(KnowledgeBuilderFactoryService.class).newKnowledgeBuilder();
+        
+        kbuilder.add( ResourceFactory.newByteArrayResource( str.getBytes() ),
+                      ResourceType.DRL );
+
+        if ( kbuilder.hasErrors() ) {
+            System.out.println( "Errors: " + kbuilder.getErrors() );
+        }
+
+        KnowledgeBase kbase = node.get(KnowledgeBaseFactoryService.class).newKnowledgeBase();
+        Assert.assertNotNull(kbase);
+
+        kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
+
+        StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
+
+        node.get(DirectoryLookupFactoryService.class).register( "ksession1",
+                              ksession );
+
+        ExecutionResults results = node.get(DirectoryLookupFactoryService.class).lookup( "ksession1" ).execute( new FireAllRulesCommand( "fired" ) );
+
+        Assert.assertEquals( 2, (int ) ( Integer) results.getValue( "fired" ) );
+    }
+  
+
+}

Copied: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/test/java/org/drools/grid/LocalExecutionNodeTest.java (from rev 32892, labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-core/src/test/java/org/drools/grid/LocalExecutionNodeTest.java)
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/test/java/org/drools/grid/LocalExecutionNodeTest.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/test/java/org/drools/grid/LocalExecutionNodeTest.java	2010-05-27 13:28:51 UTC (rev 33116)
@@ -0,0 +1,142 @@
+/*
+ *  Copyright 2010 salaboy.
+ * 
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ * 
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *  under the License.
+ */
+
+package org.drools.grid;
+
+
+import bitronix.tm.TransactionManagerServices;
+import bitronix.tm.resource.jdbc.PoolingDataSource;
+import javax.persistence.EntityManagerFactory;
+import javax.persistence.Persistence;
+import junit.framework.Assert;
+import org.drools.KnowledgeBase;
+import org.drools.KnowledgeBaseFactory;
+import org.drools.KnowledgeBaseFactoryService;
+import org.drools.base.MapGlobalResolver;
+import org.drools.builder.JPAKnowledgeFactoryService;
+import org.drools.builder.KnowledgeBuilder;
+import org.drools.builder.KnowledgeBuilderFactoryService;
+import org.drools.builder.ResourceType;
+import org.drools.grid.local.LocalConnection;
+import org.drools.io.ResourceFactory;
+import org.drools.persistence.jpa.grid.JPAKnowledgeProviderLocalClient;
+import org.drools.runtime.Environment;
+import org.drools.runtime.EnvironmentName;
+import org.drools.runtime.StatefulKnowledgeSession;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+/**
+ *
+ * @author salaboy
+ */
+public class LocalExecutionNodeTest extends ExecutionNodeBase{
+
+    private static EntityManagerFactory entityManagerFactory;
+    private static PoolingDataSource dataSource;
+    private GenericConnection connection;
+    public LocalExecutionNodeTest() {
+    }
+
+    @BeforeClass
+    public static void initializeEntityManager() {
+        System.out.println("Initializing Entity Manager");
+        entityManagerFactory = Persistence.createEntityManagerFactory("org.drools.persistence.jpa");
+    }
+
+    @BeforeClass
+    public static void initializeDataSource() {
+        System.out.println("Initializing Datasource");
+        dataSource = new PoolingDataSource();
+        dataSource.setUniqueName( "jdbc/testDS1" );
+        dataSource.setClassName( "org.h2.jdbcx.JdbcDataSource" );
+        dataSource.setMaxPoolSize( 3 );
+        dataSource.setAllowLocalTransactions( true );
+        dataSource.getDriverProperties().put( "user",
+                                       "sa" );
+        dataSource.getDriverProperties().put( "password",
+                                       "sasa" );
+        dataSource.getDriverProperties().put( "URL",
+                                       "jdbc:h2:mem:mydb" );
+        dataSource.init();
+    }
+
+    @Before
+    public void configureNode() {
+        
+        connection = new LocalConnection();
+        node = connection.getExecutionNode();
+        node.set(JPAKnowledgeFactoryService.class, new JPAKnowledgeProviderLocalClient());
+    }
+    
+    private Environment newEnvironment() {
+        Environment environment = KnowledgeBaseFactory.newEnvironment();
+        environment.set(EnvironmentName.ENTITY_MANAGER_FACTORY, entityManagerFactory);
+        environment.set(EnvironmentName.GLOBALS, new MapGlobalResolver());
+        environment.set(EnvironmentName.TRANSACTION_MANAGER, TransactionManagerServices.getTransactionManager());
+
+        return environment;
+    }
+
+    @Test
+    public void persistenceTest(){
+        Environment env = newEnvironment();
+         String str = "";
+        str += "package org.drools \n";
+        str += "global java.util.List list \n";
+        str += "rule rule1 \n";
+        str += "    dialect \"java\" \n";
+        str += "when \n";
+        str += "then \n";
+        str += "    System.out.println( \"hello1!!!\" ); \n";
+        str += "end \n";
+        str += "rule rule2 \n";
+        str += "    dialect \"java\" \n";
+        str += "when \n";
+        str += "then \n";
+        str += "    System.out.println( \"hello2!!!\" ); \n";
+        str += "end \n";
+
+
+        KnowledgeBuilder kbuilder =
+                node.get(KnowledgeBuilderFactoryService.class).newKnowledgeBuilder();
+        kbuilder.add( ResourceFactory.newByteArrayResource( str.getBytes() ),
+                      ResourceType.DRL );
+
+        if ( kbuilder.hasErrors() ) {
+            System.out.println( "Errors: " + kbuilder.getErrors() );
+        }
+
+        KnowledgeBase kbase =
+                node.get(KnowledgeBaseFactoryService.class).newKnowledgeBase();
+        Assert.assertNotNull(kbase);
+
+        kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
+
+
+        StatefulKnowledgeSession ksession = node
+                                                .get(JPAKnowledgeFactoryService.class)
+                                                .newStatefulKnowledgeSession(kbase, null, env);
+
+        Assert.assertNotNull(ksession);
+
+    }
+   
+
+
+}
\ No newline at end of file


Property changes on: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api
___________________________________________________________________
Name: svn:ignore
   + target


Added: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/pom.xml
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/pom.xml	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/pom.xml	2010-05-27 13:28:51 UTC (rev 33116)
@@ -0,0 +1,37 @@
+<?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>
+  
+  <artifactId>drools-grid-remote-api</artifactId>
+  <version>5.1.0.SNAPSHOT</version>
+  <name>Drools :: Grid :: Remote API</name>
+  
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>4.8.1</version>
+      <scope>test</scope>
+    </dependency>
+    <!-- Drools Runtime -->
+        <dependency>
+            <groupId>org.drools</groupId>
+            <artifactId>drools-api</artifactId>
+        </dependency>
+
+
+
+        <dependency>
+            <groupId>org.drools</groupId>
+            <artifactId>drools-grid-api</artifactId>
+            <version>5.1.0.SNAPSHOT</version>
+        </dependency>
+
+  </dependencies>
+</project>

Copied: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/DirectoryLookupProviderRemoteClient.java (from rev 33093, labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-core/src/main/java/org/drools/grid/remote/DirectoryLookupProviderRemoteClient.java)
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/DirectoryLookupProviderRemoteClient.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/DirectoryLookupProviderRemoteClient.java	2010-05-27 13:28:51 UTC (rev 33116)
@@ -0,0 +1,121 @@
+/*
+ *  Copyright 2010 salaboy.
+ * 
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ * 
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *  under the License.
+ */
+package org.drools.grid.remote;
+
+import java.rmi.RemoteException;
+import java.util.Map;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import org.drools.builder.DirectoryLookupFactoryService;
+import org.drools.command.FinishedCommand;
+import org.drools.command.KnowledgeContextResolveFromContextCommand;
+import org.drools.runtime.CommandExecutor;
+import org.drools.runtime.ExecutionResults;
+import org.drools.runtime.StatefulKnowledgeSession;
+import org.drools.grid.internal.commands.LookupCommand;
+import org.drools.grid.internal.commands.RegisterCommand;
+import org.drools.grid.GenericConnection;
+import org.drools.grid.GenericNodeConnector;
+import org.drools.grid.internal.Message;
+import org.drools.grid.internal.MessageSession;
+
+/**
+ *
+ * @author salaboy
+ */
+public class DirectoryLookupProviderRemoteClient implements DirectoryLookupFactoryService {
+
+    
+    private GenericNodeConnector client;
+    private GenericConnection connection;
+    private MessageSession messageSession;
+
+    public DirectoryLookupProviderRemoteClient(GenericNodeConnector client, GenericConnection connection) {
+        this.client = client;
+        this.messageSession = new MessageSession();
+        this.connection = connection;
+    }
+
+    public void register(String identifier,
+            CommandExecutor executor) {
+        try {
+            String commandId = "client.lookup" + messageSession.getNextId();
+            String kresultsId = "kresults_" + messageSession.getSessionId();
+            int type;
+            if (executor instanceof StatefulKnowledgeSession) {
+                type = 0;
+            } else {
+                throw new IllegalArgumentException("Type is not supported for registration");
+            }
+            Message msg = new Message(messageSession.getSessionId(), messageSession.getCounter().incrementAndGet(), false, new KnowledgeContextResolveFromContextCommand(new RegisterCommand(identifier, ((StatefulKnowledgeSessionRemoteClient) executor).getInstanceId(), type), null, null, null, null));
+
+
+            //System.out.println("Registering " + identifier + " - - " + client.getId());
+            connection.getDirectoryNode(null).register(identifier, client.getId());
+            try {
+                Object object = client.write(msg).getPayload();
+                if (!(object instanceof FinishedCommand)) {
+                    throw new RuntimeException("Response was not correctly ended");
+                }
+            } catch (Exception e) {
+                throw new RuntimeException("Unable to execute message", e);
+            }
+        } catch (RemoteException ex) {
+            Logger.getLogger(DirectoryLookupProviderRemoteClient.class.getName()).log(Level.SEVERE, null, ex);
+        }
+
+    }
+
+    public CommandExecutor lookup(String identifier) {
+
+        try {
+            String commandId = "client.lookup" + messageSession.getNextId();
+            String kresultsId = "kresults_" + messageSession.getSessionId();
+            Message msg = new Message(messageSession.getSessionId(), messageSession.getCounter().incrementAndGet(), false, new KnowledgeContextResolveFromContextCommand(new LookupCommand(identifier, commandId), null, null, null, kresultsId));
+            //System.out.println("Looking up the session with identifier = " + identifier);
+            client = connection.getDirectoryNode(null).lookup(identifier);
+            try {
+                Object object = client.write(msg).getPayload();
+                if (object == null) {
+                    throw new RuntimeException("Response was not correctly received");
+                }
+                String value = (String) ((ExecutionResults) object).getValue(commandId);
+                String type = String.valueOf(value.charAt(0));
+                String instanceId = value.substring(2);
+                CommandExecutor executor = null;
+                switch (Integer.parseInt(type)) {
+                    case 0: {
+                        executor = new StatefulKnowledgeSessionRemoteClient(instanceId, client, messageSession);
+                        break;
+                    }
+                    default: {
+                    }
+                }
+                return executor;
+            } catch (Exception e) {
+                throw new RuntimeException("Unable to execute message", e);
+            }
+        } catch (RemoteException ex) {
+            Logger.getLogger(DirectoryLookupProviderRemoteClient.class.getName()).log(Level.SEVERE, null, ex);
+        }
+        return null;
+    }
+
+    public Map<String, Map<String, String>> getDirectoryMap() {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+}

Copied: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/KnowledgeBaseProviderRemoteClient.java (from rev 33093, labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-core/src/main/java/org/drools/grid/remote/KnowledgeBaseProviderRemoteClient.java)
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/KnowledgeBaseProviderRemoteClient.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/KnowledgeBaseProviderRemoteClient.java	2010-05-27 13:28:51 UTC (rev 33116)
@@ -0,0 +1,98 @@
+package org.drools.grid.remote;
+
+import java.util.Properties;
+import java.util.UUID;
+
+import org.drools.KnowledgeBase;
+import org.drools.KnowledgeBaseConfiguration;
+import org.drools.KnowledgeBaseFactoryService;
+import org.drools.command.FinishedCommand;
+import org.drools.command.NewKnowledgeBaseCommand;
+import org.drools.command.SetVariableCommand;
+import org.drools.runtime.Environment;
+import org.drools.runtime.KnowledgeSessionConfiguration;
+import org.drools.grid.GenericNodeConnector;
+import org.drools.grid.internal.Message;
+import org.drools.grid.internal.MessageSession;
+
+public class KnowledgeBaseProviderRemoteClient
+    implements
+    KnowledgeBaseFactoryService {
+    
+    private GenericNodeConnector client;
+    private MessageSession          messageSession;
+    public KnowledgeBaseProviderRemoteClient(GenericNodeConnector client) {
+         this.client = client;
+         this.messageSession = new MessageSession();
+    }
+
+    public Environment newEnvironment() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public KnowledgeBase newKnowledgeBase() {
+        return newKnowledgeBase( ( KnowledgeBaseConfiguration ) null );
+    }
+
+    public KnowledgeBase newKnowledgeBase(KnowledgeBaseConfiguration conf) {
+        
+
+        String localId = UUID.randomUUID().toString();
+
+        Message msg = new Message( messageSession.getSessionId(),
+                                   messageSession.counter.incrementAndGet(),
+                                   false,
+                                   new SetVariableCommand( "__TEMP__",
+                                                           localId,
+                                                           new NewKnowledgeBaseCommand( null ) ) );
+        try {
+            Object object = client.write( msg ).getPayload();
+
+            if ( !(object instanceof FinishedCommand) ) {
+                throw new RuntimeException( "Response was not correctly ended" );
+            }
+
+        } catch ( Exception e ) {
+            throw new RuntimeException( "Unable to execute message",
+                                        e );
+        }
+
+        return new KnowledgeBaseRemoteClient( localId,
+                                              client, messageSession );
+
+    }
+
+    public KnowledgeBaseConfiguration newKnowledgeBaseConfiguration() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public KnowledgeBaseConfiguration newKnowledgeBaseConfiguration(Properties properties,
+                                                                    ClassLoader classLoader) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public KnowledgeSessionConfiguration newKnowledgeSessionConfiguration() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public KnowledgeSessionConfiguration newKnowledgeSessionConfiguration(Properties properties) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public KnowledgeBase newKnowledgeBase(String kbaseId) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public KnowledgeBase newKnowledgeBase(String kbaseId,
+                                          KnowledgeBaseConfiguration conf) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+}

Copied: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/KnowledgeBaseRemoteClient.java (from rev 33093, labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-core/src/main/java/org/drools/grid/remote/KnowledgeBaseRemoteClient.java)
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/KnowledgeBaseRemoteClient.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/KnowledgeBaseRemoteClient.java	2010-05-27 13:28:51 UTC (rev 33116)
@@ -0,0 +1,178 @@
+package org.drools.grid.remote;
+
+import java.util.Collection;
+import java.util.UUID;
+
+import org.drools.KnowledgeBase;
+import org.drools.command.FinishedCommand;
+import org.drools.command.KnowledgeBaseAddKnowledgePackagesCommand;
+import org.drools.command.KnowledgeContextResolveFromContextCommand;
+import org.drools.command.NewStatefulKnowledgeSessionCommand;
+import org.drools.command.SetVariableCommand;
+import org.drools.definition.KnowledgePackage;
+import org.drools.definition.process.Process;
+import org.drools.definition.rule.Rule;
+import org.drools.definition.type.FactType;
+import org.drools.event.knowledgebase.KnowledgeBaseEventListener;
+import org.drools.runtime.Environment;
+import org.drools.runtime.KnowledgeSessionConfiguration;
+import org.drools.runtime.StatefulKnowledgeSession;
+import org.drools.runtime.StatelessKnowledgeSession;
+import org.drools.grid.internal.CollectionClient;
+import org.drools.grid.GenericNodeConnector;
+import org.drools.grid.internal.Message;
+import org.drools.grid.internal.MessageSession;
+
+public class KnowledgeBaseRemoteClient
+    implements
+    KnowledgeBase {
+
+
+    private GenericNodeConnector       client;
+    private MessageSession              messageSession;
+    private String                     instanceId;
+
+    public KnowledgeBaseRemoteClient(String instanceId,
+                                     GenericNodeConnector client, MessageSession messageSession) {
+        this.instanceId = instanceId;
+        this.client = client;
+        this.messageSession = messageSession;
+    }
+
+    public void addKnowledgePackages(Collection<KnowledgePackage> kpackages) {
+        String kresultsId = "kresults_" + messageSession.getSessionId();
+
+        String kuilderInstanceId = ((CollectionClient<KnowledgePackage>) kpackages).getParentInstanceId();
+        Message msg = new Message( messageSession.getSessionId(),
+                                   messageSession.counter.incrementAndGet(),
+                                   false,
+                                   new KnowledgeContextResolveFromContextCommand( new KnowledgeBaseAddKnowledgePackagesCommand(),
+                                                                                  kuilderInstanceId,
+                                                                                  instanceId,
+                                                                                  null,
+                                                                                  kresultsId ) );
+        
+        try {
+            Object object = client.write( msg ).getPayload();
+
+            if ( !(object instanceof FinishedCommand) ) {
+                throw new RuntimeException( "Response was not correctly ended" );
+            }
+
+        } catch ( Exception e ) {
+            throw new RuntimeException( "Unable to execute message",
+                                        e );
+        }
+    }
+
+    public FactType getFactType(String packageName,
+                                String typeName) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public KnowledgePackage getKnowledgePackage(String packageName) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public Collection<KnowledgePackage> getKnowledgePackages() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public Process getProcess(String processId) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public Rule getRule(String packageName,
+                        String ruleName) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public StatefulKnowledgeSession newStatefulKnowledgeSession() {
+        return newStatefulKnowledgeSession( null,
+                                            null );
+    }
+
+    public StatefulKnowledgeSession newStatefulKnowledgeSession(KnowledgeSessionConfiguration conf,
+                                                                Environment environment) {
+        String kresultsId = "kresults_" + messageSession.getSessionId();
+
+        String localId = UUID.randomUUID().toString();
+
+        Message msg = new Message( messageSession.getSessionId(),
+                                   messageSession.counter.incrementAndGet(),
+                                   false,
+                                   new SetVariableCommand( "__TEMP__",
+                                                           localId,
+                                                           new KnowledgeContextResolveFromContextCommand( new NewStatefulKnowledgeSessionCommand( null ),
+                                                                                                          null,
+                                                                                                          instanceId,
+                                                                                                          null,
+                                                                                                          kresultsId ) ) );
+
+        try {
+            Object object = client.write( msg ).getPayload();
+            
+            if ( !(object instanceof FinishedCommand) ) {
+                throw new RuntimeException( "Response was not correctly ended" );
+            }
+
+        } catch ( Exception e ) {
+            throw new RuntimeException( "Unable to execute message",
+                                        e );
+        }
+
+        return new StatefulKnowledgeSessionRemoteClient( localId,
+                                                         client, messageSession );
+    }
+
+    public StatelessKnowledgeSession newStatelessKnowledgeSession(KnowledgeSessionConfiguration conf) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public StatelessKnowledgeSession newStatelessKnowledgeSession() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public void removeKnowledgePackage(String packageName) {
+        // TODO Auto-generated method stub
+
+    }
+
+    public void removeProcess(String processId) {
+        // TODO Auto-generated method stub
+
+    }
+
+    public void removeRule(String packageName,
+                           String ruleName) {
+        // TODO Auto-generated method stub
+
+    }
+
+    public void addEventListener(KnowledgeBaseEventListener listener) {
+        // TODO Auto-generated method stub
+
+    }
+
+    public Collection<KnowledgeBaseEventListener> getKnowledgeBaseEventListeners() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public void removeEventListener(KnowledgeBaseEventListener listener) {
+        // TODO Auto-generated method stub
+
+    }
+
+	public void removeFunction(String packageName, String ruleName) {
+		// TODO Auto-generated method stub
+	}
+
+}

Copied: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/KnowledgeBuilderProviderRemoteClient.java (from rev 33093, labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-core/src/main/java/org/drools/grid/remote/KnowledgeBuilderProviderRemoteClient.java)
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/KnowledgeBuilderProviderRemoteClient.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/KnowledgeBuilderProviderRemoteClient.java	2010-05-27 13:28:51 UTC (rev 33116)
@@ -0,0 +1,91 @@
+/**
+ * 
+ */
+package org.drools.grid.remote;
+
+import java.util.Properties;
+import java.util.UUID;
+
+import org.drools.KnowledgeBase;
+import org.drools.builder.DecisionTableConfiguration;
+import org.drools.builder.KnowledgeBuilder;
+import org.drools.builder.KnowledgeBuilderConfiguration;
+import org.drools.builder.KnowledgeBuilderFactoryService;
+import org.drools.command.FinishedCommand;
+import org.drools.command.SetVariableCommand;
+import org.drools.command.builder.NewKnowledgeBuilderCommand;
+import org.drools.grid.GenericNodeConnector;
+import org.drools.grid.internal.Message;
+import org.drools.grid.internal.MessageSession;
+
+public class KnowledgeBuilderProviderRemoteClient
+    implements
+    KnowledgeBuilderFactoryService {
+    
+    private GenericNodeConnector client;
+    private MessageSession messageSession;
+    public KnowledgeBuilderProviderRemoteClient(GenericNodeConnector client) {
+        
+        this.messageSession = new MessageSession();
+        this.client = client;
+
+    }
+
+    public DecisionTableConfiguration newDecisionTableConfiguration() {
+        return null;
+    }
+
+    public KnowledgeBuilder newKnowledgeBuilder() {
+        String localId = UUID.randomUUID().toString();
+
+        Message msg = new Message( messageSession.getSessionId(),
+                                   messageSession.counter.incrementAndGet(),
+                                   false,
+                                   new SetVariableCommand( "__TEMP__",
+                                                           localId,
+                                                           new NewKnowledgeBuilderCommand( null ) ) );
+
+        try {
+            Object object = client.write( msg ).getPayload();
+
+            if ( !(object instanceof FinishedCommand) ) {
+                throw new RuntimeException( "Response was not correctly ended" );
+            }
+
+        } catch ( Exception e ) {
+            throw new RuntimeException( "Unable to execute message",
+                                        e );
+        }
+
+        return new KnowledgeBuilderRemoteClient( localId,
+                                                 client, messageSession );
+    }
+
+    public KnowledgeBuilder newKnowledgeBuilder(KnowledgeBuilderConfiguration conf) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public KnowledgeBuilder newKnowledgeBuilder(KnowledgeBase kbase) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public KnowledgeBuilder newKnowledgeBuilder(KnowledgeBase kbase,
+                                                KnowledgeBuilderConfiguration conf) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public KnowledgeBuilderConfiguration newKnowledgeBuilderConfiguration() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public KnowledgeBuilderConfiguration newKnowledgeBuilderConfiguration(Properties properties,
+                                                                          ClassLoader classLoader) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+}
\ No newline at end of file

Copied: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/KnowledgeBuilderRemoteClient.java (from rev 33093, labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-core/src/main/java/org/drools/grid/remote/KnowledgeBuilderRemoteClient.java)
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/KnowledgeBuilderRemoteClient.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/KnowledgeBuilderRemoteClient.java	2010-05-27 13:28:51 UTC (rev 33116)
@@ -0,0 +1,142 @@
+package org.drools.grid.remote;
+
+import java.util.Collection;
+
+import org.drools.KnowledgeBase;
+import org.drools.builder.KnowledgeBuilder;
+import org.drools.builder.KnowledgeBuilderErrors;
+import org.drools.builder.ResourceConfiguration;
+import org.drools.builder.ResourceType;
+import org.drools.command.FinishedCommand;
+import org.drools.command.KnowledgeContextResolveFromContextCommand;
+import org.drools.command.builder.KnowledgeBuilderAddCommand;
+import org.drools.command.builder.KnowledgeBuilderGetErrorsCommand;
+import org.drools.command.builder.KnowledgeBuilderHasErrorsCommand;
+import org.drools.definition.KnowledgePackage;
+import org.drools.io.Resource;
+import org.drools.runtime.ExecutionResults;
+import org.drools.grid.internal.CollectionClient;
+import org.drools.grid.GenericNodeConnector;
+import org.drools.grid.internal.Message;
+import org.drools.grid.internal.MessageSession;
+
+public class KnowledgeBuilderRemoteClient
+    implements
+    KnowledgeBuilder {
+    
+    private String                     instanceId;
+    private final GenericNodeConnector client;
+    private final MessageSession messageSession;
+
+    public KnowledgeBuilderRemoteClient(String instanceId,
+                                        GenericNodeConnector client, MessageSession messageSession) {
+        this.instanceId = instanceId;
+        this.client = client;
+        this.messageSession = messageSession;
+    }
+
+    public void add(Resource resource,
+                    ResourceType resourceType) {
+        add( resource,
+             resourceType,
+             null );
+    }
+
+    public void add(Resource resource,
+                    ResourceType resourceType,
+                    ResourceConfiguration configuration) {
+        Message msg = new Message( messageSession.getSessionId(),
+                                   messageSession.counter.incrementAndGet(),
+                                   false,
+                                   new KnowledgeContextResolveFromContextCommand( new KnowledgeBuilderAddCommand( resource,
+                                                                                                                  resourceType,
+                                                                                                                  configuration ),
+                                                                                  instanceId,
+                                                                                  null,
+                                                                                  null,
+                                                                                  null ) );
+
+        try {
+            Object object = client.write( msg ).getPayload();
+
+            if ( !(object instanceof FinishedCommand) ) {
+                throw new RuntimeException( "Response was not correctly ended" );
+            }
+
+        } catch ( Exception e ) {
+            throw new RuntimeException( "Unable to execute message",
+                                        e );
+        }
+
+    }
+
+    public KnowledgeBuilderErrors getErrors() {
+        String commandId = "kbuilder.getErrors_" + messageSession.getNextId();
+        String kresultsId = "kresults_" + messageSession.getSessionId();
+
+        Message msg = new Message( messageSession.getSessionId(),
+                                   messageSession.counter.incrementAndGet(),
+                                   false,
+                                   new KnowledgeContextResolveFromContextCommand( new KnowledgeBuilderGetErrorsCommand( commandId ),
+                                                                                  instanceId,
+                                                                                  null,
+                                                                                  null,
+                                                                                  kresultsId ) );
+
+        try {
+            Object object = client.write( msg ).getPayload();
+
+            if ( object == null ) {
+                throw new RuntimeException( "Response was not correctly received" );
+            }
+
+            return (KnowledgeBuilderErrors) ((ExecutionResults) object).getValue( commandId );            
+
+        } catch ( Exception e ) {
+            throw new RuntimeException( "Unable to execute message",
+                                        e );
+        }
+        
+    }
+
+    public Collection<KnowledgePackage> getKnowledgePackages() {
+        return new CollectionClient<KnowledgePackage>( this.instanceId );
+    }
+
+    public boolean hasErrors() {
+        String commandId = "kbuilder.hasErrors_" + messageSession.getNextId();
+        String kresultsId = "kresults_" + messageSession.getSessionId();
+
+        Message msg = new Message( messageSession.getSessionId(),
+                                   messageSession.getNextId(),
+                                   false,
+                                   new KnowledgeContextResolveFromContextCommand( new KnowledgeBuilderHasErrorsCommand( commandId ),
+                                                                                  instanceId,
+                                                                                  null,
+                                                                                  null,
+                                                                                  kresultsId ) );
+
+        try {
+            Object object = client.write( msg ).getPayload();
+
+            if ( object == null ) {
+                throw new RuntimeException( "Response was not correctly received" );
+            }
+
+            return (Boolean) ((ExecutionResults) object).getValue( commandId );
+
+        } catch ( Exception e ) {
+            throw new RuntimeException( "Unable to execute message",
+                                        e );
+        }
+        
+        
+        
+    }
+
+	public KnowledgeBase newKnowledgeBase() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+}

Copied: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/ProcessInstanceRemoteClient.java (from rev 32892, labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-core/src/main/java/org/drools/grid/remote/ProcessInstanceRemoteClient.java)
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/ProcessInstanceRemoteClient.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/ProcessInstanceRemoteClient.java	2010-05-27 13:28:51 UTC (rev 33116)
@@ -0,0 +1,70 @@
+/*
+ *  Copyright 2009 salaboy.
+ * 
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ * 
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *  under the License.
+ */
+
+package org.drools.grid.remote;
+
+import java.io.Serializable;
+import org.drools.runtime.process.ProcessInstance;
+
+/**
+ *
+ * @author salaboy
+ */
+public class ProcessInstanceRemoteClient implements ProcessInstance, Serializable {
+
+    private String processId;
+    private long id;
+    private String processName;
+    private int state;
+    private String[] eventTypes;
+    public ProcessInstanceRemoteClient() {
+    }
+
+    public ProcessInstanceRemoteClient(long id, String processId, String processName, int state) {
+        this.processId = processId;
+        this.id = id;
+        this.processName = processName;
+        this.state = state;
+    }
+
+
+
+    public String getProcessId() {
+        return processId;
+    }
+
+    public long getId() {
+        return id;
+    }
+
+    public String getProcessName() {
+        return processName;
+    }
+
+    public int getState() {
+        return state;
+    }
+
+    public void signalEvent(String type, Object event) {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
+    public String[] getEventTypes() {
+        return eventTypes;
+    }
+
+}

Copied: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/RemoteConnection.java (from rev 33093, labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-core/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	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/RemoteConnection.java	2010-05-27 13:28:51 UTC (rev 33116)
@@ -0,0 +1,126 @@
+/*
+ *  Copyright 2010 salaboy.
+ * 
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ * 
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *  under the License.
+ */
+package org.drools.grid.remote;
+
+import java.rmi.RemoteException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import org.drools.KnowledgeBaseFactoryService;
+import org.drools.builder.DirectoryLookupFactoryService;
+import org.drools.builder.KnowledgeBuilderFactoryService;
+import org.drools.grid.DirectoryNodeService;
+import org.drools.grid.ExecutionNode;
+import org.drools.grid.GenericConnection;
+import org.drools.grid.GenericNodeConnector;
+import org.drools.grid.strategies.DirectoryServiceSelectionStrategy;
+import org.drools.grid.strategies.NodeSelectionStrategy;
+
+import org.drools.grid.strategies.StaticIncrementalSelectionStrategy;
+
+/**
+ *
+ * @author salaboy
+ */
+public class RemoteConnection implements GenericConnection {
+    //Cached Services
+
+    private List<GenericNodeConnector> nodeConnectors;
+    //Cached Directories
+    private List<DirectoryNodeService> directories;
+
+    public RemoteConnection() {
+        this.nodeConnectors = new ArrayList<GenericNodeConnector>();
+        this.directories = new ArrayList<DirectoryNodeService>();
+    }
+
+    public void addNodeConnector(GenericNodeConnector service) {
+        //register the service to all the DirectoryServices
+        for (DirectoryNodeService directory : directories) {
+            directory.addService(service);
+        }
+        this.nodeConnectors.add(service);
+
+    }
+
+    public void addDirectoryNode(DirectoryNodeService directory) {
+        this.directories.add(directory);
+
+    }
+
+    // In real scenarios this method will be in charge of populating
+    // all the ExecutionNodeService and DirectoryServices
+    public void connect() {
+    }
+
+    public ExecutionNode getExecutionNode(NodeSelectionStrategy strategy) {
+        ExecutionNode node = null;
+        GenericNodeConnector currentNode = null;
+        try {
+
+            //if the strategy is null use the default one
+            if (strategy == null) {
+                currentNode = getBestNode(new StaticIncrementalSelectionStrategy(this));
+            } else {
+                strategy.setConnection(this);
+                currentNode = getBestNode(strategy);
+            }
+            if (currentNode.connect()) {
+                node = new ExecutionNode();
+                node.set(KnowledgeBuilderFactoryService.class, new KnowledgeBuilderProviderRemoteClient(currentNode));
+                node.set(KnowledgeBaseFactoryService.class, new KnowledgeBaseProviderRemoteClient(currentNode));
+                node.set(DirectoryLookupFactoryService.class, new DirectoryLookupProviderRemoteClient(currentNode, this));
+
+            }else{
+                Logger.getLogger(RemoteConnection.class.getName()).log(Level.SEVERE, null, "The Node Connection Failed!");
+            }
+
+        } catch (RemoteException ex) {
+            Logger.getLogger(RemoteConnection.class.getName()).log(Level.SEVERE, null, ex);
+        }
+        return node;
+    }
+
+    public GenericNodeConnector getBestNode(NodeSelectionStrategy nodeSelectionStrategy) {
+        return nodeSelectionStrategy.getBestNode();
+    }
+
+    public List<DirectoryNodeService> getDirectories() {
+        return directories;
+    }
+
+    public void setDirectories(List<DirectoryNodeService> directories) {
+        this.directories = directories;
+    }
+
+    public List<GenericNodeConnector> getNodeConnectors() {
+        return nodeConnectors;
+    }
+
+    public void setServices(List<GenericNodeConnector> services) {
+        this.nodeConnectors = services;
+    }
+
+    public DirectoryNodeService getDirectoryNode(DirectoryServiceSelectionStrategy directorySelectionStrategy) {
+        return directories.get(0);
+    }
+
+    public ExecutionNode getExecutionNode() {
+        return getExecutionNode(null);
+    }
+}

Copied: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/StatefulKnowledgeSessionRemoteClient.java (from rev 33093, labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-core/src/main/java/org/drools/grid/remote/StatefulKnowledgeSessionRemoteClient.java)
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/StatefulKnowledgeSessionRemoteClient.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/StatefulKnowledgeSessionRemoteClient.java	2010-05-27 13:28:51 UTC (rev 33116)
@@ -0,0 +1,432 @@
+package org.drools.grid.remote;
+
+import java.util.Collection;
+import java.util.Map;
+
+import org.drools.KnowledgeBase;
+import org.drools.command.Command;
+import org.drools.command.ExecuteCommand;
+import org.drools.command.KnowledgeContextResolveFromContextCommand;
+import org.drools.command.runtime.rule.FireAllRulesCommand;
+import org.drools.grid.internal.commands.RegisterRemoteWorkItemHandlerCommand;
+import org.drools.event.process.ProcessEventListener;
+import org.drools.event.rule.AgendaEventListener;
+import org.drools.event.rule.WorkingMemoryEventListener;
+import org.drools.runtime.Calendars;
+import org.drools.runtime.Environment;
+import org.drools.runtime.ExecutionResults;
+import org.drools.runtime.ExitPoint;
+import org.drools.runtime.Globals;
+import org.drools.runtime.ObjectFilter;
+import org.drools.runtime.StatefulKnowledgeSession;
+import org.drools.runtime.process.ProcessInstance;
+import org.drools.runtime.process.WorkItemManager;
+import org.drools.runtime.rule.Agenda;
+import org.drools.runtime.rule.AgendaFilter;
+import org.drools.runtime.rule.FactHandle;
+import org.drools.runtime.rule.QueryResults;
+import org.drools.runtime.rule.WorkingMemoryEntryPoint;
+import org.drools.grid.GenericNodeConnector;
+import org.drools.time.SessionClock;
+import org.drools.grid.internal.Message;
+import org.drools.grid.internal.MessageSession;
+import org.drools.grid.remote.internal.commands.GetWorkItemManagerCommand;
+import org.drools.grid.remote.internal.commands.StartProcessRemoteCommand;
+
+
+/*
+ * @author: salaboy
+ */
+
+public class StatefulKnowledgeSessionRemoteClient
+    implements
+    StatefulKnowledgeSession {
+
+
+    private GenericNodeConnector     client;
+    private MessageSession              messageSession;
+    private String                      instanceId;
+
+    public StatefulKnowledgeSessionRemoteClient(String instanceId,
+                                                GenericNodeConnector client, MessageSession messageSession) {
+        this.instanceId = instanceId;
+        this.client = client;
+        this.messageSession = messageSession;
+        
+    }
+
+    public String getInstanceId() {
+        return this.instanceId;
+    }
+
+    public void dispose() {
+        // TODO Auto-generated method stub
+
+    }
+
+    public int getId() {
+        // TODO Auto-generated method stub
+        return 0;
+    }
+
+    public int fireAllRules() {
+        String commandId = "ksession.fireAllRules" + messageSession.getNextId();
+        String kresultsId = "kresults_" + messageSession.getSessionId();
+
+        Message msg = new Message( messageSession.getSessionId(),
+                                   messageSession.counter.incrementAndGet(),
+                                   false,
+                                   new KnowledgeContextResolveFromContextCommand( new FireAllRulesCommand( commandId ),
+                                                                                  null,
+                                                                                  null,
+                                                                                  instanceId,
+                                                                                  kresultsId ) );
+        try {
+            Object object = client.write( msg ).getPayload();
+
+            if ( object == null ) {
+                throw new RuntimeException( "Response was not correctly received" );
+            }
+
+            return (Integer) ((ExecutionResults) object).getValue( commandId );
+        } catch ( Exception e ) {
+            throw new RuntimeException( "Unable to execute message",
+                                        e );
+        }
+    }
+
+    public int fireAllRules(int max) {
+        // TODO Auto-generated method stub
+        return 0;
+    }
+
+    public int fireAllRules(AgendaFilter agendaFilter) {
+        // TODO Auto-generated method stub
+        return 0;
+    }
+
+    public void fireUntilHalt() {
+        // TODO Auto-generated method stub
+
+    }
+
+    public void fireUntilHalt(AgendaFilter agendaFilter) {
+        // TODO Auto-generated method stub
+
+    }
+
+    public ExecutionResults execute(Command command) {
+        String commandId = "ksession.execute" + messageSession.getNextId();
+        String kresultsId = "kresults_" + messageSession.getSessionId();
+
+        Message msg = new Message( messageSession.getSessionId(),
+                                   messageSession.counter.incrementAndGet(),
+                                   false,
+                                   new KnowledgeContextResolveFromContextCommand( new ExecuteCommand( commandId,
+                                                                                                      command ),
+                                                                                  null,
+                                                                                  null,
+                                                                                  instanceId,
+                                                                                  kresultsId ) );
+
+        try {
+            Object object = client.write( msg ).getPayload();if ( object == null ) {
+                throw new RuntimeException( "Response was not correctly received" );
+            }
+
+            return (ExecutionResults) ((ExecutionResults) object).getValue( commandId );
+        } catch ( Exception e ) {
+            throw new RuntimeException( "Unable to execute message",
+                                        e );
+        }
+    }
+
+    public Environment getEnvironment() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public Object getGlobal(String identifier) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public Globals getGlobals() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public KnowledgeBase getKnowledgeBase() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public <T extends SessionClock> T getSessionClock() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public void registerExitPoint(String name,
+                                  ExitPoint exitPoint) {
+        // TODO Auto-generated method stub
+
+    }
+
+    public void setGlobal(String identifier,
+                          Object object) {
+        // TODO Auto-generated method stub
+
+    }
+
+    public void unregisterExitPoint(String name) {
+        // TODO Auto-generated method stub
+
+    }
+
+    public Agenda getAgenda() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public QueryResults getQueryResults(String query) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public QueryResults getQueryResults(String query,
+                                        Object[] arguments) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public WorkingMemoryEntryPoint getWorkingMemoryEntryPoint(String name) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public Collection< ? extends WorkingMemoryEntryPoint> getWorkingMemoryEntryPoints() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public void halt() {
+        // TODO Auto-generated method stub
+
+    }
+
+    public FactHandle getFactHandle(Object object) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public <T extends FactHandle> Collection<T> getFactHandles() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public <T extends FactHandle> Collection<T> getFactHandles(ObjectFilter filter) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public Object getObject(FactHandle factHandle) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public Collection<Object> getObjects() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public Collection<Object> getObjects(ObjectFilter filter) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public FactHandle insert(Object object) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public void retract(FactHandle handle) {
+        // TODO Auto-generated method stub
+
+    }
+
+    public void update(FactHandle handle,
+                       Object object) {
+        // TODO Auto-generated method stub
+
+    }
+
+    public void abortProcessInstance(long id) {
+        // TODO Auto-generated method stub
+
+    }
+
+    public ProcessInstance getProcessInstance(long id) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public Collection<ProcessInstance> getProcessInstances() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public WorkItemManager getWorkItemManager() {
+    	 String kresultsId = "kresults_" + messageSession.getSessionId();
+         Message msg = new Message( messageSession.getSessionId(),
+                                    messageSession.counter.incrementAndGet(),
+                                    true,
+                                    new KnowledgeContextResolveFromContextCommand( new GetWorkItemManagerCommand(),
+                                                                                   null,
+                                                                                   null,
+                                                                                   instanceId,
+                                                                                   kresultsId ) );
+         try {
+             Object payload = client.write( msg ).getPayload();
+             WorkItemManager workItemManager = (WorkItemManager) ((ExecutionResults) payload).getValue( "workItemManager" );
+             ((WorkItemManagerRemoteClient)workItemManager).setClient(client);
+             ((WorkItemManagerRemoteClient)workItemManager).setMessageSession(messageSession);
+             ((WorkItemManagerRemoteClient)workItemManager).setInstanceId(instanceId);
+             return workItemManager;
+         } catch ( Exception e ) {
+             throw new RuntimeException( "Unable to execute message", e );
+         }
+    }
+    
+    public void registerWorkItemHandler(String name, String workItemHandler){
+        
+        String kresultsId = "kresults_" + messageSession.getSessionId();
+
+        Message msg = new Message( messageSession.getSessionId(),
+                                   messageSession.counter.incrementAndGet(),
+                                   false,
+                                   new KnowledgeContextResolveFromContextCommand( new RegisterRemoteWorkItemHandlerCommand(name, workItemHandler ),
+                                                                                  null,
+                                                                                  null,
+                                                                                  instanceId,
+                                                                                  kresultsId ) );
+
+        try {
+            client.write( msg );
+            
+        } catch ( Exception e ) {
+            throw new RuntimeException( "Unable to execute message",
+                                        e );
+        }
+
+
+    }
+
+    public void signalEvent(String type,
+                            Object event) {
+        // TODO Auto-generated method stub
+
+    }
+
+    public ProcessInstance startProcess(String processId) {
+        String commandId = "ksession.execute" + messageSession.getNextId();
+        String kresultsId = "kresults_" + messageSession.getSessionId();
+
+        Message msg = new Message( messageSession.getSessionId(),
+                                   messageSession.counter.incrementAndGet(),
+                                   false,
+                                   new KnowledgeContextResolveFromContextCommand( new StartProcessRemoteCommand( processId ),
+                                                                                  null,
+                                                                                  null,
+                                                                                  instanceId,
+                                                                                  kresultsId ) );
+
+        try {
+            Object object = client.write( msg ).getPayload();
+            if ( object == null ) {
+                throw new RuntimeException( "Response was not correctly received" );
+            }
+
+            return (ProcessInstance) ((ExecutionResults) object).getValue( processId );
+        } catch ( Exception e ) {
+            throw new RuntimeException( "Unable to execute message",
+                                        e );
+        }
+        
+    }
+
+    public ProcessInstance startProcess(String processId,
+                                        Map<String, Object> parameters) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public void addEventListener(WorkingMemoryEventListener listener) {
+        // TODO Auto-generated method stub
+
+    }
+
+    public void addEventListener(AgendaEventListener listener) {
+        // TODO Auto-generated method stub
+
+    }
+
+    public Collection<AgendaEventListener> getAgendaEventListeners() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public Collection<WorkingMemoryEventListener> getWorkingMemoryEventListeners() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public void removeEventListener(WorkingMemoryEventListener listener) {
+        // TODO Auto-generated method stub
+
+    }
+
+    public void removeEventListener(AgendaEventListener listener) {
+        // TODO Auto-generated method stub
+
+    }
+
+    public void addEventListener(ProcessEventListener listener) {
+        // TODO Auto-generated method stub
+
+    }
+
+    public Collection<ProcessEventListener> getProcessEventListeners() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public void removeEventListener(ProcessEventListener listener) {
+        // TODO Auto-generated method stub
+
+    }
+
+    public String getEntryPointId() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public long getFactCount() {
+        // TODO Auto-generated method stub
+        return 0;
+    }
+
+    public void signalEvent(String type,
+                            Object event,
+                            long processInstanceId) {
+        // TODO Auto-generated method stub
+        
+    }
+
+    public Calendars getCalendars() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+   
+
+}

Copied: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/WorkItemManagerRemoteClient.java (from rev 33093, labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-core/src/main/java/org/drools/grid/remote/WorkItemManagerRemoteClient.java)
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/WorkItemManagerRemoteClient.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/WorkItemManagerRemoteClient.java	2010-05-27 13:28:51 UTC (rev 33116)
@@ -0,0 +1,66 @@
+package org.drools.grid.remote;
+
+import java.io.Serializable;
+import java.util.Map;
+
+import org.drools.command.KnowledgeContextResolveFromContextCommand;
+import org.drools.command.runtime.process.CompleteWorkItemCommand;
+import org.drools.runtime.process.WorkItemHandler;
+import org.drools.runtime.process.WorkItemManager;
+import org.drools.grid.GenericNodeConnector;
+import org.drools.grid.internal.Message;
+import org.drools.grid.internal.MessageSession;
+
+/**
+ *
+ * @author Lucas Amador
+ * @author salaboy
+ */
+public class WorkItemManagerRemoteClient implements WorkItemManager, Serializable {
+
+	private static final long serialVersionUID = 1L;
+	
+	private GenericNodeConnector     client;
+        private MessageSession              messageSession;
+	private String instanceId;
+
+	public void abortWorkItem(long id) {
+		throw new UnsupportedOperationException("Not supported yet.");
+	}
+
+	public void completeWorkItem(long id, Map<String, Object> results) {
+		String kresultsId = "kresults_" + messageSession.getSessionId();
+        Message msg = new Message( messageSession.getSessionId(),
+                                   messageSession.counter.incrementAndGet(),
+                                   true,
+                                   new KnowledgeContextResolveFromContextCommand( new CompleteWorkItemCommand(id, results),
+                                                                                  null,
+                                                                                  null,
+                                                                                  instanceId,
+                                                                                  kresultsId ) );
+        try {
+            client.write( msg );
+        } catch ( Exception e ) {
+            throw new RuntimeException( "Unable to execute message", e );
+        }
+	}
+
+	public void registerWorkItemHandler(String workItemName, WorkItemHandler handler) {
+		throw new UnsupportedOperationException("Not supported yet.");
+	}
+
+        public void setClient(GenericNodeConnector client) {
+            this.client = client;
+        }
+
+        public void setMessageSession(MessageSession messageSession) {
+            this.messageSession = messageSession;
+        }
+
+	
+
+	public void setInstanceId(String instanceId) {
+		this.instanceId = instanceId;
+	}
+
+}

Copied: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/internal/commands/GetWorkItemManagerCommand.java (from rev 33093, labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-core/src/main/java/org/drools/grid/commands/GetWorkItemManagerCommand.java)
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/internal/commands/GetWorkItemManagerCommand.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/internal/commands/GetWorkItemManagerCommand.java	2010-05-27 13:28:51 UTC (rev 33116)
@@ -0,0 +1,29 @@
+package org.drools.grid.remote.internal.commands;
+
+import org.drools.command.Context;
+import org.drools.command.impl.GenericCommand;
+import org.drools.command.impl.KnowledgeCommandContext;
+import org.drools.runtime.impl.ExecutionResultImpl;
+import org.drools.runtime.process.WorkItemManager;
+import org.drools.grid.remote.WorkItemManagerRemoteClient;
+
+/**
+ * 
+ * @author Lucas Amador
+ *
+ */
+public class GetWorkItemManagerCommand implements GenericCommand<WorkItemManager> {
+	
+	private static final long serialVersionUID = 1L;
+
+	public WorkItemManager execute(Context context) {
+        WorkItemManager workItemManager = ((KnowledgeCommandContext) context).getWorkItemManager();
+        ((ExecutionResultImpl)((KnowledgeCommandContext) context ).getExecutionResults()).getResults().put("workItemManager", getRemoteClient(workItemManager) );
+        return workItemManager;
+	}
+	
+	private WorkItemManager getRemoteClient(WorkItemManager workItemManager) {
+        return new WorkItemManagerRemoteClient();
+    }
+
+}
\ No newline at end of file

Copied: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/internal/commands/StartProcessRemoteCommand.java (from rev 33093, labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-core/src/main/java/org/drools/grid/commands/StartProcessRemoteCommand.java)
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/internal/commands/StartProcessRemoteCommand.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/internal/commands/StartProcessRemoteCommand.java	2010-05-27 13:28:51 UTC (rev 33116)
@@ -0,0 +1,108 @@
+/*
+ *  Copyright 2009 salaboy.
+ * 
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ * 
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *  under the License.
+ */
+
+package org.drools.grid.remote.internal.commands;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import org.drools.command.Context;
+import org.drools.command.impl.GenericCommand;
+import org.drools.command.impl.KnowledgeCommandContext;
+import org.drools.runtime.ExecutionResults;
+import org.drools.runtime.StatefulKnowledgeSession;
+import org.drools.runtime.impl.ExecutionResultImpl;
+import org.drools.runtime.process.ProcessInstance;
+import org.drools.grid.remote.ProcessInstanceRemoteClient;
+
+/**
+ *
+ * @author salaboy
+ */
+public class StartProcessRemoteCommand implements GenericCommand<ExecutionResults>{
+    private String processId;
+    private Map<String, Object> parameters = new HashMap<String, Object>();
+    private List<Object> data = null;
+
+    public StartProcessRemoteCommand() {
+    }
+
+
+    public StartProcessRemoteCommand(String processId) {
+        this.processId = processId;
+    }
+
+    public List<Object> getData() {
+        return data;
+    }
+
+    public void setData(List<Object> data) {
+        this.data = data;
+    }
+
+    public Map<String, Object> getParameters() {
+        return parameters;
+    }
+
+    public void setParameters(Map<String, Object> parameters) {
+        this.parameters = parameters;
+    }
+
+    public String getProcessId() {
+        return processId;
+    }
+
+    public void setProcessId(String processId) {
+        this.processId = processId;
+    }
+
+
+    public ExecutionResults execute(Context context) {
+        StatefulKnowledgeSession ksession = ((KnowledgeCommandContext) context).getStatefulKnowledgesession();
+
+		if (data != null) {
+			for (Object o: data) {
+				ksession.insert(o);
+			}
+		}
+		ProcessInstance processInstance = (ProcessInstance) ksession.startProcess(processId, parameters);
+
+                ((ExecutionResultImpl)((KnowledgeCommandContext) context ).getExecutionResults()).getResults().put( processId, getRemoteClient(processInstance) );
+
+		return ((ExecutionResultImpl)((KnowledgeCommandContext) context ).getExecutionResults());
+	}
+
+	public String toString() {
+		String result = "session.startProcess(" + processId + ", [";
+		if (parameters != null) {
+			int i = 0;
+			for (Map.Entry<String, Object> entry: parameters.entrySet()) {
+				if (i++ > 0) {
+					result += ", ";
+				}
+				result += entry.getKey() + "=" + entry.getValue();
+			}
+		}
+		result += "]);";
+		return result;
+	}
+
+    private ProcessInstance getRemoteClient(ProcessInstance processInstance) {
+        return new ProcessInstanceRemoteClient(processInstance.getId(), processInstance.getProcessId(),
+                 processInstance.getProcessName(), processInstance.getState());
+    }
+}


Property changes on: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina
___________________________________________________________________
Name: svn:ignore
   + target


Added: 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	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/pom.xml	2010-05-27 13:28:51 UTC (rev 33116)
@@ -0,0 +1,58 @@
+<?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>
+    <artifactId>drools-grid-remote-mina</artifactId>
+    <version>5.1.0.SNAPSHOT</version>
+    <name>Drools :: Grid :: Remote Impl :: Mina</name>
+
+    <dependencies>
+     
+     <!-- Drools Runtime -->
+        <dependency>
+            <groupId>org.drools</groupId>
+            <artifactId>drools-api</artifactId>
+        </dependency>
+
+       
+
+        <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>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+
+        </dependency>
+
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-jdk14</artifactId>
+            <version>1.5.8</version>
+        </dependency>
+
+        <!-- Test deps -->
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.8.1</version>
+            <scope>test</scope>
+        </dependency>
+
+    </dependencies>
+</project>

Copied: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/ClientGenericMessageReceiverImpl.java (from rev 33093, labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-core/src/main/java/org/drools/grid/remote/mina/ClientGenericMessageReceiverImpl.java)
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/ClientGenericMessageReceiverImpl.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/ClientGenericMessageReceiverImpl.java	2010-05-27 13:28:51 UTC (rev 33116)
@@ -0,0 +1,73 @@
+/**
+ * 
+ */
+package org.drools.grid.remote.mina;
+
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+import org.drools.SystemEventListener;
+import org.drools.grid.internal.commands.Command;
+
+
+
+
+import org.drools.grid.internal.ClientGenericMessageReceiver;
+import org.drools.grid.internal.GenericIoWriter;
+import org.drools.grid.internal.GenericMessageHandler;
+import org.drools.grid.internal.Message;
+import org.drools.grid.internal.MessageResponseHandler;
+
+public class ClientGenericMessageReceiverImpl
+    implements
+    ClientGenericMessageReceiver {
+    protected Map<Integer, MessageResponseHandler> responseHandlers;
+
+    private GenericMessageHandler                  handler;
+
+    private final SystemEventListener              systemEventListener;
+
+    public ClientGenericMessageReceiverImpl(GenericMessageHandler handler,
+                                            SystemEventListener systemEventListener) {
+        this.handler = handler;
+        this.responseHandlers = new ConcurrentHashMap<Integer, MessageResponseHandler>();;
+        this.systemEventListener = systemEventListener;
+    }
+
+    /* (non-Javadoc)
+     * @see org.drools.vsm.mina.ClientGenericMessageReceiver#addResponseHandler(int, org.drools.vsm.MessageResponseHandler)
+     */
+    public void addResponseHandler(int id,
+                                   MessageResponseHandler responseHandler) {
+        this.responseHandlers.put( id,
+                                   responseHandler );
+    }
+
+    /* (non-Javadoc)
+     * @see org.drools.vsm.mina.ClientGenericMessageReceiver#messageReceived(org.drools.vsm.mina.MinaIoWriter, org.drools.vsm.Message)
+     */
+    public void messageReceived(GenericIoWriter writer,
+                                Message msg) throws Exception {
+
+        systemEventListener.debug( "Message receieved : " + msg );
+
+        MessageResponseHandler responseHandler = (MessageResponseHandler) responseHandlers.remove( msg.getResponseId() );
+
+        if ( responseHandler != null ) {
+            Object payload = msg.getPayload();
+            if (payload instanceof Command && ((Command)msg.getPayload()).getArguments().size() > 0 &&
+            	((Command)msg.getPayload()).getArguments().get(0) instanceof RuntimeException)
+            	payload = ((Command)msg.getPayload()).getArguments().get(0);
+            if (( payload != null && payload instanceof RuntimeException )) {
+                responseHandler.setError( (RuntimeException) payload );
+            } else {
+                responseHandler.receive( msg );
+            }
+        } else if ( handler != null ) {
+            this.handler.messageReceived( writer,
+                                          msg );
+        } else {
+            throw new RuntimeException( "Unable to process Message" );
+        }
+    }
+}
\ No newline at end of file

Copied: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/MinaAcceptor.java (from rev 32892, labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-core/src/main/java/org/drools/grid/remote/mina/MinaAcceptor.java)
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/MinaAcceptor.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/MinaAcceptor.java	2010-05-27 13:28:51 UTC (rev 33116)
@@ -0,0 +1,45 @@
+package org.drools.grid.remote.mina;
+
+import java.io.IOException;
+import java.net.SocketAddress;
+
+import org.apache.mina.core.service.IoAcceptor;
+import org.apache.mina.core.session.IdleStatus;
+import org.apache.mina.filter.codec.ProtocolCodecFilter;
+import org.apache.mina.filter.codec.serialization.ObjectSerializationCodecFactory;
+import org.apache.mina.filter.logging.LoggingFilter;
+import org.apache.mina.transport.socket.SocketAcceptor;
+import org.drools.grid.AcceptorService;
+
+public class MinaAcceptor
+    implements
+    AcceptorService {
+    protected SocketAcceptor acceptor;
+    protected SocketAddress  address;
+
+    public MinaAcceptor(SocketAcceptor acceptor,
+                        SocketAddress address) {
+        this.acceptor = acceptor;
+        this.address = address;
+    }
+
+    public synchronized void start() throws IOException {
+        acceptor.getFilterChain().addLast( "logger",
+                                           new LoggingFilter() );
+        acceptor.getFilterChain().addLast( "codec",
+                                           new ProtocolCodecFilter( new ObjectSerializationCodecFactory() ) );
+        acceptor.getSessionConfig().setReadBufferSize( 2048 );
+        acceptor.getSessionConfig().setIdleTime( IdleStatus.BOTH_IDLE,
+                                                 10 );
+        acceptor.bind( address );
+    }
+
+    public synchronized void stop() {
+        acceptor.dispose();
+    }
+
+    public synchronized IoAcceptor getIoAcceptor() {
+        return acceptor;
+    }
+
+}
\ No newline at end of file

Copied: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/MinaIoHandler.java (from rev 33093, labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-core/src/main/java/org/drools/grid/remote/mina/MinaIoHandler.java)
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/MinaIoHandler.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/MinaIoHandler.java	2010-05-27 13:28:51 UTC (rev 33116)
@@ -0,0 +1,60 @@
+package org.drools.grid.remote.mina;
+
+
+import org.apache.mina.core.service.IoHandlerAdapter;
+import org.apache.mina.core.session.IdleStatus;
+import org.apache.mina.core.session.IoSession;
+import org.drools.SystemEventListener;
+import org.drools.grid.internal.ClientGenericMessageReceiver;
+import org.drools.grid.internal.GenericMessageHandler;
+import org.drools.grid.internal.Message;
+import org.drools.grid.internal.MessageResponseHandler;
+
+public class MinaIoHandler extends IoHandlerAdapter {
+    /**
+     * Listener used for logging
+     */
+    private final SystemEventListener systemEventListener;
+
+    private ClientGenericMessageReceiver clientMessageReceiver;
+
+    public MinaIoHandler(SystemEventListener systemEventListener) {
+        this( systemEventListener,
+              null );
+
+    }
+
+    public MinaIoHandler(SystemEventListener systemEventListener,
+                         GenericMessageHandler handler) {
+        this.systemEventListener = systemEventListener;
+        this.clientMessageReceiver = new ClientGenericMessageReceiverImpl( handler,
+                                                                           systemEventListener );
+
+    }
+
+    public void addResponseHandler(int id,
+                                   MessageResponseHandler responseHandler) {
+        this.clientMessageReceiver.addResponseHandler( id,
+                                                       responseHandler );
+    }
+
+    public void exceptionCaught(IoSession session,
+                                Throwable cause) throws Exception {
+        systemEventListener.exception( "Uncaught exception on Server",
+                                       cause );
+    }
+
+    public void messageReceived(IoSession session,
+                                Object object) throws Exception {
+        Message msg = (Message) object;
+        clientMessageReceiver.messageReceived( new MinaIoWriter( session ),
+                                               msg );
+    }
+
+    @Override
+    public void sessionIdle(IoSession session,
+                            IdleStatus status) throws Exception {
+        this.systemEventListener.debug( "Server IDLE " + session.getIdleCount( status ) );
+    }
+
+}

Copied: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/MinaIoWriter.java (from rev 33093, labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-core/src/main/java/org/drools/grid/remote/mina/MinaIoWriter.java)
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/MinaIoWriter.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/MinaIoWriter.java	2010-05-27 13:28:51 UTC (rev 33116)
@@ -0,0 +1,23 @@
+package org.drools.grid.remote.mina;
+
+import org.apache.mina.core.session.IoSession;
+import org.drools.grid.internal.GenericIoWriter;
+import org.drools.grid.internal.Message;
+import org.drools.grid.internal.MessageResponseHandler;
+
+public class MinaIoWriter
+    implements
+    GenericIoWriter {
+    
+    private IoSession session;
+
+    public MinaIoWriter(IoSession session) {
+        this.session = session;
+    }
+
+    public void write(Message message,
+                      MessageResponseHandler responseHandler) {
+        this.session.write( message );
+    }
+
+}

Copied: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/MinaNodeConnector.java (from rev 33093, labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-core/src/main/java/org/drools/grid/remote/mina/MinaNodeConnector.java)
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/MinaNodeConnector.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/MinaNodeConnector.java	2010-05-27 13:28:51 UTC (rev 33116)
@@ -0,0 +1,142 @@
+package org.drools.grid.remote.mina;
+
+import java.net.SocketAddress;
+import java.util.concurrent.atomic.AtomicInteger;
+
+import org.apache.mina.core.future.ConnectFuture;
+import org.apache.mina.core.session.IoSession;
+import org.apache.mina.filter.codec.ProtocolCodecFilter;
+import org.apache.mina.filter.codec.serialization.ObjectSerializationCodecFactory;
+import org.apache.mina.transport.socket.SocketConnector;
+import org.apache.mina.transport.socket.nio.NioSocketConnector;
+import org.drools.SystemEventListener;
+import org.drools.SystemEventListenerFactory;
+import org.drools.grid.GenericNodeConnector;
+import org.drools.grid.internal.GenericIoWriter;
+import org.drools.grid.internal.Message;
+import org.drools.grid.internal.MessageResponseHandler;
+import org.drools.grid.internal.responsehandlers.BlockingMessageResponseHandler;
+
+public class MinaNodeConnector
+    implements
+    GenericNodeConnector,
+    GenericIoWriter {
+
+
+    protected IoSession           session;
+
+    protected final String        name;
+    protected AtomicInteger       counter;
+    protected SocketConnector     connector;
+    protected SocketAddress       address;
+    protected SystemEventListener eventListener;
+
+    public MinaNodeConnector(String name,
+                         SocketConnector connector,
+                         SocketAddress address,
+                         SystemEventListener eventListener) {
+        if ( name == null ) {
+            throw new IllegalArgumentException( "Name can not be null" );
+        }
+        this.name = name;
+        this.counter = new AtomicInteger();
+        this.address = address;
+        this.connector = connector;
+        this.eventListener = eventListener;
+
+    }
+
+       public MinaNodeConnector(String name,
+                         SocketAddress address,
+                         SystemEventListener eventListener) {
+
+        SocketConnector minaconnector = new NioSocketConnector();
+        minaconnector.setHandler(new MinaIoHandler(SystemEventListenerFactory.getSystemEventListener()));
+        if ( name == null ) {
+            throw new IllegalArgumentException( "Name can not be null" );
+        }
+        this.name = name;
+        this.counter = new AtomicInteger();
+        this.address = address;
+        this.connector = minaconnector;
+        this.eventListener = eventListener;
+    }
+
+
+    /* (non-Javadoc)
+     * @see org.drools.vsm.mina.Messenger#connect()
+     */
+    public boolean connect() {
+        if ( session != null && session.isConnected() ) {
+            throw new IllegalStateException( "Already connected. Disconnect first." );
+        }
+
+        try {
+            this.connector.getFilterChain().addLast( "codec",
+                                                     new ProtocolCodecFilter( new ObjectSerializationCodecFactory() ) );
+
+            ConnectFuture future1 = this.connector.connect( this.address );
+            future1.await( 2000 );
+            if ( !future1.isConnected() ) {
+                eventListener.info( "unable to connect : " + address + " : " + future1.getException() );
+                return false;
+            }
+            eventListener.info( "connected : " + address );
+            this.session = future1.getSession();
+            return true;
+        } catch ( Exception e ) {
+            e.printStackTrace();
+            return false;
+        }
+    }
+
+    /* (non-Javadoc)
+     * @see org.drools.vsm.mina.Messenger#disconnect()
+     */
+    public void disconnect() {
+        if ( session != null && session.isConnected() ) {
+            session.close();
+            session.getCloseFuture().join();
+        }
+    }
+
+    private void addResponseHandler(int id,
+                                    MessageResponseHandler responseHandler) {
+        ((MinaIoHandler) this.connector.getHandler()).addResponseHandler( id,
+                                                                          responseHandler );
+    }
+
+    public void write(Message msg,
+                      MessageResponseHandler responseHandler) {
+        if ( responseHandler != null ) {
+            addResponseHandler( msg.getResponseId(),
+                                responseHandler );
+        }
+        this.session.write( msg );
+    }
+
+    public Message write(Message msg) {
+        BlockingMessageResponseHandler responseHandler = new BlockingMessageResponseHandler();
+
+        if ( responseHandler != null ) {
+            addResponseHandler( msg.getResponseId(),
+                                responseHandler );
+        }
+        this.session.write( msg );
+
+        Message returnMessage = responseHandler.getMessage();
+        if ( responseHandler.getError() != null ) {
+            throw responseHandler.getError();
+        }
+
+        return returnMessage;
+    }
+
+    public String getId() {
+        return String.valueOf(session.getId());
+    }
+
+    public void setSession(Object object) {
+        this.session = (IoSession) object;
+    }
+}

Added: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/test/java/org/drools/grid/ExecutionNodeBase.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/test/java/org/drools/grid/ExecutionNodeBase.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/test/java/org/drools/grid/ExecutionNodeBase.java	2010-05-27 13:28:51 UTC (rev 33116)
@@ -0,0 +1,215 @@
+/*
+ *  Copyright 2010 salaboy.
+ * 
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ * 
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *  under the License.
+ */
+
+package org.drools.grid;
+
+
+import org.drools.KnowledgeBase;
+import org.drools.KnowledgeBaseFactoryService;
+import org.drools.builder.DirectoryLookupFactoryService;
+import org.drools.builder.KnowledgeBuilder;
+import org.drools.builder.KnowledgeBuilderFactoryService;
+import org.drools.builder.ResourceType;
+import org.drools.command.runtime.rule.FireAllRulesCommand;
+import org.drools.io.ResourceFactory;
+import org.drools.runtime.ExecutionResults;
+import org.drools.runtime.StatefulKnowledgeSession;
+import org.junit.Assert;
+import org.junit.Test;
+/**
+ *
+ * @author salaboy
+ */
+
+public abstract class ExecutionNodeBase {
+
+    protected ExecutionNode node;
+    
+    public ExecutionNodeBase() {
+        
+    }
+
+
+    @Test
+    public void fireAllRules(){
+
+        String str = "";
+        str += "package org.drools \n";
+        str += "global java.util.List list \n";
+        str += "rule rule1 \n";
+        str += "    dialect \"java\" \n";
+        str += "when \n";
+        str += "then \n";
+        str += "    System.out.println( \"hello1!!!\" ); \n";
+        str += "end \n";
+        str += "rule rule2 \n";
+        str += "    dialect \"java\" \n";
+        str += "when \n";
+        str += "then \n";
+        str += "    System.out.println( \"hello2!!!\" ); \n";
+        str += "end \n";
+
+         
+        KnowledgeBuilder kbuilder =
+                node.get(KnowledgeBuilderFactoryService.class).newKnowledgeBuilder();
+        kbuilder.add( ResourceFactory.newByteArrayResource( str.getBytes() ),
+                      ResourceType.DRL );
+
+        if ( kbuilder.hasErrors() ) {
+            System.out.println( "Errors: " + kbuilder.getErrors() );
+        }
+
+        KnowledgeBase kbase =
+                node.get(KnowledgeBaseFactoryService.class).newKnowledgeBase();
+        Assert.assertNotNull(kbase);
+
+        kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
+
+        StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
+        Assert.assertNotNull(ksession);
+
+        int fired = ksession.fireAllRules();
+        Assert.assertEquals( 2, fired );
+
+
+    }
+    @Test
+    public void testExecute() throws Exception {
+        
+        String str = "";
+        str += "package org.drools \n";
+        str += "global java.util.List list \n";
+        str += "rule rule1 \n";
+        str += "    dialect \"java\" \n";
+        str += "when \n";
+        str += "then \n";
+        str += "    System.out.println( \"hello1!!!\" ); \n";
+        str += "end \n";
+        str += "rule rule2 \n";
+        str += "    dialect \"java\" \n";
+        str += "when \n";
+        str += "then \n";
+        str += "    System.out.println( \"hello2!!!\" ); \n";
+        str += "end \n";
+
+        KnowledgeBuilder kbuilder = node.get(KnowledgeBuilderFactoryService.class).newKnowledgeBuilder();
+        kbuilder.add( ResourceFactory.newByteArrayResource( str.getBytes() ),
+                      ResourceType.DRL );
+
+        if ( kbuilder.hasErrors() ) {
+            System.out.println( "Errors: " + kbuilder.getErrors() );
+        }
+
+        KnowledgeBase kbase = node.get(KnowledgeBaseFactoryService.class).newKnowledgeBase();
+        Assert.assertNotNull(kbase);
+
+        kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
+
+        StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
+
+        ExecutionResults results = ksession.execute( new FireAllRulesCommand( "fired" ) );
+
+        Assert.assertEquals( 2,
+                      (int) (Integer) results.getValue( "fired" ) );
+    }
+    @Test
+    public void testNamedService() throws Exception {
+        String str = "";
+        str += "package org.drools \n";
+        str += "global java.util.List list \n";
+        str += "rule rule1 \n";
+        str += "    dialect \"java\" \n";
+        str += "when \n";
+        str += "then \n";
+        str += "    System.out.println( \"hello1!!!\" ); \n";
+        str += "end \n";
+        str += "rule rule2 \n";
+        str += "    dialect \"java\" \n";
+        str += "when \n";
+        str += "then \n";
+        str += "    System.out.println( \"hello2!!!\" ); \n";
+        str += "end \n";
+
+        KnowledgeBuilder kbuilder = node.get(KnowledgeBuilderFactoryService.class).newKnowledgeBuilder();
+        
+        kbuilder.add( ResourceFactory.newByteArrayResource( str.getBytes() ),
+                      ResourceType.DRL );
+
+        if ( kbuilder.hasErrors() ) {
+            System.out.println( "Errors: " + kbuilder.getErrors() );
+        }
+
+        KnowledgeBase kbase = node.get(KnowledgeBaseFactoryService.class).newKnowledgeBase();
+        Assert.assertNotNull(kbase);
+
+
+        kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
+
+        StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
+
+        node.get(DirectoryLookupFactoryService.class).register( "ksession1",
+                              ksession );
+
+        ExecutionResults results = node.get(DirectoryLookupFactoryService.class).lookup( "ksession1" ).execute( new FireAllRulesCommand( "fired" ) );
+
+        Assert.assertEquals( 2,
+                      (int) (Integer) results.getValue( "fired" ) );
+    }
+    @Test
+    public void testVsmPipeline() throws Exception {
+        String str = "";
+        str += "package org.drools \n";
+        str += "global java.util.List list \n";
+        str += "rule rule1 \n";
+        str += "    dialect \"java\" \n";
+        str += "when \n";
+        str += "then \n";
+        str += "    System.out.println( \"hello1!!!\" ); \n";
+        str += "end \n";
+        str += "rule rule2 \n";
+        str += "    dialect \"java\" \n";
+        str += "when \n";
+        str += "then \n";
+        str += "    System.out.println( \"hello2!!!\" ); \n";
+        str += "end \n";
+
+        KnowledgeBuilder kbuilder = node.get(KnowledgeBuilderFactoryService.class).newKnowledgeBuilder();
+        
+        kbuilder.add( ResourceFactory.newByteArrayResource( str.getBytes() ),
+                      ResourceType.DRL );
+
+        if ( kbuilder.hasErrors() ) {
+            System.out.println( "Errors: " + kbuilder.getErrors() );
+        }
+
+        KnowledgeBase kbase = node.get(KnowledgeBaseFactoryService.class).newKnowledgeBase();
+        Assert.assertNotNull(kbase);
+
+        kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
+
+        StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
+
+        node.get(DirectoryLookupFactoryService.class).register( "ksession1",
+                              ksession );
+
+        ExecutionResults results = node.get(DirectoryLookupFactoryService.class).lookup( "ksession1" ).execute( new FireAllRulesCommand( "fired" ) );
+
+        Assert.assertEquals( 2, (int ) ( Integer) results.getValue( "fired" ) );
+    }
+  
+
+}

Copied: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/test/java/org/drools/grid/RemoteExecutionNodeTest.java (from rev 33093, labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-core/src/test/java/org/drools/grid/RemoteExecutionNodeTest.java)
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/test/java/org/drools/grid/RemoteExecutionNodeTest.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/test/java/org/drools/grid/RemoteExecutionNodeTest.java	2010-05-27 13:28:51 UTC (rev 33116)
@@ -0,0 +1,101 @@
+/*
+ *  Copyright 2010 salaboy.
+ * 
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ * 
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *  under the License.
+ */
+
+package org.drools.grid;
+
+import org.drools.grid.remote.RemoteConnection;
+import java.rmi.RemoteException;
+import java.util.Iterator;
+import org.drools.grid.remote.mina.MinaNodeConnector;
+import org.apache.mina.transport.socket.nio.NioSocketConnector;
+import java.io.IOException;
+import org.drools.grid.remote.mina.MinaAcceptor;
+import org.drools.grid.internal.GenericMessageHandlerImpl;
+import org.drools.grid.remote.mina.MinaIoHandler;
+import org.drools.SystemEventListenerFactory;
+import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
+import org.apache.mina.transport.socket.SocketAcceptor;
+import org.drools.grid.internal.NodeData;
+import java.net.SocketAddress;
+import java.net.InetSocketAddress;
+import org.drools.grid.strategies.StaticIncrementalSelectionStrategy;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+
+/**
+ *
+ * @author salaboy
+ */
+public class RemoteExecutionNodeTest extends ExecutionNodeBase{
+    private MinaAcceptor server;
+    private GenericConnection connection;
+    
+    public RemoteExecutionNodeTest() {
+    }
+
+   
+
+    @Before
+    public void configureNode() throws IOException {
+        System.out.println("Starting the Configuration!");
+        connection = new RemoteConnection();
+
+        StaticIncrementalSelectionStrategy.counter = 0;
+        SocketAddress address = new InetSocketAddress( "127.0.0.1",
+                                                       9123 );
+
+        NodeData nodeData = new NodeData();
+        // setup Server
+        SocketAcceptor acceptor = new NioSocketAcceptor();
+        acceptor.setHandler( new MinaIoHandler( SystemEventListenerFactory.getSystemEventListener(),
+                                                new GenericMessageHandlerImpl( nodeData,
+                                                                               SystemEventListenerFactory.getSystemEventListener() ) ) );
+        this.server = new MinaAcceptor( acceptor,
+                                        address );
+        this.server.start();
+        System.out.println("Server Started!");
+        connection.addDirectoryNode(new DirectoryNodeLocalImpl());
+
+        // setup Client
+        NioSocketConnector clientConnector = new NioSocketConnector();
+        clientConnector.setHandler( new MinaIoHandler( SystemEventListenerFactory.getSystemEventListener() ) );
+        GenericNodeConnector minaClient = new MinaNodeConnector( "client 1",
+                                                         clientConnector,
+                                                         address,
+                                                         SystemEventListenerFactory.getSystemEventListener() );
+        connection.addNodeConnector(minaClient);
+        
+        node = connection.getExecutionNode(null);
+        Assert.assertNotNull(node);
+        
+    }
+
+    @After
+    public void tearDown() throws RemoteException {
+        System.out.println("Stopping the server and all the clients!");
+        for(Iterator<GenericNodeConnector> iterator = connection.getNodeConnectors().iterator(); iterator.hasNext();){
+            iterator.next().disconnect();
+        }
+       
+        this.server.stop();
+
+    }
+
+    
+
+}
\ No newline at end of file

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/pom.xml
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/pom.xml	2010-05-27 13:22:31 UTC (rev 33115)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/pom.xml	2010-05-27 13:28:51 UTC (rev 33116)
@@ -12,30 +12,56 @@
     <artifactId>drools-grid-services</artifactId>
 
     <dependencies>
+        
         <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <version>4.8.1</version>
-            <scope>test</scope>
+            <groupId>org.drools</groupId>
+            <artifactId>drools-api</artifactId>
+            <type>jar</type>
         </dependency>
+        
         <dependency>
             <groupId>org.drools</groupId>
-            <artifactId>drools-api</artifactId>
+            <artifactId>drools-grid-api</artifactId>
+            <version>5.1.0.SNAPSHOT</version>
             <type>jar</type>
+        </dependency>
+
+        <dependency>
+            <groupId>org.drools</groupId>
+            <artifactId>drools-grid-local</artifactId>
             <version>5.1.0.SNAPSHOT</version>
+            <type>jar</type>
         </dependency>
+
         <dependency>
             <groupId>org.drools</groupId>
-            <artifactId>drools-grid-core</artifactId>
+            <artifactId>drools-grid-remote-api</artifactId>
             <version>5.1.0.SNAPSHOT</version>
             <type>jar</type>
         </dependency>
-       <dependency>
+
+        <dependency>
+            <groupId>org.drools</groupId>
+            <artifactId>drools-grid-remote-mina</artifactId>
+            <version>5.1.0.SNAPSHOT</version>
+            <type>jar</type>
+        </dependency>
+
+        <dependency>
             <groupId>org.apache.mina</groupId>
             <artifactId>mina-core</artifactId>
             <version>2.0.0-M6</version>
-          
-       </dependency>
+
+        </dependency>
+        <!-- Test deps -->
+        
+
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.8.1</version>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
 
 </project>
\ No newline at end of file

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/pom.xml
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/pom.xml	2010-05-27 13:22:31 UTC (rev 33115)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/pom.xml	2010-05-27 13:28:51 UTC (rev 33116)
@@ -3,46 +3,43 @@
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <modelVersion>4.0.0</modelVersion>
     <parent>
-        <artifactId>drools</artifactId>
+        <artifactId>drools-grid</artifactId>
         <groupId>org.drools</groupId>
         <version>5.1.0.SNAPSHOT</version>
     </parent>
     
     <artifactId>drools-grid-task</artifactId>
-    <version>5.1.0.SNAPSHOT</version>
     
+    
     <name>Drools :: Grid :: Task</name>
     <dependencies>
         <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
-            <version>4.6</version>
+            <version>4.8.1</version>
             <scope>test</scope>
         </dependency>
         <!-- Drools Runtime -->
         <dependency>
             <groupId>org.drools</groupId>
             <artifactId>drools-api</artifactId>
+            <version>5.1.0.SNAPSHOT</version>
         </dependency>
 
         <dependency>
             <groupId>org.drools</groupId>
             <artifactId>drools-core</artifactId>
+            <version>5.1.0.SNAPSHOT</version>
         </dependency>
 
         <dependency>
             <groupId>org.drools</groupId>
             <artifactId>drools-compiler</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>org.drools</groupId>
             <artifactId>drools-process-task</artifactId>
             <version>5.1.0.SNAPSHOT</version>
@@ -51,13 +48,21 @@
 
         <dependency>
             <groupId>org.drools</groupId>
-            <artifactId>drools-grid-core</artifactId>
+            <artifactId>drools-grid-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>javax.persistence</groupId>
             <artifactId>persistence-api</artifactId>
             <version>1.0</version>
@@ -84,6 +89,12 @@
             <artifactId>h2</artifactId>
             <version>1.2.128</version>
         </dependency>
+        <dependency>
+            <groupId>org.drools</groupId>
+            <artifactId>drools-grid-remote-mina</artifactId>
+            <version>5.1.0.SNAPSHOT</version>
+            <type>jar</type>
+        </dependency>
     </dependencies>
     
 </project>

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-05-27 13:22:31 UTC (rev 33115)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/CommandBasedServicesWSHumanTaskHandler.java	2010-05-27 13:28:51 UTC (rev 33116)
@@ -24,10 +24,10 @@
 import org.drools.runtime.process.WorkItem;
 import org.drools.runtime.process.WorkItemHandler;
 import org.drools.runtime.process.WorkItemManager;
-import org.drools.grid.generic.GenericNodeConnector;
-import org.drools.grid.generic.Message;
+import org.drools.grid.GenericNodeConnector;
+import org.drools.grid.internal.Message;
+import org.drools.grid.remote.mina.MinaIoHandler;
 import org.drools.grid.remote.mina.MinaNodeConnector;
-import org.drools.grid.remote.mina.MinaIoHandler;
 import org.drools.task.AccessType;
 import org.drools.task.Content;
 import org.drools.task.Group;

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/GenericEventTransport.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/GenericEventTransport.java	2010-05-27 13:22:31 UTC (rev 33115)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/GenericEventTransport.java	2010-05-27 13:28:51 UTC (rev 33116)
@@ -7,8 +7,8 @@
 
 import org.drools.eventmessaging.EventTriggerTransport;
 import org.drools.eventmessaging.Payload;
-import org.drools.grid.generic.GenericIoWriter;
-import org.drools.grid.generic.Message;
+import org.drools.grid.internal.GenericIoWriter;
+import org.drools.grid.internal.Message;
 import org.drools.task.service.Command;
 import org.drools.task.service.CommandName;
 

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/HumanTaskFactoryService.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/HumanTaskFactoryService.java	2010-05-27 13:22:31 UTC (rev 33115)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/HumanTaskFactoryService.java	2010-05-27 13:28:51 UTC (rev 33116)
@@ -1,7 +1,7 @@
 package org.drools.grid.task;
 
 import org.drools.Service;
-import org.drools.grid.generic.GenericNodeConnector;
+import org.drools.grid.GenericNodeConnector;
 
 
 

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/HumanTaskServiceImpl.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/HumanTaskServiceImpl.java	2010-05-27 13:22:31 UTC (rev 33115)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/HumanTaskServiceImpl.java	2010-05-27 13:28:51 UTC (rev 33116)
@@ -8,8 +8,8 @@
 import java.util.logging.Logger;
 
 import org.drools.eventmessaging.EventKey;
-import org.drools.grid.generic.GenericNodeConnector;
-import org.drools.grid.generic.Message;
+import org.drools.grid.GenericNodeConnector;
+import org.drools.grid.internal.Message;
 import org.drools.task.Attachment;
 import org.drools.task.Comment;
 import org.drools.task.Content;

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/HumanTaskServiceProviderRemoteClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/HumanTaskServiceProviderRemoteClient.java	2010-05-27 13:22:31 UTC (rev 33115)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/HumanTaskServiceProviderRemoteClient.java	2010-05-27 13:28:51 UTC (rev 33116)
@@ -17,7 +17,7 @@
 
 package org.drools.grid.task;
 
-import org.drools.grid.generic.GenericNodeConnector;
+import org.drools.grid.GenericNodeConnector;
 
 /**
  *

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/TaskClientMessageHandlerImpl.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/TaskClientMessageHandlerImpl.java	2010-05-27 13:22:31 UTC (rev 33115)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/TaskClientMessageHandlerImpl.java	2010-05-27 13:28:51 UTC (rev 33116)
@@ -7,10 +7,10 @@
 
 import org.drools.SystemEventListener;
 import org.drools.eventmessaging.Payload;
-import org.drools.grid.generic.GenericIoWriter;
-import org.drools.grid.generic.GenericMessageHandler;
-import org.drools.grid.generic.Message;
-import org.drools.grid.generic.MessageResponseHandler;
+import org.drools.grid.internal.GenericIoWriter;
+import org.drools.grid.internal.GenericMessageHandler;
+import org.drools.grid.internal.Message;
+import org.drools.grid.internal.MessageResponseHandler;
 import org.drools.task.Content;
 import org.drools.task.Task;
 import org.drools.task.query.TaskSummary;

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/TaskServerMessageHandlerImpl.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/TaskServerMessageHandlerImpl.java	2010-05-27 13:22:31 UTC (rev 33115)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/TaskServerMessageHandlerImpl.java	2010-05-27 13:28:51 UTC (rev 33116)
@@ -11,9 +11,9 @@
 import org.apache.mina.core.session.IoSession;
 import org.drools.SystemEventListener;
 import org.drools.eventmessaging.EventKey;
-import org.drools.grid.generic.GenericIoWriter;
-import org.drools.grid.generic.GenericMessageHandler;
-import org.drools.grid.generic.Message;
+import org.drools.grid.internal.GenericIoWriter;
+import org.drools.grid.internal.GenericMessageHandler;
+import org.drools.grid.internal.Message;
 import org.drools.task.Attachment;
 import org.drools.task.Comment;
 import org.drools.task.Content;

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/eventmessaging/EventMessageResponseHandler.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/eventmessaging/EventMessageResponseHandler.java	2010-05-27 13:22:31 UTC (rev 33115)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/eventmessaging/EventMessageResponseHandler.java	2010-05-27 13:28:51 UTC (rev 33116)
@@ -1,7 +1,7 @@
 package org.drools.grid.task.eventmessaging;
 
 import org.drools.eventmessaging.Payload;
-import org.drools.grid.generic.MessageResponseHandler;
+import org.drools.grid.internal.MessageResponseHandler;
 
 
 

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/responseHandlers/BlockingAddAttachmentMessageResponseHandler.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/responseHandlers/BlockingAddAttachmentMessageResponseHandler.java	2010-05-27 13:22:31 UTC (rev 33115)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/responseHandlers/BlockingAddAttachmentMessageResponseHandler.java	2010-05-27 13:28:51 UTC (rev 33116)
@@ -1,6 +1,6 @@
 package org.drools.grid.task.responseHandlers;
 
-import org.drools.grid.generic.Message;
+import org.drools.grid.internal.Message;
 import org.drools.task.service.Command;
 import org.drools.task.service.responsehandlers.BlockingAddAttachmentResponseHandler;
 import org.drools.grid.task.TaskClientMessageHandlerImpl.AddAttachmentMessageResponseHandler;

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/responseHandlers/BlockingAddCommentMessageResponseHandler.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/responseHandlers/BlockingAddCommentMessageResponseHandler.java	2010-05-27 13:22:31 UTC (rev 33115)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/responseHandlers/BlockingAddCommentMessageResponseHandler.java	2010-05-27 13:28:51 UTC (rev 33116)
@@ -1,6 +1,6 @@
 package org.drools.grid.task.responseHandlers;
 
-import org.drools.grid.generic.Message;
+import org.drools.grid.internal.Message;
 import org.drools.task.service.Command;
 import org.drools.task.service.responsehandlers.BlockingAddCommentResponseHandler;
 import org.drools.grid.task.TaskClientMessageHandlerImpl.AddCommentMessageResponseHandler;

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/responseHandlers/BlockingAddTaskMessageResponseHandler.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/responseHandlers/BlockingAddTaskMessageResponseHandler.java	2010-05-27 13:22:31 UTC (rev 33115)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/responseHandlers/BlockingAddTaskMessageResponseHandler.java	2010-05-27 13:28:51 UTC (rev 33116)
@@ -1,6 +1,6 @@
 package org.drools.grid.task.responseHandlers;
 
-import org.drools.grid.generic.Message;
+import org.drools.grid.internal.Message;
 import org.drools.task.service.Command;
 import org.drools.task.service.responsehandlers.BlockingAddTaskResponseHandler;
 import org.drools.grid.task.TaskClientMessageHandlerImpl.AddTaskMessageResponseHandler;

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/responseHandlers/BlockingDeleteAttachmentMessageResponseHandler.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/responseHandlers/BlockingDeleteAttachmentMessageResponseHandler.java	2010-05-27 13:22:31 UTC (rev 33115)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/responseHandlers/BlockingDeleteAttachmentMessageResponseHandler.java	2010-05-27 13:28:51 UTC (rev 33116)
@@ -1,6 +1,6 @@
 package org.drools.grid.task.responseHandlers;
 
-import org.drools.grid.generic.Message;
+import org.drools.grid.internal.Message;
 import org.drools.task.service.responsehandlers.BlockingDeleteAttachmentResponseHandler;
 import org.drools.grid.task.TaskClientMessageHandlerImpl.DeleteAttachmentMessageResponseHandler;
 

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/responseHandlers/BlockingDeleteCommentMessageResponseHandler.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/responseHandlers/BlockingDeleteCommentMessageResponseHandler.java	2010-05-27 13:22:31 UTC (rev 33115)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/responseHandlers/BlockingDeleteCommentMessageResponseHandler.java	2010-05-27 13:28:51 UTC (rev 33116)
@@ -1,6 +1,6 @@
 package org.drools.grid.task.responseHandlers;
 
-import org.drools.grid.generic.Message;
+import org.drools.grid.internal.Message;
 import org.drools.task.service.responsehandlers.BlockingDeleteCommentResponseHandler;
 import org.drools.grid.task.TaskClientMessageHandlerImpl.DeleteCommentMessageResponseHandler;
 

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/responseHandlers/BlockingEventMessageResponseHandler.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/responseHandlers/BlockingEventMessageResponseHandler.java	2010-05-27 13:22:31 UTC (rev 33115)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/responseHandlers/BlockingEventMessageResponseHandler.java	2010-05-27 13:28:51 UTC (rev 33116)
@@ -1,7 +1,7 @@
 package org.drools.grid.task.responseHandlers;
 
 import org.drools.eventmessaging.Payload;
-import org.drools.grid.generic.Message;
+import org.drools.grid.internal.Message;
 import org.drools.task.service.Command;
 import org.drools.task.service.responsehandlers.BlockingEventResponseHandler;
 import org.drools.grid.task.eventmessaging.EventMessageResponseHandler;

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/responseHandlers/BlockingGetContentMessageResponseHandler.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/responseHandlers/BlockingGetContentMessageResponseHandler.java	2010-05-27 13:22:31 UTC (rev 33115)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/responseHandlers/BlockingGetContentMessageResponseHandler.java	2010-05-27 13:28:51 UTC (rev 33116)
@@ -1,6 +1,6 @@
 package org.drools.grid.task.responseHandlers;
 
-import org.drools.grid.generic.Message;
+import org.drools.grid.internal.Message;
 import org.drools.task.Content;
 import org.drools.task.service.Command;
 import org.drools.task.service.responsehandlers.BlockingGetContentResponseHandler;

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/responseHandlers/BlockingGetTaskMessageResponseHandler.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/responseHandlers/BlockingGetTaskMessageResponseHandler.java	2010-05-27 13:22:31 UTC (rev 33115)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/responseHandlers/BlockingGetTaskMessageResponseHandler.java	2010-05-27 13:28:51 UTC (rev 33116)
@@ -1,6 +1,6 @@
 package org.drools.grid.task.responseHandlers;
 
-import org.drools.grid.generic.Message;
+import org.drools.grid.internal.Message;
 import org.drools.task.Task;
 import org.drools.task.service.Command;
 import org.drools.task.service.responsehandlers.BlockingGetTaskResponseHandler;

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/responseHandlers/BlockingSetContentMessageResponseHandler.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/responseHandlers/BlockingSetContentMessageResponseHandler.java	2010-05-27 13:22:31 UTC (rev 33115)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/responseHandlers/BlockingSetContentMessageResponseHandler.java	2010-05-27 13:28:51 UTC (rev 33116)
@@ -1,6 +1,6 @@
 package org.drools.grid.task.responseHandlers;
 
-import org.drools.grid.generic.Message;
+import org.drools.grid.internal.Message;
 import org.drools.task.service.Command;
 import org.drools.task.service.responsehandlers.BlockingSetContentResponseHandler;
 import org.drools.grid.task.TaskClientMessageHandlerImpl.SetDocumentMessageResponseHandler;

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/responseHandlers/BlockingTaskOperationMessageResponseHandler.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/responseHandlers/BlockingTaskOperationMessageResponseHandler.java	2010-05-27 13:22:31 UTC (rev 33115)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/responseHandlers/BlockingTaskOperationMessageResponseHandler.java	2010-05-27 13:28:51 UTC (rev 33116)
@@ -1,6 +1,6 @@
 package org.drools.grid.task.responseHandlers;
 
-import org.drools.grid.generic.Message;
+import org.drools.grid.internal.Message;
 import org.drools.task.service.responsehandlers.BlockingTaskOperationResponseHandler;
 import org.drools.grid.task.TaskClientMessageHandlerImpl.TaskOperationMessageResponseHandler;
 

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/responseHandlers/BlockingTaskSummaryMessageResponseHandler.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/responseHandlers/BlockingTaskSummaryMessageResponseHandler.java	2010-05-27 13:22:31 UTC (rev 33115)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/responseHandlers/BlockingTaskSummaryMessageResponseHandler.java	2010-05-27 13:28:51 UTC (rev 33116)
@@ -1,7 +1,7 @@
 package org.drools.grid.task.responseHandlers;
 
 import java.util.List;
-import org.drools.grid.generic.Message;
+import org.drools.grid.internal.Message;
 
 import org.drools.task.query.TaskSummary;
 import org.drools.task.service.Command;

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/pom.xml
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/pom.xml	2010-05-27 13:22:31 UTC (rev 33115)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/pom.xml	2010-05-27 13:28:51 UTC (rev 33116)
@@ -1,7 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
         <artifactId>drools</artifactId>
         <groupId>org.drools</groupId>
@@ -13,11 +11,13 @@
     <packaging>pom</packaging>
 
     <modules>
-        <module>drools-grid-client-api</module>
+        <module>drools-grid-api</module>
+        <module>drools-grid-local</module>
+        <module>drools-grid-remote-api</module>
+        <module>drools-grid-remote-mina</module>
         <module>drools-grid-services</module>
-	<module>drools-grid-core</module>
+        <module>drools-grid-task</module>
+  </modules>
 
-    </modules>
 
-
-</project>
+</project>
\ No newline at end of file



More information about the jboss-svn-commits mailing list