[jboss-svn-commits] JBL Code SVN: r29599 - in labs/jbossrules/trunk/drools-vsm/src: main/java/org/drools/vsm and 3 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Oct 13 21:21:58 EDT 2009
Author: mark.proctor at jboss.com
Date: 2009-10-13 21:21:57 -0400 (Tue, 13 Oct 2009)
New Revision: 29599
Added:
labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/local/
labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/local/KnowledgeBaseProviderLocalClient.java
labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/local/KnowledgeBuilderProviderLocalClient.java
labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/local/ServiceManagerLocalClient.java
labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/remote/
labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/remote/KnowledgeBaseProviderRemoteClient.java
labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/remote/KnowledgeBaseRemoteClient.java
labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/remote/KnowledgeBuilderProviderRemoteClient.java
labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/remote/KnowledgeBuilderRemoteClient.java
labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/remote/ServiceManagerRemoteClient.java
labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/remote/StatefulKnowledgeSessionRemoteClient.java
labs/jbossrules/trunk/drools-vsm/src/test/java/org/drools/vsm/ServiceManagerLocalTest.java
labs/jbossrules/trunk/drools-vsm/src/test/java/org/drools/vsm/ServiceManagerMinaRemoteTest.java
labs/jbossrules/trunk/drools-vsm/src/test/java/org/drools/vsm/ServiceManagerTestBase.java
Removed:
labs/jbossrules/trunk/drools-vsm/src/test/java/org/drools/vsm/ServiceManagerTest.java
Modified:
labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/command/vsm/LookupCommand.java
labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/command/vsm/RegisterCommand.java
labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/command/vsm/ServiceManagerClientConnectCommand.java
labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/command/vsm/ServiceManagerServerContext.java
Log:
JBRULES-2269 Virtual Service Manager
-now works for xstream
-split into remote/local
Modified: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/command/vsm/LookupCommand.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/command/vsm/LookupCommand.java 2009-10-14 01:13:50 UTC (rev 29598)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/command/vsm/LookupCommand.java 2009-10-14 01:21:57 UTC (rev 29599)
@@ -1,43 +1,34 @@
package org.drools.command.vsm;
-import org.drools.builder.KnowledgeBuilder;
-import org.drools.builder.KnowledgeBuilderErrors;
-import org.drools.builder.ResourceConfiguration;
-import org.drools.builder.ResourceType;
import org.drools.command.Context;
import org.drools.command.impl.GenericCommand;
import org.drools.command.impl.KnowledgeCommandContext;
-import org.drools.io.Resource;
import org.drools.runtime.impl.ExecutionResultImpl;
-import org.drools.vsm.ServiceManager;
-import org.drools.vsm.ServiceManagerServer;
-import org.drools.vsm.ServiceManagerServerResponseHandler;
+import org.drools.vsm.ServiceManagerData;
public class LookupCommand
implements
GenericCommand<String> {
-
+
private String identifier;
-
+
private String outIdentifier;
public LookupCommand(String identfier) {
this.identifier = identfier;
}
-
+
public LookupCommand(String identfier,
String outIdentifier) {
this.identifier = identfier;
this.outIdentifier = outIdentifier;
}
+ public String execute(Context context) {
+ ServiceManagerData data = (ServiceManagerData) context.get( ServiceManagerData.SERVICE_MANAGER_DATA );
+ String instanceId = (String) data.getRoot().get( identifier );
- public String execute(Context context) {
- ServiceManagerServer server = (ServiceManagerServer) context.get( ServiceManagerServer.SERVICE_MANAGER );
-
- String instanceId = (String ) server.getRoot().get( identifier );
-
if ( this.outIdentifier != null ) {
((ExecutionResultImpl) ((KnowledgeCommandContext) context).getExecutionResults()).getResults().put( this.outIdentifier,
instanceId );
Modified: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/command/vsm/RegisterCommand.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/command/vsm/RegisterCommand.java 2009-10-14 01:13:50 UTC (rev 29598)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/command/vsm/RegisterCommand.java 2009-10-14 01:21:57 UTC (rev 29599)
@@ -1,19 +1,8 @@
package org.drools.command.vsm;
-import org.drools.builder.KnowledgeBuilder;
-import org.drools.builder.KnowledgeBuilderErrors;
-import org.drools.builder.ResourceConfiguration;
-import org.drools.builder.ResourceType;
import org.drools.command.Context;
-import org.drools.command.ExecuteCommand;
import org.drools.command.impl.GenericCommand;
-import org.drools.command.impl.KnowledgeCommandContext;
-import org.drools.concurrent.CommandExecutor;
-import org.drools.io.Resource;
-import org.drools.runtime.StatefulKnowledgeSession;
-import org.drools.vsm.ServiceManager;
-import org.drools.vsm.ServiceManagerClient;
-import org.drools.vsm.ServiceManagerServer;
+import org.drools.vsm.ServiceManagerData;
public class RegisterCommand
implements
@@ -32,10 +21,10 @@
}
public Void execute(Context context) {
- ServiceManagerServer server = (ServiceManagerServer) context.get( ServiceManagerServer.SERVICE_MANAGER );
+ ServiceManagerData data = (ServiceManagerData) context.get( ServiceManagerData.SERVICE_MANAGER_DATA );
- server.getRoot().set( identifier,
- type + ":" + instanceId );
+ data.getRoot().set( identifier,
+ type + ":" + instanceId );
return null;
}
Modified: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/command/vsm/ServiceManagerClientConnectCommand.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/command/vsm/ServiceManagerClientConnectCommand.java 2009-10-14 01:13:50 UTC (rev 29598)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/command/vsm/ServiceManagerClientConnectCommand.java 2009-10-14 01:21:57 UTC (rev 29599)
@@ -1,27 +1,34 @@
package org.drools.command.vsm;
-import org.drools.builder.KnowledgeBuilder;
-import org.drools.builder.KnowledgeBuilderErrors;
-import org.drools.builder.ResourceConfiguration;
-import org.drools.builder.ResourceType;
import org.drools.command.Context;
import org.drools.command.impl.GenericCommand;
import org.drools.command.impl.KnowledgeCommandContext;
-import org.drools.io.Resource;
-import org.drools.vsm.ServiceManager;
-import org.drools.vsm.ServiceManagerServer;
+import org.drools.runtime.impl.ExecutionResultImpl;
+import org.drools.vsm.ServiceManagerData;
public class ServiceManagerClientConnectCommand
implements
GenericCommand<Integer> {
+
+ private String outIdentifier;
- public ServiceManagerClientConnectCommand() {
+
+
+ public ServiceManagerClientConnectCommand(String outIdentifier) {
+ this.outIdentifier = outIdentifier;
}
-
-
+
+
+
public Integer execute(Context context) {
- ServiceManagerServer server = ( ServiceManagerServer ) ((ServiceManagerServerContext)context).getServiceManager();
- return server.getSessionIdCounter().getAndIncrement();
+ ServiceManagerData data = (ServiceManagerData) context.get( ServiceManagerData.SERVICE_MANAGER_DATA );
+
+ Integer sessionId = data.getSessionIdCounter().getAndIncrement();
+ if ( this.outIdentifier != null ) {
+ ((ExecutionResultImpl)((KnowledgeCommandContext) context).getExecutionResults()).getResults().put( this.outIdentifier, sessionId );
+ }
+
+ return sessionId;
}
}
Modified: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/command/vsm/ServiceManagerServerContext.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/command/vsm/ServiceManagerServerContext.java 2009-10-14 01:13:50 UTC (rev 29598)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/command/vsm/ServiceManagerServerContext.java 2009-10-14 01:21:57 UTC (rev 29599)
@@ -2,21 +2,21 @@
import org.drools.command.Context;
import org.drools.command.ContextManager;
-import org.drools.vsm.ServiceManagerServer;
+import org.drools.vsm.ServiceManagerData;
public class ServiceManagerServerContext
implements
Context {
- private Context context;
- private ServiceManagerServer server;
+ private Context context;
+ private ServiceManagerData data;
public ServiceManagerServerContext(Context context,
- ServiceManagerServer server) {
- this.server = server;
+ ServiceManagerData data) {
+ this.data = data;
}
- public ServiceManagerServer getServiceManager() {
- return server;
+ public ServiceManagerData getServiceManagerData() {
+ return this.data;
}
public ContextManager getContextManager() {
Added: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/local/KnowledgeBaseProviderLocalClient.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/local/KnowledgeBaseProviderLocalClient.java (rev 0)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/local/KnowledgeBaseProviderLocalClient.java 2009-10-14 01:21:57 UTC (rev 29599)
@@ -0,0 +1,48 @@
+package org.drools.vsm.local;
+
+import java.util.Properties;
+
+import org.drools.KnowledgeBase;
+import org.drools.KnowledgeBaseConfiguration;
+import org.drools.KnowledgeBaseFactory;
+import org.drools.KnowledgeBaseProvider;
+import org.drools.runtime.Environment;
+import org.drools.runtime.KnowledgeSessionConfiguration;
+
+public class KnowledgeBaseProviderLocalClient
+ implements
+ KnowledgeBaseProvider {
+
+ public Environment newEnvironment() {
+ return KnowledgeBaseFactory.newEnvironment();
+ }
+
+ public KnowledgeBase newKnowledgeBase() {
+ return newKnowledgeBase( null );
+ }
+
+ public KnowledgeBase newKnowledgeBase(KnowledgeBaseConfiguration conf) {
+ return KnowledgeBaseFactory.newKnowledgeBase( conf );
+ }
+
+ public KnowledgeBaseConfiguration newKnowledgeBaseConfiguration() {
+ return KnowledgeBaseFactory.newKnowledgeBaseConfiguration();
+ }
+
+ public KnowledgeBaseConfiguration newKnowledgeBaseConfiguration(Properties properties,
+ ClassLoader classLoader) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public KnowledgeSessionConfiguration newKnowledgeSessionConfiguration() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public KnowledgeSessionConfiguration newKnowledgeSessionConfiguration(Properties properties) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+}
Added: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/local/KnowledgeBuilderProviderLocalClient.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/local/KnowledgeBuilderProviderLocalClient.java (rev 0)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/local/KnowledgeBuilderProviderLocalClient.java 2009-10-14 01:21:57 UTC (rev 29599)
@@ -0,0 +1,51 @@
+/**
+ *
+ */
+package org.drools.vsm.local;
+
+import java.util.Properties;
+
+import org.drools.KnowledgeBase;
+import org.drools.builder.DecisionTableConfiguration;
+import org.drools.builder.KnowledgeBuilder;
+import org.drools.builder.KnowledgeBuilderConfiguration;
+import org.drools.builder.KnowledgeBuilderFactory;
+import org.drools.builder.KnowledgeBuilderProvider;
+
+public class KnowledgeBuilderProviderLocalClient
+ implements
+ KnowledgeBuilderProvider {
+
+ public DecisionTableConfiguration newDecisionTableConfiguration() {
+ return KnowledgeBuilderFactory.newDecisionTableConfiguration();
+ }
+
+ public KnowledgeBuilder newKnowledgeBuilder() {
+ return KnowledgeBuilderFactory.newKnowledgeBuilder();
+ }
+
+ public KnowledgeBuilder newKnowledgeBuilder(KnowledgeBuilderConfiguration conf) {
+ return KnowledgeBuilderFactory.newKnowledgeBuilder( conf );
+ }
+
+ public KnowledgeBuilder newKnowledgeBuilder(KnowledgeBase kbase) {
+ return KnowledgeBuilderFactory.newKnowledgeBuilder( kbase );
+ }
+
+ public KnowledgeBuilder newKnowledgeBuilder(KnowledgeBase kbase,
+ KnowledgeBuilderConfiguration conf) {
+ return KnowledgeBuilderFactory.newKnowledgeBuilder( kbase,
+ conf );
+ }
+
+ public KnowledgeBuilderConfiguration newKnowledgeBuilderConfiguration() {
+ return KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration();
+ }
+
+ public KnowledgeBuilderConfiguration newKnowledgeBuilderConfiguration(Properties properties,
+ ClassLoader classLoader) {
+ return KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration( properties,
+ classLoader );
+ }
+
+}
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/local/ServiceManagerLocalClient.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/local/ServiceManagerLocalClient.java (rev 0)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/local/ServiceManagerLocalClient.java 2009-10-14 01:21:57 UTC (rev 29599)
@@ -0,0 +1,132 @@
+package org.drools.vsm.local;
+
+import java.util.Collection;
+import java.util.Properties;
+
+import org.drools.KnowledgeBase;
+import org.drools.KnowledgeBaseProvider;
+import org.drools.agent.KnowledgeAgentProvider;
+import org.drools.builder.DecisionTableConfiguration;
+import org.drools.builder.KnowledgeBuilder;
+import org.drools.builder.KnowledgeBuilderConfiguration;
+import org.drools.builder.KnowledgeBuilderProvider;
+import org.drools.command.Command;
+import org.drools.persistence.jpa.JPAKnowledgeServiceProvider;
+import org.drools.runtime.CommandExecutor;
+import org.drools.runtime.Environment;
+import org.drools.runtime.ExecutionResults;
+import org.drools.vsm.ServiceManager;
+import org.drools.vsm.ServiceManagerData;
+
+public class ServiceManagerLocalClient
+ implements
+ ServiceManager {
+
+ private ServiceManagerData data;
+
+ public ServiceManagerLocalClient() {
+ this( new ServiceManagerData() );
+ }
+
+ public ServiceManagerLocalClient(ServiceManagerData data) {
+ this.data = data;
+ }
+
+ public void disconnect() {
+
+ }
+
+ public KnowledgeBuilderProvider getKnowledgeBuilderFactory() {
+ return new KnowledgeBuilderProviderLocalClient();
+ }
+
+ public KnowledgeBaseProvider getKnowledgeBaseFactory() {
+ return new KnowledgeBaseProviderLocalClient();
+ }
+
+ public KnowledgeAgentProvider getKnowledgeAgentFactory() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public JPAKnowledgeServiceProvider JPAKnowledgeService() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public Environment getEnvironment() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public Collection<String> list() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public void register(String identifier,
+ CommandExecutor executor) {
+ this.data.getRoot().set( identifier,
+ executor );
+ }
+
+ public CommandExecutor lookup(String identifier) {
+ return (CommandExecutor) this.data.getRoot().get( identifier );
+ }
+
+ public void release(Object object) {
+ // TODO Auto-generated method stub
+ }
+
+ public void release(String identifier) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public static class RemoveKnowledgeBuilderProvider
+ implements
+ KnowledgeBuilderProvider {
+
+ public DecisionTableConfiguration newDecisionTableConfiguration() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public KnowledgeBuilder newKnowledgeBuilder() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public KnowledgeBuilder newKnowledgeBuilder(KnowledgeBuilderConfiguration conf) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public KnowledgeBuilder newKnowledgeBuilder(KnowledgeBase kbase) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public KnowledgeBuilder newKnowledgeBuilder(KnowledgeBase kbase,
+ KnowledgeBuilderConfiguration conf) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public KnowledgeBuilderConfiguration newKnowledgeBuilderConfiguration() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public KnowledgeBuilderConfiguration newKnowledgeBuilderConfiguration(Properties properties,
+ ClassLoader classLoader) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+ }
+
+ public ExecutionResults execute(Command command) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+}
Copied: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/remote/KnowledgeBaseProviderRemoteClient.java (from rev 29306, labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/KnowledgeBaseProviderClient.java)
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/remote/KnowledgeBaseProviderRemoteClient.java (rev 0)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/remote/KnowledgeBaseProviderRemoteClient.java 2009-10-14 01:21:57 UTC (rev 29599)
@@ -0,0 +1,92 @@
+package org.drools.vsm.remote;
+
+import java.util.Properties;
+import java.util.UUID;
+
+import org.drools.KnowledgeBase;
+import org.drools.KnowledgeBaseConfiguration;
+import org.drools.KnowledgeBaseProvider;
+import org.drools.command.FinishedCommand;
+import org.drools.command.NewKnowledgeBaseCommand;
+import org.drools.command.SetVariableCommand;
+import org.drools.runtime.Environment;
+import org.drools.runtime.KnowledgeSessionConfiguration;
+import org.drools.vsm.Message;
+import org.drools.vsm.responsehandlers.BlockingMessageResponseHandler;
+
+public class KnowledgeBaseProviderRemoteClient
+ implements
+ KnowledgeBaseProvider {
+ private ServiceManagerRemoteClient serviceManager;
+
+ public KnowledgeBaseProviderRemoteClient(ServiceManagerRemoteClient serviceManager) {
+ this.serviceManager = serviceManager;
+ }
+
+ public Environment newEnvironment() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public KnowledgeBase newKnowledgeBase() {
+ return newKnowledgeBase( null );
+ }
+
+ public KnowledgeBase newKnowledgeBase(KnowledgeBaseConfiguration conf) {
+ //return new NewKnowledgeBaseCommand(null);
+
+ String localId = UUID.randomUUID().toString();
+
+ Message msg = new Message( serviceManager.getSessionId(),
+ serviceManager.counter.incrementAndGet(),
+ false,
+ new SetVariableCommand( "__TEMP__",
+ localId,
+ new NewKnowledgeBaseCommand( null ) ) );
+
+ BlockingMessageResponseHandler handler = new BlockingMessageResponseHandler();
+
+ try {
+ serviceManager.client.addResponseHandler( msg.getResponseId(),
+ handler );
+
+ serviceManager.client.write( msg );
+
+ Object object = handler.getMessage().getPayload();
+
+ if ( !(object instanceof FinishedCommand) ) {
+ throw new RuntimeException( "Response was not correctly ended" );
+ }
+
+ } catch ( Exception e ) {
+ throw new RuntimeException( "Unable to execute message",
+ e );
+ }
+
+ return new KnowledgeBaseRemoteClient( localId,
+ serviceManager );
+
+ }
+
+ public KnowledgeBaseConfiguration newKnowledgeBaseConfiguration() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public KnowledgeBaseConfiguration newKnowledgeBaseConfiguration(Properties properties,
+ ClassLoader classLoader) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public KnowledgeSessionConfiguration newKnowledgeSessionConfiguration() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public KnowledgeSessionConfiguration newKnowledgeSessionConfiguration(Properties properties) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+}
Copied: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/remote/KnowledgeBaseRemoteClient.java (from rev 29306, labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/KnowledgeBaseClient.java)
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/remote/KnowledgeBaseRemoteClient.java (rev 0)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/remote/KnowledgeBaseRemoteClient.java 2009-10-14 01:21:57 UTC (rev 29599)
@@ -0,0 +1,184 @@
+package org.drools.vsm.remote;
+
+import java.util.Collection;
+import java.util.UUID;
+
+import org.drools.KnowledgeBase;
+import org.drools.command.FinishedCommand;
+import org.drools.command.KnowledgeBaseAddKnowledgePackagesCommand;
+import org.drools.command.KnowledgeContextResolveFromContextCommand;
+import org.drools.command.NewStatefulKnowledgeSessionCommand;
+import org.drools.command.SetVariableCommand;
+import org.drools.definition.KnowledgePackage;
+import org.drools.definition.process.Process;
+import org.drools.definition.rule.Rule;
+import org.drools.definition.type.FactType;
+import org.drools.event.knowledgebase.KnowledgeBaseEventListener;
+import org.drools.runtime.Environment;
+import org.drools.runtime.KnowledgeSessionConfiguration;
+import org.drools.runtime.StatefulKnowledgeSession;
+import org.drools.runtime.StatelessKnowledgeSession;
+import org.drools.vsm.CollectionClient;
+import org.drools.vsm.Message;
+import org.drools.vsm.responsehandlers.BlockingMessageResponseHandler;
+
+public class KnowledgeBaseRemoteClient
+ implements
+ KnowledgeBase {
+
+ private ServiceManagerRemoteClient serviceManager;
+ private String instanceId;
+
+ public KnowledgeBaseRemoteClient(String instanceId,
+ ServiceManagerRemoteClient serviceManager) {
+ this.instanceId = instanceId;
+ this.serviceManager = serviceManager;
+ }
+
+ public void addKnowledgePackages(Collection<KnowledgePackage> kpackages) {
+ String kresultsId = "kresults_" + serviceManager.getSessionId();
+
+ String kuilderInstanceId = ((CollectionClient<KnowledgePackage>) kpackages).getParentInstanceId();
+ Message msg = new Message( serviceManager.getSessionId(),
+ serviceManager.counter.incrementAndGet(),
+ false,
+ new KnowledgeContextResolveFromContextCommand( new KnowledgeBaseAddKnowledgePackagesCommand(),
+ kuilderInstanceId,
+ instanceId,
+ null,
+ kresultsId ) );
+
+ BlockingMessageResponseHandler handler = new BlockingMessageResponseHandler();
+
+ try {
+ serviceManager.client.addResponseHandler( msg.getResponseId(),
+ handler );
+
+ serviceManager.client.write( msg );
+
+ Object object = handler.getMessage().getPayload();
+
+ if ( !(object instanceof FinishedCommand) ) {
+ throw new RuntimeException( "Response was not correctly ended" );
+ }
+
+ } catch ( Exception e ) {
+ throw new RuntimeException( "Unable to execute message",
+ e );
+ }
+ }
+
+ public FactType getFactType(String packageName,
+ String typeName) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public KnowledgePackage getKnowledgePackage(String packageName) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public Collection<KnowledgePackage> getKnowledgePackages() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public Process getProcess(String processId) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public Rule getRule(String packageName,
+ String ruleName) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public StatefulKnowledgeSession newStatefulKnowledgeSession() {
+ return newStatefulKnowledgeSession( null,
+ null );
+ }
+
+ public StatefulKnowledgeSession newStatefulKnowledgeSession(KnowledgeSessionConfiguration conf,
+ Environment environment) {
+ String kresultsId = "kresults_" + serviceManager.getSessionId();
+
+ String localId = UUID.randomUUID().toString();
+
+ Message msg = new Message( serviceManager.getSessionId(),
+ serviceManager.counter.incrementAndGet(),
+ false,
+ new SetVariableCommand( "__TEMP__",
+ localId,
+ new KnowledgeContextResolveFromContextCommand( new NewStatefulKnowledgeSessionCommand( null ),
+ null,
+ instanceId,
+ null,
+ kresultsId ) ) );
+
+ BlockingMessageResponseHandler handler = new BlockingMessageResponseHandler();
+
+ try {
+ serviceManager.client.addResponseHandler( msg.getResponseId(),
+ handler );
+
+ serviceManager.client.write( msg );
+
+ Object object = handler.getMessage().getPayload();
+
+ if ( !(object instanceof FinishedCommand) ) {
+ throw new RuntimeException( "Response was not correctly ended" );
+ }
+
+ } catch ( Exception e ) {
+ throw new RuntimeException( "Unable to execute message",
+ e );
+ }
+
+ return new StatefulKnowledgeSessionRemoteClient( localId,
+ serviceManager );
+ }
+
+ public StatelessKnowledgeSession newStatelessKnowledgeSession(KnowledgeSessionConfiguration conf) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public StatelessKnowledgeSession newStatelessKnowledgeSession() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public void removeKnowledgePackage(String packageName) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void removeProcess(String processId) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void removeRule(String packageName,
+ String ruleName) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void addEventListener(KnowledgeBaseEventListener listener) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public Collection<KnowledgeBaseEventListener> getKnowledgeBaseEventListeners() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public void removeEventListener(KnowledgeBaseEventListener listener) {
+ // TODO Auto-generated method stub
+
+ }
+
+}
Copied: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/remote/KnowledgeBuilderProviderRemoteClient.java (from rev 29306, labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/KnowledgeBuilderProviderClient.java)
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/remote/KnowledgeBuilderProviderRemoteClient.java (rev 0)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/remote/KnowledgeBuilderProviderRemoteClient.java 2009-10-14 01:21:57 UTC (rev 29599)
@@ -0,0 +1,94 @@
+/**
+ *
+ */
+package org.drools.vsm.remote;
+
+import java.util.Properties;
+import java.util.UUID;
+
+import org.drools.KnowledgeBase;
+import org.drools.builder.DecisionTableConfiguration;
+import org.drools.builder.KnowledgeBuilder;
+import org.drools.builder.KnowledgeBuilderConfiguration;
+import org.drools.builder.KnowledgeBuilderProvider;
+import org.drools.command.FinishedCommand;
+import org.drools.command.SetVariableCommand;
+import org.drools.command.builder.NewKnowledgeBuilderCommand;
+import org.drools.vsm.Message;
+import org.drools.vsm.responsehandlers.BlockingMessageResponseHandler;
+
+public class KnowledgeBuilderProviderRemoteClient
+ implements
+ KnowledgeBuilderProvider {
+ private ServiceManagerRemoteClient serviceManager;
+
+ public KnowledgeBuilderProviderRemoteClient(ServiceManagerRemoteClient serviceManager) {
+ this.serviceManager = serviceManager;
+ }
+
+ public DecisionTableConfiguration newDecisionTableConfiguration() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public KnowledgeBuilder newKnowledgeBuilder() {
+ String localId = UUID.randomUUID().toString();
+
+ Message msg = new Message( serviceManager.getSessionId(),
+ serviceManager.counter.incrementAndGet(),
+ false,
+ new SetVariableCommand( "__TEMP__",
+ localId,
+ new NewKnowledgeBuilderCommand( null ) ) );
+
+ BlockingMessageResponseHandler handler = new BlockingMessageResponseHandler();
+
+ try {
+ serviceManager.client.addResponseHandler( msg.getResponseId(),
+ handler );
+
+ serviceManager.client.write( msg );
+
+ Object object = handler.getMessage().getPayload();
+
+ if ( !(object instanceof FinishedCommand) ) {
+ throw new RuntimeException( "Response was not correctly ended" );
+ }
+
+ } catch ( Exception e ) {
+ throw new RuntimeException( "Unable to execute message",
+ e );
+ }
+
+ return new KnowledgeBuilderRemoteClient( localId,
+ serviceManager );
+ }
+
+ public KnowledgeBuilder newKnowledgeBuilder(KnowledgeBuilderConfiguration conf) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public KnowledgeBuilder newKnowledgeBuilder(KnowledgeBase kbase) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public KnowledgeBuilder newKnowledgeBuilder(KnowledgeBase kbase,
+ KnowledgeBuilderConfiguration conf) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public KnowledgeBuilderConfiguration newKnowledgeBuilderConfiguration() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public KnowledgeBuilderConfiguration newKnowledgeBuilderConfiguration(Properties properties,
+ ClassLoader classLoader) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+}
\ No newline at end of file
Copied: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/remote/KnowledgeBuilderRemoteClient.java (from rev 29306, labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/KnowledgeBuilderClient.java)
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/remote/KnowledgeBuilderRemoteClient.java (rev 0)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/remote/KnowledgeBuilderRemoteClient.java 2009-10-14 01:21:57 UTC (rev 29599)
@@ -0,0 +1,149 @@
+package org.drools.vsm.remote;
+
+import java.util.Collection;
+
+import org.drools.builder.KnowledgeBuilder;
+import org.drools.builder.KnowledgeBuilderErrors;
+import org.drools.builder.ResourceConfiguration;
+import org.drools.builder.ResourceType;
+import org.drools.command.FinishedCommand;
+import org.drools.command.KnowledgeContextResolveFromContextCommand;
+import org.drools.command.builder.KnowledgeBuilderAddCommand;
+import org.drools.command.builder.KnowledgeBuilderGetErrorsCommand;
+import org.drools.command.builder.KnowledgeBuilderHasErrorsCommand;
+import org.drools.definition.KnowledgePackage;
+import org.drools.io.Resource;
+import org.drools.runtime.ExecutionResults;
+import org.drools.vsm.CollectionClient;
+import org.drools.vsm.Message;
+import org.drools.vsm.responsehandlers.BlockingMessageResponseHandler;
+
+public class KnowledgeBuilderRemoteClient
+ implements
+ KnowledgeBuilder {
+ private ServiceManagerRemoteClient serviceManager;
+ private String instanceId;
+
+ public KnowledgeBuilderRemoteClient(String instanceId,
+ ServiceManagerRemoteClient serviceManager) {
+ this.instanceId = instanceId;
+ this.serviceManager = serviceManager;
+ }
+
+ public void add(Resource resource,
+ ResourceType resourceType) {
+ add( resource,
+ resourceType,
+ null );
+ }
+
+ public void add(Resource resource,
+ ResourceType resourceType,
+ ResourceConfiguration configuration) {
+ Message msg = new Message( serviceManager.getSessionId(),
+ serviceManager.counter.incrementAndGet(),
+ false,
+ new KnowledgeContextResolveFromContextCommand( new KnowledgeBuilderAddCommand( resource,
+ resourceType,
+ configuration ),
+ instanceId,
+ null,
+ null,
+ null ) );
+
+ BlockingMessageResponseHandler handler = new BlockingMessageResponseHandler();
+
+ try {
+ serviceManager.client.addResponseHandler( msg.getResponseId(),
+ handler );
+
+ serviceManager.client.write( msg );
+
+ Object object = handler.getMessage().getPayload();
+
+ if ( !(object instanceof FinishedCommand) ) {
+ throw new RuntimeException( "Response was not correctly ended" );
+ }
+
+ } catch ( Exception e ) {
+ throw new RuntimeException( "Unable to execute message",
+ e );
+ }
+
+ }
+
+ public KnowledgeBuilderErrors getErrors() {
+ String commandId = "kbuilder.getErrors_" + serviceManager.getNextId();
+ String kresultsId = "kresults_" + serviceManager.getSessionId();
+
+ Message msg = new Message( serviceManager.getSessionId(),
+ serviceManager.counter.incrementAndGet(),
+ false,
+ new KnowledgeContextResolveFromContextCommand( new KnowledgeBuilderGetErrorsCommand( commandId ),
+ instanceId,
+ null,
+ null,
+ kresultsId ) );
+
+ BlockingMessageResponseHandler handler = new BlockingMessageResponseHandler();
+
+ try {
+ serviceManager.client.addResponseHandler( msg.getResponseId(),
+ handler );
+
+ serviceManager.client.write( msg );
+
+ Object object = handler.getMessage().getPayload();
+
+ if ( object == null ) {
+ throw new RuntimeException( "Response was not correctly received" );
+ }
+
+ return (KnowledgeBuilderErrors) ((ExecutionResults) object).getValue( commandId );
+ } catch ( Exception e ) {
+ throw new RuntimeException( "Unable to execute message",
+ e );
+ }
+ }
+
+ public Collection<KnowledgePackage> getKnowledgePackages() {
+ return new CollectionClient<KnowledgePackage>( this.instanceId );
+ }
+
+ public boolean hasErrors() {
+ String commandId = "kbuilder.hasErrors_" + serviceManager.getNextId();
+ String kresultsId = "kresults_" + serviceManager.getSessionId();
+
+ Message msg = new Message( serviceManager.getSessionId(),
+ serviceManager.getNextId(),
+ false,
+ new KnowledgeContextResolveFromContextCommand( new KnowledgeBuilderHasErrorsCommand( commandId ),
+ instanceId,
+ null,
+ null,
+ kresultsId ) );
+
+ BlockingMessageResponseHandler handler = new BlockingMessageResponseHandler();
+
+ try {
+ serviceManager.client.addResponseHandler( msg.getResponseId(),
+ handler );
+
+ serviceManager.client.write( msg );
+
+ Object object = handler.getMessage().getPayload();
+
+ if ( object == null ) {
+ throw new RuntimeException( "Response was not correctly received" );
+ }
+
+ System.out.println( "object" + object );
+
+ return (Boolean) ((ExecutionResults) object).getValue( commandId );
+ } catch ( Exception e ) {
+ throw new RuntimeException( "Unable to execute message",
+ e );
+ }
+ }
+
+}
Copied: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/remote/ServiceManagerRemoteClient.java (from rev 29307, labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/ServiceManagerClient.java)
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/remote/ServiceManagerRemoteClient.java (rev 0)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/remote/ServiceManagerRemoteClient.java 2009-10-14 01:21:57 UTC (rev 29599)
@@ -0,0 +1,276 @@
+package org.drools.vsm.remote;
+
+import java.util.Collection;
+import java.util.Properties;
+import java.util.concurrent.atomic.AtomicInteger;
+
+import org.drools.KnowledgeBase;
+import org.drools.KnowledgeBaseProvider;
+import org.drools.agent.KnowledgeAgentProvider;
+import org.drools.builder.DecisionTableConfiguration;
+import org.drools.builder.KnowledgeBuilder;
+import org.drools.builder.KnowledgeBuilderConfiguration;
+import org.drools.builder.KnowledgeBuilderProvider;
+import org.drools.command.Command;
+import org.drools.command.FinishedCommand;
+import org.drools.command.KnowledgeContextResolveFromContextCommand;
+import org.drools.command.vsm.LookupCommand;
+import org.drools.command.vsm.RegisterCommand;
+import org.drools.command.vsm.ServiceManagerClientConnectCommand;
+import org.drools.persistence.jpa.JPAKnowledgeServiceProvider;
+import org.drools.runtime.CommandExecutor;
+import org.drools.runtime.Environment;
+import org.drools.runtime.ExecutionResults;
+import org.drools.runtime.StatefulKnowledgeSession;
+import org.drools.vsm.GenericConnector;
+import org.drools.vsm.Message;
+import org.drools.vsm.ServiceManager;
+import org.drools.vsm.responsehandlers.BlockingMessageResponseHandler;
+
+public class ServiceManagerRemoteClient
+ implements
+ ServiceManager {
+ public GenericConnector client;
+
+ public AtomicInteger counter;
+
+ public ServiceManagerRemoteClient(String name,
+ GenericConnector client) {
+ this.client = client;
+ this.counter = new AtomicInteger();
+ }
+
+ private int sessionId = -1;
+
+ public boolean connect() {
+ boolean connected = this.client.connect();
+
+ if ( connected ) {
+ String commandId = "serviceManager.connected" + getNextId();
+ String kresultsId = "kresults_" + getSessionId();
+
+ Message msg = new Message( -1,
+ counter.incrementAndGet(),
+ false,
+ new KnowledgeContextResolveFromContextCommand( new ServiceManagerClientConnectCommand( commandId ),
+ null,
+ null,
+ null,
+ kresultsId ) );
+
+ BlockingMessageResponseHandler handler = new BlockingMessageResponseHandler();
+
+ try {
+ client.addResponseHandler( msg.getResponseId(),
+ handler );
+
+ client.write( msg );
+
+ Object object = handler.getMessage().getPayload();
+
+ if ( object == null ) {
+ throw new RuntimeException( "Response was not correctly received" );
+ }
+
+ sessionId = (Integer) ((ExecutionResults) object).getValue( commandId );
+
+ connected = true;
+ } catch ( Exception e ) {
+ throw new RuntimeException( "Unable to execute message",
+ e );
+ }
+ }
+
+ return connected;
+ }
+
+ public void disconnect() {
+ this.client.disconnect();
+ }
+
+ public KnowledgeBuilderProvider getKnowledgeBuilderFactory() {
+ return new KnowledgeBuilderProviderRemoteClient( this );
+ }
+
+ public KnowledgeBaseProvider getKnowledgeBaseFactory() {
+ return new KnowledgeBaseProviderRemoteClient( this );
+ }
+
+ public KnowledgeAgentProvider getKnowledgeAgentFactory() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public JPAKnowledgeServiceProvider JPAKnowledgeService() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public Environment getEnvironment() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public Collection<String> list() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public void register(String identifier,
+ CommandExecutor executor) {
+ String commandId = "client.lookup" + getNextId();
+ String kresultsId = "kresults_" + getSessionId();
+
+ int type;
+ if ( executor instanceof StatefulKnowledgeSession ) {
+ type = 0;
+ } else {
+ throw new IllegalArgumentException( "Type is not supported for registration" );
+ }
+
+ Message msg = new Message( getSessionId(),
+ counter.incrementAndGet(),
+ false,
+ new KnowledgeContextResolveFromContextCommand( new RegisterCommand( identifier,
+ ((StatefulKnowledgeSessionRemoteClient) executor).getInstanceId(),
+ type ),
+ null,
+ null,
+ null,
+ null ) );
+
+ BlockingMessageResponseHandler handler = new BlockingMessageResponseHandler();
+
+ try {
+ client.addResponseHandler( msg.getResponseId(),
+ handler );
+
+ client.write( msg );
+
+ Object object = handler.getMessage().getPayload();
+
+ if ( !(object instanceof FinishedCommand) ) {
+ throw new RuntimeException( "Response was not correctly ended" );
+ }
+ } catch ( Exception e ) {
+ throw new RuntimeException( "Unable to execute message",
+ e );
+ }
+ }
+
+ public CommandExecutor lookup(String identifier) {
+ String commandId = "client.lookup" + getNextId();
+ String kresultsId = "kresults_" + getSessionId();
+
+ Message msg = new Message( getSessionId(),
+ counter.incrementAndGet(),
+ false,
+ new KnowledgeContextResolveFromContextCommand( new LookupCommand( identifier,
+ commandId ),
+ null,
+ null,
+ null,
+ kresultsId ) );
+
+ BlockingMessageResponseHandler handler = new BlockingMessageResponseHandler();
+
+ try {
+ client.addResponseHandler( msg.getResponseId(),
+ handler );
+
+ client.write( msg );
+
+ Object object = handler.getMessage().getPayload();
+
+ if ( object == null ) {
+ throw new RuntimeException( "Response was not correctly received" );
+ }
+ String value = (String) ((ExecutionResults) object).getValue( commandId );
+ String type = String.valueOf( value.charAt( 0 ) );
+ String instanceId = value.substring( 2 );
+
+ CommandExecutor executor = null;
+ switch ( Integer.parseInt( type ) ) {
+ case 0 : {
+ executor = new StatefulKnowledgeSessionRemoteClient( instanceId,
+ this );
+ break;
+ }
+ default : {
+
+ }
+
+ }
+
+ return executor;
+ } catch ( Exception e ) {
+ throw new RuntimeException( "Unable to execute message",
+ e );
+ }
+ }
+
+ public void release(Object object) {
+ // TODO Auto-generated method stub
+ }
+
+ public void release(String identifier) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public static class RemoveKnowledgeBuilderProvider
+ implements
+ KnowledgeBuilderProvider {
+
+ public DecisionTableConfiguration newDecisionTableConfiguration() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public KnowledgeBuilder newKnowledgeBuilder() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public KnowledgeBuilder newKnowledgeBuilder(KnowledgeBuilderConfiguration conf) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public KnowledgeBuilder newKnowledgeBuilder(KnowledgeBase kbase) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public KnowledgeBuilder newKnowledgeBuilder(KnowledgeBase kbase,
+ KnowledgeBuilderConfiguration conf) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public KnowledgeBuilderConfiguration newKnowledgeBuilderConfiguration() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public KnowledgeBuilderConfiguration newKnowledgeBuilderConfiguration(Properties properties,
+ ClassLoader classLoader) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+ }
+
+ public int getSessionId() {
+ return sessionId;
+ }
+
+ public int getNextId() {
+ return this.counter.incrementAndGet();
+ }
+
+ public ExecutionResults execute(Command command) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+}
Copied: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/remote/StatefulKnowledgeSessionRemoteClient.java (from rev 29307, labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/StatefulKnowledgeSessionClient.java)
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/remote/StatefulKnowledgeSessionRemoteClient.java (rev 0)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/remote/StatefulKnowledgeSessionRemoteClient.java 2009-10-14 01:21:57 UTC (rev 29599)
@@ -0,0 +1,350 @@
+package org.drools.vsm.remote;
+
+import java.util.Collection;
+import java.util.Map;
+
+import org.drools.KnowledgeBase;
+import org.drools.command.Command;
+import org.drools.command.ExecuteCommand;
+import org.drools.command.KnowledgeContextResolveFromContextCommand;
+import org.drools.command.runtime.rule.FireAllRulesCommand;
+import org.drools.event.process.ProcessEventListener;
+import org.drools.event.rule.AgendaEventListener;
+import org.drools.event.rule.WorkingMemoryEventListener;
+import org.drools.runtime.Environment;
+import org.drools.runtime.ExecutionResults;
+import org.drools.runtime.ExitPoint;
+import org.drools.runtime.Globals;
+import org.drools.runtime.ObjectFilter;
+import org.drools.runtime.StatefulKnowledgeSession;
+import org.drools.runtime.process.ProcessInstance;
+import org.drools.runtime.process.WorkItemManager;
+import org.drools.runtime.rule.Agenda;
+import org.drools.runtime.rule.AgendaFilter;
+import org.drools.runtime.rule.FactHandle;
+import org.drools.runtime.rule.QueryResults;
+import org.drools.runtime.rule.WorkingMemoryEntryPoint;
+import org.drools.time.SessionClock;
+import org.drools.vsm.Message;
+import org.drools.vsm.responsehandlers.BlockingMessageResponseHandler;
+
+public class StatefulKnowledgeSessionRemoteClient
+ implements
+ StatefulKnowledgeSession {
+
+ private ServiceManagerRemoteClient serviceManager;
+ private String instanceId;
+
+ public StatefulKnowledgeSessionRemoteClient(String instanceId,
+ ServiceManagerRemoteClient serviceManager) {
+ this.instanceId = instanceId;
+ this.serviceManager = serviceManager;
+ }
+
+ public String getInstanceId() {
+ return this.instanceId;
+ }
+
+ public void dispose() {
+ // TODO Auto-generated method stub
+
+ }
+
+ public int getId() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ public int fireAllRules() {
+ String commandId = "ksession.fireAllRules" + serviceManager.getNextId();
+ String kresultsId = "kresults_" + serviceManager.getSessionId();
+
+ Message msg = new Message( serviceManager.getSessionId(),
+ serviceManager.counter.incrementAndGet(),
+ false,
+ new KnowledgeContextResolveFromContextCommand( new FireAllRulesCommand( commandId ),
+ null,
+ null,
+ instanceId,
+ kresultsId ) );
+
+ BlockingMessageResponseHandler handler = new BlockingMessageResponseHandler();
+
+ try {
+ serviceManager.client.addResponseHandler( msg.getResponseId(),
+ handler );
+
+ serviceManager.client.write( msg );
+
+ Object object = handler.getMessage().getPayload();
+
+ if ( object == null ) {
+ throw new RuntimeException( "Response was not correctly received" );
+ }
+
+ return (Integer) ((ExecutionResults) object).getValue( commandId );
+ } catch ( Exception e ) {
+ throw new RuntimeException( "Unable to execute message",
+ e );
+ }
+ }
+
+ public int fireAllRules(int max) {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ public int fireAllRules(AgendaFilter agendaFilter) {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ public void fireUntilHalt() {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void fireUntilHalt(AgendaFilter agendaFilter) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public ExecutionResults execute(Command command) {
+ String commandId = "ksession.execute" + serviceManager.getNextId();
+ String kresultsId = "kresults_" + serviceManager.getSessionId();
+
+ Message msg = new Message( serviceManager.getSessionId(),
+ serviceManager.counter.incrementAndGet(),
+ false,
+ new KnowledgeContextResolveFromContextCommand( new ExecuteCommand( commandId,
+ command ),
+ null,
+ null,
+ instanceId,
+ kresultsId ) );
+
+ BlockingMessageResponseHandler handler = new BlockingMessageResponseHandler();
+
+ try {
+ serviceManager.client.addResponseHandler( msg.getResponseId(),
+ handler );
+
+ serviceManager.client.write( msg );
+
+ Object object = handler.getMessage().getPayload();
+
+ if ( object == null ) {
+ throw new RuntimeException( "Response was not correctly received" );
+ }
+
+ System.out.println( "object" + object );
+
+ return (ExecutionResults) ((ExecutionResults) object).getValue( commandId );
+ } catch ( Exception e ) {
+ throw new RuntimeException( "Unable to execute message",
+ e );
+ }
+ }
+
+ public Environment getEnvironment() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public Object getGlobal(String identifier) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public Globals getGlobals() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public KnowledgeBase getKnowledgeBase() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public <T extends SessionClock> T getSessionClock() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public void registerExitPoint(String name,
+ ExitPoint exitPoint) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void setGlobal(String identifier,
+ Object object) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void unregisterExitPoint(String name) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public Agenda getAgenda() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public QueryResults getQueryResults(String query) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public QueryResults getQueryResults(String query,
+ Object[] arguments) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public WorkingMemoryEntryPoint getWorkingMemoryEntryPoint(String name) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public Collection< ? extends WorkingMemoryEntryPoint> getWorkingMemoryEntryPoints() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public void halt() {
+ // TODO Auto-generated method stub
+
+ }
+
+ public FactHandle getFactHandle(Object object) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public <T extends FactHandle> Collection<T> getFactHandles() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public <T extends FactHandle> Collection<T> getFactHandles(ObjectFilter filter) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public Object getObject(FactHandle factHandle) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public Collection<Object> getObjects() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public Collection<Object> getObjects(ObjectFilter filter) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public FactHandle insert(Object object) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public void retract(FactHandle handle) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void update(FactHandle handle,
+ Object object) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void abortProcessInstance(long id) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public ProcessInstance getProcessInstance(long id) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public Collection<ProcessInstance> getProcessInstances() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public WorkItemManager getWorkItemManager() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public void signalEvent(String type,
+ Object event) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public ProcessInstance startProcess(String processId) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public ProcessInstance startProcess(String processId,
+ Map<String, Object> parameters) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public void addEventListener(WorkingMemoryEventListener listener) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void addEventListener(AgendaEventListener listener) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public Collection<AgendaEventListener> getAgendaEventListeners() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public Collection<WorkingMemoryEventListener> getWorkingMemoryEventListeners() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public void removeEventListener(WorkingMemoryEventListener listener) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void removeEventListener(AgendaEventListener listener) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void addEventListener(ProcessEventListener listener) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public Collection<ProcessEventListener> getProcessEventListeners() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public void removeEventListener(ProcessEventListener listener) {
+ // TODO Auto-generated method stub
+
+ }
+
+}
Added: labs/jbossrules/trunk/drools-vsm/src/test/java/org/drools/vsm/ServiceManagerLocalTest.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/test/java/org/drools/vsm/ServiceManagerLocalTest.java (rev 0)
+++ labs/jbossrules/trunk/drools-vsm/src/test/java/org/drools/vsm/ServiceManagerLocalTest.java 2009-10-14 01:21:57 UTC (rev 29599)
@@ -0,0 +1,14 @@
+package org.drools.vsm;
+
+import org.drools.vsm.local.ServiceManagerLocalClient;
+
+public class ServiceManagerLocalTest extends ServiceManagerTestBase {
+
+ protected void setUp() throws Exception {
+ this.client = new ServiceManagerLocalClient();
+ }
+
+ protected void tearDown() throws Exception {
+ }
+
+}
Added: labs/jbossrules/trunk/drools-vsm/src/test/java/org/drools/vsm/ServiceManagerMinaRemoteTest.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/test/java/org/drools/vsm/ServiceManagerMinaRemoteTest.java (rev 0)
+++ labs/jbossrules/trunk/drools-vsm/src/test/java/org/drools/vsm/ServiceManagerMinaRemoteTest.java 2009-10-14 01:21:57 UTC (rev 29599)
@@ -0,0 +1,51 @@
+package org.drools.vsm;
+
+import java.net.InetSocketAddress;
+import java.net.SocketAddress;
+
+import org.apache.mina.transport.socket.SocketAcceptor;
+import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
+import org.apache.mina.transport.socket.nio.NioSocketConnector;
+import org.drools.SystemEventListenerFactory;
+import org.drools.vsm.mina.MinaAcceptor;
+import org.drools.vsm.mina.MinaConnector;
+import org.drools.vsm.mina.MinaIoHandler;
+import org.drools.vsm.remote.ServiceManagerRemoteClient;
+
+public class ServiceManagerMinaRemoteTest extends ServiceManagerTestBase {
+ AcceptorService server;
+
+ protected void setUp() throws Exception {
+ SocketAddress address = new InetSocketAddress( "127.0.0.1",
+ 9123 );
+
+ ServiceManagerData serverData = new ServiceManagerData();
+ // setup Server
+ SocketAcceptor acceptor = new NioSocketAcceptor();
+ acceptor.setHandler( new MinaIoHandler( SystemEventListenerFactory.getSystemEventListener(),
+ new GenericMessageHandlerImpl( serverData,
+ SystemEventListenerFactory.getSystemEventListener() ) ) );
+ this.server = new MinaAcceptor( acceptor,
+ address );
+ this.server.start();
+
+ // setup Client
+ NioSocketConnector clientConnector = new NioSocketConnector();
+ clientConnector.setHandler( new MinaIoHandler( SystemEventListenerFactory.getSystemEventListener() ) );
+ GenericConnector minaClient = new MinaConnector( "client 1",
+ clientConnector,
+ address,
+ SystemEventListenerFactory.getSystemEventListener() );
+ this.client = new ServiceManagerRemoteClient( "client 1",
+ minaClient );
+
+ ((ServiceManagerRemoteClient) client).connect();
+ }
+
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ ((ServiceManagerRemoteClient) client).disconnect();
+ this.server.stop();
+ }
+
+}
Deleted: labs/jbossrules/trunk/drools-vsm/src/test/java/org/drools/vsm/ServiceManagerTest.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/test/java/org/drools/vsm/ServiceManagerTest.java 2009-10-14 01:13:50 UTC (rev 29598)
+++ labs/jbossrules/trunk/drools-vsm/src/test/java/org/drools/vsm/ServiceManagerTest.java 2009-10-14 01:21:57 UTC (rev 29599)
@@ -1,199 +0,0 @@
-package org.drools.vsm;
-
-import java.net.InetSocketAddress;
-import java.net.SocketAddress;
-
-import junit.framework.TestCase;
-
-import org.apache.mina.transport.socket.nio.NioSocketConnector;
-import org.drools.KnowledgeBase;
-import org.drools.KnowledgeBaseProvider;
-import org.drools.SystemEventListenerFactory;
-import org.drools.builder.KnowledgeBuilder;
-import org.drools.builder.KnowledgeBuilderProvider;
-import org.drools.builder.ResourceType;
-import org.drools.command.runtime.rule.FireAllRulesCommand;
-import org.drools.io.ResourceFactory;
-import org.drools.runtime.ExecutionResults;
-import org.drools.runtime.StatefulKnowledgeSession;
-import org.drools.vsm.MessageHandler;
-import org.drools.vsm.ServiceManagerClient;
-import org.drools.vsm.ServiceManagerServer;
-
-public class ServiceManagerTest extends TestCase {
- ServiceManagerServer server;
- ServiceManagerClient client;
-
- @Override
- protected void setUp() throws Exception {
- this.server = new ServiceManagerServer();
- Thread thread = new Thread( server );
- thread.start();
- Thread.sleep( 500 );
-
- this.client = new ServiceManagerClient( "client 1",
- new MessageHandler(SystemEventListenerFactory.getSystemEventListener()) );
-
- NioSocketConnector connector = new NioSocketConnector();
- SocketAddress address = new InetSocketAddress( "127.0.0.1",
- 9123 );
- client.connect( connector,
- address );
- }
-
- protected void tearDown() throws Exception {
- super.tearDown();
- client.disconnect();
- server.stop();
- }
-
- public void testFireAllRules() throws Exception {
- String str = "";
- str += "package org.drools \n";
- str += "global java.util.List list \n";
- str += "rule rule1 \n";
- str += " dialect \"java\" \n";
- str += "when \n";
- str += "then \n";
- str += " System.out.println( \"hello1!!!\" ); \n";
- str += "end \n";
- str += "rule rule2 \n";
- str += " dialect \"java\" \n";
- str += "when \n";
- str += "then \n";
- str += " System.out.println( \"hello2!!!\" ); \n";
- str += "end \n" ;
-
- KnowledgeBuilderProvider kbuilderFactory = this.client.getKnowledgeBuilderFactory();
- KnowledgeBuilder kbuilder = kbuilderFactory.newKnowledgeBuilder();
- kbuilder.add( ResourceFactory.newByteArrayResource( str.getBytes() ), ResourceType.DRL );
-
- if ( kbuilder.hasErrors() ) {
- System.out.println( "Errors: " + kbuilder.getErrors() );
- }
-
- KnowledgeBaseProvider kbaseFactory = this.client.getKnowledgeBaseFactory();
- KnowledgeBase kbase = kbaseFactory.newKnowledgeBase();
-
- kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
-
- StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
- int fired = ksession.fireAllRules();
- assertEquals( 2, fired );
- }
-
- public void testExecute() throws Exception {
- String str = "";
- str += "package org.drools \n";
- str += "global java.util.List list \n";
- str += "rule rule1 \n";
- str += " dialect \"java\" \n";
- str += "when \n";
- str += "then \n";
- str += " System.out.println( \"hello1!!!\" ); \n";
- str += "end \n";
- str += "rule rule2 \n";
- str += " dialect \"java\" \n";
- str += "when \n";
- str += "then \n";
- str += " System.out.println( \"hello2!!!\" ); \n";
- str += "end \n" ;
-
- KnowledgeBuilderProvider kbuilderFactory = this.client.getKnowledgeBuilderFactory();
- KnowledgeBuilder kbuilder = kbuilderFactory.newKnowledgeBuilder();
- kbuilder.add( ResourceFactory.newByteArrayResource( str.getBytes() ), ResourceType.DRL );
-
- if ( kbuilder.hasErrors() ) {
- System.out.println( "Errors: " + kbuilder.getErrors() );
- }
-
- KnowledgeBaseProvider kbaseFactory = this.client.getKnowledgeBaseFactory();
- KnowledgeBase kbase = kbaseFactory.newKnowledgeBase();
-
- kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
-
- StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
-
- ExecutionResults results = ksession.execute( new FireAllRulesCommand( "fired" ) );
-
- assertEquals( 2, (int ) ( Integer) results.getValue( "fired" ) );
- }
-
- public void testNamedService() throws Exception {
- String str = "";
- str += "package org.drools \n";
- str += "global java.util.List list \n";
- str += "rule rule1 \n";
- str += " dialect \"java\" \n";
- str += "when \n";
- str += "then \n";
- str += " System.out.println( \"hello1!!!\" ); \n";
- str += "end \n";
- str += "rule rule2 \n";
- str += " dialect \"java\" \n";
- str += "when \n";
- str += "then \n";
- str += " System.out.println( \"hello2!!!\" ); \n";
- str += "end \n" ;
-
- KnowledgeBuilderProvider kbuilderFactory = this.client.getKnowledgeBuilderFactory();
- KnowledgeBuilder kbuilder = kbuilderFactory.newKnowledgeBuilder();
- kbuilder.add( ResourceFactory.newByteArrayResource( str.getBytes() ), ResourceType.DRL );
-
- if ( kbuilder.hasErrors() ) {
- System.out.println( "Errors: " + kbuilder.getErrors() );
- }
-
- KnowledgeBaseProvider kbaseFactory = this.client.getKnowledgeBaseFactory();
- KnowledgeBase kbase = kbaseFactory.newKnowledgeBase();
-
- kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
-
- StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
-
- this.client.register( "ksession1", ksession );
-
- ExecutionResults results = this.client.lookup( "ksession1" ).execute( new FireAllRulesCommand( "fired" ) );
-
- assertEquals( 2, (int ) ( Integer) results.getValue( "fired" ) );
- }
-
- public void testVsmPipeline() throws Exception {
- String str = "";
- str += "package org.drools \n";
- str += "global java.util.List list \n";
- str += "rule rule1 \n";
- str += " dialect \"java\" \n";
- str += "when \n";
- str += "then \n";
- str += " System.out.println( \"hello1!!!\" ); \n";
- str += "end \n";
- str += "rule rule2 \n";
- str += " dialect \"java\" \n";
- str += "when \n";
- str += "then \n";
- str += " System.out.println( \"hello2!!!\" ); \n";
- str += "end \n" ;
-
- KnowledgeBuilderProvider kbuilderFactory = this.client.getKnowledgeBuilderFactory();
- KnowledgeBuilder kbuilder = kbuilderFactory.newKnowledgeBuilder();
- kbuilder.add( ResourceFactory.newByteArrayResource( str.getBytes() ), ResourceType.DRL );
-
- if ( kbuilder.hasErrors() ) {
- System.out.println( "Errors: " + kbuilder.getErrors() );
- }
-
- KnowledgeBaseProvider kbaseFactory = this.client.getKnowledgeBaseFactory();
- KnowledgeBase kbase = kbaseFactory.newKnowledgeBase();
-
- kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
-
- StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
-
- this.client.register( "ksession1", ksession );
-
-// ExecutionResults results = this.client.lookup( "ksession1" ).execute( new FireAllRulesCommand( "fired" ) );
-//
-// assertEquals( 2, (int ) ( Integer) results.getValue( "fired" ) );
- }
-}
Copied: labs/jbossrules/trunk/drools-vsm/src/test/java/org/drools/vsm/ServiceManagerTestBase.java (from rev 29307, labs/jbossrules/trunk/drools-vsm/src/test/java/org/drools/vsm/ServiceManagerTest.java)
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/test/java/org/drools/vsm/ServiceManagerTestBase.java (rev 0)
+++ labs/jbossrules/trunk/drools-vsm/src/test/java/org/drools/vsm/ServiceManagerTestBase.java 2009-10-14 01:21:57 UTC (rev 29599)
@@ -0,0 +1,177 @@
+package org.drools.vsm;
+
+import junit.framework.TestCase;
+
+import org.drools.KnowledgeBase;
+import org.drools.KnowledgeBaseProvider;
+import org.drools.builder.KnowledgeBuilder;
+import org.drools.builder.KnowledgeBuilderProvider;
+import org.drools.builder.ResourceType;
+import org.drools.command.runtime.rule.FireAllRulesCommand;
+import org.drools.io.ResourceFactory;
+import org.drools.runtime.ExecutionResults;
+import org.drools.runtime.StatefulKnowledgeSession;
+
+public class ServiceManagerTestBase extends TestCase {
+
+ protected ServiceManager client;
+
+ public void testFireAllRules() throws Exception {
+ String str = "";
+ str += "package org.drools \n";
+ str += "global java.util.List list \n";
+ str += "rule rule1 \n";
+ str += " dialect \"java\" \n";
+ str += "when \n";
+ str += "then \n";
+ str += " System.out.println( \"hello1!!!\" ); \n";
+ str += "end \n";
+ str += "rule rule2 \n";
+ str += " dialect \"java\" \n";
+ str += "when \n";
+ str += "then \n";
+ str += " System.out.println( \"hello2!!!\" ); \n";
+ str += "end \n";
+
+ KnowledgeBuilderProvider kbuilderFactory = this.client.getKnowledgeBuilderFactory();
+ KnowledgeBuilder kbuilder = kbuilderFactory.newKnowledgeBuilder();
+ kbuilder.add( ResourceFactory.newByteArrayResource( str.getBytes() ),
+ ResourceType.DRL );
+
+ if ( kbuilder.hasErrors() ) {
+ System.out.println( "Errors: " + kbuilder.getErrors() );
+ }
+
+ KnowledgeBaseProvider kbaseFactory = this.client.getKnowledgeBaseFactory();
+ KnowledgeBase kbase = kbaseFactory.newKnowledgeBase();
+
+ kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
+
+ StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
+ int fired = ksession.fireAllRules();
+ assertEquals( 2,
+ fired );
+ }
+
+ public void testExecute() throws Exception {
+ String str = "";
+ str += "package org.drools \n";
+ str += "global java.util.List list \n";
+ str += "rule rule1 \n";
+ str += " dialect \"java\" \n";
+ str += "when \n";
+ str += "then \n";
+ str += " System.out.println( \"hello1!!!\" ); \n";
+ str += "end \n";
+ str += "rule rule2 \n";
+ str += " dialect \"java\" \n";
+ str += "when \n";
+ str += "then \n";
+ str += " System.out.println( \"hello2!!!\" ); \n";
+ str += "end \n";
+
+ KnowledgeBuilderProvider kbuilderFactory = this.client.getKnowledgeBuilderFactory();
+ KnowledgeBuilder kbuilder = kbuilderFactory.newKnowledgeBuilder();
+ kbuilder.add( ResourceFactory.newByteArrayResource( str.getBytes() ),
+ ResourceType.DRL );
+
+ if ( kbuilder.hasErrors() ) {
+ System.out.println( "Errors: " + kbuilder.getErrors() );
+ }
+
+ KnowledgeBaseProvider kbaseFactory = this.client.getKnowledgeBaseFactory();
+ KnowledgeBase kbase = kbaseFactory.newKnowledgeBase();
+
+ kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
+
+ StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
+
+ ExecutionResults results = ksession.execute( new FireAllRulesCommand( "fired" ) );
+
+ assertEquals( 2,
+ (int) (Integer) results.getValue( "fired" ) );
+ }
+
+ public void testNamedService() throws Exception {
+ String str = "";
+ str += "package org.drools \n";
+ str += "global java.util.List list \n";
+ str += "rule rule1 \n";
+ str += " dialect \"java\" \n";
+ str += "when \n";
+ str += "then \n";
+ str += " System.out.println( \"hello1!!!\" ); \n";
+ str += "end \n";
+ str += "rule rule2 \n";
+ str += " dialect \"java\" \n";
+ str += "when \n";
+ str += "then \n";
+ str += " System.out.println( \"hello2!!!\" ); \n";
+ str += "end \n";
+
+ KnowledgeBuilderProvider kbuilderFactory = this.client.getKnowledgeBuilderFactory();
+ KnowledgeBuilder kbuilder = kbuilderFactory.newKnowledgeBuilder();
+ kbuilder.add( ResourceFactory.newByteArrayResource( str.getBytes() ),
+ ResourceType.DRL );
+
+ if ( kbuilder.hasErrors() ) {
+ System.out.println( "Errors: " + kbuilder.getErrors() );
+ }
+
+ KnowledgeBaseProvider kbaseFactory = this.client.getKnowledgeBaseFactory();
+ KnowledgeBase kbase = kbaseFactory.newKnowledgeBase();
+
+ kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
+
+ StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
+
+ this.client.register( "ksession1",
+ ksession );
+
+ ExecutionResults results = this.client.lookup( "ksession1" ).execute( new FireAllRulesCommand( "fired" ) );
+
+ assertEquals( 2,
+ (int) (Integer) results.getValue( "fired" ) );
+ }
+
+ public void testVsmPipeline() throws Exception {
+ String str = "";
+ str += "package org.drools \n";
+ str += "global java.util.List list \n";
+ str += "rule rule1 \n";
+ str += " dialect \"java\" \n";
+ str += "when \n";
+ str += "then \n";
+ str += " System.out.println( \"hello1!!!\" ); \n";
+ str += "end \n";
+ str += "rule rule2 \n";
+ str += " dialect \"java\" \n";
+ str += "when \n";
+ str += "then \n";
+ str += " System.out.println( \"hello2!!!\" ); \n";
+ str += "end \n";
+
+ KnowledgeBuilderProvider kbuilderFactory = this.client.getKnowledgeBuilderFactory();
+ KnowledgeBuilder kbuilder = kbuilderFactory.newKnowledgeBuilder();
+ kbuilder.add( ResourceFactory.newByteArrayResource( str.getBytes() ),
+ ResourceType.DRL );
+
+ if ( kbuilder.hasErrors() ) {
+ System.out.println( "Errors: " + kbuilder.getErrors() );
+ }
+
+ KnowledgeBaseProvider kbaseFactory = this.client.getKnowledgeBaseFactory();
+ KnowledgeBase kbase = kbaseFactory.newKnowledgeBase();
+
+ kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
+
+ StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
+
+ this.client.register( "ksession1",
+ ksession );
+
+ // ExecutionResults results = this.client.lookup( "ksession1" ).execute( new FireAllRulesCommand( "fired" ) );
+ //
+ // assertEquals( 2, (int ) ( Integer) results.getValue( "fired" ) );
+ }
+}
More information about the jboss-svn-commits
mailing list