[jboss-svn-commits] JBL Code SVN: r29863 - in labs/jbossrules/trunk/drools-vsm/src: main/java/org/drools/vsm/mina and 3 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Oct 28 18:39:48 EDT 2009


Author: mark.proctor at jboss.com
Date: 2009-10-28 18:39:48 -0400 (Wed, 28 Oct 2009)
New Revision: 29863

Added:
   labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/BlockingGenericIoWriter.java
Removed:
   labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/rio/RioIoHandler.java
Modified:
   labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/mina/ClientGenericMessageReceiverImpl.java
   labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/rio/RioConnector.java
   labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/rio/service/SessionServiceImpl.java
   labs/jbossrules/trunk/drools-vsm/src/test/java/org/drools/vsm/ServiceManagerMinaRemoteTest.java
   labs/jbossrules/trunk/drools-vsm/src/test/java/org/drools/vsm/ServiceManagerRioRemoteTest.java
Log:
JBRULES-2269 Virtual Service Manager
-more generifying

Added: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/BlockingGenericIoWriter.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/BlockingGenericIoWriter.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/BlockingGenericIoWriter.java	2009-10-28 22:39:48 UTC (rev 29863)
@@ -0,0 +1,19 @@
+/**
+ * 
+ */
+package org.drools.vsm;
+
+
+public class BlockingGenericIoWriter implements GenericIoWriter {
+    
+    private Message msg;
+
+    public void write(Message message) {
+        this.msg = message;
+    }
+    
+    public Message getMessage() {
+        return this.msg;
+    }
+    
+}
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/mina/ClientGenericMessageReceiverImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/mina/ClientGenericMessageReceiverImpl.java	2009-10-28 21:33:27 UTC (rev 29862)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/mina/ClientGenericMessageReceiverImpl.java	2009-10-28 22:39:48 UTC (rev 29863)
@@ -13,7 +13,9 @@
 import org.drools.vsm.Message;
 import org.drools.vsm.MessageResponseHandler;
 
-public class ClientGenericMessageReceiverImpl implements ClientGenericMessageReceiver {
+public class ClientGenericMessageReceiverImpl
+    implements
+    ClientGenericMessageReceiver {
     protected Map<Integer, MessageResponseHandler> responseHandlers;
 
     private GenericMessageHandler                  handler;
@@ -21,7 +23,7 @@
     private final SystemEventListener              systemEventListener;
 
     public ClientGenericMessageReceiverImpl(GenericMessageHandler handler,
-                                     SystemEventListener systemEventListener) {
+                                            SystemEventListener systemEventListener) {
         this.handler = handler;
         this.responseHandlers = new ConcurrentHashMap<Integer, MessageResponseHandler>();;
         this.systemEventListener = systemEventListener;

Modified: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/rio/RioConnector.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/rio/RioConnector.java	2009-10-28 21:33:27 UTC (rev 29862)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/rio/RioConnector.java	2009-10-28 22:39:48 UTC (rev 29863)
@@ -7,7 +7,6 @@
 import java.net.SocketAddress;
 import java.util.concurrent.atomic.AtomicInteger;
 
-
 import net.jini.core.lookup.ServiceItem;
 import net.jini.core.lookup.ServiceTemplate;
 import net.jini.discovery.LookupDiscoveryManager;
@@ -15,86 +14,91 @@
 import net.jini.lookup.ServiceDiscoveryManager;
 import org.drools.SystemEventListener;
 import org.drools.SystemEventListenerFactory;
+import org.drools.vsm.ClientGenericMessageReceiver;
 import org.drools.vsm.GenericConnector;
 import org.drools.vsm.GenericIoWriter;
 import org.drools.vsm.Message;
 import org.drools.vsm.MessageResponseHandler;
+import org.drools.vsm.mina.ClientGenericMessageReceiverImpl;
 
 public class RioConnector
-        implements
-        GenericConnector,
-        GenericIoWriter {
+    implements
+    GenericConnector,
+    GenericIoWriter {
 
-    protected final String name;
-    protected AtomicInteger counter;
-    protected SessionService sessionService;
-    protected SocketAddress address;
-    protected SystemEventListener eventListener;
-    protected RioIoHandler ioHandler;
+    protected final String                 name;
+    protected AtomicInteger                counter;
+    protected SessionService               sessionService;
+    protected SocketAddress                address;
+    protected SystemEventListener          eventListener;
+    protected ClientGenericMessageReceiver ioHandler;
 
     public RioConnector(String name,
-            SystemEventListener eventListener) {
-        if (name == null) {
-            throw new IllegalArgumentException("Name can not be null");
+                        SystemEventListener eventListener,
+                        ClientGenericMessageReceiver ioHandler) {
+        if ( name == null ) {
+            throw new IllegalArgumentException( "Name can not be null" );
         }
         this.name = name;
         this.counter = new AtomicInteger();
         this.eventListener = eventListener;
-        this.ioHandler = new RioIoHandler(SystemEventListenerFactory.getSystemEventListener());
+        this.ioHandler = ioHandler;
     }
 
     public RioConnector(String name,
-            SystemEventListener eventListener, SessionService sessionService) {
-        if (name == null) {
-            throw new IllegalArgumentException("Name can not be null");
+                        SystemEventListener eventListener,
+                        SessionService sessionService,
+                        ClientGenericMessageReceiver ioHandler) {
+        if ( name == null ) {
+            throw new IllegalArgumentException( "Name can not be null" );
         }
         this.name = name;
         this.counter = new AtomicInteger();
         this.eventListener = eventListener;
         this.sessionService = sessionService;
-        this.ioHandler = new RioIoHandler(this.eventListener);
+        this.ioHandler = ioHandler; //new RioIoHandler( this.eventListener );
     }
 
     /* (non-Javadoc)
      * @see org.drools.vsm.mina.Messenger#connect()
      */
     public boolean connect() {
-//        Class[] classes = new Class[]{org.drools.vsm.rio.SessionService.class};
-//        ServiceTemplate tmpl = new ServiceTemplate(null, classes, null);
-//
-//        LookupDiscoveryManager lookupDiscovery = null;
-//        ServiceItem item = null;
-//        try {
-//            lookupDiscovery = new LookupDiscoveryManager(LookupDiscoveryManager.ALL_GROUPS, null, null);
-//
-//
-//            System.out.println("Discovering Manager service ...");
-//
-//            ServiceDiscoveryManager serviceDiscovery = new ServiceDiscoveryManager(lookupDiscovery, new LeaseRenewalManager());
-//
-//            /* Wait no more then 10 seconds to discover the service */
-//            item = serviceDiscovery.lookup(tmpl, null, 10000);
-//
-//            serviceDiscovery.terminate();
-//        } catch (InterruptedException ex) {
-//            Logger.getLogger(RioConnector.class.getName()).log(Level.SEVERE, null, ex);
-//        } catch (RemoteException ex) {
-//            Logger.getLogger(RioConnector.class.getName()).log(Level.SEVERE, null, ex);
-//        } catch (IOException ex) {
-//            Logger.getLogger(RioConnector.class.getName()).log(Level.SEVERE, null, ex);
-//        }
-//        if (item != null) {
-//            System.out.println("Discovered Account service");
-//            if (item.service instanceof SessionService) {
-//                sessionService = (SessionService) item.service;
-//
-//            }
-//            return true;
-//        } else {
-//            System.out.println("Session service not discovered, make sure the" +
-//                    "service is deployed");
-//            return false;
-//        }
+        //        Class[] classes = new Class[]{org.drools.vsm.rio.SessionService.class};
+        //        ServiceTemplate tmpl = new ServiceTemplate(null, classes, null);
+        //
+        //        LookupDiscoveryManager lookupDiscovery = null;
+        //        ServiceItem item = null;
+        //        try {
+        //            lookupDiscovery = new LookupDiscoveryManager(LookupDiscoveryManager.ALL_GROUPS, null, null);
+        //
+        //
+        //            System.out.println("Discovering Manager service ...");
+        //
+        //            ServiceDiscoveryManager serviceDiscovery = new ServiceDiscoveryManager(lookupDiscovery, new LeaseRenewalManager());
+        //
+        //            /* Wait no more then 10 seconds to discover the service */
+        //            item = serviceDiscovery.lookup(tmpl, null, 10000);
+        //
+        //            serviceDiscovery.terminate();
+        //        } catch (InterruptedException ex) {
+        //            Logger.getLogger(RioConnector.class.getName()).log(Level.SEVERE, null, ex);
+        //        } catch (RemoteException ex) {
+        //            Logger.getLogger(RioConnector.class.getName()).log(Level.SEVERE, null, ex);
+        //        } catch (IOException ex) {
+        //            Logger.getLogger(RioConnector.class.getName()).log(Level.SEVERE, null, ex);
+        //        }
+        //        if (item != null) {
+        //            System.out.println("Discovered Account service");
+        //            if (item.service instanceof SessionService) {
+        //                sessionService = (SessionService) item.service;
+        //
+        //            }
+        //            return true;
+        //        } else {
+        //            System.out.println("Session service not discovered, make sure the" +
+        //                    "service is deployed");
+        //            return false;
+        //        }
         return true;
     }
 
@@ -106,19 +110,30 @@
     }
 
     public void write(Message msg) {
-        if (sessionService != null) {
+        if ( sessionService != null ) {
             try {
-                ioHandler.messageReceived(sessionService, this.sessionService.write(msg));
-            } catch (RemoteException ex) {
-                Logger.getLogger(RioConnector.class.getName()).log(Level.SEVERE, null, ex);
-            } catch (Exception ex) {
-                Logger.getLogger(RioConnector.class.getName()).log(Level.SEVERE, null, ex);
+                
+                Message returnMessage = this.sessionService.write( msg );
+                
+                ioHandler.messageReceived( new RioIoWriter(sessionService) ,
+                                           returnMessage );
+                
+            } catch ( RemoteException ex ) {
+                Logger.getLogger( RioConnector.class.getName() ).log( Level.SEVERE,
+                                                                      null,
+                                                                      ex );
+            } catch ( Exception ex ) {
+                Logger.getLogger( RioConnector.class.getName() ).log( Level.SEVERE,
+                                                                      null,
+                                                                      ex );
             }
         }
     }
 
-    public void addResponseHandler(int id, MessageResponseHandler responseHandler) {
-        ioHandler.addResponseHandler(id, responseHandler);
+    public void addResponseHandler(int id,
+                                   MessageResponseHandler responseHandler) {
+        ioHandler.addResponseHandler( id,
+                                      responseHandler );
     }
 
     public void setSessionService(SessionService sessionService) {

Deleted: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/rio/RioIoHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/rio/RioIoHandler.java	2009-10-28 21:33:27 UTC (rev 29862)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/rio/RioIoHandler.java	2009-10-28 22:39:48 UTC (rev 29863)
@@ -1,54 +0,0 @@
-package org.drools.vsm.rio;
-
-
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
-
-import org.drools.SystemEventListener;
-import org.drools.vsm.GenericMessageHandler;
-import org.drools.vsm.Message;
-import org.drools.vsm.MessageResponseHandler;
-import org.drools.vsm.mina.ClientGenericMessageReceiverImpl;
-
-public class RioIoHandler  {
-    protected Map<Integer, MessageResponseHandler> responseHandlers;
-    
-    private ClientGenericMessageReceiverImpl clientMessageReceiver;
-    
-
-    /**
-     * Listener used for logging
-     */
-    private final SystemEventListener              systemEventListener;
-
-    public RioIoHandler(SystemEventListener systemEventListener) {
-        this( systemEventListener,
-              null );
-
-    }
-
-    public RioIoHandler(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 messageReceived(SessionService sessionService, Object object) throws Exception {
-        Message msg = (Message) object;
-
-        this.clientMessageReceiver.messageReceived( new RioIoWriter( sessionService ), msg );
-    }
-
-   
-
-}

Modified: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/rio/service/SessionServiceImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/rio/service/SessionServiceImpl.java	2009-10-28 21:33:27 UTC (rev 29862)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/rio/service/SessionServiceImpl.java	2009-10-28 22:39:48 UTC (rev 29863)
@@ -26,7 +26,7 @@
 import org.drools.command.impl.ContextImpl;
 import org.drools.command.impl.GenericCommand;
 import org.drools.runtime.impl.ExecutionResultImpl;
-import org.drools.vsm.GenericIoWriter;
+import org.drools.vsm.BlockingGenericIoWriter;
 import org.drools.vsm.GenericMessageHandler;
 import org.drools.vsm.GenericMessageHandlerImpl;
 import org.drools.vsm.Message;
@@ -46,7 +46,7 @@
     
     
     public SessionServiceImpl(ServiceManagerData data,
-                                 SystemEventListener systemEventListener) {
+                              SystemEventListener systemEventListener) {
         handler = new GenericMessageHandlerImpl( data, systemEventListener );
     }
 
@@ -62,18 +62,9 @@
         return blockingWriter.getMessage();
     }
     
-    private static class BlockingGenericIoWriter implements GenericIoWriter {
-        
-        private Message msg;
-
-        public void write(Message message) {
-            this.msg = message;
-        }
-        
-        public Message getMessage() {
-            return this.msg;
-        }
-        
+    public GenericMessageHandler getGenericMessageHandler() {
+        return this.handler;
     }
+    
 
 }

Modified: labs/jbossrules/trunk/drools-vsm/src/test/java/org/drools/vsm/ServiceManagerMinaRemoteTest.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/test/java/org/drools/vsm/ServiceManagerMinaRemoteTest.java	2009-10-28 21:33:27 UTC (rev 29862)
+++ labs/jbossrules/trunk/drools-vsm/src/test/java/org/drools/vsm/ServiceManagerMinaRemoteTest.java	2009-10-28 22:39:48 UTC (rev 29863)
@@ -24,7 +24,7 @@
         SocketAcceptor acceptor = new NioSocketAcceptor();
         acceptor.setHandler( new MinaIoHandler( SystemEventListenerFactory.getSystemEventListener(),
                                                 new GenericMessageHandlerImpl( serverData,
-                                                                           SystemEventListenerFactory.getSystemEventListener() ) ) );
+                                                                               SystemEventListenerFactory.getSystemEventListener() ) ) );
         this.server = new MinaAcceptor( acceptor,
                                         address );
         this.server.start();

Modified: labs/jbossrules/trunk/drools-vsm/src/test/java/org/drools/vsm/ServiceManagerRioRemoteTest.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/test/java/org/drools/vsm/ServiceManagerRioRemoteTest.java	2009-10-28 21:33:27 UTC (rev 29862)
+++ labs/jbossrules/trunk/drools-vsm/src/test/java/org/drools/vsm/ServiceManagerRioRemoteTest.java	2009-10-28 22:39:48 UTC (rev 29863)
@@ -1,29 +1,35 @@
 package org.drools.vsm;
 
-
 import org.drools.SystemEventListenerFactory;
+import org.drools.vsm.mina.ClientGenericMessageReceiverImpl;
 import org.drools.vsm.remote.ServiceManagerRemoteClient;
 import org.drools.vsm.rio.RioConnector;
 import org.drools.vsm.rio.RioServer;
+import org.drools.vsm.rio.service.SessionServiceImpl;;
 
 public class ServiceManagerRioRemoteTest extends ServiceManagerTestBase {
     AcceptorService server;
 
     protected void setUp() throws Exception {
-        
 
         ServiceManagerData serverData = new ServiceManagerData();
-        
+
         //setup Server
         RioServer rioServer = new RioServer();
         rioServer.start();
-        RioConnector connector = new RioConnector("client 1", SystemEventListenerFactory.getSystemEventListener(), rioServer.getSessionService());
+        
+        GenericMessageHandler handler =  ((SessionServiceImpl)rioServer.getSessionService()).getGenericMessageHandler();
+                                       
+        RioConnector connector = new RioConnector( "client 1",
+                                                   SystemEventListenerFactory.getSystemEventListener(),
+                                                   rioServer.getSessionService(),
+                                                   new ClientGenericMessageReceiverImpl(handler, SystemEventListenerFactory.getSystemEventListener()));
 
         // setup Client
-        this.client = new ServiceManagerRemoteClient( "client 1", connector );
+        this.client = new ServiceManagerRemoteClient( "client 1",
+                                                      connector );
         //this.client.connect();
-        
-        
+
     }
 
     protected void tearDown() throws Exception {



More information about the jboss-svn-commits mailing list