[jboss-svn-commits] JBL Code SVN: r29601 - labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Oct 13 21:25:58 EDT 2009


Author: mark.proctor at jboss.com
Date: 2009-10-13 21:25:57 -0400 (Tue, 13 Oct 2009)
New Revision: 29601

Added:
   labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/AcceptorService.java
   labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/ContextManagerImpl.java
   labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/GenericConnector.java
   labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/GenericIoWriter.java
   labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/GenericMessageHandler.java
   labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/GenericMessageHandlerImpl.java
   labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/MessageResponseHandler.java
   labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/ServiceManagerData.java
Removed:
   labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/BaseMinaClient.java
   labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/BaseMinaHandler.java
   labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/BaseMinaServer.java
   labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/KnowledgeBaseClient.java
   labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/KnowledgeBuilderClient.java
   labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/KnowledgeBuilderProviderClient.java
   labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/MessageHandler.java
   labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/ServiceManagerClient.java
   labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/ServiceManagerServer.java
   labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/ServiceManagerServerResponseHandler.java
Modified:
   labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/CollectionClient.java
   labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/Message.java
Log:
JBRULES-2269 Virtual Service Manager
-now works for xstream
-split into remote/local

Copied: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/AcceptorService.java (from rev 29307, labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/ServiceManagerServer.java)
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/AcceptorService.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/AcceptorService.java	2009-10-14 01:25:57 UTC (rev 29601)
@@ -0,0 +1,9 @@
+package org.drools.vsm;
+
+import java.io.IOException;
+
+public interface AcceptorService {
+    void start() throws IOException;
+
+    void stop();
+}

Deleted: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/BaseMinaClient.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/BaseMinaClient.java	2009-10-14 01:22:47 UTC (rev 29600)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/BaseMinaClient.java	2009-10-14 01:25:57 UTC (rev 29601)
@@ -1,79 +0,0 @@
-package org.drools.vsm;
-
-import java.net.SocketAddress;
-import java.util.concurrent.atomic.AtomicInteger;
-
-import org.apache.mina.core.future.ConnectFuture;
-import org.apache.mina.core.session.IoSession;
-import org.apache.mina.filter.codec.ProtocolCodecFilter;
-import org.apache.mina.filter.codec.serialization.ObjectSerializationCodecFactory;
-import org.apache.mina.transport.socket.SocketConnector;
-
-public class BaseMinaClient {
-    protected IoSession             session;
-
-    protected final BaseMinaHandler handler;
-    protected final String          name;
-    protected AtomicInteger         counter;
-
-    protected SocketConnector       connector;
-    protected SocketAddress         address;
-
-    public BaseMinaClient(String name,
-                          BaseMinaHandler handler) {
-        if ( name == null ) {
-            throw new IllegalArgumentException( "Name can not be null" );
-        }
-        this.name = name;
-        this.handler = handler;
-        counter = new AtomicInteger();
-    }
-
-    public boolean connect(SocketConnector connector,
-                           SocketAddress address) {
-        this.connector = connector;
-        this.address = address;
-        connector.setHandler( this.handler );
-        return connect();
-    }
-
-    public boolean connect() {
-        if ( session != null && session.isConnected() ) {
-            throw new IllegalStateException( "Already connected. Disconnect first." );
-        }
-
-        try {
-            //            SocketConnectorConfig config = new SocketConnectorConfig();
-            //            if (useSsl) {
-            //                SSLContext sslContext = BogusSSLContextFactory
-            //                        .getInstance(false);
-            //                SSLFilter sslFilter = new SSLFilter(sslContext);
-            //                sslFilter.setUseClientMode(true);
-            //                config.getFilterChain().addLast("sslFilter", sslFilter);
-            //            }
-
-            //connector.setHandler( arg0 );
-
-            connector.getFilterChain().addLast( "codec",
-                                                new ProtocolCodecFilter( new ObjectSerializationCodecFactory() ) );
-
-            ConnectFuture future1 = connector.connect( address );
-            future1.join();
-            if ( !future1.isConnected() ) {
-                return false;
-            }
-            session = future1.getSession();
-            return true;
-        } catch ( Exception e ) {
-            e.printStackTrace();
-            return false;
-        }
-    }
-
-    public void disconnect() {
-        if ( session != null && session.isConnected() ) {
-            session.close();
-            session.getCloseFuture().join();
-        }
-    }
-}

Deleted: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/BaseMinaHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/BaseMinaHandler.java	2009-10-14 01:22:47 UTC (rev 29600)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/BaseMinaHandler.java	2009-10-14 01:25:57 UTC (rev 29601)
@@ -1,27 +0,0 @@
-package org.drools.vsm;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.mina.core.service.IoHandlerAdapter;
-
-public class BaseMinaHandler extends IoHandlerAdapter
-{       
-    protected Map<Integer, ResponseHandler> responseHandlers;
-    
-    public BaseMinaHandler() {
-        responseHandlers = new HashMap<Integer, ResponseHandler>();
-    }
-    
-    public void addResponseHandler(int id, ResponseHandler responseHandler) {
-        responseHandlers.put( id, responseHandler );
-    }
-    
-    public static interface ResponseHandler {
-        public void setError(RuntimeException error);
-    } 
-    
-    public static interface MessageResponseHandler extends ResponseHandler {
-        public void receive(Message message);
-    }
-}
\ No newline at end of file

Deleted: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/BaseMinaServer.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/BaseMinaServer.java	2009-10-14 01:22:47 UTC (rev 29600)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/BaseMinaServer.java	2009-10-14 01:25:57 UTC (rev 29601)
@@ -1,68 +0,0 @@
-package org.drools.vsm;
-
-import java.io.IOException;
-import java.net.InetSocketAddress;
-
-import org.apache.mina.core.service.IoAcceptor;
-import org.apache.mina.core.service.IoHandlerAdapter;
-import org.apache.mina.core.session.IdleStatus;
-import org.apache.mina.filter.codec.ProtocolCodecFilter;
-import org.apache.mina.filter.codec.serialization.ObjectSerializationCodecFactory;
-import org.apache.mina.filter.logging.LoggingFilter;
-import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
-
-public class BaseMinaServer
-    implements
-    Runnable {
-    private final int port;
-
-    IoHandlerAdapter  handler;
-
-    IoAcceptor        acceptor;
-
-    volatile boolean  running;
-
-    public BaseMinaServer(IoHandlerAdapter handler,
-                          int port) {
-        this.handler = handler;
-        this.port = port;
-    }
-
-    public void run() {
-        try {
-            start();
-            while ( running ) {
-                Thread.sleep( 100 );
-            }
-        } catch ( Exception e ) {
-            throw new RuntimeException( "Server Exception with class " + getClass() + " using port " + port,
-                                        e );
-        }
-    }
-
-    public void start() throws IOException {
-        running = true;
-
-        acceptor = new NioSocketAcceptor();
-
-        acceptor.getFilterChain().addLast( "logger",
-                                           new LoggingFilter() );
-        acceptor.getFilterChain().addLast( "codec",
-                                           new ProtocolCodecFilter( new ObjectSerializationCodecFactory() ) );
-
-        acceptor.setHandler( handler );
-        acceptor.getSessionConfig().setReadBufferSize( 2048 );
-        acceptor.getSessionConfig().setIdleTime( IdleStatus.BOTH_IDLE,
-                                                 10 );
-        acceptor.bind( new InetSocketAddress( "127.0.0.1", port ) );
-    }
-    
-    public IoAcceptor getIoAcceptor() {
-        return acceptor;
-    }
-
-    public void stop() {
-        acceptor.dispose();
-        running = false;
-    }
-}
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/CollectionClient.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/CollectionClient.java	2009-10-14 01:22:47 UTC (rev 29600)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/CollectionClient.java	2009-10-14 01:25:57 UTC (rev 29601)
@@ -3,18 +3,19 @@
 import java.util.Collection;
 import java.util.Iterator;
 
-public class CollectionClient<T> implements Collection {
+public class CollectionClient<T>
+    implements
+    Collection {
     private String parentInstanceId;
-    
+
     public CollectionClient(String parentInstanceId) {
         this.parentInstanceId = parentInstanceId;
     }
-    
+
     public String getParentInstanceId() {
         return this.parentInstanceId;
     }
-    
-    
+
     public boolean add(Object e) {
         // TODO Auto-generated method stub
         return false;
@@ -27,7 +28,7 @@
 
     public void clear() {
         // TODO Auto-generated method stub
-        
+
     }
 
     public boolean contains(Object o) {

Added: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/ContextManagerImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/ContextManagerImpl.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/ContextManagerImpl.java	2009-10-14 01:25:57 UTC (rev 29601)
@@ -0,0 +1,37 @@
+/**
+ * 
+ */
+package org.drools.vsm;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.drools.command.Context;
+import org.drools.command.ContextManager;
+
+public class ContextManagerImpl
+    implements
+    ContextManager {
+    private Map<String, Context> contexts;
+    private Context              defaultContext;
+
+    public ContextManagerImpl() {
+        this.contexts = new HashMap<String, Context>();
+    }
+
+    public synchronized void addContext(Context context) {
+        if ( this.contexts.isEmpty() ) {
+            this.defaultContext = context;
+        }
+        this.contexts.put( context.getName(),
+                           context );
+    }
+
+    public synchronized Context getContext(String identifier) {
+        return this.contexts.get( identifier );
+    }
+
+    public Context getDefaultContext() {
+        return this.defaultContext;
+    }
+}
\ No newline at end of file

Added: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/GenericConnector.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/GenericConnector.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/GenericConnector.java	2009-10-14 01:25:57 UTC (rev 29601)
@@ -0,0 +1,14 @@
+package org.drools.vsm;
+
+public interface GenericConnector {
+
+    boolean connect();
+
+    void disconnect();
+
+    void addResponseHandler(int id,
+                            MessageResponseHandler responseHandler);
+
+    void write(Message msg);
+
+}
\ No newline at end of file

Added: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/GenericIoWriter.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/GenericIoWriter.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/GenericIoWriter.java	2009-10-14 01:25:57 UTC (rev 29601)
@@ -0,0 +1,6 @@
+package org.drools.vsm;
+
+public interface GenericIoWriter {
+    public void write(Message message);
+
+}
\ No newline at end of file

Added: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/GenericMessageHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/GenericMessageHandler.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/GenericMessageHandler.java	2009-10-14 01:25:57 UTC (rev 29601)
@@ -0,0 +1,8 @@
+package org.drools.vsm;
+
+public interface GenericMessageHandler {
+
+    public abstract void messageReceived(GenericIoWriter session,
+                                         Message msg) throws Exception;
+
+}
\ No newline at end of file

Added: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/GenericMessageHandlerImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/GenericMessageHandlerImpl.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/GenericMessageHandlerImpl.java	2009-10-14 01:25:57 UTC (rev 29601)
@@ -0,0 +1,93 @@
+package org.drools.vsm;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.drools.SystemEventListener;
+import org.drools.command.Context;
+import org.drools.command.FinishedCommand;
+import org.drools.command.impl.ContextImpl;
+import org.drools.command.impl.GenericCommand;
+import org.drools.command.vsm.ServiceManagerServerContext;
+import org.drools.runtime.impl.ExecutionResultImpl;
+
+public class GenericMessageHandlerImpl implements GenericMessageHandler {
+    private SystemEventListener systemEventListener;
+
+    private ServiceManagerData  data;
+
+    public GenericMessageHandlerImpl(ServiceManagerData data,
+                                 SystemEventListener systemEventListener) {
+        this.systemEventListener = systemEventListener;
+        this.data = data;
+    }
+
+    /* (non-Javadoc)
+     * @see org.drools.vsm.GenericMessageHandler#messageReceived(org.drools.vsm.GenericIoWriter, org.drools.vsm.Message)
+     */
+    public void messageReceived(GenericIoWriter session,
+                                Message msg) throws Exception {
+        systemEventListener.debug( "Message receieved : " + msg );
+
+//        try {
+//            // establish session
+//            if ( msg.getSessionId() == -1 ) {
+//                GenericCommand cmd = (GenericCommand) msg.getPayload();
+//                Context ctx = new ServiceManagerServerContext( null,
+//                                                               data );
+//                int sessionId = (Integer) cmd.execute( ctx );
+//                session.write( new Message( sessionId,
+//                                            msg.getResponseId(),
+//                                            false,
+//                                            sessionId ) );
+//                return;
+//            }
+//        } catch ( RuntimeException e ) {
+//            systemEventListener.exception( e.getMessage(),
+//                                           e );
+//            // new Message(msg.getSessionId(), msg.getResponseId(), e);
+//            // List<Object> list = new ArrayList<Object>(1);
+//            // list.add(e);
+//            // Command resultsCmnd = new Command(cmd.getId(), response, list);
+//            // session.write(resultsCmnd);
+//        } finally {
+//
+//        }
+
+        // we always need to process a List, for genericity, but don't force a List on the payload
+        List<GenericCommand> commands;
+        if ( msg.getPayload() instanceof List ) {
+            commands = (List<GenericCommand>) msg.getPayload();
+        } else {
+            commands = new ArrayList<GenericCommand>();
+            commands.add( (GenericCommand) msg.getPayload() );
+        }
+
+        // Setup the evaluation context 
+        ContextImpl localSessionContext = new ContextImpl( "session_" + msg.getSessionId(),
+                                                           this.data.getContextManager(),
+                                                           this.data.getTemp() );        
+        ExecutionResultImpl localKresults = new ExecutionResultImpl();
+        localSessionContext.set( "kresults_" + msg.getSessionId(),
+                                 localKresults );
+        
+        for ( GenericCommand cmd : commands ) {
+            // evaluate the commands
+            cmd.execute( localSessionContext );
+        }
+
+        if ( !msg.isAsync() && localKresults.getIdentifiers().isEmpty() ) {
+            // if it's not an async invocation and their are no results, just send a simple notification message
+            session.write( new Message( msg.getSessionId(),
+                                        msg.getResponseId(),
+                                        msg.isAsync(),
+                                        new FinishedCommand() ) );
+        } else {
+            // return the payload
+            session.write( new Message( msg.getSessionId(),
+                                        msg.getResponseId(),
+                                        msg.isAsync(),
+                                        localKresults ) );
+        }
+    }
+}

Deleted: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/KnowledgeBaseClient.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/KnowledgeBaseClient.java	2009-10-14 01:22:47 UTC (rev 29600)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/KnowledgeBaseClient.java	2009-10-14 01:25:57 UTC (rev 29601)
@@ -1,188 +0,0 @@
-package org.drools.vsm;
-
-import java.util.Collection;
-import java.util.UUID;
-
-import org.apache.mina.core.future.WriteFuture;
-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.command.builder.KnowledgeBuilderAddCommand;
-import org.drools.command.builder.NewKnowledgeBuilderCommand;
-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.responsehandlers.BlockingMessageResponseHandler;
-
-public class KnowledgeBaseClient
-    implements
-    KnowledgeBase {
-
-    private ServiceManagerClient serviceManager;
-    private String               instanceId;
-
-    public KnowledgeBaseClient(String instanceId,
-                               ServiceManagerClient 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,
-                                   null,
-                                   new KnowledgeContextResolveFromContextCommand( new KnowledgeBaseAddKnowledgePackagesCommand(),
-                                                                                  kuilderInstanceId,
-                                                                                  instanceId,
-                                                                                  null,
-                                                                                  kresultsId ) );
-
-        BlockingMessageResponseHandler handler = new BlockingMessageResponseHandler();
-
-        try {
-            serviceManager.client.handler.addResponseHandler( msg.getResponseId(),
-                                                              handler );
-
-            serviceManager.client.session.write( msg );
-
-            Object object = handler.getMessage().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,
-                                   null,
-                                   new SetVariableCommand( "__TEMP__",
-                                                           localId,
-                                                           new KnowledgeContextResolveFromContextCommand( new NewStatefulKnowledgeSessionCommand( null ),
-                                                                                                          null,
-                                                                                                          instanceId,
-                                                                                                          null,
-                                                                                                          kresultsId ) ) );
-
-
-        BlockingMessageResponseHandler handler = new BlockingMessageResponseHandler();
-
-        try {
-            serviceManager.client.handler.addResponseHandler( msg.getResponseId(),
-                                                              handler );
-
-            serviceManager.client.session.write( msg );
-
-            Object object = handler.getMessage().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 StatefulKnowledgeSessionClient( 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
-
-    }
-
-}

Deleted: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/KnowledgeBuilderClient.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/KnowledgeBuilderClient.java	2009-10-14 01:22:47 UTC (rev 29600)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/KnowledgeBuilderClient.java	2009-10-14 01:25:57 UTC (rev 29601)
@@ -1,152 +0,0 @@
-package org.drools.vsm;
-
-import java.util.Collection;
-
-import org.apache.mina.core.future.WriteFuture;
-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.KnowledgeBuilderGetKnowledgePackagesCommand;
-import org.drools.command.builder.KnowledgeBuilderHasErrorsCommand;
-import org.drools.command.builder.KnowledgeBuilderGetErrorsCommand;
-import org.drools.definition.KnowledgePackage;
-import org.drools.io.Resource;
-import org.drools.runtime.ExecutionResults;
-import org.drools.vsm.responsehandlers.BlockingMessageResponseHandler;
-
-public class KnowledgeBuilderClient
-    implements
-    KnowledgeBuilder {
-    private ServiceManagerClient serviceManager;
-    private String               instanceId;
-
-    public KnowledgeBuilderClient(String instanceId,
-                                  ServiceManagerClient 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,
-                                   null,
-                                   new KnowledgeContextResolveFromContextCommand( new KnowledgeBuilderAddCommand( resource,
-                                                                                                                  resourceType,
-                                                                                                                  configuration ),
-                                                                                  instanceId,
-                                                                                  null,
-                                                                                  null,
-                                                                                  null ) );
-
-        BlockingMessageResponseHandler handler = new BlockingMessageResponseHandler();
-
-        try {
-            serviceManager.client.handler.addResponseHandler( msg.getResponseId(),
-                                                              handler );
-
-            serviceManager.client.session.write( msg );
-
-            Object object = handler.getMessage().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,
-                                   null,
-                                   new KnowledgeContextResolveFromContextCommand( new KnowledgeBuilderGetErrorsCommand( commandId ),
-                                                                                  instanceId,
-                                                                                  null,
-                                                                                  null,
-                                                                                  kresultsId ) );
-
-        BlockingMessageResponseHandler handler = new BlockingMessageResponseHandler();
-
-        try {
-            serviceManager.client.handler.addResponseHandler( msg.getResponseId(),
-                                                              handler );
-
-            serviceManager.client.session.write( msg );
-
-            Object object = handler.getMessage().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,
-                                   null,
-                                   new KnowledgeContextResolveFromContextCommand( new KnowledgeBuilderHasErrorsCommand( commandId ),
-                                                                                  instanceId,
-                                                                                  null,
-                                                                                  null,
-                                                                                  kresultsId) );
-
-        BlockingMessageResponseHandler handler = new BlockingMessageResponseHandler();
-
-        try {
-            serviceManager.client.handler.addResponseHandler( msg.getResponseId(),
-                                                              handler );
-
-            serviceManager.client.session.write( msg );
-
-            Object object = handler.getMessage().getPayload();
-
-            if ( object == null ) {
-                throw new RuntimeException( "Response was not correctly received" );
-            }
-            
-            System.out.println( "object" + object);
-
-            return (Boolean) ((ExecutionResults) object).getValue( commandId );
-        } catch ( Exception e ) {
-            throw new RuntimeException( "Unable to execute message",
-                                        e );
-        }
-    }
-
-}

Deleted: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/KnowledgeBuilderProviderClient.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/KnowledgeBuilderProviderClient.java	2009-10-14 01:22:47 UTC (rev 29600)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/KnowledgeBuilderProviderClient.java	2009-10-14 01:25:57 UTC (rev 29601)
@@ -1,93 +0,0 @@
-/**
- * 
- */
-package org.drools.vsm;
-
-import java.util.Collection;
-import java.util.Properties;
-import java.util.UUID;
-
-import org.apache.mina.core.future.WriteFuture;
-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.SetVariableCommand;
-import org.drools.command.builder.KnowledgeBuilderAddCommand;
-import org.drools.command.builder.NewKnowledgeBuilderCommand;
-import org.drools.definition.KnowledgePackage;
-import org.drools.vsm.responsehandlers.BlockingMessageResponseHandler;
-
-import sun.misc.UUEncoder;
-
-public class KnowledgeBuilderProviderClient
-    implements
-    KnowledgeBuilderProvider {
-    private ServiceManagerClient serviceManager;
-
-    public KnowledgeBuilderProviderClient(ServiceManagerClient serviceManager) {
-        this.serviceManager = serviceManager;
-    }
-
-    public DecisionTableConfiguration newDecisionTableConfiguration() {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    public KnowledgeBuilder newKnowledgeBuilder() {
-        String localId = UUID.randomUUID().toString();
-
-        Message cmd = new Message( serviceManager.getSessionId(),
-                                   serviceManager.counter.incrementAndGet(),
-                                   false,
-                                   null,
-                                   new SetVariableCommand( "__TEMP__",
-                                                           localId,
-                                                           new NewKnowledgeBuilderCommand( null ) ) );
-
-        WriteFuture future = serviceManager.client.session.write( cmd );
-        try {
-            int tries = 0;
-            while ( !future.isDone() && tries++ < 6 ) {
-                Thread.sleep( 500 );                
-            }
-            if ( !future.isDone() ) {
-                throw new RuntimeException( "unable to create new KnowledgeBuilder" );
-            }
-        } catch ( InterruptedException e ) {
-            throw new RuntimeException( "unable to create new KnowledgeBuilder" );
-        }
-
-        return new KnowledgeBuilderClient( 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

Modified: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/Message.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/Message.java	2009-10-14 01:22:47 UTC (rev 29600)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/Message.java	2009-10-14 01:25:57 UTC (rev 29601)
@@ -3,20 +3,17 @@
 import java.io.Serializable;
 import java.util.Map;
 
-import org.drools.command.Command;
-
 public class Message
     implements
     Serializable {
-    private int                  sessionId;
-    private int                  responseId;
-    private boolean              async;
-    private Object               payload;
+    private int     sessionId;
+    private int     responseId;
+    private boolean async;
+    private Object  payload;
 
     public Message(int sessionId,
                    int responseId,
                    boolean async,
-                   Map<String, Integer> contextVars,                   
                    Object payload) {
         this.sessionId = sessionId;
         this.async = async;
@@ -39,8 +36,6 @@
     public int getResponseId() {
         return responseId;
     }
-    
-    
 
     public boolean isAsync() {
         return async;

Deleted: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/MessageHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/MessageHandler.java	2009-10-14 01:22:47 UTC (rev 29600)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/MessageHandler.java	2009-10-14 01:25:57 UTC (rev 29601)
@@ -1,62 +0,0 @@
-package org.drools.vsm;
-
-import org.apache.mina.core.session.IoSession;
-import org.drools.SystemEventListener;
-import org.drools.command.impl.GenericCommand;
-
-import java.util.Arrays;
-import java.util.List;
-
-public class MessageHandler extends BaseMinaHandler {
-    private Object owner;
-
-    /**
-     * Listener used for logging
-     */
-    private SystemEventListener systemEventListener;
-
-    public MessageHandler(SystemEventListener systemEventListener) {
-        this.systemEventListener = systemEventListener;
-    }
-
-    public Object getOwner() {
-        return owner;
-    }
-
-    public void setOwner(Object owner) {
-        this.owner = owner;
-    }
-
-    @Override
-    public void exceptionCaught(IoSession session,
-                                Throwable cause) throws Exception {
-        systemEventListener.exception("Uncaught exception on client", cause);
-    }
-
-    @Override
-    public void messageReceived(IoSession session,
-                                Object object) throws Exception {        
-        Message msg = (Message) object;
-
-        systemEventListener.debug("Message receieved on client : " + msg );
-        
-        
-        MessageResponseHandler responseHandler = (MessageResponseHandler) responseHandlers.remove( msg.getResponseId() );
-        //if ( responseHandler instanceof Block)
-        if (responseHandler != null) {            
-            Object payload = msg.getPayload();
-            if (payload != null && payload instanceof RuntimeException) {
-                responseHandler.setError((RuntimeException) payload);
-            } else {
-                responseHandler.receive( msg );
-            }
-        }
-    }
-
-//    public static interface GetTaskResponseHandler
-//            extends
-//            ResponseHandler {
-//        public void execute(Task task);
-//    }
-
-}
\ No newline at end of file

Added: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/MessageResponseHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/MessageResponseHandler.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/MessageResponseHandler.java	2009-10-14 01:25:57 UTC (rev 29601)
@@ -0,0 +1,10 @@
+/**
+ * 
+ */
+package org.drools.vsm;
+
+public interface MessageResponseHandler {
+    public void setError(RuntimeException error);
+
+    public void receive(Message message);
+}
\ No newline at end of file

Deleted: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/ServiceManagerClient.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/ServiceManagerClient.java	2009-10-14 01:22:47 UTC (rev 29600)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/ServiceManagerClient.java	2009-10-14 01:25:57 UTC (rev 29601)
@@ -1,267 +0,0 @@
-package org.drools.vsm;
-
-import java.net.SocketAddress;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.Properties;
-import java.util.concurrent.atomic.AtomicInteger;
-
-import org.apache.mina.transport.socket.SocketConnector;
-import org.drools.KnowledgeBase;
-import org.drools.KnowledgeBaseFactory;
-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.KnowledgeBuilderErrors;
-import org.drools.builder.KnowledgeBuilderProvider;
-import org.drools.command.Command;
-import org.drools.command.FinishedCommand;
-import org.drools.command.KnowledgeContextResolveFromContextCommand;
-import org.drools.command.builder.KnowledgeBuilderHasErrorsCommand;
-import org.drools.command.runtime.rule.FireAllRulesCommand;
-import org.drools.command.vsm.LookupCommand;
-import org.drools.command.vsm.RegisterCommand;
-import org.drools.command.vsm.ServiceManagerClientConnectCommand;
-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.ServiceManager;
-import org.drools.vsm.responsehandlers.BlockingMessageResponseHandler;
-
-public class ServiceManagerClient
-    implements
-    ServiceManager {
-    public BaseMinaClient client;
-
-    public AtomicInteger  counter;
-
-    public ServiceManagerClient(String name,
-                                BaseMinaHandler handler) {
-        this.client = new BaseMinaClient( name,
-                                          handler );
-        this.counter = new AtomicInteger();
-    }
-
-    private int sessionId;
-
-    public boolean connect(SocketConnector connector,
-                           SocketAddress address) {
-        boolean connected = this.client.connect( connector,
-                                                 address );
-
-        if ( connected ) {
-            Message msg = new Message( -1,
-                                       counter.incrementAndGet(),
-                                       false,
-                                       null,
-                                       new ServiceManagerClientConnectCommand() );
-
-            BlockingMessageResponseHandler handler = new BlockingMessageResponseHandler();
-
-            this.client.handler.addResponseHandler( msg.getResponseId(),
-                                                    handler );
-
-            this.client.session.write( msg );
-
-            this.sessionId = (Integer) handler.getMessage().getPayload();
-        }
-
-        return connected;
-    }
-
-    public void disconnect() {
-        this.client.disconnect();
-    }
-
-    public KnowledgeBuilderProvider getKnowledgeBuilderFactory() {
-        return new KnowledgeBuilderProviderClient( this );
-    }
-
-    public KnowledgeBaseProvider getKnowledgeBaseFactory() {
-        return new KnowledgeBaseProviderClient( 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,
-                                   null,
-                                   new KnowledgeContextResolveFromContextCommand( new RegisterCommand( identifier,
-                                                                                                       ((StatefulKnowledgeSessionClient) executor).getInstanceId(),
-                                                                                                       type ),
-                                                                                  null,
-                                                                                  null,
-                                                                                  null,
-                                                                                  null ) );
-
-        BlockingMessageResponseHandler handler = new BlockingMessageResponseHandler();
-
-        try {
-            client.handler.addResponseHandler( msg.getResponseId(),
-                                               handler );
-
-            client.session.write( msg );
-
-            Object object = handler.getMessage().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 CommandExecutor lookup(String identifier) {
-        String commandId = "client.lookup" + getNextId();
-        String kresultsId = "kresults_" + getSessionId();
-
-        Message msg = new Message( getSessionId(),
-                                   counter.incrementAndGet(),
-                                   false,
-                                   null,
-                                   new KnowledgeContextResolveFromContextCommand( new LookupCommand( identifier,
-                                                                                                     commandId ),
-                                                                                  null,
-                                                                                  null,
-                                                                                  null,
-                                                                                  kresultsId ) );
-
-        BlockingMessageResponseHandler handler = new BlockingMessageResponseHandler();
-
-        try {
-            client.handler.addResponseHandler( msg.getResponseId(),
-                                               handler );
-
-            client.session.write( msg );
-
-            Object object = handler.getMessage().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 StatefulKnowledgeSessionClient( 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 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 void send(Command command) {
-        this.client.session.write( command );
-    }
-
-    public int getSessionId() {
-        return sessionId;
-    }
-
-    public int getNextId() {
-        return this.counter.incrementAndGet();
-    }
-
-}

Added: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/ServiceManagerData.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/ServiceManagerData.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/ServiceManagerData.java	2009-10-14 01:25:57 UTC (rev 29601)
@@ -0,0 +1,66 @@
+package org.drools.vsm;
+
+import java.util.concurrent.atomic.AtomicInteger;
+
+import org.drools.command.Context;
+import org.drools.command.ContextManager;
+import org.drools.command.impl.ContextImpl;
+
+public class ServiceManagerData {
+    private ContextManager contextManager;
+
+    private Context        root;
+    private Context        temp;
+
+    public static String   ROOT                 = "ROOT";
+    public static String   TEMP                 = "__TEMP__";
+    public static String   SERVICE_MANAGER_DATA = "__ServiceManagerData__";
+
+    private AtomicInteger  sessionIdCounter     = new AtomicInteger();
+
+    public ServiceManagerData() {
+        // Setup ROOT context, this will hold all long lived intances and instanceIds
+        this.contextManager = new ContextManagerImpl();
+
+        this.root = new ContextImpl( ROOT,
+                                     this.contextManager );
+        ((ContextManagerImpl) this.contextManager).addContext( this.root );
+        this.root.set( SERVICE_MANAGER_DATA,
+                       this );
+        // Setup TEMP context, this will hold all short lived instanceId and instances
+        // TODO: TEMP context should have a time/utilisation eviction queue added 
+        this.temp = new ContextImpl( TEMP,
+                                     this.contextManager,
+                                     this.root );
+        ((ContextManagerImpl) this.contextManager).addContext( this.temp );
+    }
+
+    public AtomicInteger getSessionIdCounter() {
+        return sessionIdCounter;
+    }
+
+    public ContextManager getContextManager() {
+        return contextManager;
+    }
+
+    public void setContextManager(ContextManager contextManager) {
+        this.contextManager = contextManager;
+    }
+
+    public Context getRoot() {
+        return root;
+    }
+
+    public void setRoot(Context root) {
+        this.root = root;
+    }
+
+    public Context getTemp() {
+        return temp;
+    }
+
+    public void setTemp(Context temp) {
+        this.temp = temp;
+    }
+
+}

Deleted: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/ServiceManagerServer.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/ServiceManagerServer.java	2009-10-14 01:22:47 UTC (rev 29600)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/ServiceManagerServer.java	2009-10-14 01:25:57 UTC (rev 29601)
@@ -1,76 +0,0 @@
-package org.drools.vsm;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Properties;
-import java.util.concurrent.atomic.AtomicInteger;
-
-import org.drools.KnowledgeBase;
-import org.drools.KnowledgeBaseFactory;
-import org.drools.KnowledgeBaseProvider;
-import org.drools.SystemEventListenerFactory;
-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.Context;
-import org.drools.command.ContextManager;
-import org.drools.command.impl.ContextImpl;
-import org.drools.persistence.jpa.JPAKnowledgeServiceProvider;
-import org.drools.runtime.CommandExecutor;
-import org.drools.runtime.Environment;
-import org.drools.vsm.ServiceManagerServerResponseHandler.ContextManagerImpl;
-
-public class ServiceManagerServer extends BaseMinaServer
-    implements
-    Runnable {
-    private AtomicInteger       sessionIdCounter = new AtomicInteger();
-
-    private ContextManager      contextManager;
-
-    private Context             root;
-    private Context             temp;
-
-    public static String               ROOT             = "ROOT";
-    public static String               TEMP             = "__TEMP__";
-    public static String               SERVICE_MANAGER  = "__ServiceManager__";
-
-    public AtomicInteger getSessionIdCounter() {
-        return sessionIdCounter;
-    }
-
-    public ServiceManagerServer() {
-        super( new ServiceManagerServerResponseHandler( SystemEventListenerFactory.getSystemEventListener() ),
-               9123 );
-        this.contextManager = new ContextManagerImpl();
-
-        this.root = new ContextImpl( ROOT,
-                                     this.contextManager );
-        ((ContextManagerImpl) this.contextManager).addContext( this.root );
-
-        this.temp = new ContextImpl( TEMP,
-                                     this.contextManager,
-                                     this.root );
-        ((ContextManagerImpl) this.contextManager).addContext( this.temp );
-
-        ((ServiceManagerServerResponseHandler) this.handler).setServiceManagerService( this );
-
-        this.temp.set( "__ServiceManager__",
-                       this );
-    }
-    
-    public ContextManager getContextManager() {
-        return contextManager;
-    }
-
-    public Context getRoot() {
-        return root;
-    }
-
-    public Context getTemp() {
-        return temp;
-    }
-
-}

Deleted: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/ServiceManagerServerResponseHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/ServiceManagerServerResponseHandler.java	2009-10-14 01:22:47 UTC (rev 29600)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/ServiceManagerServerResponseHandler.java	2009-10-14 01:25:57 UTC (rev 29601)
@@ -1,197 +0,0 @@
-package org.drools.vsm;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-import java.util.concurrent.ConcurrentHashMap;
-
-import org.apache.mina.core.service.IoHandlerAdapter;
-import org.apache.mina.core.session.IdleStatus;
-import org.apache.mina.core.session.IoSession;
-import org.drools.KnowledgeBase;
-import org.drools.KnowledgeBaseFactory;
-import org.drools.KnowledgeBaseProvider;
-import org.drools.SystemEventListener;
-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.Context;
-import org.drools.command.ContextManager;
-import org.drools.command.FinishedCommand;
-import org.drools.command.KnowledgeContextResolveFromContextCommand;
-import org.drools.command.impl.ContextImpl;
-import org.drools.command.impl.GenericCommand;
-import org.drools.command.impl.KnowledgeCommandContext;
-import org.drools.command.vsm.ServiceManagerClientConnectCommand;
-import org.drools.command.vsm.ServiceManagerServerContext;
-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.impl.ExecutionResultImpl;
-
-public class ServiceManagerServerResponseHandler extends IoHandlerAdapter {
-    private ServiceManagerServer server;
-
-
-
-    public static class ContextManagerImpl
-        implements
-        ContextManager {
-        private Map<String, Context> contexts;
-
-        public ContextManagerImpl() {
-            this.contexts = new HashMap<String, Context>();
-        }
-
-        public void addContext(Context context) {
-            this.contexts.put( context.getName(),
-                               context );
-        }
-
-        public Context getContext(String identifier) {
-            return this.contexts.get( identifier );
-        }
-
-    }
-
-    /**
-     * Listener used for logging
-     */
-    private final SystemEventListener systemEventListener;
-
-    public ServiceManagerServerResponseHandler(SystemEventListener systemEventListener) {
-        this.systemEventListener = systemEventListener;
-
-    }
-
-    public void setServiceManagerService(ServiceManagerServer server) {
-        this.server = server;
-    }
-
-    @Override
-    public void exceptionCaught(IoSession session,
-                                Throwable cause) throws Exception {
-        systemEventListener.exception( "Uncaught exception on Server",
-                                       cause );
-    }
-
-    @Override
-    public void messageReceived(IoSession session,
-                                Object object) throws Exception {
-        Message msg = (Message) object;
-
-        systemEventListener.debug( "Message receieved on server : " + msg );
-
-        try {
-            // establish session
-            if ( msg.getSessionId() == -1 ) {
-                GenericCommand cmd = (GenericCommand) msg.getPayload();
-                Context ctx = new ServiceManagerServerContext( null,
-                                                               server );
-                int sessionId = (Integer) cmd.execute( ctx );
-                session.write( new Message( sessionId,
-                                            msg.getResponseId(),
-                                            false,
-                                            null,
-                                            sessionId ) );
-                return;
-            }
-        } catch ( RuntimeException e ) {
-            systemEventListener.exception( e.getMessage(),
-                                           e );
-            // new Message(msg.getSessionId(), msg.getResponseId(), e);
-            // List<Object> list = new ArrayList<Object>(1);
-            // list.add(e);
-            // Command resultsCmnd = new Command(cmd.getId(), response, list);
-            // session.write(resultsCmnd);
-        } finally {
-
-        }
-        
-        List<GenericCommand> commands;
-        if ( msg.getPayload() instanceof List ) {
-            commands = (List<GenericCommand>) msg.getPayload();
-        } else {
-            commands = new ArrayList<GenericCommand>();
-            commands.add( (GenericCommand) msg.getPayload() );
-        }
-
-        //KnowledgeCommandContext ktcx = new KnowledgeCommandContext(this.temp);
-        ContextImpl localSessionContext = new ContextImpl( "sesseion_" + msg.getSessionId(), this.server.getContextManager(), this.server.getTemp() );
-        ExecutionResultImpl localKresults = new ExecutionResultImpl();
-        localSessionContext.set( "kresults_" + msg.getSessionId(), localKresults );
-        for ( GenericCommand cmd : commands ) {
-            cmd.execute( localSessionContext );
-        }
-        
-        if ( !msg.isAsync() && localKresults.getIdentifiers().isEmpty() ) {
-            session.write( new Message(msg.getSessionId(), msg.getResponseId(), msg.isAsync(), null, new FinishedCommand() ) );
-        } else {
-            session.write( new Message(msg.getSessionId(), msg.getResponseId(), msg.isAsync(), null, localKresults ) );
-        }
-       
-
-        //        SessionData data = this.sessionData.get( msg.getSessionId() );
-        //        if ( data == null ) {
-        //            data = new SessionData();
-        //            this.sessionData.put( msg.getSessionId(),
-        //                                  data );
-        //        }
-        //
-        //        Integer sessionId = ( Integer ) data.data.get( msg.getInstanceId() );
-        //        if ( sessionId == null ) {
-        //            GenericCommand cmd = ( GenericCommand ) msg.getPayload();
-        //            data.data.put( sessionId, cmd.execute( null ) );
-        //        }
-
-        // msg.get
-
-        // Comman cmd = msg.getPayload();
-
-        // TaskServiceSession taskSession = service.createSession();
-        // CommandName response = null;
-        // try {
-        // systemEventListener.debug("Message receieved on server : " +
-        // cmd.getName());
-        // systemEventListener.debug("Arguments : " +
-        // Arrays.toString(cmd.getArguments().toArray()));
-        //
-        // 
-        // // response = CommandName.GetTaskResponse;
-        // // long taskId = (Long) cmd.getArguments().get(0);
-        // //
-        // // Task task = taskSession.getTask(taskId);
-        // //
-        // // List args = new ArrayList(1);
-        // // args.add(task);
-        // // Command resultsCmnd = new Command(cmd.getId(),
-        // CommandName.GetTaskResponse, args);
-        // // session.write(resultsCmnd);
-        //
-        //
-        // } catch (RuntimeException e) {
-        // systemEventListener.exception(e.getMessage(),e);
-        //
-        // List<Object> list = new ArrayList<Object>(1);
-        // list.add(e);
-        // Command resultsCmnd = new Command(cmd.getId(), response, list);
-        // session.write(resultsCmnd);
-        // } finally {
-        // taskSession.dispose();
-        // }
-    }
-
-    @Override
-    public void sessionIdle(IoSession session,
-                            IdleStatus status) throws Exception {
-        systemEventListener.debug( "Server IDLE " + session.getIdleCount( status ) );
-    }
-
-}



More information about the jboss-svn-commits mailing list