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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri May 28 09:22:18 EDT 2010


Author: salaboy21
Date: 2010-05-28 09:22:15 -0400 (Fri, 28 May 2010)
New Revision: 33139

Removed:
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/BasicAPITest.java
Modified:
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericNodeConnector.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalNodeConnector.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/MinaNodeConnector.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/ExecutionEnvironment.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/ExecutionEnvironmentTopology.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/LowPingFirstEnvironmentSelectionStrategy.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/TopologyPrioritySelectionStrategy.java
Log:
adding TopologyPrioritySelectionStrategy for Local and Mina impl

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericNodeConnector.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericNodeConnector.java	2010-05-28 11:18:23 UTC (rev 33138)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericNodeConnector.java	2010-05-28 13:22:15 UTC (rev 33139)
@@ -6,12 +6,13 @@
 
 public interface GenericNodeConnector extends GenericIoWriter {
 
-    boolean connect() throws RemoteException;;
+    boolean connect() throws RemoteException;
 
-    void disconnect() throws RemoteException;;
+    void disconnect() throws RemoteException;
 
-    Message write(Message msg) throws RemoteException;;
+    Message write(Message msg) throws RemoteException;
 
-    String getId() throws RemoteException;;
+    String getId() throws RemoteException;
 
+    GenericConnection getConnection();
 }

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalNodeConnector.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalNodeConnector.java	2010-05-28 11:18:23 UTC (rev 33138)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalNodeConnector.java	2010-05-28 13:22:15 UTC (rev 33139)
@@ -18,6 +18,7 @@
 package org.drools.grid.local;
 
 import java.rmi.RemoteException;
+import org.drools.grid.GenericConnection;
 import org.drools.grid.GenericNodeConnector;
 import org.drools.grid.internal.Message;
 import org.drools.grid.internal.MessageResponseHandler;
@@ -47,5 +48,7 @@
     public void write(Message msg, MessageResponseHandler responseHandler) {
         throw new UnsupportedOperationException("Not supported yet.");
     }
-
+    public GenericConnection getConnection(){
+        return new LocalConnection();
+    }
 }

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/MinaNodeConnector.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/MinaNodeConnector.java	2010-05-28 11:18:23 UTC (rev 33138)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/MinaNodeConnector.java	2010-05-28 13:22:15 UTC (rev 33139)
@@ -12,11 +12,13 @@
 import org.apache.mina.transport.socket.nio.NioSocketConnector;
 import org.drools.SystemEventListener;
 import org.drools.SystemEventListenerFactory;
+import org.drools.grid.GenericConnection;
 import org.drools.grid.GenericNodeConnector;
 import org.drools.grid.internal.GenericIoWriter;
 import org.drools.grid.internal.Message;
 import org.drools.grid.internal.MessageResponseHandler;
 import org.drools.grid.internal.responsehandlers.BlockingMessageResponseHandler;
+import org.drools.grid.remote.RemoteConnection;
 
 public class MinaNodeConnector
         implements
@@ -139,4 +141,8 @@
     public void setSession(Object object) {
         this.session = (IoSession) object;
     }
+
+    public GenericConnection getConnection(){
+        return new RemoteConnection();
+    }
 }

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/ExecutionEnvironment.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/ExecutionEnvironment.java	2010-05-28 11:18:23 UTC (rev 33138)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/ExecutionEnvironment.java	2010-05-28 13:22:15 UTC (rev 33139)
@@ -1,28 +1,14 @@
 package org.drools.grid.services;
 
-import java.io.IOException;
-import java.net.InetAddress;
-import java.net.UnknownHostException;
 import org.drools.grid.GenericNodeConnector;
 
 import java.util.HashMap;
 import java.util.Map;
-import java.util.UUID;
 
 /**
- * Created by IntelliJ IDEA.
- * User: salaboy
- * Date: May 17, 2010
- * Time: 11:45:32 AM
- * To change this template use File | Settings | File Templates.
- */
-
-
-/**
  * @author salaboy
  */
 public class ExecutionEnvironment {
-    private String id;
     private String name;
     private EnvironmentProvider provider;
     public enum ProviderStatus{RUNNING, STOPPED, FAILURE};
@@ -31,7 +17,6 @@
     private Map<String, Object> info;
 
     public ExecutionEnvironment(String name, EnvironmentProvider provider) {
-        this.id = UUID.randomUUID().toString();
         this.name = name;
         this.provider = provider;
         this.info = new HashMap<String, Object>();
@@ -44,10 +29,8 @@
     }
 
     public boolean checkConnection(){
-//        if(provider.checkConnection()){
-//            return true;
-//        }
 
+
         return false;
     }
 
@@ -59,23 +42,23 @@
             return null;
     }
 
-    public long ping() throws IOException{
-        String ip = provider.getParameter("providerAddress").toString();
-        InetAddress in = InetAddress.getByName(ip);
-        long startTime = System.currentTimeMillis();
-        long timeOfResponse;
-        if(in.isReachable(5000)){
-            timeOfResponse = System.currentTimeMillis();
-            System.out.println("Responde OK");
-            return timeOfResponse - startTime;
-        }
-        else{
-            System.out.println("No responde: Time out");
-            return 0;
-        }
+//    public long ping() throws IOException{
+//        String ip = provider.getParameter("providerAddress").toString();
+//        InetAddress in = InetAddress.getByName(ip);
+//        long startTime = System.currentTimeMillis();
+//        long timeOfResponse;
+//        if(in.isReachable(5000)){
+//            timeOfResponse = System.currentTimeMillis();
+//            System.out.println("Responde OK");
+//            return timeOfResponse - startTime;
+//        }
+//        else{
+//            System.out.println("No responde: Time out");
+//            return 0;
+//        }
+//
+//    }
 
-    }
-
     public GenericNodeConnector getConnector(){
         return provider.getNodeConnector();
     }
@@ -84,14 +67,6 @@
         return this.info;
     }
 
-    public String getId() {
-        return id;
-    }
-
-    public void setId(String id) {
-        this.id = id;
-    }
-
     public String getName() {
         return name;
     }

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/ExecutionEnvironmentTopology.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/ExecutionEnvironmentTopology.java	2010-05-28 11:18:23 UTC (rev 33138)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/ExecutionEnvironmentTopology.java	2010-05-28 13:22:15 UTC (rev 33139)
@@ -3,12 +3,8 @@
 import java.util.HashMap;
 import java.util.Map;
 import org.drools.grid.ExecutionNode;
-import org.drools.grid.remote.RemoteConnection;
 import org.drools.grid.GenericConnection;
 import org.drools.grid.GenericNodeConnector;
-import org.drools.grid.remote.mina.MinaNodeConnector;
-import org.drools.grid.local.LocalConnection;
-import org.drools.grid.local.LocalNodeConnector;
 import org.drools.grid.services.directory.DirectoryInstance;
 import org.drools.grid.services.strategies.ExecutionEnvironmentSelectionStrategy; 
 import org.drools.grid.strategies.ReturnAlwaysTheFirstSelectionStrategy;
@@ -35,22 +31,14 @@
     }
 
     public void registerExecutionEnvironment(String name, EnvironmentProvider provider) {
+
         ExecutionEnvironment executionEnvironment = new ExecutionEnvironment(name, provider);
         GenericNodeConnector connector = executionEnvironment.getConnector();
-        System.out.println("Connector  =" + connector);
-        if (connector instanceof MinaNodeConnector) {
-            RemoteConnection connection = new RemoteConnection();
-            connection.addNodeConnector(connector);
-            connections.put(name, connection);
-        }
-        if (connector instanceof LocalNodeConnector){
-            LocalConnection connection = new LocalConnection();
-            connection.addNodeConnector(connector);
-            connections.put(name, connection);
-        }
+        GenericConnection connection = connector.getConnection();
+        connection.addNodeConnector(connector);
+        connections.put(name, connection);
         environments.put(name, executionEnvironment);
 
-
     }
 //
 //    public void registerDirectoryInstance(String name, DirectoryProvider provider){
@@ -90,12 +78,8 @@
     }
     //@TODO: need to add strategy to get the execution node here!!!
     public ExecutionNode getExecutionNode(ExecutionEnvironment ee) {
-
         GenericConnection connection = connections.get(ee.getName());
-        System.out.println("Connection =" + connection + " - > name = " + ee.getName());
-
         return connection.getExecutionNode(new ReturnAlwaysTheFirstSelectionStrategy(connection));
-
     }
 
     public String getName() {

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/LowPingFirstEnvironmentSelectionStrategy.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/LowPingFirstEnvironmentSelectionStrategy.java	2010-05-28 11:18:23 UTC (rev 33138)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/LowPingFirstEnvironmentSelectionStrategy.java	2010-05-28 13:22:15 UTC (rev 33139)
@@ -17,10 +17,7 @@
 
 package org.drools.grid.services.strategies;
 
-import java.io.IOException;
 import java.util.Map;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 import org.drools.grid.services.ExecutionEnvironment;
 
 /**
@@ -46,15 +43,15 @@
         ExecutionEnvironment selectedEnv = null;
         for(ExecutionEnvironment env : this.environments.values()){
             if(selectedEnv != null){
-                try {
-                    int oldping = Integer.parseInt(selectedEnv.getInfo().get("ping").toString());
-                    long ping = env.ping();
-                    if (oldping > ping) {
-                        selectedEnv = env;
-                    }
-                } catch (IOException ex) {
-                    Logger.getLogger(LowPingFirstEnvironmentSelectionStrategy.class.getName()).log(Level.SEVERE, null, ex);
-                }
+//                try {
+//                    int oldping = Integer.parseInt(selectedEnv.getInfo().get("ping").toString());
+//                    long ping = env.ping();
+//                    if (oldping > ping) {
+//                        selectedEnv = env;
+//                    }
+//                } catch (IOException ex) {
+//                    Logger.getLogger(LowPingFirstEnvironmentSelectionStrategy.class.getName()).log(Level.SEVERE, null, ex);
+//                }
 
             }
 

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/TopologyPrioritySelectionStrategy.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/TopologyPrioritySelectionStrategy.java	2010-05-28 11:18:23 UTC (rev 33138)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/TopologyPrioritySelectionStrategy.java	2010-05-28 13:22:15 UTC (rev 33139)
@@ -40,8 +40,12 @@
         for(ExecutionEnvironment ee : environments.values()){
             providers.add(ee.getProvider());
         }
+        List<ExecutionEnvironment> ees = new ArrayList<ExecutionEnvironment>();
+        for(ExecutionEnvironment ee : environments.values()){
+            ees.add(ee);
+        }
 
-        Collections.sort(providers, new Comparator<EnvironmentProvider>() {
+        Collections.sort(ees, new Comparator<ExecutionEnvironment>() {
 
             private Map<Class<? extends EnvironmentProvider> , Integer> priorities
                         = new HashMap<Class<? extends EnvironmentProvider>, Integer>() {
@@ -53,12 +57,19 @@
                 }
             };
 
-            public int compare(EnvironmentProvider o1, EnvironmentProvider o2) {
-                return priorities.get(o2.getClass()).compareTo(priorities.get(o1.getClass()));
+            public int compare(ExecutionEnvironment o1, ExecutionEnvironment o2) {
+                return priorities.get(o1.getProvider().getClass())
+                        .compareTo(priorities.get(o2.getProvider().getClass()));
             }
         });
 
-        return environments.values().iterator().next();
+        for(ExecutionEnvironment ee : environments.values()){
+            if(ee == ees.get(0)){
+                return ee;
+            }
+        }
+
+        return null;
     }
 
     public void setEnvironments(Map<String, ExecutionEnvironment> environments) {

Deleted: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/BasicAPITest.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/BasicAPITest.java	2010-05-28 11:18:23 UTC (rev 33138)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/BasicAPITest.java	2010-05-28 13:22:15 UTC (rev 33139)
@@ -1,345 +0,0 @@
-package org.drools.services;
-
-import java.io.IOException;
-import java.net.InetSocketAddress;
-import java.net.SocketAddress;
-import java.rmi.RemoteException;
-import java.util.HashMap;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-import org.drools.grid.services.ExecutionEnvironment;
-import org.drools.grid.services.ExecutionEnvironmentTopology;
-import org.drools.grid.services.remote.MinaEnvironmentProvider;
-import org.drools.grid.ExecutionNode;
-import org.junit.Test;
-
-import java.util.Map;
-import junit.framework.Assert;
-import org.apache.mina.transport.socket.SocketAcceptor;
-import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
-import org.drools.KnowledgeBase;
-import org.drools.KnowledgeBaseFactoryService;
-import org.drools.SystemEventListenerFactory;
-import org.drools.builder.KnowledgeBuilder;
-import org.drools.builder.KnowledgeBuilderFactoryService;
-import org.drools.builder.ResourceType;
-import org.drools.grid.internal.GenericMessageHandlerImpl;
-import org.drools.grid.internal.NodeData;
-import org.drools.grid.remote.mina.MinaAcceptor;
-import org.drools.grid.remote.mina.MinaIoHandler;
-import org.drools.grid.services.strategies.RandomEnvironmentSelectionStrategy;
-import org.drools.io.ResourceFactory;
-import org.drools.runtime.StatefulKnowledgeSession;
-import org.junit.After;
-import org.junit.Before;
-
-/**
- * Created by IntelliJ IDEA.
- * User: salaboy
- * Date: May 17, 2010
- * Time: 10:07:02 AM
- * To change this template use File | Settings | File Templates.
- */
-public class BasicAPITest {
-
-    private MinaAcceptor server1;
-    private MinaAcceptor server2;
-    private ExecutionEnvironmentTopology eet;
-
-    @Before
-    public void setUp() throws IOException {
-
-        System.out.println("Server 1 Starting!");
-        // the servers should be started in a different machine (jvm or physical) or in another thread
-        SocketAddress address = new InetSocketAddress("127.0.0.1", 9123);
-        NodeData nodeData = new NodeData();
-        // setup Server
-        SocketAcceptor acceptor = new NioSocketAcceptor();
-        acceptor.setHandler(new MinaIoHandler(SystemEventListenerFactory.getSystemEventListener(),
-                new GenericMessageHandlerImpl(nodeData,
-                SystemEventListenerFactory.getSystemEventListener())));
-        server1 = new MinaAcceptor(acceptor, address);
-        server1.start();
-        System.out.println("Server 1 Started! at = " + address.toString());
-
-
-        System.out.println("Server 2 Starting!");
-        // the servers should be started in a different machine (jvm or physical) or in another thread
-        address = new InetSocketAddress("127.0.0.1", 9124);
-        nodeData = new NodeData();
-        // setup Server
-        acceptor = new NioSocketAcceptor();
-        acceptor.setHandler(new MinaIoHandler(SystemEventListenerFactory.getSystemEventListener(),
-                new GenericMessageHandlerImpl(nodeData,
-                SystemEventListenerFactory.getSystemEventListener())));
-        server2 = new MinaAcceptor(acceptor, address);
-        server2.start();
-        System.out.println("Server 2 Started! at = " + address.toString());
-
-
-    }
-
-    @After
-    public void stop() {
-        for (String key : eet.getExecutionEnvironments().keySet()) {
-            try {
-                eet.getExecutionEnvironment(key).getConnector().disconnect();
-            } catch (RemoteException ex) {
-                Logger.getLogger(BasicAPITest.class.getName()).log(Level.SEVERE, null, ex);
-            }
-        }
-        
-        server1.stop();
-        System.out.println("Server 1 Stopped!");
-
-        server2.stop();
-        System.out.println("Server 2 Stopped!");
-
-
-
-
-    }
-
-    @Test
-    public void singleMinaProvider() {
-
-        //This APIs are used to create the Execution Environment Topology that will define which logical set of nodes
-        //will be used for a specific situation/use case.
-
-        //The Execution Environment Topology will contain the Runtime state, persistent in time to be able to restore the
-        //topology in case of failure or restarting
-        eet = new ExecutionEnvironmentTopology("MyCompanyTopology");
-
-        //Specific paramters for this specific provider
-        Map<String, Object> parameters = new HashMap<String, Object>();
-        parameters.put("providerName", "Mina1");
-        parameters.put("providerAddress", "127.0.0.1");
-        parameters.put("providerPort", 9123);
-        //Create the provider
-        MinaEnvironmentProvider provider = new MinaEnvironmentProvider(parameters);
-        //Register the provider into the topology
-        eet.registerExecutionEnvironment("MyMinaExecutionEnv1", provider);
-
-        //Then we can get the registered Execution Environments by Name
-
-        ExecutionEnvironment ee = eet.getExecutionEnvironment("MyMinaExecutionEnv1");
-        Assert.assertNotNull(ee);
-
-        // Give me an ExecutionNode in the selected environment
-        // For the Mina we have just one Execution Node per server instance
-        ExecutionNode node = eet.getExecutionNode(ee);
-
-        Assert.assertNotNull(node);
-
-
-        // Do a basic Runtime Test that register a ksession and fire some rules.
-        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";
-
-
-        KnowledgeBuilder kbuilder =
-                node.get(KnowledgeBuilderFactoryService.class).newKnowledgeBuilder();
-        kbuilder.add(ResourceFactory.newByteArrayResource(str.getBytes()),
-                ResourceType.DRL);
-
-        if (kbuilder.hasErrors()) {
-            System.out.println("Errors: " + kbuilder.getErrors());
-        }
-
-        KnowledgeBase kbase =
-                node.get(KnowledgeBaseFactoryService.class).newKnowledgeBase();
-        Assert.assertNotNull(kbase);
-
-        kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());
-
-        StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
-        Assert.assertNotNull(ksession);
-
-        int fired = ksession.fireAllRules();
-        Assert.assertEquals(2, fired);
-
-        System.out.println("Ending Test One");
-
-    }
-
-    @Test
-    public void multiMinaProvider() {
-
-        //This APIs are used to create the Execution Environment Topology that will define which logical set of nodes
-        //will be used for a specific situation/use case.
-
-        //The Execution Environment Topology will contain the Runtime state, persistent in time to be able to restore the 
-        //topology in case of failure or restarting
-
-        System.out.println("Starting Test Two");
-        eet = new ExecutionEnvironmentTopology("MyCompanyTopology");
-
-        //Specific paramters for this specific provider
-        Map<String, Object> parameters1 = new HashMap<String, Object>();
-        parameters1.put("providerName", "Mina1");
-        parameters1.put("providerAddress", "127.0.0.1");
-        parameters1.put("providerPort", 9123);
-        //Create the provider
-        MinaEnvironmentProvider provider1 = new MinaEnvironmentProvider(parameters1);
-        //Register the provider into the topology
-        eet.registerExecutionEnvironment("MyMinaExecutionEnv1", provider1);
-
-        //Specific paramters for this specific provider
-        Map<String, Object> parameters2 = new HashMap<String, Object>();
-        parameters2.put("providerName", "Mina1");
-        parameters2.put("providerAddress", "127.0.0.1");
-        parameters2.put("providerPort", 9124);
-        //Create the provider
-        MinaEnvironmentProvider provider2 = new MinaEnvironmentProvider(parameters2);
-        //Register the provider into the topology
-        eet.registerExecutionEnvironment("MyMinaExecutionEnv2", provider2);
-
-        //Then we can get the registered Execution Environments by Name
-        ExecutionEnvironment ee = eet.getBestExecutionEnvironment(new RandomEnvironmentSelectionStrategy());
-
-        Assert.assertNotNull(ee);
-        System.out.println("Selected Environment = " + ee.getName());
-
-        // Give me an ExecutionNode in the selected environment
-        // For the Mina we have just one Execution Node per server instance
-        ExecutionNode node = eet.getExecutionNode(ee);
-        Assert.assertNotNull(node);
-
-
-        // Do a basic Runtime Test that register a ksession and fire some rules.
-        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";
-
-
-        KnowledgeBuilder kbuilder =
-                node.get(KnowledgeBuilderFactoryService.class).newKnowledgeBuilder();
-        kbuilder.add(ResourceFactory.newByteArrayResource(str.getBytes()),
-                ResourceType.DRL);
-
-        if (kbuilder.hasErrors()) {
-            System.out.println("Errors: " + kbuilder.getErrors());
-        }
-
-        KnowledgeBase kbase =
-                node.get(KnowledgeBaseFactoryService.class).newKnowledgeBase();
-        Assert.assertNotNull(kbase);
-
-        kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());
-
-        StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
-        Assert.assertNotNull(ksession);
-
-        int fired = ksession.fireAllRules();
-        Assert.assertEquals(2, fired);
-
-    }
-//
-//    @Test
-//    public void basicMinaProviderTestOLD(){
-//
-//        //This APIs are used to create the Execution Environment Topology that will define which logical set of nodes
-//        //will be used for a specific situation/use case.
-//
-//        //Runtime state, persistent
-//        ExecutionEnvironmentTopology eet = new ExecutionEnvironmentTopology("MyCompanyTopology");
-//        //Logical state and content of each execution environment
-//      // DirectoryInstance directory = eet.registerDirectoryInstance("MyMainDirectory",new ZooKeeperDirectoryProvider());
-//
-//          Map<String, Object> parameters = new HashMap<String,Object>();
-//          parameters.put("providerName", "Mina1");
-//          parameters.put("providerAddress", "127.0.0.1");
-//          parameters.put("providerPort", 9123);
-//
-//         MinaEnvironmentProvider provider = new MinaEnvironmentProvider(parameters);
-//
-//            eet.registerExecutionEnvironment("MyMinaExecutionEnv1", provider );
-//
-//
-//       //eet = ExecutionEnvironmentTopology.lookup("MyCompanyTopology");
-//
-//      // directory = eem.getDirectoryInstance("MyMainDirectory");
-//
-//      // List<DirectoryInstance> directories = eem.getAllDirectoryInstances();
-//      // this should return the active list of Envs, then we can query for the status of each of them
-////       Map<String, ExecutionEnvironment> ees = eet.getExecutionEnvironments();
-////       ees.get("MyMinaExecutionEnv1").getInfo();
-////       ees.get("MyMinaExecutionEnv1").getStatus();
-////
-//       ExecutionEnvironment ee = eet.getExecutionEnvironment("MyMinaExecutionEnv1");
-//       Assert.assertNotNull(ee);
-//        //no matter the ExecutionEnvironment I wanna an ExecutionNode, you (grid) should choose one env
-////       ExecutionNode en = eet.getExecutionNode();
-//
-//        //no matter the ExecutionEnvironment I wanna an ExecutionNode, you (grid) should choose one env
-//       ExecutionNode node = eet.getExecutionNode(ee); // give me an ExecutionNode in that environment..
-//
-//       Assert.assertNotNull(node);
-//
-//       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";
-//
-//
-//        KnowledgeBuilder kbuilder =
-//                node.get(KnowledgeBuilderFactoryService.class).newKnowledgeBuilder();
-//        kbuilder.add( ResourceFactory.newByteArrayResource( str.getBytes() ),
-//                      ResourceType.DRL );
-//
-//        if ( kbuilder.hasErrors() ) {
-//            System.out.println( "Errors: " + kbuilder.getErrors() );
-//        }
-//
-//        KnowledgeBase kbase =
-//                node.get(KnowledgeBaseFactoryService.class).newKnowledgeBase();
-//        Assert.assertNotNull(kbase);
-//
-//        kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
-//
-//        StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
-//        Assert.assertNotNull(ksession);
-//
-//        int fired = ksession.fireAllRules();
-//        Assert.assertEquals( 2, fired );
-//
-//
-//
-//    }
-}



More information about the jboss-svn-commits mailing list