[jboss-svn-commits] JBL Code SVN: r32095 - in labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src: main/java/org/drools/services/grid/impl and 2 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Mar 15 11:49:24 EDT 2010
Author: salaboy21
Date: 2010-03-15 11:49:23 -0400 (Mon, 15 Mar 2010)
New Revision: 32095
Modified:
labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/ExecutionGridConnection.java
labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/GenericMessageGridHandlerImpl.java
labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/GridExecutionNodeConnection.java
labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/KnowledgeBaseGridClient.java
labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/KnowledgeBaseProviderGridClient.java
labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/KnowledgeBuilderGridClient.java
labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/KnowledgeBuilderProviderGridClient.java
labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/StatefulKnowledgeSessionGridClient.java
labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/impl/DirectoryServiceImpl.java
labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/rio/RioConnector.java
labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/test/java/org/drools/services/ExecutionNodeBaseTest.java
labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/test/java/org/drools/services/ITGridExecutionTest.java
Log:
JBRULES-2446: Drools Services API
- drools-services-grid working with shared kbases between ExecutionNodes. needs another round of refactoring
Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/ExecutionGridConnection.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/ExecutionGridConnection.java 2010-03-15 14:42:40 UTC (rev 32094)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/ExecutionGridConnection.java 2010-03-15 15:49:23 UTC (rev 32095)
@@ -27,7 +27,7 @@
*/
public class ExecutionGridConnection {
private List<ExecutionNode> nodes;
- private DirectoryService directory;
+ // private DirectoryService directory;
private String url;
public ExecutionGridConnection() {
@@ -64,17 +64,20 @@
this.url = url;
}
- public DirectoryService getDirectory() {
- return directory;
- }
-
- public void setDirectory(DirectoryService directory) {
- this.directory = directory;
- }
-
+// public DirectoryService getDirectory() {
+// return directory;
+// }
+//
+// public void setDirectory(DirectoryService directory) {
+// this.directory = directory;
+// }
+ //dummy impls
public ExecutionNode getPreferedExecutionNode() {
return nodes.get(0);
}
+ public ExecutionNode getAnotherExecutionNode(){
+ return nodes.get(1);
+ }
Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/GenericMessageGridHandlerImpl.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/GenericMessageGridHandlerImpl.java 2010-03-15 14:42:40 UTC (rev 32094)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/GenericMessageGridHandlerImpl.java 2010-03-15 15:49:23 UTC (rev 32095)
@@ -110,7 +110,7 @@
ExecutionResultImpl localKresults = new ExecutionResultImpl();
localSessionContext.set( "kresults_" + msg.getSessionId(),
localKresults );
- System.out.println("Registering the registry itself!!!!!!!!!!!!!!!!!! = "+registry);
+ //@TODO: replace with Environment ?? this needs to change..
localSessionContext.set("registry", registry);
for ( GenericCommand cmd : commands ) {
Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/GridExecutionNodeConnection.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/GridExecutionNodeConnection.java 2010-03-15 14:42:40 UTC (rev 32094)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/GridExecutionNodeConnection.java 2010-03-15 15:49:23 UTC (rev 32095)
@@ -24,17 +24,14 @@
import org.drools.runtime.Environment;
import org.drools.runtime.ExecutionResults;
import org.drools.runtime.StatefulKnowledgeSession;
-import org.drools.services.ExecutionNode;
+import org.drools.services.ServiceManager;
import org.drools.services.command.ExecutionNodeClientConnectCommand;
import org.drools.services.command.LookupCommand;
import org.drools.services.command.RegisterCommand;
import org.drools.services.generic.GenericConnector;
import org.drools.services.generic.Message;
-import org.drools.services.grid.rio.RioConnector;
-import org.drools.vsm.HumanTaskServiceProvider;
-import org.drools.vsm.ServiceManager;
public class GridExecutionNodeConnection
@@ -51,19 +48,19 @@
private int sessionId = -1;
//@TODO: i need to refactor this to a service in the list of services???
- private DirectoryService registryService;
+ //private DirectoryService directoryService;
- public GridExecutionNodeConnection(String name, GenericConnector client) {
+ private Environment env;
+
+ public GridExecutionNodeConnection(String name, GenericConnector client, Environment env) {
this.name = name;
this.client = client;
this.counter = new AtomicInteger();
this.services = null;
+ this.env = env;
}
- public GridExecutionNodeConnection(String name, GenericConnector client, List<GenericConnector> services) {
- this(name, client);
- this.services = services;
- }
+
@@ -167,7 +164,14 @@
System.out.println("Registering "+identifier + " - - "+client.getId());
try {
- registryService.register(identifier, client.getId());
+ DirectoryService directory = (DirectoryService) env.get("DIRECTORY_SERVICE");
+ if(directory != null){
+
+ directory.register(identifier, client.getId());
+ }
+ else{
+ System.out.println("Directory == NULL!!!!!!!!");
+ }
} catch (RemoteException ex) {
Logger.getLogger(GridExecutionNodeConnection.class.getName()).log(Level.SEVERE, null, ex);
}
@@ -202,8 +206,13 @@
System.out.println("Looking up the session with identifier = "+identifier);
try {
//First I need to get the correct client GridNodeExecutionService with the identifier
-
- client.setSession(registryService.lookup(identifier));
+ DirectoryService directory = (DirectoryService) env.get("DIRECTORY_SERVICE");
+ if(directory != null){
+ System.out.println("Setting session for identifier = "+identifier +" - client ="+client);
+ client.setSession(directory.lookup(identifier));
+ }else{
+ System.out.println("Directory == NULL!!!!!!!!");
+ }
} catch (RemoteException ex) {
Logger.getLogger(GridExecutionNodeConnection.class.getName()).log(Level.SEVERE, null, ex);
}
@@ -221,7 +230,7 @@
switch ( Integer.parseInt( type ) ) {
case 0 : {
executor = new StatefulKnowledgeSessionGridClient( instanceId,
- this );
+ this , env);
break;
}
default : {
@@ -245,20 +254,20 @@
// TODO Auto-generated method stub
}
- public HumanTaskServiceProvider getHumanTaskService() {
- //return new HumanTaskServiceGridProviderImpl(this);
- //@TODO: create human task service module project
- return null;
- }
+// public HumanTaskServiceProvider getHumanTaskService() {
+// //return new HumanTaskServiceGridProviderImpl(this);
+// //@TODO: create human task service module project
+// return null;
+// }
@Override
public KnowledgeBuilderFactoryService getKnowledgeBuilderFactoryService() {
- return new KnowledgeBuilderProviderGridClient( this );
+ return new KnowledgeBuilderProviderGridClient( this, env );
}
@Override
public KnowledgeBaseFactoryService getKnowledgeBaseFactoryService() {
- return new KnowledgeBaseProviderGridClient( this );
+ return new KnowledgeBaseProviderGridClient( this, env );
}
public static class RemoveKnowledgeBuilderProvider implements KnowledgeBuilderFactoryService {
@@ -322,14 +331,14 @@
return this.name;
}
- public DirectoryService getRegistryService() {
- return registryService;
- }
+// public DirectoryService getRegistryService() {
+// return directoryService;
+// }
+//
+// public void setRegistryService(DirectoryService registryService) {
+// this.directoryService = registryService;
+// }
- public void setRegistryService(DirectoryService registryService) {
- this.registryService = registryService;
- }
-
public void setCurrentSessionService(GridNodeExecutionService sessionService){
this.client.setSession(sessionService);
}
Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/KnowledgeBaseGridClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/KnowledgeBaseGridClient.java 2010-03-15 14:42:40 UTC (rev 32094)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/KnowledgeBaseGridClient.java 2010-03-15 15:49:23 UTC (rev 32095)
@@ -31,12 +31,13 @@
KnowledgeBase {
private GridExecutionNodeConnection nodeConnection;
- private String instanceId;
-
+ private String instanceId;
+ private Environment env;
public KnowledgeBaseGridClient(String instanceId,
- GridExecutionNodeConnection nodeConnection) {
+ GridExecutionNodeConnection nodeConnection, Environment env) {
this.instanceId = instanceId;
this.nodeConnection = nodeConnection;
+ this.env = env;
}
public void addKnowledgePackages(Collection<KnowledgePackage> kpackages) {
@@ -53,7 +54,11 @@
kresultsId ) );
try {
//I should register the kbase ID??
- nodeConnection.getRegistryService().registerKBase(instanceId, nodeConnection.client.getId());
+ DirectoryService directory = (DirectoryService)env.get("DIRECTORY_SERVICE");
+ if(directory != null){
+ directory.registerKBase(instanceId, nodeConnection.client.getId());
+ }
+ //nodeConnection.getRegistryService().registerKBase(, );
} catch (RemoteException ex) {
Logger.getLogger(KnowledgeBaseGridClient.class.getName()).log(Level.SEVERE, null, ex);
}
@@ -133,7 +138,7 @@
}
return new StatefulKnowledgeSessionGridClient( localId,
- nodeConnection );
+ nodeConnection, env );
}
public StatelessKnowledgeSession newStatelessKnowledgeSession(KnowledgeSessionConfiguration conf) {
Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/KnowledgeBaseProviderGridClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/KnowledgeBaseProviderGridClient.java 2010-03-15 14:42:40 UTC (rev 32094)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/KnowledgeBaseProviderGridClient.java 2010-03-15 15:49:23 UTC (rev 32095)
@@ -19,12 +19,15 @@
public class KnowledgeBaseProviderGridClient
implements
KnowledgeBaseFactoryService {
- private GridExecutionNodeConnection serviceManager;
+ private GridExecutionNodeConnection nodeConnection;
private String localId = "";
- public KnowledgeBaseProviderGridClient(GridExecutionNodeConnection serviceManager) {
- this.serviceManager = serviceManager;
+ private Environment env;
+ public KnowledgeBaseProviderGridClient(GridExecutionNodeConnection nodeConnection, Environment env) {
+ this.nodeConnection = nodeConnection;
+ this.env = env;
}
+
public Environment newEnvironment() {
// TODO Auto-generated method stub
return null;
@@ -40,14 +43,14 @@
localId = UUID.randomUUID().toString();
}
- Message msg = new Message( serviceManager.getSessionId(),
- serviceManager.counter.incrementAndGet(),
+ Message msg = new Message( nodeConnection.getSessionId(),
+ nodeConnection.counter.incrementAndGet(),
false,
new SetVariableCommand( "__TEMP__",
localId,
new NewKnowledgeBaseCommand( null ) ) );
try {
- Object object = serviceManager.client.write( msg ).getPayload();
+ Object object = nodeConnection.client.write( msg ).getPayload();
if ( !(object instanceof FinishedCommand) ) {
throw new RuntimeException( "Response was not correctly ended" );
@@ -59,7 +62,7 @@
}
return new KnowledgeBaseGridClient( localId,
- serviceManager );
+ nodeConnection, env );
}
@@ -101,6 +104,15 @@
public void setLocalId(String localId) {
this.localId = localId;
- }
-
+ }
+
+ public GridExecutionNodeConnection getNodeConnection() {
+ return nodeConnection;
+ }
+
+ public void setNodeConnection(GridExecutionNodeConnection nodeConnection) {
+ this.nodeConnection = nodeConnection;
+ }
+
+
}
Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/KnowledgeBuilderGridClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/KnowledgeBuilderGridClient.java 2010-03-15 14:42:40 UTC (rev 32094)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/KnowledgeBuilderGridClient.java 2010-03-15 15:49:23 UTC (rev 32095)
@@ -15,6 +15,7 @@
import org.drools.command.builder.KnowledgeBuilderHasErrorsCommand;
import org.drools.definition.KnowledgePackage;
import org.drools.io.Resource;
+import org.drools.runtime.Environment;
import org.drools.runtime.ExecutionResults;
import org.drools.services.generic.CollectionClient;
import org.drools.services.generic.Message;
@@ -23,13 +24,14 @@
public class KnowledgeBuilderGridClient
implements
KnowledgeBuilder {
- private GridExecutionNodeConnection serviceManager;
- private String instanceId;
-
+ private GridExecutionNodeConnection nodeConnection;
+ private String instanceId;
+ private Environment env;
public KnowledgeBuilderGridClient(String instanceId,
- GridExecutionNodeConnection serviceManager) {
+ GridExecutionNodeConnection nodeConnection, Environment env) {
this.instanceId = instanceId;
- this.serviceManager = serviceManager;
+ this.nodeConnection = nodeConnection;
+ this.env = env;
}
public void add(Resource resource,
@@ -42,8 +44,8 @@
public void add(Resource resource,
ResourceType resourceType,
ResourceConfiguration configuration) {
- Message msg = new Message( serviceManager.getSessionId(),
- serviceManager.counter.incrementAndGet(),
+ Message msg = new Message( nodeConnection.getSessionId(),
+ nodeConnection.counter.incrementAndGet(),
false,
new KnowledgeContextResolveFromContextCommand( new KnowledgeBuilderAddCommand( resource,
resourceType,
@@ -54,7 +56,7 @@
null ) );
try {
- Object object = serviceManager.client.write( msg ).getPayload();
+ Object object = nodeConnection.client.write( msg ).getPayload();
if ( !(object instanceof FinishedCommand) ) {
throw new RuntimeException( "Response was not correctly ended" );
@@ -68,11 +70,11 @@
}
public KnowledgeBuilderErrors getErrors() {
- String commandId = "kbuilder.getErrors_" + serviceManager.getNextId();
- String kresultsId = "kresults_" + serviceManager.getSessionId();
+ String commandId = "kbuilder.getErrors_" + nodeConnection.getNextId();
+ String kresultsId = "kresults_" + nodeConnection.getSessionId();
- Message msg = new Message( serviceManager.getSessionId(),
- serviceManager.counter.incrementAndGet(),
+ Message msg = new Message( nodeConnection.getSessionId(),
+ nodeConnection.counter.incrementAndGet(),
false,
new KnowledgeContextResolveFromContextCommand( new KnowledgeBuilderGetErrorsCommand( commandId ),
instanceId,
@@ -81,7 +83,7 @@
kresultsId ) );
try {
- Object object = serviceManager.client.write( msg ).getPayload();
+ Object object = nodeConnection.client.write( msg ).getPayload();
if ( object == null ) {
throw new RuntimeException( "Response was not correctly received" );
@@ -101,11 +103,11 @@
}
public boolean hasErrors() {
- String commandId = "kbuilder.hasErrors_" + serviceManager.getNextId();
- String kresultsId = "kresults_" + serviceManager.getSessionId();
+ String commandId = "kbuilder.hasErrors_" + nodeConnection.getNextId();
+ String kresultsId = "kresults_" + nodeConnection.getSessionId();
- Message msg = new Message( serviceManager.getSessionId(),
- serviceManager.getNextId(),
+ Message msg = new Message( nodeConnection.getSessionId(),
+ nodeConnection.getNextId(),
false,
new KnowledgeContextResolveFromContextCommand( new KnowledgeBuilderHasErrorsCommand( commandId ),
instanceId,
@@ -114,7 +116,7 @@
kresultsId ) );
try {
- Object object = serviceManager.client.write( msg ).getPayload();
+ Object object = nodeConnection.client.write( msg ).getPayload();
if ( object == null ) {
throw new RuntimeException( "Response was not correctly received" );
Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/KnowledgeBuilderProviderGridClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/KnowledgeBuilderProviderGridClient.java 2010-03-15 14:42:40 UTC (rev 32094)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/KnowledgeBuilderProviderGridClient.java 2010-03-15 15:49:23 UTC (rev 32095)
@@ -16,6 +16,7 @@
import org.drools.command.FinishedCommand;
import org.drools.command.SetVariableCommand;
import org.drools.command.builder.NewKnowledgeBuilderCommand;
+import org.drools.runtime.Environment;
import org.drools.services.generic.Message;
@@ -23,9 +24,11 @@
implements
KnowledgeBuilderFactoryService {
private GridExecutionNodeConnection nodeConnection;
+ private Environment env;
- public KnowledgeBuilderProviderGridClient(GridExecutionNodeConnection nodeConnection) {
+ public KnowledgeBuilderProviderGridClient(GridExecutionNodeConnection nodeConnection, Environment env) {
this.nodeConnection = nodeConnection;
+ this.env = env;
}
public DecisionTableConfiguration newDecisionTableConfiguration() {
@@ -56,7 +59,7 @@
}
return new KnowledgeBuilderGridClient( localId,
- nodeConnection );
+ nodeConnection, env );
}
public KnowledgeBuilder newKnowledgeBuilder(KnowledgeBuilderConfiguration conf) {
Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/StatefulKnowledgeSessionGridClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/StatefulKnowledgeSessionGridClient.java 2010-03-15 14:42:40 UTC (rev 32094)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/StatefulKnowledgeSessionGridClient.java 2010-03-15 15:49:23 UTC (rev 32095)
@@ -37,13 +37,15 @@
implements
StatefulKnowledgeSession {
- private GridExecutionNodeConnection serviceManager;
- private String instanceId;
+ private GridExecutionNodeConnection nodeConnection;
+ private String instanceId;
+ private Environment env;
public StatefulKnowledgeSessionGridClient(String instanceId,
- GridExecutionNodeConnection serviceManager) {
+ GridExecutionNodeConnection nodeConnection, Environment env) {
this.instanceId = instanceId;
- this.serviceManager = serviceManager;
+ this.nodeConnection = nodeConnection;
+ this.env = env;
}
public String getInstanceId() {
@@ -61,11 +63,11 @@
}
public int fireAllRules() {
- String commandId = "ksession.fireAllRules" + serviceManager.getNextId();
- String kresultsId = "kresults_" + serviceManager.getSessionId();
+ String commandId = "ksession.fireAllRules" + nodeConnection.getNextId();
+ String kresultsId = "kresults_" + nodeConnection.getSessionId();
- Message msg = new Message( serviceManager.getSessionId(),
- serviceManager.counter.incrementAndGet(),
+ Message msg = new Message( nodeConnection.getSessionId(),
+ nodeConnection.counter.incrementAndGet(),
false,
new KnowledgeContextResolveFromContextCommand( new FireAllRulesCommand( commandId ),
null,
@@ -73,7 +75,7 @@
instanceId,
kresultsId ) );
try {
- Object object = serviceManager.client.write( msg ).getPayload();
+ Object object = nodeConnection.client.write( msg ).getPayload();
if ( object == null ) {
throw new RuntimeException( "Response was not correctly received" );
@@ -107,11 +109,11 @@
}
public ExecutionResults execute(Command command) {
- String commandId = "ksession.execute" + serviceManager.getNextId();
- String kresultsId = "kresults_" + serviceManager.getSessionId();
+ String commandId = "ksession.execute" + nodeConnection.getNextId();
+ String kresultsId = "kresults_" + nodeConnection.getSessionId();
- Message msg = new Message( serviceManager.getSessionId(),
- serviceManager.counter.incrementAndGet(),
+ Message msg = new Message( nodeConnection.getSessionId(),
+ nodeConnection.counter.incrementAndGet(),
false,
new KnowledgeContextResolveFromContextCommand( new ExecuteCommand( commandId,
command ),
@@ -121,7 +123,7 @@
kresultsId ) );
try {
- Object object = serviceManager.client.write( msg ).getPayload();if ( object == null ) {
+ Object object = nodeConnection.client.write( msg ).getPayload();if ( object == null ) {
throw new RuntimeException( "Response was not correctly received" );
}
@@ -267,9 +269,9 @@
}
public WorkItemManager getWorkItemManager() {
- String kresultsId = "kresults_" + serviceManager.getSessionId();
- Message msg = new Message( serviceManager.getSessionId(),
- serviceManager.counter.incrementAndGet(),
+ String kresultsId = "kresults_" + nodeConnection.getSessionId();
+ Message msg = new Message( nodeConnection.getSessionId(),
+ nodeConnection.counter.incrementAndGet(),
true,
new KnowledgeContextResolveFromContextCommand( new GetWorkItemManagerCommand(),
null,
@@ -277,9 +279,9 @@
instanceId,
kresultsId ) );
try {
- Object payload = serviceManager.client.write( msg ).getPayload();
+ Object payload = nodeConnection.client.write( msg ).getPayload();
WorkItemManager workItemManager = (WorkItemManager) ((ExecutionResults) payload).getValue( "workItemManager" );
- ((WorkItemManagerGridClient)workItemManager).setServiceManager(serviceManager);
+ ((WorkItemManagerGridClient)workItemManager).setServiceManager(nodeConnection);
((WorkItemManagerGridClient)workItemManager).setInstanceId(instanceId);
return workItemManager;
} catch ( Exception e ) {
@@ -289,10 +291,10 @@
public void registerWorkItemHandler(String name, String workItemHandler){
- String kresultsId = "kresults_" + serviceManager.getSessionId();
+ String kresultsId = "kresults_" + nodeConnection.getSessionId();
- Message msg = new Message( serviceManager.getSessionId(),
- serviceManager.counter.incrementAndGet(),
+ Message msg = new Message( nodeConnection.getSessionId(),
+ nodeConnection.counter.incrementAndGet(),
false,
new KnowledgeContextResolveFromContextCommand( new RegisterRemoteWorkItemHandlerCommand(name, workItemHandler ),
null,
@@ -301,7 +303,7 @@
kresultsId ) );
try {
- serviceManager.client.write( msg );
+ nodeConnection.client.write( msg );
} catch ( Exception e ) {
throw new RuntimeException( "Unable to execute message",
@@ -318,11 +320,11 @@
}
public ProcessInstance startProcess(String processId) {
- String commandId = "ksession.execute" + serviceManager.getNextId();
- String kresultsId = "kresults_" + serviceManager.getSessionId();
+ String commandId = "ksession.execute" + nodeConnection.getNextId();
+ String kresultsId = "kresults_" + nodeConnection.getSessionId();
- Message msg = new Message( serviceManager.getSessionId(),
- serviceManager.counter.incrementAndGet(),
+ Message msg = new Message( nodeConnection.getSessionId(),
+ nodeConnection.counter.incrementAndGet(),
false,
new KnowledgeContextResolveFromContextCommand( new StartProcessRemoteCommand( processId ),
null,
@@ -331,7 +333,7 @@
kresultsId ) );
try {
- Object object = serviceManager.client.write( msg ).getPayload();
+ Object object = nodeConnection.client.write( msg ).getPayload();
if ( object == null ) {
throw new RuntimeException( "Response was not correctly received" );
}
Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/impl/DirectoryServiceImpl.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/impl/DirectoryServiceImpl.java 2010-03-15 14:42:40 UTC (rev 32094)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/impl/DirectoryServiceImpl.java 2010-03-15 15:49:23 UTC (rev 32095)
@@ -6,6 +6,7 @@
package org.drools.services.grid.impl;
import java.rmi.RemoteException;
+import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import org.drools.KnowledgeBase;
@@ -28,11 +29,14 @@
private Map<String, String> kbaseregistry = new HashMap<String, String>();
+ private Iterable<GridNodeExecutionService> nodeServices;
+
public DirectoryServiceImpl() {
+ nodeServices = new ArrayList<GridNodeExecutionService>();
}
- private Iterable<GridNodeExecutionService> nodeServices;
+
@Override
public void register(String sessionId, String sessionServiceId) throws RemoteException {
System.out.println("Registering: "+ sessionId + " -- "+sessionServiceId);
@@ -56,7 +60,7 @@
}
- public void setSessionServices(Iterable<GridNodeExecutionService> nodeServices) {
+ public void setNodeServices(Iterable<GridNodeExecutionService> nodeServices) {
this.nodeServices = nodeServices;
}
Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/rio/RioConnector.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/rio/RioConnector.java 2010-03-15 14:42:40 UTC (rev 32094)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/rio/RioConnector.java 2010-03-15 15:49:23 UTC (rev 32095)
@@ -40,7 +40,6 @@
public RioConnector(String name,
SystemEventListener eventListener,
- //List<GridNodeExecutionService> sessionServices
GridNodeExecutionService nodeService
) {
if ( name == null ) {
Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/test/java/org/drools/services/ExecutionNodeBaseTest.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/test/java/org/drools/services/ExecutionNodeBaseTest.java 2010-03-15 14:42:40 UTC (rev 32094)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/test/java/org/drools/services/ExecutionNodeBaseTest.java 2010-03-15 15:49:23 UTC (rev 32095)
@@ -19,13 +19,16 @@
import org.drools.KnowledgeBase;
-import org.drools.services.ExecutionNode;
import org.drools.KnowledgeBaseFactoryService;
import org.drools.builder.KnowledgeBuilder;
import org.drools.builder.KnowledgeBuilderFactoryService;
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.services.grid.ExecutionGridConnection;
+import org.drools.services.grid.KnowledgeBaseProviderGridClient;
import org.junit.Assert;
import org.junit.Test;
/**
@@ -36,7 +39,7 @@
public abstract class ExecutionNodeBaseTest {
protected ExecutionNode node;
-
+ protected ExecutionGridConnection connection = new ExecutionGridConnection();
public ExecutionNodeBaseTest() {
}
@@ -61,8 +64,11 @@
str += " System.out.println( \"hello2!!!\" ); \n";
str += "end \n";
+ Assert.assertNotNull(node);
KnowledgeBuilder kbuilder = node.get(KnowledgeBuilderFactoryService.class).newKnowledgeBuilder();
+ Assert.assertNotNull(kbuilder);
+
kbuilder.add( ResourceFactory.newByteArrayResource( str.getBytes() ),
ResourceType.DRL );
@@ -72,7 +78,7 @@
KnowledgeBase kbase = node.get(KnowledgeBaseFactoryService.class).newKnowledgeBase();
Assert.assertNotNull(kbase);
-
+
kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
@@ -83,6 +89,218 @@
}
-
+ @Test
+ 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";
+
+ Assert.assertNotNull(node);
+
+ KnowledgeBuilder kbuilder = node.get(KnowledgeBuilderFactoryService.class).newKnowledgeBuilder();
+ Assert.assertNotNull(kbuilder);
+ 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();
+
+ ExecutionResults results = ksession.execute( new FireAllRulesCommand( "fired" ) );
+
+ Assert.assertEquals( 2,
+ (int) (Integer) results.getValue( "fired" ) );
+ }
+
+ @Test
+ 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( \"hello3!!!\" ); \n";
+ str += "end \n";
+ str += "rule rule2 \n";
+ str += " dialect \"java\" \n";
+ str += "when \n";
+ str += "then \n";
+ str += " System.out.println( \"hello4!!!\" ); \n";
+ str += "end \n";
+
+ Assert.assertNotNull(node);
+
+ KnowledgeBuilder kbuilder = node.get(KnowledgeBuilderFactoryService.class).newKnowledgeBuilder();
+ Assert.assertNotNull(kbuilder);
+
+ 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();
+
+ ((KnowledgeBaseProviderGridClient)node.get(KnowledgeBaseFactoryService.class)).getNodeConnection().register( "ksession1",
+ ksession );
+
+ ExecutionResults results = ((KnowledgeBaseProviderGridClient)node.get(KnowledgeBaseFactoryService.class)).getNodeConnection().lookup( "ksession1" ).execute( new FireAllRulesCommand( "fired" ) );
+
+ Assert.assertEquals( 2, (int ) ( Integer) results.getValue( "fired" ) );
+ }
+
+ @Test
+ public void testNamedService() throws Exception {
+ System.out.println("Running ===============> testNamedService");
+ 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();
+ Assert.assertNotNull(kbuilder);
+
+ 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();
+ System.out.println("registering a session!!!!!!!");
+ ((KnowledgeBaseProviderGridClient)node.get(KnowledgeBaseFactoryService.class)).getNodeConnection().register( "ksession1",
+ ksession );
+ System.out.println("Lookup ksession1!!!!!!!!!!!!!");
+ ExecutionResults results = ((KnowledgeBaseProviderGridClient)node.get(KnowledgeBaseFactoryService.class)).getNodeConnection().lookup( "ksession1" ).execute( new FireAllRulesCommand( "fired" ) );
+
+ Assert.assertEquals( 2,
+ (int) (Integer) results.getValue( "fired" ) );
+ System.out.println("TEst ENDED =========>");
+ }
+ @Test
+ public void twoSessionsIntoDifferentSessionServices(){
+
+ 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();
+ Assert.assertNotNull(kbuilder);
+
+ 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 ksession1 = kbase.newStatefulKnowledgeSession();
+ System.out.println("registering ksession1!");
+ ((KnowledgeBaseProviderGridClient)node.get(KnowledgeBaseFactoryService.class)).getNodeConnection().register( "ksession1", ksession1 );
+
+ System.out.println("Let's go for the Second ksession");
+
+ //((ServiceManagerGridClient)this.client).setCurrentSessionService((SessionService)((ServiceManagerGridClient)this.client).getSessionServices().get(1));
+ //If I do this here.. and I don't create a new Kbase. the context got nothing and cannot find the kbase in the new session service.. of course
+ node = connection.getAnotherExecutionNode();
+
+ KnowledgeBuilder kbuilder2 = node.get(KnowledgeBuilderFactoryService.class).newKnowledgeBuilder();
+ Assert.assertNotNull(kbuilder2);
+
+ kbuilder2.add( ResourceFactory.newByteArrayResource( str.getBytes() ),
+ ResourceType.DRL );
+
+ if ( kbuilder2.hasErrors() ) {
+ System.out.println( "Errors: " + kbuilder2.getErrors() );
+ }
+
+
+ KnowledgeBase kbase2 = node.get(KnowledgeBaseFactoryService.class).newKnowledgeBase();
+ Assert.assertNotNull(kbase2);
+
+
+ kbase2.addKnowledgePackages( kbuilder2.getKnowledgePackages() );
+
+ StatefulKnowledgeSession ksession2 = kbase2.newStatefulKnowledgeSession();
+ System.out.println("registering ksession2!");
+ ((KnowledgeBaseProviderGridClient)node.get(KnowledgeBaseFactoryService.class)).getNodeConnection().register( "ksession2", ksession2 );
+
+ System.out.println("Lookuping up ksession1 !");
+ ExecutionResults results1 = ((KnowledgeBaseProviderGridClient)node.get(KnowledgeBaseFactoryService.class)).getNodeConnection().lookup( "ksession1" ).execute( new FireAllRulesCommand( "fired" ) );
+
+ Assert.assertEquals( 2,
+ (int) (Integer) results1.getValue( "fired" ) );
+
+ System.out.println("Lookuping up ksession2 !");
+ ExecutionResults results2 = ((KnowledgeBaseProviderGridClient)node.get(KnowledgeBaseFactoryService.class)).getNodeConnection().lookup( "ksession2" ).execute( new FireAllRulesCommand( "fired" ) );
+
+ Assert.assertEquals( 2,
+ (int) (Integer) results2.getValue( "fired" ) );
+
+ }
+
+
+
}
Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/test/java/org/drools/services/ITGridExecutionTest.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/test/java/org/drools/services/ITGridExecutionTest.java 2010-03-15 14:42:40 UTC (rev 32094)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/test/java/org/drools/services/ITGridExecutionTest.java 2010-03-15 15:49:23 UTC (rev 32095)
@@ -6,6 +6,8 @@
import org.drools.KnowledgeBaseFactoryService;
import org.drools.SystemEventListenerFactory;
import org.drools.builder.KnowledgeBuilderFactoryService;
+import org.drools.impl.EnvironmentImpl;
+import org.drools.runtime.Environment;
import org.drools.services.generic.ExecutionNodeData;
import org.drools.services.grid.ExecutionGridConnection;
import org.drools.services.grid.GridExecutionNodeConnection;
@@ -14,9 +16,9 @@
import org.drools.services.grid.KnowledgeBuilderProviderGridClient;
import org.drools.services.grid.DirectoryService;
import org.drools.services.grid.rio.RioConnector;
-import org.drools.vsm.AcceptorService;
+
import org.junit.Before;
import org.junit.runner.RunWith;
import org.rioproject.test.RioTestRunner;
@@ -39,7 +41,14 @@
ServiceItem[] nodeServiceItems = testManager.getServiceItems(GridNodeExecutionService.class);
//List<GridNodeExecutionService> nodeServices = new ArrayList<GridNodeExecutionService>();
System.out.println("Node Service Items =" + nodeServiceItems.length);
- ExecutionGridConnection connection = new ExecutionGridConnection();
+
+ DirectoryService directoryService = (DirectoryService) testManager.waitForService(DirectoryService.class);
+ Assert.assertNotNull(directoryService);
+
+ Environment env = new EnvironmentImpl();
+ env.set("DIRECTORY_SERVICE", directoryService);
+
+
for (int i = 0; i < nodeServiceItems.length; i++) {
if (nodeServiceItems[i].service instanceof GridNodeExecutionService) {
@@ -51,30 +60,27 @@
new GridExecutionNodeConnection(
((GridNodeExecutionService)nodeServiceItems[i].service).getId(),
new RioConnector("client1",SystemEventListenerFactory.getSystemEventListener(),
- (GridNodeExecutionService)nodeServiceItems[i].service))
+ (GridNodeExecutionService)nodeServiceItems[i].service)
+ ,env),
+ env
));
node.set(KnowledgeBaseFactoryService.class,
new KnowledgeBaseProviderGridClient(
- new GridExecutionNodeConnection(
- ((GridNodeExecutionService)nodeServiceItems[i].service).getId(),
- new RioConnector("client2",SystemEventListenerFactory.getSystemEventListener(),
- (GridNodeExecutionService)nodeServiceItems[i].service))
+ new GridExecutionNodeConnection(
+ ((GridNodeExecutionService)nodeServiceItems[i].service).getId(),
+ new RioConnector("client2",SystemEventListenerFactory.getSystemEventListener(),
+ (GridNodeExecutionService)nodeServiceItems[i].service),
+ env),
+ env
));
connection.addNode(node);
}
}
-
-
-
-
-
// Assert.assertNotNull(nodeServices);
- DirectoryService directoryService = (DirectoryService) testManager.waitForService(DirectoryService.class);
- Assert.assertNotNull(directoryService);
- connection.setDirectory(directoryService);
+// connection.setDirectory(directoryService);
node = connection.getPreferedExecutionNode();
More information about the jboss-svn-commits
mailing list