[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