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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Sep 11 01:32:50 EDT 2009


Author: mark.proctor at jboss.com
Date: 2009-09-11 01:32:50 -0400 (Fri, 11 Sep 2009)
New Revision: 29307

Added:
   labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/command/vsm/
   labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/command/vsm/LookupCommand.java
   labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/command/vsm/RegisterCommand.java
   labs/jbossrules/trunk/drools-vsm/src/test/java/org/drools/vsm/
   labs/jbossrules/trunk/drools-vsm/src/test/java/org/drools/vsm/ServiceManagerTest.java
Removed:
   labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/command/distributed/
   labs/jbossrules/trunk/drools-vsm/src/test/java/org/drools/vsm/ServiceManagerTest.java
Modified:
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/command/impl/KnowledgeCommandContext.java
   labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/command/vsm/ServiceManagerClientConnectCommand.java
   labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/command/vsm/ServiceManagerServerContext.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
   labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/StatefulKnowledgeSessionClient.java
Log:
JBRULES-2269 Virtual Service Manager
-registration/lookup now works

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/command/impl/KnowledgeCommandContext.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/command/impl/KnowledgeCommandContext.java	2009-09-10 23:21:47 UTC (rev 29306)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/command/impl/KnowledgeCommandContext.java	2009-09-11 05:32:50 UTC (rev 29307)
@@ -7,6 +7,7 @@
 import org.drools.runtime.ExecutionResults;
 import org.drools.runtime.StatefulKnowledgeSession;
 import org.drools.runtime.impl.ExecutionResultImpl;
+import org.drools.vsm.ServiceManager;
 
 public class KnowledgeCommandContext
     implements

Copied: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/command/vsm (from rev 29199, labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/command/distributed)

Added: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/command/vsm/LookupCommand.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/command/vsm/LookupCommand.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/command/vsm/LookupCommand.java	2009-09-11 05:32:50 UTC (rev 29307)
@@ -0,0 +1,48 @@
+package org.drools.command.vsm;
+
+import org.drools.builder.KnowledgeBuilder;
+import org.drools.builder.KnowledgeBuilderErrors;
+import org.drools.builder.ResourceConfiguration;
+import org.drools.builder.ResourceType;
+import org.drools.command.Context;
+import org.drools.command.impl.GenericCommand;
+import org.drools.command.impl.KnowledgeCommandContext;
+import org.drools.io.Resource;
+import org.drools.runtime.impl.ExecutionResultImpl;
+import org.drools.vsm.ServiceManager;
+import org.drools.vsm.ServiceManagerServer;
+import org.drools.vsm.ServiceManagerServerResponseHandler;
+
+public class LookupCommand
+    implements
+    GenericCommand<String> {
+    
+    private String identifier;
+    
+    private String outIdentifier;
+
+    public LookupCommand(String identfier) {
+        this.identifier = identfier;
+    }
+    
+    public LookupCommand(String identfier,
+                         String outIdentifier) {
+        this.identifier = identfier;
+        this.outIdentifier = outIdentifier;
+    }
+
+
+
+    public String execute(Context context) {
+        ServiceManagerServer server = (ServiceManagerServer) context.get( ServiceManagerServer.SERVICE_MANAGER );
+        
+        String instanceId = (String ) server.getRoot().get( identifier );        
+        
+        if ( this.outIdentifier != null ) {
+            ((ExecutionResultImpl) ((KnowledgeCommandContext) context).getExecutionResults()).getResults().put( this.outIdentifier,
+                                                                                                                instanceId );
+        }
+        return instanceId;
+    }
+
+}

Added: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/command/vsm/RegisterCommand.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/command/vsm/RegisterCommand.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/command/vsm/RegisterCommand.java	2009-09-11 05:32:50 UTC (rev 29307)
@@ -0,0 +1,43 @@
+package org.drools.command.vsm;
+
+import org.drools.builder.KnowledgeBuilder;
+import org.drools.builder.KnowledgeBuilderErrors;
+import org.drools.builder.ResourceConfiguration;
+import org.drools.builder.ResourceType;
+import org.drools.command.Context;
+import org.drools.command.ExecuteCommand;
+import org.drools.command.impl.GenericCommand;
+import org.drools.command.impl.KnowledgeCommandContext;
+import org.drools.concurrent.CommandExecutor;
+import org.drools.io.Resource;
+import org.drools.runtime.StatefulKnowledgeSession;
+import org.drools.vsm.ServiceManager;
+import org.drools.vsm.ServiceManagerClient;
+import org.drools.vsm.ServiceManagerServer;
+
+public class RegisterCommand
+    implements
+    GenericCommand<Void> {
+
+    private String identifier;
+    private String instanceId;
+    private int    type;
+
+    public RegisterCommand(String identifier,
+                           String instanceId,
+                           int type) {
+        this.identifier = identifier;
+        this.instanceId = instanceId;
+        this.type = type;
+    }
+
+    public Void execute(Context context) {
+        ServiceManagerServer server = (ServiceManagerServer) context.get( ServiceManagerServer.SERVICE_MANAGER );
+
+        server.getRoot().set( identifier,
+                              type + ":" + instanceId );
+
+        return null;
+    }
+
+}

Modified: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/command/vsm/ServiceManagerClientConnectCommand.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/command/distributed/ServiceManagerClientConnectCommand.java	2009-09-06 05:17:01 UTC (rev 29199)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/command/vsm/ServiceManagerClientConnectCommand.java	2009-09-11 05:32:50 UTC (rev 29307)
@@ -1,4 +1,4 @@
-package org.drools.command.distributed;
+package org.drools.command.vsm;
 
 import org.drools.builder.KnowledgeBuilder;
 import org.drools.builder.KnowledgeBuilderErrors;

Modified: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/command/vsm/ServiceManagerServerContext.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/command/distributed/ServiceManagerServerContext.java	2009-09-06 05:17:01 UTC (rev 29199)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/command/vsm/ServiceManagerServerContext.java	2009-09-11 05:32:50 UTC (rev 29307)
@@ -1,4 +1,4 @@
-package org.drools.command.distributed;
+package org.drools.command.vsm;
 
 import org.drools.command.Context;
 import org.drools.command.ContextManager;

Modified: 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-09-10 23:21:47 UTC (rev 29306)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/ServiceManagerClient.java	2009-09-11 05:32:50 UTC (rev 29307)
@@ -18,31 +18,42 @@
 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.distributed.ServiceManagerClientConnectCommand;
+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 class ServiceManagerClient
+    implements
+    ServiceManager {
+    public BaseMinaClient client;
+
+    public AtomicInteger  counter;
+
     public ServiceManagerClient(String name,
                                 BaseMinaHandler handler) {
-        this.client = new BaseMinaClient( name, 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);
-        
+                           SocketAddress address) {
+        boolean connected = this.client.connect( connector,
+                                                 address );
+
         if ( connected ) {
             Message msg = new Message( -1,
                                        counter.incrementAndGet(),
@@ -53,34 +64,33 @@
             BlockingMessageResponseHandler handler = new BlockingMessageResponseHandler();
 
             this.client.handler.addResponseHandler( msg.getResponseId(),
-            										handler );
+                                                    handler );
 
             this.client.session.write( msg );
 
             this.sessionId = (Integer) handler.getMessage().getPayload();
         }
-        
+
         return connected;
     }
-    
+
     public void disconnect() {
-    	this.client.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;
@@ -96,29 +106,114 @@
         return null;
     }
 
-    public CommandExecutor lookup(String identifer) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
     public void register(String identifier,
                          CommandExecutor executor) {
-        // TODO Auto-generated method stub
+        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 static class RemoveKnowledgeBuilderProvider
+        implements
+        KnowledgeBuilderProvider {
+
         public DecisionTableConfiguration newDecisionTableConfiguration() {
             // TODO Auto-generated method stub
             return null;
@@ -154,9 +249,9 @@
                                                                               ClassLoader classLoader) {
             // TODO Auto-generated method stub
             return null;
-        }        
+        }
     }
-    
+
     public void send(Command command) {
         this.client.session.write( command );
     }
@@ -164,11 +259,9 @@
     public int getSessionId() {
         return sessionId;
     }
-    
+
     public int getNextId() {
         return this.counter.incrementAndGet();
     }
-    
-    
 
 }

Modified: 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-09-10 23:21:47 UTC (rev 29306)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/ServiceManagerServer.java	2009-09-11 05:32:50 UTC (rev 29307)
@@ -1,6 +1,8 @@
 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;
 
@@ -13,25 +15,62 @@
 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 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 );
-        ((ServiceManagerServerResponseHandler)this.handler).setServiceManagerService( this );
+        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;
+    }
+
 }

Modified: 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-09-10 23:21:47 UTC (rev 29306)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/ServiceManagerServerResponseHandler.java	2009-09-11 05:32:50 UTC (rev 29307)
@@ -24,11 +24,12 @@
 import org.drools.command.Context;
 import org.drools.command.ContextManager;
 import org.drools.command.FinishedCommand;
-import org.drools.command.distributed.ServiceManagerClientConnectCommand;
-import org.drools.command.distributed.ServiceManagerServerContext;
+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;
@@ -38,16 +39,8 @@
 public class ServiceManagerServerResponseHandler extends IoHandlerAdapter {
     private ServiceManagerServer server;
 
-    private Map<String, Object>  registeredObjects;
 
-    private ContextManager       contextManager;
 
-    private Context              root;
-    private Context              temp;
-
-    private String               ROOT = "ROOT";
-    private String               TEMP = "__TEMP__";
-
     public static class ContextManagerImpl
         implements
         ContextManager {
@@ -75,14 +68,7 @@
 
     public ServiceManagerServerResponseHandler(SystemEventListener systemEventListener) {
         this.systemEventListener = systemEventListener;
-        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 );
     }
 
     public void setServiceManagerService(ServiceManagerServer server) {
@@ -128,7 +114,7 @@
         } finally {
 
         }
-
+        
         List<GenericCommand> commands;
         if ( msg.getPayload() instanceof List ) {
             commands = (List<GenericCommand>) msg.getPayload();
@@ -138,7 +124,7 @@
         }
 
         //KnowledgeCommandContext ktcx = new KnowledgeCommandContext(this.temp);
-        ContextImpl localSessionContext = new ContextImpl( "sesseion_" + msg.getSessionId(), this.contextManager, 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 ) {

Modified: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/StatefulKnowledgeSessionClient.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/StatefulKnowledgeSessionClient.java	2009-09-10 23:21:47 UTC (rev 29306)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/StatefulKnowledgeSessionClient.java	2009-09-11 05:32:50 UTC (rev 29307)
@@ -42,6 +42,10 @@
         this.instanceId = instanceId;
         this.serviceManager = serviceManager;
     }
+    
+    public String getInstanceId() {
+        return this.instanceId;
+    }
 
     public void dispose() {
         // TODO Auto-generated method stub
@@ -56,7 +60,7 @@
     public int fireAllRules() {
         String commandId = "ksession.fireAllRules" + serviceManager.getNextId();
         String kresultsId = "kresults_" + serviceManager.getSessionId();
-        
+
         Message msg = new Message( serviceManager.getSessionId(),
                                    serviceManager.counter.incrementAndGet(),
                                    false,
@@ -64,7 +68,8 @@
                                    new KnowledgeContextResolveFromContextCommand( new FireAllRulesCommand( commandId ),
                                                                                   null,
                                                                                   null,
-                                                                                  instanceId, kresultsId ) );
+                                                                                  instanceId,
+                                                                                  kresultsId ) );
 
         BlockingMessageResponseHandler handler = new BlockingMessageResponseHandler();
 
@@ -78,7 +83,7 @@
 
             if ( object == null ) {
                 throw new RuntimeException( "Response was not correctly received" );
-            }            
+            }
 
             return (Integer) ((ExecutionResults) object).getValue( commandId );
         } catch ( Exception e ) {
@@ -110,15 +115,17 @@
     public ExecutionResults execute(Command command) {
         String commandId = "ksession.execute" + serviceManager.getNextId();
         String kresultsId = "kresults_" + serviceManager.getSessionId();
-        
+
         Message msg = new Message( serviceManager.getSessionId(),
                                    serviceManager.counter.incrementAndGet(),
                                    false,
                                    null,
-                                   new KnowledgeContextResolveFromContextCommand( new ExecuteCommand( commandId, command ),
+                                   new KnowledgeContextResolveFromContextCommand( new ExecuteCommand( commandId,
+                                                                                                      command ),
                                                                                   null,
                                                                                   null,
-                                                                                  instanceId, kresultsId ) );
+                                                                                  instanceId,
+                                                                                  kresultsId ) );
 
         BlockingMessageResponseHandler handler = new BlockingMessageResponseHandler();
 
@@ -133,9 +140,9 @@
             if ( object == null ) {
                 throw new RuntimeException( "Response was not correctly received" );
             }
-            
-            System.out.println( "object" + object);
 
+            System.out.println( "object" + object );
+
             return (ExecutionResults) ((ExecutionResults) object).getValue( commandId );
         } catch ( Exception e ) {
             throw new RuntimeException( "Unable to execute message",

Copied: labs/jbossrules/trunk/drools-vsm/src/test/java/org/drools/vsm (from rev 29199, labs/jbossrules/trunk/drools-vsm/src/test/java/org/drools/distributed)

Deleted: labs/jbossrules/trunk/drools-vsm/src/test/java/org/drools/vsm/ServiceManagerTest.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/test/java/org/drools/distributed/ServiceManagerTest.java	2009-09-06 05:17:01 UTC (rev 29199)
+++ labs/jbossrules/trunk/drools-vsm/src/test/java/org/drools/vsm/ServiceManagerTest.java	2009-09-11 05:32:50 UTC (rev 29307)
@@ -1,97 +0,0 @@
-package org.drools.distributed;
-
-import java.net.InetSocketAddress;
-import java.net.SocketAddress;
-
-import junit.framework.TestCase;
-
-import org.apache.mina.transport.socket.nio.NioSocketConnector;
-import org.drools.KnowledgeBase;
-import org.drools.KnowledgeBaseProvider;
-import org.drools.SystemEventListenerFactory;
-import org.drools.builder.KnowledgeBuilder;
-import org.drools.builder.KnowledgeBuilderProvider;
-import org.drools.builder.ResourceType;
-import org.drools.io.ResourceFactory;
-import org.drools.runtime.StatefulKnowledgeSession;
-import org.drools.vsm.MessageHandler;
-import org.drools.vsm.ServiceManagerClient;
-import org.drools.vsm.ServiceManagerServer;
-
-public class ServiceManagerTest extends TestCase {
-	ServiceManagerServer server;
-    ServiceManagerClient client;
-
-    @Override
-    protected void setUp() throws Exception {
-    	this.server = new ServiceManagerServer();
-	    Thread thread = new Thread( server );
-	    thread.start();
-	    Thread.sleep( 500 );  
-	    	
-    	this.client = new ServiceManagerClient( "client 1",
-    			     							new MessageHandler(SystemEventListenerFactory.getSystemEventListener()) );
-    	
-      NioSocketConnector connector = new NioSocketConnector();
-      SocketAddress address = new InetSocketAddress( "127.0.0.1",
-                                                     9123 );
-      client.connect( connector,
-                      address );  	
-    	
-//        super.setUp();
-//        server = new MinaTaskServer( taskService );
-//        Thread thread = new Thread( server );
-//        thread.start();
-//        Thread.sleep( 500 );
-//
-//        client = new MinaTaskClient( "client 1",
-//                                     new TaskClientHandler(SystemEventListenerFactory.getSystemEventListener()) );
-//        NioSocketConnector connector = new NioSocketConnector();
-//        SocketAddress address = new InetSocketAddress( "127.0.0.1",
-//                                                       9123 );
-//        client.connect( connector,
-//                        address );
-    }
-
-    protected void tearDown() throws Exception {
-        super.tearDown();
-        client.disconnect();
-        server.stop();
-    }
-    
-    public void test1() throws Exception {
-        String str = "";
-        str += "package org.drools \n";
-        str += "global java.util.List list \n";
-        str += "rule rule1 \n";
-        str += "    dialect \"java\" \n";
-        str += "when \n";
-        str += "then \n";
-        str += "    System.out.println( \"hello1!!!\" ); \n";
-        str += "end \n";
-        str += "rule rule2 \n";
-        str += "    dialect \"java\" \n";
-        str += "when \n";
-        str += "then \n";
-        str += "    System.out.println( \"hello2!!!\" ); \n";
-        str += "end \n"  ;      
-        
-    	KnowledgeBuilderProvider kbuilderFactory = this.client.getKnowledgeBuilderFactory();
-    	KnowledgeBuilder kbuilder = kbuilderFactory.newKnowledgeBuilder();
-    	kbuilder.add( ResourceFactory.newByteArrayResource( str.getBytes() ), ResourceType.DRL );
-    	
-    	if ( kbuilder.hasErrors() ) {
-    	    System.out.println( "Errors: " + kbuilder.getErrors() );
-    	}
-    	
-    	KnowledgeBaseProvider kbaseFactory = this.client.getKnowledgeBaseFactory();
-    	KnowledgeBase kbase = kbaseFactory.newKnowledgeBase();
-    	
-    	kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
-    	
-    	StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
-    	int fired = ksession.fireAllRules();
-    	assertEquals( 2, fired );
-    }
-
-}

Copied: labs/jbossrules/trunk/drools-vsm/src/test/java/org/drools/vsm/ServiceManagerTest.java (from rev 29215, labs/jbossrules/trunk/drools-vsm/src/test/java/org/drools/distributed/ServiceManagerTest.java)
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/test/java/org/drools/vsm/ServiceManagerTest.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-vsm/src/test/java/org/drools/vsm/ServiceManagerTest.java	2009-09-11 05:32:50 UTC (rev 29307)
@@ -0,0 +1,199 @@
+package org.drools.vsm;
+
+import java.net.InetSocketAddress;
+import java.net.SocketAddress;
+
+import junit.framework.TestCase;
+
+import org.apache.mina.transport.socket.nio.NioSocketConnector;
+import org.drools.KnowledgeBase;
+import org.drools.KnowledgeBaseProvider;
+import org.drools.SystemEventListenerFactory;
+import org.drools.builder.KnowledgeBuilder;
+import org.drools.builder.KnowledgeBuilderProvider;
+import org.drools.builder.ResourceType;
+import org.drools.command.runtime.rule.FireAllRulesCommand;
+import org.drools.io.ResourceFactory;
+import org.drools.runtime.ExecutionResults;
+import org.drools.runtime.StatefulKnowledgeSession;
+import org.drools.vsm.MessageHandler;
+import org.drools.vsm.ServiceManagerClient;
+import org.drools.vsm.ServiceManagerServer;
+
+public class ServiceManagerTest extends TestCase {
+	ServiceManagerServer server;
+    ServiceManagerClient client;
+
+    @Override
+    protected void setUp() throws Exception {
+    	this.server = new ServiceManagerServer();
+	    Thread thread = new Thread( server );
+	    thread.start();
+	    Thread.sleep( 500 );  
+	    	
+    	this.client = new ServiceManagerClient( "client 1",
+    			     							new MessageHandler(SystemEventListenerFactory.getSystemEventListener()) );
+    	
+      NioSocketConnector connector = new NioSocketConnector();
+      SocketAddress address = new InetSocketAddress( "127.0.0.1",
+                                                     9123 );
+      client.connect( connector,
+                      address );
+    }
+    
+    protected void tearDown() throws Exception {
+        super.tearDown();
+        client.disconnect();
+        server.stop();
+    }
+    
+    public void testFireAllRules() throws Exception {
+        String str = "";
+        str += "package org.drools \n";
+        str += "global java.util.List list \n";
+        str += "rule rule1 \n";
+        str += "    dialect \"java\" \n";
+        str += "when \n";
+        str += "then \n";
+        str += "    System.out.println( \"hello1!!!\" ); \n";
+        str += "end \n";
+        str += "rule rule2 \n";
+        str += "    dialect \"java\" \n";
+        str += "when \n";
+        str += "then \n";
+        str += "    System.out.println( \"hello2!!!\" ); \n";
+        str += "end \n"  ;      
+        
+    	KnowledgeBuilderProvider kbuilderFactory = this.client.getKnowledgeBuilderFactory();
+    	KnowledgeBuilder kbuilder = kbuilderFactory.newKnowledgeBuilder();
+    	kbuilder.add( ResourceFactory.newByteArrayResource( str.getBytes() ), ResourceType.DRL );
+    	
+    	if ( kbuilder.hasErrors() ) {
+    	    System.out.println( "Errors: " + kbuilder.getErrors() );
+    	}
+    	
+    	KnowledgeBaseProvider kbaseFactory = this.client.getKnowledgeBaseFactory();
+    	KnowledgeBase kbase = kbaseFactory.newKnowledgeBase();
+    	
+    	kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
+    	
+    	StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
+    	int fired = ksession.fireAllRules();
+    	assertEquals( 2, fired );
+    }
+    
+    public void testExecute() throws Exception {
+        String str = "";
+        str += "package org.drools \n";
+        str += "global java.util.List list \n";
+        str += "rule rule1 \n";
+        str += "    dialect \"java\" \n";
+        str += "when \n";
+        str += "then \n";
+        str += "    System.out.println( \"hello1!!!\" ); \n";
+        str += "end \n";
+        str += "rule rule2 \n";
+        str += "    dialect \"java\" \n";
+        str += "when \n";
+        str += "then \n";
+        str += "    System.out.println( \"hello2!!!\" ); \n";
+        str += "end \n"  ;      
+        
+        KnowledgeBuilderProvider kbuilderFactory = this.client.getKnowledgeBuilderFactory();
+        KnowledgeBuilder kbuilder = kbuilderFactory.newKnowledgeBuilder();
+        kbuilder.add( ResourceFactory.newByteArrayResource( str.getBytes() ), ResourceType.DRL );
+        
+        if ( kbuilder.hasErrors() ) {
+            System.out.println( "Errors: " + kbuilder.getErrors() );
+        }
+        
+        KnowledgeBaseProvider kbaseFactory = this.client.getKnowledgeBaseFactory();
+        KnowledgeBase kbase = kbaseFactory.newKnowledgeBase();
+        
+        kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
+        
+        StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
+        
+        ExecutionResults results = ksession.execute( new FireAllRulesCommand( "fired" ) );
+       
+        assertEquals( 2, (int ) ( Integer) results.getValue( "fired" ) );
+    }   
+    
+    public void testNamedService() throws Exception {
+        String str = "";
+        str += "package org.drools \n";
+        str += "global java.util.List list \n";
+        str += "rule rule1 \n";
+        str += "    dialect \"java\" \n";
+        str += "when \n";
+        str += "then \n";
+        str += "    System.out.println( \"hello1!!!\" ); \n";
+        str += "end \n";
+        str += "rule rule2 \n";
+        str += "    dialect \"java\" \n";
+        str += "when \n";
+        str += "then \n";
+        str += "    System.out.println( \"hello2!!!\" ); \n";
+        str += "end \n"  ;      
+        
+        KnowledgeBuilderProvider kbuilderFactory = this.client.getKnowledgeBuilderFactory();
+        KnowledgeBuilder kbuilder = kbuilderFactory.newKnowledgeBuilder();
+        kbuilder.add( ResourceFactory.newByteArrayResource( str.getBytes() ), ResourceType.DRL );
+        
+        if ( kbuilder.hasErrors() ) {
+            System.out.println( "Errors: " + kbuilder.getErrors() );
+        }
+        
+        KnowledgeBaseProvider kbaseFactory = this.client.getKnowledgeBaseFactory();
+        KnowledgeBase kbase = kbaseFactory.newKnowledgeBase();
+        
+        kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
+        
+        StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
+        
+        this.client.register( "ksession1", ksession );
+        
+        ExecutionResults results = this.client.lookup( "ksession1" ).execute( new FireAllRulesCommand( "fired" ) );
+       
+        assertEquals( 2, (int ) ( Integer) results.getValue( "fired" ) );
+    }      
+
+    public void testVsmPipeline() throws Exception {
+        String str = "";
+        str += "package org.drools \n";
+        str += "global java.util.List list \n";
+        str += "rule rule1 \n";
+        str += "    dialect \"java\" \n";
+        str += "when \n";
+        str += "then \n";
+        str += "    System.out.println( \"hello1!!!\" ); \n";
+        str += "end \n";
+        str += "rule rule2 \n";
+        str += "    dialect \"java\" \n";
+        str += "when \n";
+        str += "then \n";
+        str += "    System.out.println( \"hello2!!!\" ); \n";
+        str += "end \n"  ;      
+        
+        KnowledgeBuilderProvider kbuilderFactory = this.client.getKnowledgeBuilderFactory();
+        KnowledgeBuilder kbuilder = kbuilderFactory.newKnowledgeBuilder();
+        kbuilder.add( ResourceFactory.newByteArrayResource( str.getBytes() ), ResourceType.DRL );
+        
+        if ( kbuilder.hasErrors() ) {
+            System.out.println( "Errors: " + kbuilder.getErrors() );
+        }
+        
+        KnowledgeBaseProvider kbaseFactory = this.client.getKnowledgeBaseFactory();
+        KnowledgeBase kbase = kbaseFactory.newKnowledgeBase();
+        
+        kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
+        
+        StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
+        
+        this.client.register( "ksession1", ksession );
+        
+//        ExecutionResults results = this.client.lookup( "ksession1" ).execute( new FireAllRulesCommand( "fired" ) );
+//       
+//        assertEquals( 2, (int ) ( Integer) results.getValue( "fired" ) );
+    } 
+}



More information about the jboss-svn-commits mailing list