[jboss-svn-commits] JBL Code SVN: r33594 - in labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid: drools-grid-local/src/main/java/org/drools/grid/local and 5 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Jun 22 09:37:17 EDT 2010


Author: salaboy21
Date: 2010-06-22 09:37:15 -0400 (Tue, 22 Jun 2010)
New Revision: 33594

Added:
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/MinaRemoteHumanTaskConnector.java
Modified:
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/internal/GenericMessageHandlerImpl.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalDirectoryConnector.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/MinaRemoteDirectoryConnector.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/MinaRemoteNodeConnector.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/TaskServerInstance.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-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/HumanTaskFactoryService.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/HumanTaskService.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/TaskServerMessageHandlerImpl.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/test/java/org/drools/grid/task/CommandBasedServicesWSHumanTaskHandlerTest.java
Log:
refactoring grid task to run with new semantic, it looks a little bit hacky but I need to improve the end user interfaces

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/internal/GenericMessageHandlerImpl.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/internal/GenericMessageHandlerImpl.java	2010-06-22 12:53:30 UTC (rev 33593)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/internal/GenericMessageHandlerImpl.java	2010-06-22 13:37:15 UTC (rev 33594)
@@ -1,7 +1,5 @@
 package org.drools.grid.internal;
 
-import org.drools.grid.internal.GenericIoWriter;
-import org.drools.grid.internal.Message;
 import java.util.ArrayList;
 import java.util.List;
 

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalDirectoryConnector.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalDirectoryConnector.java	2010-06-22 12:53:30 UTC (rev 33593)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalDirectoryConnector.java	2010-06-22 13:37:15 UTC (rev 33594)
@@ -40,7 +40,7 @@
     }
 
     public void disconnect() throws ConnectorException {
-        connection.dispose();
+        //do nothing
     }
 
     public String getId() throws ConnectorException {

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/MinaRemoteDirectoryConnector.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/MinaRemoteDirectoryConnector.java	2010-06-22 12:53:30 UTC (rev 33593)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/MinaRemoteDirectoryConnector.java	2010-06-22 13:37:15 UTC (rev 33594)
@@ -98,7 +98,6 @@
     }
 
     public void disconnect() throws ConnectorException {
-        connection.dispose();
         System.out.println("DisConnected to Directory Server "+this.address);
         if (session != null && session.isConnected()) {
             session.close();

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/MinaRemoteNodeConnector.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/MinaRemoteNodeConnector.java	2010-06-22 12:53:30 UTC (rev 33593)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/MinaRemoteNodeConnector.java	2010-06-22 13:37:15 UTC (rev 33594)
@@ -74,7 +74,7 @@
     }
 
     public void disconnect() throws ConnectorException {
-        connection.dispose();
+        
         if (session != null && session.isConnected()) {
             session.close();
             session.getCloseFuture().join();

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/TaskServerInstance.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/TaskServerInstance.java	2010-06-22 12:53:30 UTC (rev 33593)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/TaskServerInstance.java	2010-06-22 13:37:15 UTC (rev 33594)
@@ -23,14 +23,13 @@
     public HumanTaskService getTaskClient() throws ConnectorException {
         GenericConnection connection = getConnector().getConnection();
         HumanTaskService htService = (HumanTaskService) connection.getHumanTaskNode(new ReturnFirstHumanTaskServiceSelectionStrategy(1, getConnector()));
-        htService.connect();
+        
         return htService;
     }
 
      public HumanTaskService getTaskClient(HumanTaskSelectionStrategy strategy) throws ConnectorException {
         GenericConnection connection = getConnector().getConnection();
         HumanTaskService htService = (HumanTaskService) connection.getHumanTaskNode(strategy);
-        htService.connect();
         return htService;
     }
 

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/CommandBasedServicesWSHumanTaskHandler.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/CommandBasedServicesWSHumanTaskHandler.java	2010-06-22 12:53:30 UTC (rev 33593)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/CommandBasedServicesWSHumanTaskHandler.java	2010-06-22 13:37:15 UTC (rev 33594)
@@ -14,15 +14,12 @@
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
-import org.apache.mina.transport.socket.nio.NioSocketConnector;
 import org.drools.SystemEventListenerFactory;
 import org.drools.eventmessaging.EventKey;
 import org.drools.eventmessaging.Payload;
 import org.drools.grid.ConnectorException;
-import org.drools.grid.GenericNodeConnector;
+import org.drools.grid.GenericHumanTaskConnector;
 import org.drools.grid.internal.Message;
-import org.drools.grid.remote.mina.MinaIoHandler;
-import org.drools.grid.remote.mina.MinaRemoteNodeConnector;
 import org.drools.grid.task.TaskClientMessageHandlerImpl.AddTaskMessageResponseHandler;
 import org.drools.grid.task.TaskClientMessageHandlerImpl.GetContentMessageResponseHandler;
 import org.drools.grid.task.TaskClientMessageHandlerImpl.GetTaskMessageResponseHandler;
@@ -62,8 +59,8 @@
 
     private String ipAddress = "127.0.0.1";
     private int port = 9124;
-    private SocketAddress address;
-    private GenericNodeConnector connector;
+    
+    private GenericHumanTaskConnector connector;
     private HumanTaskServiceImpl client;
     private KnowledgeRuntime session;
     private Map<Long, Long> idMapping = new HashMap<Long, Long>();
@@ -71,19 +68,17 @@
 
     public CommandBasedServicesWSHumanTaskHandler(KnowledgeRuntime session) {
         this.session = session;
-        this.address = new InetSocketAddress(ipAddress, port);
+        
     }
     public void setAddress(String ipAddress, int port){
-        this.address = new InetSocketAddress(ipAddress, port);
+        this.ipAddress = ipAddress;
+        this.port = port;
     }
 
     public void connect() throws ConnectorException {
         if (connector == null) {
-            NioSocketConnector htclientConnector = new NioSocketConnector();
-            htclientConnector.setHandler(new MinaIoHandler(SystemEventListenerFactory.getSystemEventListener()));
-            connector = new MinaRemoteNodeConnector("client ht",
-                    htclientConnector,
-                    this.address,
+            connector = new MinaRemoteHumanTaskConnector("client ht",
+                    ipAddress, port,
                     SystemEventListenerFactory.getSystemEventListener());
             connector.connect();
             int id = ((StatefulKnowledgeSession) session).getId();

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-06-22 12:53:30 UTC (rev 33593)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/HumanTaskFactoryService.java	2010-06-22 13:37:15 UTC (rev 33594)
@@ -2,14 +2,8 @@
 
 import org.drools.grid.HumanTaskNodeService;
 import org.drools.Service;
-import org.drools.grid.GenericNodeConnector;
 
-
-
-
 public interface HumanTaskFactoryService extends Service {
-    public HumanTaskNodeService newHumanTaskService();
-    
-	 
 
+    public HumanTaskNodeService newHumanTaskService();
 }

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/HumanTaskService.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/HumanTaskService.java	2010-06-22 12:53:30 UTC (rev 33593)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/HumanTaskService.java	2010-06-22 13:37:15 UTC (rev 33594)
@@ -56,6 +56,5 @@
     public void getTasksAssignedAsTaskInitiator(String userId, String language, TaskSummaryMessageResponseHandler responseHandler);
     public void getTasksAssignedAsTaskStakeholder(String userId, String language, TaskSummaryMessageResponseHandler responseHandler);
     public void registerForEvent(EventKey key, boolean remove, EventMessageResponseHandler responseHandler);
-    public void connect() throws ConnectorException;
     public void disconnect() throws ConnectorException;
 }

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-06-22 12:53:30 UTC (rev 33593)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/HumanTaskServiceImpl.java	2010-06-22 13:37:15 UTC (rev 33594)
@@ -1,13 +1,12 @@
 package org.drools.grid.task;
 
-
 import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import org.drools.eventmessaging.EventKey;
 import org.drools.grid.ConnectorException;
-import org.drools.grid.GenericNodeConnector;
+import org.drools.grid.GenericHumanTaskConnector;
 import org.drools.grid.internal.Message;
 import org.drools.grid.task.TaskClientMessageHandlerImpl.AddAttachmentMessageResponseHandler;
 import org.drools.grid.task.TaskClientMessageHandlerImpl.AddCommentMessageResponseHandler;
@@ -37,12 +36,12 @@
  */
 public class HumanTaskServiceImpl implements HumanTaskService {
 
-    private final GenericNodeConnector client;
+    private final GenericHumanTaskConnector client;
     private final AtomicInteger counter;
     private int sessionId;
     private String clientName;
 
-    public HumanTaskServiceImpl(GenericNodeConnector client, int sessionId) {
+    public HumanTaskServiceImpl(GenericHumanTaskConnector client, int sessionId) {
         this.client = client;
         this.counter = new AtomicInteger();
         this.clientName = String.valueOf(sessionId);
@@ -50,13 +49,10 @@
 
     }
 
-    //@Override
-    public void connect() throws ConnectorException {
-    	this.client.connect();
-    }
+   
 
     public void disconnect() throws ConnectorException {
-		this.client.disconnect();
+        this.client.disconnect();
     }
 
     public void addTask(Task task, ContentData content, AddTaskMessageResponseHandler responseHandler) {

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-06-22 12:53:30 UTC (rev 33593)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/HumanTaskServiceProviderRemoteClient.java	2010-06-22 13:37:15 UTC (rev 33594)
@@ -17,8 +17,11 @@
 
 package org.drools.grid.task;
 
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import org.drools.grid.ConnectorException;
+import org.drools.grid.GenericHumanTaskConnector;
 import org.drools.grid.HumanTaskNodeService;
-import org.drools.grid.GenericNodeConnector;
 
 /**
  *
@@ -26,22 +29,22 @@
  */
 public class HumanTaskServiceProviderRemoteClient implements HumanTaskFactoryService {
 
-    private GenericNodeConnector connector;
+    private GenericHumanTaskConnector connector;
     private int id;
 
     public HumanTaskServiceProviderRemoteClient() {
     }
 
-    public HumanTaskServiceProviderRemoteClient(GenericNodeConnector connector, int id) {
+    public HumanTaskServiceProviderRemoteClient(GenericHumanTaskConnector connector, int id) {
         this.connector = connector;
         this.id = id;
     }
 
-    public GenericNodeConnector getConnector() {
+    public GenericHumanTaskConnector getConnector() {
         return connector;
     }
 
-    public void setConnector(GenericNodeConnector connector) {
+    public void setConnector(GenericHumanTaskConnector connector) {
         this.connector = connector;
     }
 
@@ -53,13 +56,15 @@
         this.id = id;
     }
 
-
-    //@Override
     public HumanTaskNodeService newHumanTaskService() {
-
-        
-            return new HumanTaskServiceImpl(this.connector, this.id);
-      
+        HumanTaskServiceImpl humanTaskServiceImpl = null;
+        try {
+            this.connector.connect();
+            humanTaskServiceImpl = new HumanTaskServiceImpl(this.connector, this.id);
+        } catch (ConnectorException ex) {
+            Logger.getLogger(HumanTaskServiceProviderRemoteClient.class.getName()).log(Level.SEVERE, null, ex);
+        }
+        return humanTaskServiceImpl;
     }
 
 

Added: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/MinaRemoteHumanTaskConnector.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/MinaRemoteHumanTaskConnector.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/MinaRemoteHumanTaskConnector.java	2010-06-22 13:37:15 UTC (rev 33594)
@@ -0,0 +1,136 @@
+package org.drools.grid.task;
+
+import java.net.InetSocketAddress;
+import java.net.SocketAddress;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+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.ConnectorException;
+import org.drools.grid.GenericConnection;
+import org.drools.grid.GenericHumanTaskConnector;
+import org.drools.grid.HumanTaskNodeService;
+
+import org.drools.grid.internal.Message;
+import org.drools.grid.internal.MessageResponseHandler;
+import org.drools.grid.internal.responsehandlers.BlockingMessageResponseHandler;
+import org.drools.grid.remote.RemoteConnection;
+import org.drools.grid.remote.mina.MinaIoHandler;
+
+public class MinaRemoteHumanTaskConnector
+        implements
+        GenericHumanTaskConnector {
+
+    protected IoSession session;
+    protected final String name;
+    protected AtomicInteger counter;
+    protected SocketConnector connector;
+    protected SocketAddress address;
+    protected SystemEventListener eventListener;
+    protected RemoteConnection connection;
+
+    public MinaRemoteHumanTaskConnector(String name,
+            String providerAddress, Integer providerPort,
+            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 = new InetSocketAddress(providerAddress, providerPort);
+        this.connector = minaconnector;
+        this.eventListener = eventListener;
+        this.connection = new RemoteConnection();
+    }
+
+    public void connect() throws ConnectorException {
+        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());
+                Logger.getLogger(MinaRemoteHumanTaskConnector.class.getName()).log(Level.SEVERE, null, "The Node Connection Failed!");
+                throw new ConnectorException("unable to connect : " + address + " : " + future1.getException());
+            }
+            eventListener.info("connected : " + address);
+            this.session = future1.getSession();
+        } catch (Exception e) {
+            throw new ConnectorException(e);
+        }
+    }
+
+    public void disconnect() throws ConnectorException {
+
+        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) throws ConnectorException {
+        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() {
+        String hostName = ((InetSocketAddress) this.address).getHostName();
+        int hostPort = ((InetSocketAddress) this.address).getPort();
+        return "Mina:" + this.name + ":" + hostName + ":" + hostPort;
+    }
+
+    public void setSession(Object object) {
+        this.session = (IoSession) object;
+    }
+
+    public GenericConnection getConnection() {
+        return this.connection;
+    }
+
+    public HumanTaskNodeService getHumanTaskNodeService() throws ConnectorException {
+        return new HumanTaskServiceImpl(this, (int) this.session.getId());
+    }
+}

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-06-22 12:53:30 UTC (rev 33593)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/TaskServerMessageHandlerImpl.java	2010-06-22 13:37:15 UTC (rev 33594)
@@ -42,12 +42,12 @@
         this.systemEventListener = systemEventListener;
     }
 
-    
+
     public void exceptionCaught(IoSession session, Throwable cause) throws Exception {
         systemEventListener.exception("Uncaught exception on Server", cause);
     }
 
-    
+
     public void messageReceived(GenericIoWriter session, Message msg) throws Exception {
         Command cmd = (Command) ((Message)msg).getPayload();
         TaskServiceSession taskSession = service.createSession();
@@ -428,7 +428,7 @@
         }
     }
 
-    
+
     public void sessionIdle(IoSession session, IdleStatus status) throws Exception {
         systemEventListener.debug("Server IDLE " + session.getIdleCount(status));
     }

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/test/java/org/drools/grid/task/CommandBasedServicesWSHumanTaskHandlerTest.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/test/java/org/drools/grid/task/CommandBasedServicesWSHumanTaskHandlerTest.java	2010-06-22 12:53:30 UTC (rev 33593)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/test/java/org/drools/grid/task/CommandBasedServicesWSHumanTaskHandlerTest.java	2010-06-22 13:37:15 UTC (rev 33594)
@@ -3,21 +3,20 @@
 import java.io.IOException;
 import java.io.InputStreamReader;
 import java.io.Reader;
-import java.net.InetSocketAddress;
-import java.net.SocketAddress;
 import java.util.Date;
 import java.util.Map;
 import java.util.Properties;
 import javax.persistence.EntityManagerFactory;
 import javax.persistence.Persistence;
+import junit.framework.Assert;
 import org.apache.commons.collections.map.HashedMap;
 
 import org.apache.mina.transport.socket.SocketAcceptor;
 import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
-import org.apache.mina.transport.socket.nio.NioSocketConnector;
 import org.drools.KnowledgeBase;
 import org.drools.KnowledgeBaseFactoryService;
 import org.drools.SystemEventListenerFactory;
+import org.drools.grid.GenericHumanTaskConnector;
 import org.drools.io.impl.ClassPathResource;
 import org.drools.runtime.StatefulKnowledgeSession;
 import org.drools.grid.internal.NodeData;
@@ -41,18 +40,14 @@
 
 public class CommandBasedServicesWSHumanTaskHandlerTest extends BaseTaskServiceTest {
 
-    
-    
     private MinaAcceptor server;
     private MinaAcceptor humanTaskServer;
-    //private NodeConnector nodeConnection;
-  
     protected EntityManagerFactory emf;
-    
     protected static TaskService taskService;
     protected TaskServiceSession taskSession;
-    protected GenericNodeConnector htMinaClient;
+    protected GenericHumanTaskConnector htMinaClient;
     protected GenericNodeConnector minaClient;
+
     @Before
     public void setUpTaskService() throws Exception {
         Properties conf = new Properties();
@@ -98,94 +93,106 @@
                 reader.close();
             }
         }
-    
-        
-        SocketAddress address = new InetSocketAddress("127.0.0.1", 9123);
+
+        // Execution Node Server configuration
+        String execAddress = "127.0.0.1";
+        int execPort = 9123;
+
+
         NodeData nodeData = new NodeData();
         // Setup Execution Node Server
         SocketAcceptor acceptor = new NioSocketAcceptor();
         acceptor.setHandler(new MinaIoHandler(SystemEventListenerFactory.getSystemEventListener(),
                 new GenericMessageHandlerImpl(nodeData,
                 SystemEventListenerFactory.getSystemEventListener())));
-        this.server = new MinaAcceptor(acceptor, address);
+        this.server = new MinaAcceptor(acceptor, execAddress, execPort);
         this.server.start();
+        System.out.println("Execution Server Started");
         Thread.sleep(5000);
         // End Execution Server
 
+
+
+
+
         // Human task Server configuration
-        SocketAddress htAddress = new InetSocketAddress("127.0.0.1", 9124);
+        String htAddress = "127.0.0.1";
+        int htPort = 9124;
+
         SocketAcceptor htAcceptor = new NioSocketAcceptor();
-
         htAcceptor.setHandler(new MinaIoHandler(SystemEventListenerFactory.getSystemEventListener(),
                 new TaskServerMessageHandlerImpl(taskService,
                 SystemEventListenerFactory.getSystemEventListener())));
-        this.humanTaskServer = new MinaAcceptor(htAcceptor, htAddress);
+        this.humanTaskServer = new MinaAcceptor(htAcceptor, htAddress, htPort);
         this.humanTaskServer.start();
         Thread.sleep(5000);
+        System.out.println("Human Task Server Started");
         // End Human task Server configuration
 
         // setup the ht client
-        NioSocketConnector htclientConnector = new NioSocketConnector();
-        htclientConnector.setHandler(new MinaIoHandler(SystemEventListenerFactory.getSystemEventListener()));
-        htMinaClient = new MinaRemoteNodeConnector("client ht",
-                htclientConnector,
+
+        htMinaClient = new MinaRemoteHumanTaskConnector("client ht",
                 htAddress,
+                htPort,
                 SystemEventListenerFactory.getSystemEventListener());
 
-         htMinaClient.connect();
+        // setup Remote client
 
-        // setup RemoteService client
-        NioSocketConnector clientConnector = new NioSocketConnector();
-        clientConnector.setHandler(new MinaIoHandler(SystemEventListenerFactory.getSystemEventListener()));
-        minaClient = new MinaRemoteNodeConnector("client SM",
-                clientConnector,
-                address,
+        minaClient = new MinaRemoteNodeConnector("client Exec Node",
+                execAddress,
+                execPort,
                 SystemEventListenerFactory.getSystemEventListener());
 
 
 
         connection.addExecutionNode(minaClient);
+        connection.addHumanTaskNode(htMinaClient);
+        // this will create a connection to the exec node
+        node = connection.getExecutionNode(new ReturnAlwaysTheFirstSelectionStrategy());
 
-        node = connection.getExecutionNode(new ReturnAlwaysTheFirstSelectionStrategy(connection));
-        //nodeConnection.connect();
-        
-        
-        
-
-        
         KnowledgeBase kbase = this.node.get(KnowledgeBaseFactoryService.class).newKnowledgeBase();
         StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
         int sessionId = ksession.getId();
 
         node.set(HumanTaskFactoryService.class, new HumanTaskServiceProviderRemoteClient(htMinaClient, sessionId));
+        //this will create a connection from the ht client to the ht server
+        this.humanTaskClient = (HumanTaskService) this.node.get(HumanTaskFactoryService.class).newHumanTaskService();
 
-        this.humanTaskClient =  (HumanTaskService) this.node.get(HumanTaskFactoryService.class).newHumanTaskService();
-        
+        //this will create a connection from the session to the ht server
+        this.handler = new CommandBasedServicesWSHumanTaskHandler(ksession);
 
-        this.handler = new CommandBasedServicesWSHumanTaskHandler(ksession);
-        
-        
+
     }
+
     @After
     public void tearDown() throws Exception {
+
+        this.handler.dispose();
+
         this.humanTaskClient.disconnect();
-        
-        for(GenericNodeConnector connector : connection.getNodeConnectors()){
-            connector.disconnect();
-        }
-        
-        this.handler.dispose();
+
+        connection.dispose();
+
+        Thread.sleep(500);
+
+        Assert.assertEquals(0, server.getCurrentSessions());
         this.server.stop();
+
+        Assert.assertEquals(0, humanTaskServer.getCurrentSessions());
         this.humanTaskServer.stop();
         
+        
+        
+        
+
         taskSession.dispose();
         emf.close();
-        
-       
+
+
     }
 
     public Object eval(Reader reader,
-                       Map vars) {
+            Map vars) {
         try {
             return eval(toString(reader),
                     vars);



More information about the jboss-svn-commits mailing list