[jboss-svn-commits] JBL Code SVN: r31136 - in labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm: grid and 2 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Jan 19 09:22:57 EST 2010


Author: salaboy21
Date: 2010-01-19 09:22:56 -0500 (Tue, 19 Jan 2010)
New Revision: 31136

Added:
   labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm/grid/
   labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm/grid/HumanTaskServiceGridProviderImpl.java
   labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm/grid/KnowledgeBaseGridClient.java
   labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm/grid/KnowledgeBaseProviderGridClient.java
   labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm/grid/KnowledgeBuilderGridClient.java
   labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm/grid/KnowledgeBuilderProviderGridClient.java
   labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm/grid/RegistryService.java
   labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm/grid/ServiceManagerGridClient.java
   labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm/grid/SessionService.java
   labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm/grid/StatefulKnowledgeSessionGridClient.java
   labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm/grid/WorkItemManagerGridClient.java
Modified:
   labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm/GenericConnector.java
   labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm/mina/MinaConnector.java
   labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm/remote/KnowledgeBuilderProviderRemoteClient.java
Log:
grid providers, need to refactor this and move it to the grid-rio project if needed

Modified: labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm/GenericConnector.java
===================================================================
--- labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm/GenericConnector.java	2010-01-19 14:19:02 UTC (rev 31135)
+++ labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm/GenericConnector.java	2010-01-19 14:22:56 UTC (rev 31136)
@@ -9,5 +9,8 @@
     Message write(Message msg);
     
     //void write(Message msg);
+    String getId();
 
+    void setSession(Object object);
+
 }
\ No newline at end of file

Added: labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm/grid/HumanTaskServiceGridProviderImpl.java
===================================================================
--- labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm/grid/HumanTaskServiceGridProviderImpl.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm/grid/HumanTaskServiceGridProviderImpl.java	2010-01-19 14:22:56 UTC (rev 31136)
@@ -0,0 +1,35 @@
+package org.drools.vsm.grid;
+
+import org.drools.vsm.remote.*;
+import org.drools.task.service.HumanTaskServiceImpl;
+import org.drools.vsm.GenericConnector;
+import org.drools.vsm.HumanTaskService;
+import org.drools.vsm.HumanTaskServiceProvider;
+
+/**
+ * 
+ * @author Lucas Amador
+ *
+ */
+public class HumanTaskServiceGridProviderImpl implements HumanTaskServiceProvider {
+
+	private final ServiceManagerGridClient serviceManager;
+
+	public HumanTaskServiceGridProviderImpl(ServiceManagerGridClient serviceManager) {
+		this.serviceManager = serviceManager;
+	}
+
+	public HumanTaskService newHumanTaskServiceClient() {
+		// TOOD: implemente a best way to identify the human task services of the other ones inexistents
+		if (serviceManager.getServices()==null)
+			return null;
+		GenericConnector humanTaskServiceConnector = serviceManager.getServices().get(0);
+		if (humanTaskServiceConnector==null)
+			return null;
+		return new HumanTaskServiceImpl( humanTaskServiceConnector,
+										serviceManager.counter,
+										serviceManager.getName(), 
+										serviceManager.getSessionId());
+	}
+
+}

Added: labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm/grid/KnowledgeBaseGridClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm/grid/KnowledgeBaseGridClient.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm/grid/KnowledgeBaseGridClient.java	2010-01-19 14:22:56 UTC (rev 31136)
@@ -0,0 +1,174 @@
+package org.drools.vsm.grid;
+
+import org.drools.vsm.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.vsm.CollectionClient;
+import org.drools.vsm.Message;
+
+public class KnowledgeBaseGridClient
+    implements
+    KnowledgeBase {
+
+    private ServiceManagerGridClient serviceManager;
+    private String                     instanceId;
+
+    public KnowledgeBaseGridClient(String instanceId,
+                                     ServiceManagerGridClient serviceManager) {
+        this.instanceId = instanceId;
+        this.serviceManager = serviceManager;
+    }
+
+    public void addKnowledgePackages(Collection<KnowledgePackage> kpackages) {
+        String kresultsId = "kresults_" + serviceManager.getSessionId();
+
+        String kuilderInstanceId = ((CollectionClient<KnowledgePackage>) kpackages).getParentInstanceId();
+        Message msg = new Message( serviceManager.getSessionId(),
+                                   serviceManager.counter.incrementAndGet(),
+                                   false,
+                                   new KnowledgeContextResolveFromContextCommand( new KnowledgeBaseAddKnowledgePackagesCommand(),
+                                                                                  kuilderInstanceId,
+                                                                                  instanceId,
+                                                                                  null,
+                                                                                  kresultsId ) );
+        
+        try {
+            Object object = serviceManager.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_" + serviceManager.getSessionId();
+
+        String localId = UUID.randomUUID().toString();
+
+        Message msg = new Message( serviceManager.getSessionId(),
+                                   serviceManager.counter.incrementAndGet(),
+                                   false,
+                                   new SetVariableCommand( "__TEMP__",
+                                                           localId,
+                                                           new KnowledgeContextResolveFromContextCommand( new NewStatefulKnowledgeSessionCommand( null ),
+                                                                                                          null,
+                                                                                                          instanceId,
+                                                                                                          null,
+                                                                                                          kresultsId ) ) );
+
+        try {
+            Object object = serviceManager.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 StatefulKnowledgeSessionGridClient( localId,
+                                                         serviceManager );
+    }
+
+    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
+	}
+
+}

Added: labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm/grid/KnowledgeBaseProviderGridClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm/grid/KnowledgeBaseProviderGridClient.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm/grid/KnowledgeBaseProviderGridClient.java	2010-01-19 14:22:56 UTC (rev 31136)
@@ -0,0 +1,95 @@
+package org.drools.vsm.grid;
+
+import org.drools.vsm.remote.*;
+import java.util.Properties;
+import java.util.UUID;
+
+import org.drools.KnowledgeBase;
+import org.drools.KnowledgeBaseConfiguration;
+import org.drools.KnowledgeBaseProvider;
+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.vsm.Message;
+
+public class KnowledgeBaseProviderGridClient
+    implements
+    KnowledgeBaseProvider {
+    private ServiceManagerGridClient serviceManager;
+
+    public KnowledgeBaseProviderGridClient(ServiceManagerGridClient serviceManager) {
+        this.serviceManager = serviceManager;
+    }
+
+    public Environment newEnvironment() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public KnowledgeBase newKnowledgeBase() {
+        return newKnowledgeBase( ( KnowledgeBaseConfiguration ) null );
+    }
+
+    public KnowledgeBase newKnowledgeBase(KnowledgeBaseConfiguration conf) {
+        //return new NewKnowledgeBaseCommand(null);
+
+        String localId = UUID.randomUUID().toString();
+
+        Message msg = new Message( serviceManager.getSessionId(),
+                                   serviceManager.counter.incrementAndGet(),
+                                   false,
+                                   new SetVariableCommand( "__TEMP__",
+                                                           localId,
+                                                           new NewKnowledgeBaseCommand( null ) ) );
+        try {
+            Object object = serviceManager.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 KnowledgeBaseGridClient( localId,
+                                              serviceManager );
+
+    }
+
+    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;
+    }
+
+}

Added: labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm/grid/KnowledgeBuilderGridClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm/grid/KnowledgeBuilderGridClient.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm/grid/KnowledgeBuilderGridClient.java	2010-01-19 14:22:56 UTC (rev 31136)
@@ -0,0 +1,132 @@
+package org.drools.vsm.grid;
+
+import org.drools.vsm.remote.*;
+import java.util.Collection;
+
+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.vsm.CollectionClient;
+import org.drools.vsm.Message;
+
+public class KnowledgeBuilderGridClient
+    implements
+    KnowledgeBuilder {
+    private ServiceManagerGridClient serviceManager;
+    private String                     instanceId;
+
+    public KnowledgeBuilderGridClient(String instanceId,
+                                        ServiceManagerGridClient serviceManager) {
+        this.instanceId = instanceId;
+        this.serviceManager = serviceManager;
+    }
+
+    public void add(Resource resource,
+                    ResourceType resourceType) {
+        add( resource,
+             resourceType,
+             null );
+    }
+
+    public void add(Resource resource,
+                    ResourceType resourceType,
+                    ResourceConfiguration configuration) {
+        Message msg = new Message( serviceManager.getSessionId(),
+                                   serviceManager.counter.incrementAndGet(),
+                                   false,
+                                   new KnowledgeContextResolveFromContextCommand( new KnowledgeBuilderAddCommand( resource,
+                                                                                                                  resourceType,
+                                                                                                                  configuration ),
+                                                                                  instanceId,
+                                                                                  null,
+                                                                                  null,
+                                                                                  null ) );
+
+        try {
+            Object object = serviceManager.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_" + serviceManager.getNextId();
+        String kresultsId = "kresults_" + serviceManager.getSessionId();
+
+        Message msg = new Message( serviceManager.getSessionId(),
+                                   serviceManager.counter.incrementAndGet(),
+                                   false,
+                                   new KnowledgeContextResolveFromContextCommand( new KnowledgeBuilderGetErrorsCommand( commandId ),
+                                                                                  instanceId,
+                                                                                  null,
+                                                                                  null,
+                                                                                  kresultsId ) );
+
+        try {
+            Object object = serviceManager.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_" + serviceManager.getNextId();
+        String kresultsId = "kresults_" + serviceManager.getSessionId();
+
+        Message msg = new Message( serviceManager.getSessionId(),
+                                   serviceManager.getNextId(),
+                                   false,
+                                   new KnowledgeContextResolveFromContextCommand( new KnowledgeBuilderHasErrorsCommand( commandId ),
+                                                                                  instanceId,
+                                                                                  null,
+                                                                                  null,
+                                                                                  kresultsId ) );
+
+        try {
+            Object object = serviceManager.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 );
+        }
+        
+        
+        
+    }
+
+}

Added: labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm/grid/KnowledgeBuilderProviderGridClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm/grid/KnowledgeBuilderProviderGridClient.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm/grid/KnowledgeBuilderProviderGridClient.java	2010-01-19 14:22:56 UTC (rev 31136)
@@ -0,0 +1,87 @@
+/**
+ * 
+ */
+package org.drools.vsm.grid;
+
+import org.drools.vsm.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.KnowledgeBuilderProvider;
+import org.drools.command.FinishedCommand;
+import org.drools.command.SetVariableCommand;
+import org.drools.command.builder.NewKnowledgeBuilderCommand;
+import org.drools.vsm.Message;
+
+public class KnowledgeBuilderProviderGridClient
+    implements
+    KnowledgeBuilderProvider {
+    private ServiceManagerGridClient serviceManager;
+
+    public KnowledgeBuilderProviderGridClient(ServiceManagerGridClient serviceManager) {
+        this.serviceManager = serviceManager;
+    }
+
+    public DecisionTableConfiguration newDecisionTableConfiguration() {
+        // TODO Auto-generated method stub
+        return null; 
+    }
+
+    public KnowledgeBuilder newKnowledgeBuilder() {
+        String localId = UUID.randomUUID().toString();
+
+        Message msg = new Message( serviceManager.getSessionId(),
+                                   serviceManager.counter.incrementAndGet(),
+                                   false,
+                                   new SetVariableCommand( "__TEMP__",
+                                                           localId,
+                                                           new NewKnowledgeBuilderCommand( null ) ) );
+
+        try {
+            Object object = serviceManager.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 KnowledgeBuilderGridClient( localId,
+                                                 serviceManager );
+    }
+
+    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

Added: labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm/grid/RegistryService.java
===================================================================
--- labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm/grid/RegistryService.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm/grid/RegistryService.java	2010-01-19 14:22:56 UTC (rev 31136)
@@ -0,0 +1,19 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package org.drools.vsm.grid;
+
+import java.rmi.RemoteException;
+
+
+/**
+ *
+ * @author salaboy
+ */
+
+public interface RegistryService {
+    public void register(String executorId, String sessionServiceId) throws RemoteException;
+    public SessionService lookup(String executorId) throws RemoteException;
+}

Added: labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm/grid/ServiceManagerGridClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm/grid/ServiceManagerGridClient.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm/grid/ServiceManagerGridClient.java	2010-01-19 14:22:56 UTC (rev 31136)
@@ -0,0 +1,321 @@
+package org.drools.vsm.grid;
+
+import java.rmi.RemoteException;
+import java.util.Collection;
+import java.util.List;
+import java.util.Properties;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.drools.KnowledgeBase;
+import org.drools.KnowledgeBaseProvider;
+import org.drools.agent.KnowledgeAgentProvider;
+import org.drools.builder.DecisionTableConfiguration;
+import org.drools.builder.KnowledgeBuilder;
+import org.drools.builder.KnowledgeBuilderConfiguration;
+import org.drools.builder.KnowledgeBuilderProvider;
+import org.drools.command.Command;
+import org.drools.command.FinishedCommand;
+import org.drools.command.KnowledgeContextResolveFromContextCommand;
+import org.drools.command.vsm.LookupCommand;
+import org.drools.command.vsm.RegisterCommand;
+import org.drools.persistence.jpa.JPAKnowledgeServiceProvider;
+import org.drools.runtime.CommandExecutor;
+import org.drools.runtime.Environment;
+import org.drools.runtime.ExecutionResults;
+import org.drools.runtime.StatefulKnowledgeSession;
+import org.drools.vsm.GenericConnector;
+import org.drools.vsm.HumanTaskServiceProvider;
+import org.drools.vsm.Message;
+import org.drools.vsm.ServiceManager;
+import org.drools.vsm.command.ServiceManagerClientConnectCommand;
+
+public class ServiceManagerGridClient
+    implements
+    ServiceManager {
+	private String name;
+
+	public GenericConnector client;
+
+    private List<GenericConnector> services;
+
+    public AtomicInteger    counter;
+
+    private int sessionId = -1;
+
+    //@TODO: i need to refactor this to a service in the list of services???
+    private RegistryService registryService;
+
+    public ServiceManagerGridClient(String name, GenericConnector client) {
+    	this.name = name;
+    	this.client = client;
+    	this.counter = new AtomicInteger();
+        this.services = null;
+    }
+    
+    public ServiceManagerGridClient(String name, GenericConnector client, List<GenericConnector> services) {
+        this(name, client);
+        this.services = services;
+    }
+
+    public boolean connect() {
+        boolean connected = this.client.connect();
+
+        if ( connected ) {
+            String commandId = "serviceManager.connected" + getNextId();
+            String kresultsId = "kresults_" + getSessionId();
+
+            Message msg = new Message( -1,
+                                       counter.incrementAndGet(),
+                                       false,
+                                       new KnowledgeContextResolveFromContextCommand( new ServiceManagerClientConnectCommand( commandId ),
+                                                                                      null,
+                                                                                      null,
+                                                                                      null,
+                                                                                      kresultsId ) );
+
+            try {
+                Object object = client.write( msg ).getPayload();
+
+                if ( object == null ) {
+                    throw new RuntimeException( "Response was not correctly received" );
+                }
+
+                sessionId = (Integer) ((ExecutionResults) object).getValue( commandId );
+
+                connected = true;
+            } catch ( Exception e ) {
+                throw new RuntimeException( "Unable to execute message",
+                                            e );
+            }
+        }
+        // Connecting with services
+        if (this.services != null) {
+        	for (GenericConnector connector : services){
+        		boolean serviceConnected = connector.connect();
+        		if ( serviceConnected ){
+        			System.out.println("Service Connected");
+                        }
+        	}
+        }
+
+        return connected;
+    }
+
+	public void disconnect() {
+		this.client.disconnect();
+		if (this.services != null){
+			for (GenericConnector connector : this.services){
+				connector.disconnect();
+                        }
+                }
+	}
+
+    public KnowledgeBuilderProvider getKnowledgeBuilderFactory() {
+        return new KnowledgeBuilderProviderGridClient( this );
+    }
+
+    public KnowledgeBaseProvider getKnowledgeBaseFactory() {
+        return new KnowledgeBaseProviderGridClient( this );
+    }
+
+    public KnowledgeAgentProvider getKnowledgeAgentFactory() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public JPAKnowledgeServiceProvider JPAKnowledgeService() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public Environment getEnvironment() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public Collection<String> list() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public void register(String identifier,
+                         CommandExecutor executor) {
+        String commandId = "client.lookup" + getNextId();
+        String kresultsId = "kresults_" + getSessionId();
+
+        int type;
+        if ( executor instanceof StatefulKnowledgeSession ) {
+            type = 0;
+        } else {
+            throw new IllegalArgumentException( "Type is not supported for registration" );
+        }
+
+        Message msg = new Message( getSessionId(),
+                                   counter.incrementAndGet(),
+                                   false,
+                                   new KnowledgeContextResolveFromContextCommand( new RegisterCommand( identifier,
+                                                                                                       ((StatefulKnowledgeSessionGridClient) executor).getInstanceId(),
+                                                                                                       type ),
+                                                                                  null,
+                                                                                  null,
+                                                                                  null,
+                                                                                  null ) );
+        System.out.println("Registering "+identifier + " - - "+client.getId());
+        try {
+            
+            registryService.register(identifier, client.getId());
+        } catch (RemoteException ex) {
+            Logger.getLogger(ServiceManagerGridClient.class.getName()).log(Level.SEVERE, null, ex);
+        }
+        try {
+
+
+            Object object = client.write( msg ).getPayload();
+            //Here I will use the registry Service
+            
+
+            if ( !(object instanceof FinishedCommand) ) {
+                throw new RuntimeException( "Response was not correctly ended" );
+            }
+        } catch ( Exception e ) {
+            throw new RuntimeException( "Unable to execute message",
+                                        e );
+        }
+    }
+
+    public CommandExecutor lookup(String identifier) {
+        String commandId = "client.lookup" + getNextId();
+        String kresultsId = "kresults_" + getSessionId();
+
+        Message msg = new Message( getSessionId(),
+                                   counter.incrementAndGet(),
+                                   false,
+                                   new KnowledgeContextResolveFromContextCommand( new LookupCommand( identifier,
+                                                                                                     commandId ),
+                                                                                  null,
+                                                                                  null,
+                                                                                  null,
+                                                                                  kresultsId ) );
+        System.out.println("Looking up the session with identifier = "+identifier);
+            try {
+            //First I need to get the correct client SessionService with the identifier
+            
+            client.setSession(registryService.lookup(identifier));
+        } catch (RemoteException ex) {
+            Logger.getLogger(ServiceManagerGridClient.class.getName()).log(Level.SEVERE, null, ex);
+        }
+        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 StatefulKnowledgeSessionGridClient( instanceId,
+                                                                         this );
+                    break;
+                }
+                default : {
+
+                }
+
+            }
+
+            return executor;
+        } catch ( Exception e ) {
+            throw new RuntimeException( "Unable to execute message",
+                                        e );
+        }
+    }
+
+    public void release(Object object) {
+        // TODO Auto-generated method stub
+    }
+
+    public void release(String identifier) {
+        // TODO Auto-generated method stub
+    }
+
+    public HumanTaskServiceProvider getHumanTaskService() {
+    	return new HumanTaskServiceGridProviderImpl(this);
+    }
+
+    public static class RemoveKnowledgeBuilderProvider implements KnowledgeBuilderProvider {
+
+        public DecisionTableConfiguration newDecisionTableConfiguration() {
+            // TODO Auto-generated method stub
+            return null;
+        }
+
+        public KnowledgeBuilder newKnowledgeBuilder() {
+            // TODO Auto-generated method stub
+            return null;
+        }
+
+        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;
+        }
+    }
+
+    public int getSessionId() {
+        return sessionId;
+    }
+
+    public int getNextId() {
+        return this.counter.incrementAndGet();
+    }
+
+    public ExecutionResults execute(Command command) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+	public List<GenericConnector> getServices() {
+		return services;
+	}
+	
+	public String getName() {
+		return this.name;
+	}
+
+    public RegistryService getRegistryService() {
+        return registryService;
+    }
+
+    public void setRegistryService(RegistryService registryService) {
+        this.registryService = registryService;
+    }
+
+
+}

Copied: labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm/grid/SessionService.java (from rev 31068, labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/src/main/java/org/drools/vsm/rio/SessionService.java)
===================================================================
--- labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm/grid/SessionService.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm/grid/SessionService.java	2010-01-19 14:22:56 UTC (rev 31136)
@@ -0,0 +1,20 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.drools.vsm.grid;
+
+import java.rmi.RemoteException;
+
+import org.drools.vsm.GenericIoWriter;
+import org.drools.vsm.Message;
+
+/**
+ *
+ * @author salaboy
+ */
+public interface SessionService extends GenericIoWriter {
+    public String  getId() throws RemoteException;
+    public Message write(Message msg) throws RemoteException;    
+    
+}

Added: labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm/grid/StatefulKnowledgeSessionGridClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm/grid/StatefulKnowledgeSessionGridClient.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm/grid/StatefulKnowledgeSessionGridClient.java	2010-01-19 14:22:56 UTC (rev 31136)
@@ -0,0 +1,419 @@
+package org.drools.vsm.grid;
+
+import org.drools.vsm.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.command.vsm.GetWorkItemManagerCommand;
+import org.drools.command.vsm.RegisterRemoteWorkItemHandlerCommand;
+import org.drools.command.vsm.StartProcessRemoteCommand;
+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.time.SessionClock;
+import org.drools.vsm.Message;
+
+public class StatefulKnowledgeSessionGridClient
+    implements
+    StatefulKnowledgeSession {
+
+    private ServiceManagerGridClient serviceManager;
+    private String                     instanceId;
+
+    public StatefulKnowledgeSessionGridClient(String instanceId,
+                                                ServiceManagerGridClient serviceManager) {
+        this.instanceId = instanceId;
+        this.serviceManager = serviceManager;
+    }
+
+    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" + serviceManager.getNextId();
+        String kresultsId = "kresults_" + serviceManager.getSessionId();
+
+        Message msg = new Message( serviceManager.getSessionId(),
+                                   serviceManager.counter.incrementAndGet(),
+                                   false,
+                                   new KnowledgeContextResolveFromContextCommand( new FireAllRulesCommand( commandId ),
+                                                                                  null,
+                                                                                  null,
+                                                                                  instanceId,
+                                                                                  kresultsId ) );
+        try {
+            Object object = serviceManager.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" + serviceManager.getNextId();
+        String kresultsId = "kresults_" + serviceManager.getSessionId();
+
+        Message msg = new Message( serviceManager.getSessionId(),
+                                   serviceManager.counter.incrementAndGet(),
+                                   false,
+                                   new KnowledgeContextResolveFromContextCommand( new ExecuteCommand( commandId,
+                                                                                                      command ),
+                                                                                  null,
+                                                                                  null,
+                                                                                  instanceId,
+                                                                                  kresultsId ) );
+
+        try {
+            Object object = serviceManager.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_" + serviceManager.getSessionId();
+         Message msg = new Message( serviceManager.getSessionId(),
+                                    serviceManager.counter.incrementAndGet(),
+                                    true,
+                                    new KnowledgeContextResolveFromContextCommand( new GetWorkItemManagerCommand(),
+                                                                                   null,
+                                                                                   null,
+                                                                                   instanceId,
+                                                                                   kresultsId ) );
+         try {
+             Object payload = serviceManager.client.write( msg ).getPayload();
+             WorkItemManager workItemManager = (WorkItemManager) ((ExecutionResults) payload).getValue( "workItemManager" );
+             ((WorkItemManagerGridClient)workItemManager).setServiceManager(serviceManager);
+             ((WorkItemManagerGridClient)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_" + serviceManager.getSessionId();
+
+        Message msg = new Message( serviceManager.getSessionId(),
+                                   serviceManager.counter.incrementAndGet(),
+                                   false,
+                                   new KnowledgeContextResolveFromContextCommand( new RegisterRemoteWorkItemHandlerCommand(name, workItemHandler ),
+                                                                                  null,
+                                                                                  null,
+                                                                                  instanceId,
+                                                                                  kresultsId ) );
+
+        try {
+            serviceManager.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" + serviceManager.getNextId();
+        String kresultsId = "kresults_" + serviceManager.getSessionId();
+
+        Message msg = new Message( serviceManager.getSessionId(),
+                                   serviceManager.counter.incrementAndGet(),
+                                   false,
+                                   new KnowledgeContextResolveFromContextCommand( new StartProcessRemoteCommand( processId ),
+                                                                                  null,
+                                                                                  null,
+                                                                                  instanceId,
+                                                                                  kresultsId ) );
+
+        try {
+            Object object = serviceManager.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;
+    }
+
+}

Added: labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm/grid/WorkItemManagerGridClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm/grid/WorkItemManagerGridClient.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm/grid/WorkItemManagerGridClient.java	2010-01-19 14:22:56 UTC (rev 31136)
@@ -0,0 +1,59 @@
+package org.drools.vsm.grid;
+
+import org.drools.vsm.remote.*;
+import java.io.Serializable;
+import java.util.Map;
+
+import org.drools.command.KnowledgeContextResolveFromContextCommand;
+import org.drools.command.runtime.process.CompleteWorkItemCommand;
+import org.drools.command.vsm.GetWorkItemManagerCommand;
+import org.drools.runtime.ExecutionResults;
+import org.drools.runtime.process.WorkItemHandler;
+import org.drools.runtime.process.WorkItemManager;
+import org.drools.vsm.Message;
+
+/**
+ *
+ * @author Lucas Amador
+ */
+public class WorkItemManagerGridClient implements WorkItemManager, Serializable {
+
+	private static final long serialVersionUID = 1L;
+	
+	private ServiceManagerGridClient serviceManager;
+	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_" + serviceManager.getSessionId();
+        Message msg = new Message( serviceManager.getSessionId(),
+                                   serviceManager.counter.incrementAndGet(),
+                                   true,
+                                   new KnowledgeContextResolveFromContextCommand( new CompleteWorkItemCommand(id, results),
+                                                                                  null,
+                                                                                  null,
+                                                                                  instanceId,
+                                                                                  kresultsId ) );
+        try {
+            serviceManager.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 setServiceManager(ServiceManagerGridClient serviceManager) {
+		this.serviceManager = serviceManager;
+	}
+
+	public void setInstanceId(String instanceId) {
+		this.instanceId = instanceId;
+	}
+
+}

Modified: labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm/mina/MinaConnector.java
===================================================================
--- labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm/mina/MinaConnector.java	2010-01-19 14:19:02 UTC (rev 31135)
+++ labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm/mina/MinaConnector.java	2010-01-19 14:22:56 UTC (rev 31136)
@@ -109,4 +109,12 @@
 
         return returnMessage;
     }
+
+    public String getId() {
+        return String.valueOf(session.getId());
+    }
+
+    public void setSession(Object object) {
+        this.session = (IoSession) object;
+    }
 }

Modified: labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm/remote/KnowledgeBuilderProviderRemoteClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm/remote/KnowledgeBuilderProviderRemoteClient.java	2010-01-19 14:19:02 UTC (rev 31135)
+++ labs/jbossrules/branches/salaboy_grid-rio/drools-vsm/src/main/java/org/drools/vsm/remote/KnowledgeBuilderProviderRemoteClient.java	2010-01-19 14:22:56 UTC (rev 31136)
@@ -27,7 +27,7 @@
 
     public DecisionTableConfiguration newDecisionTableConfiguration() {
         // TODO Auto-generated method stub
-        return null;
+        return null; 
     }
 
     public KnowledgeBuilder newKnowledgeBuilder() {



More information about the jboss-svn-commits mailing list