[jboss-svn-commits] JBL Code SVN: r29601 - labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Oct 13 21:25:58 EDT 2009
Author: mark.proctor at jboss.com
Date: 2009-10-13 21:25:57 -0400 (Tue, 13 Oct 2009)
New Revision: 29601
Added:
labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/AcceptorService.java
labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/ContextManagerImpl.java
labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/GenericConnector.java
labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/GenericIoWriter.java
labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/GenericMessageHandler.java
labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/GenericMessageHandlerImpl.java
labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/MessageResponseHandler.java
labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/ServiceManagerData.java
Removed:
labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/BaseMinaClient.java
labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/BaseMinaHandler.java
labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/BaseMinaServer.java
labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/KnowledgeBaseClient.java
labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/KnowledgeBuilderClient.java
labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/KnowledgeBuilderProviderClient.java
labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/MessageHandler.java
labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/ServiceManagerClient.java
labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/ServiceManagerServer.java
labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/ServiceManagerServerResponseHandler.java
Modified:
labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/CollectionClient.java
labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/Message.java
Log:
JBRULES-2269 Virtual Service Manager
-now works for xstream
-split into remote/local
Copied: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/AcceptorService.java (from rev 29307, labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/ServiceManagerServer.java)
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/AcceptorService.java (rev 0)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/AcceptorService.java 2009-10-14 01:25:57 UTC (rev 29601)
@@ -0,0 +1,9 @@
+package org.drools.vsm;
+
+import java.io.IOException;
+
+public interface AcceptorService {
+ void start() throws IOException;
+
+ void stop();
+}
Deleted: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/BaseMinaClient.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/BaseMinaClient.java 2009-10-14 01:22:47 UTC (rev 29600)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/BaseMinaClient.java 2009-10-14 01:25:57 UTC (rev 29601)
@@ -1,79 +0,0 @@
-package org.drools.vsm;
-
-import java.net.SocketAddress;
-import java.util.concurrent.atomic.AtomicInteger;
-
-import org.apache.mina.core.future.ConnectFuture;
-import org.apache.mina.core.session.IoSession;
-import org.apache.mina.filter.codec.ProtocolCodecFilter;
-import org.apache.mina.filter.codec.serialization.ObjectSerializationCodecFactory;
-import org.apache.mina.transport.socket.SocketConnector;
-
-public class BaseMinaClient {
- protected IoSession session;
-
- protected final BaseMinaHandler handler;
- protected final String name;
- protected AtomicInteger counter;
-
- protected SocketConnector connector;
- protected SocketAddress address;
-
- public BaseMinaClient(String name,
- BaseMinaHandler handler) {
- if ( name == null ) {
- throw new IllegalArgumentException( "Name can not be null" );
- }
- this.name = name;
- this.handler = handler;
- counter = new AtomicInteger();
- }
-
- public boolean connect(SocketConnector connector,
- SocketAddress address) {
- this.connector = connector;
- this.address = address;
- connector.setHandler( this.handler );
- return connect();
- }
-
- public boolean connect() {
- if ( session != null && session.isConnected() ) {
- throw new IllegalStateException( "Already connected. Disconnect first." );
- }
-
- try {
- // SocketConnectorConfig config = new SocketConnectorConfig();
- // if (useSsl) {
- // SSLContext sslContext = BogusSSLContextFactory
- // .getInstance(false);
- // SSLFilter sslFilter = new SSLFilter(sslContext);
- // sslFilter.setUseClientMode(true);
- // config.getFilterChain().addLast("sslFilter", sslFilter);
- // }
-
- //connector.setHandler( arg0 );
-
- connector.getFilterChain().addLast( "codec",
- new ProtocolCodecFilter( new ObjectSerializationCodecFactory() ) );
-
- ConnectFuture future1 = connector.connect( address );
- future1.join();
- if ( !future1.isConnected() ) {
- return false;
- }
- session = future1.getSession();
- return true;
- } catch ( Exception e ) {
- e.printStackTrace();
- return false;
- }
- }
-
- public void disconnect() {
- if ( session != null && session.isConnected() ) {
- session.close();
- session.getCloseFuture().join();
- }
- }
-}
Deleted: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/BaseMinaHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/BaseMinaHandler.java 2009-10-14 01:22:47 UTC (rev 29600)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/BaseMinaHandler.java 2009-10-14 01:25:57 UTC (rev 29601)
@@ -1,27 +0,0 @@
-package org.drools.vsm;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.mina.core.service.IoHandlerAdapter;
-
-public class BaseMinaHandler extends IoHandlerAdapter
-{
- protected Map<Integer, ResponseHandler> responseHandlers;
-
- public BaseMinaHandler() {
- responseHandlers = new HashMap<Integer, ResponseHandler>();
- }
-
- public void addResponseHandler(int id, ResponseHandler responseHandler) {
- responseHandlers.put( id, responseHandler );
- }
-
- public static interface ResponseHandler {
- public void setError(RuntimeException error);
- }
-
- public static interface MessageResponseHandler extends ResponseHandler {
- public void receive(Message message);
- }
-}
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/BaseMinaServer.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/BaseMinaServer.java 2009-10-14 01:22:47 UTC (rev 29600)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/BaseMinaServer.java 2009-10-14 01:25:57 UTC (rev 29601)
@@ -1,68 +0,0 @@
-package org.drools.vsm;
-
-import java.io.IOException;
-import java.net.InetSocketAddress;
-
-import org.apache.mina.core.service.IoAcceptor;
-import org.apache.mina.core.service.IoHandlerAdapter;
-import org.apache.mina.core.session.IdleStatus;
-import org.apache.mina.filter.codec.ProtocolCodecFilter;
-import org.apache.mina.filter.codec.serialization.ObjectSerializationCodecFactory;
-import org.apache.mina.filter.logging.LoggingFilter;
-import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
-
-public class BaseMinaServer
- implements
- Runnable {
- private final int port;
-
- IoHandlerAdapter handler;
-
- IoAcceptor acceptor;
-
- volatile boolean running;
-
- public BaseMinaServer(IoHandlerAdapter handler,
- int port) {
- this.handler = handler;
- this.port = port;
- }
-
- public void run() {
- try {
- start();
- while ( running ) {
- Thread.sleep( 100 );
- }
- } catch ( Exception e ) {
- throw new RuntimeException( "Server Exception with class " + getClass() + " using port " + port,
- e );
- }
- }
-
- public void start() throws IOException {
- running = true;
-
- acceptor = new NioSocketAcceptor();
-
- acceptor.getFilterChain().addLast( "logger",
- new LoggingFilter() );
- acceptor.getFilterChain().addLast( "codec",
- new ProtocolCodecFilter( new ObjectSerializationCodecFactory() ) );
-
- acceptor.setHandler( handler );
- acceptor.getSessionConfig().setReadBufferSize( 2048 );
- acceptor.getSessionConfig().setIdleTime( IdleStatus.BOTH_IDLE,
- 10 );
- acceptor.bind( new InetSocketAddress( "127.0.0.1", port ) );
- }
-
- public IoAcceptor getIoAcceptor() {
- return acceptor;
- }
-
- public void stop() {
- acceptor.dispose();
- running = false;
- }
-}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/CollectionClient.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/CollectionClient.java 2009-10-14 01:22:47 UTC (rev 29600)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/CollectionClient.java 2009-10-14 01:25:57 UTC (rev 29601)
@@ -3,18 +3,19 @@
import java.util.Collection;
import java.util.Iterator;
-public class CollectionClient<T> implements Collection {
+public class CollectionClient<T>
+ implements
+ Collection {
private String parentInstanceId;
-
+
public CollectionClient(String parentInstanceId) {
this.parentInstanceId = parentInstanceId;
}
-
+
public String getParentInstanceId() {
return this.parentInstanceId;
}
-
-
+
public boolean add(Object e) {
// TODO Auto-generated method stub
return false;
@@ -27,7 +28,7 @@
public void clear() {
// TODO Auto-generated method stub
-
+
}
public boolean contains(Object o) {
Added: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/ContextManagerImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/ContextManagerImpl.java (rev 0)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/ContextManagerImpl.java 2009-10-14 01:25:57 UTC (rev 29601)
@@ -0,0 +1,37 @@
+/**
+ *
+ */
+package org.drools.vsm;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.drools.command.Context;
+import org.drools.command.ContextManager;
+
+public class ContextManagerImpl
+ implements
+ ContextManager {
+ private Map<String, Context> contexts;
+ private Context defaultContext;
+
+ public ContextManagerImpl() {
+ this.contexts = new HashMap<String, Context>();
+ }
+
+ public synchronized void addContext(Context context) {
+ if ( this.contexts.isEmpty() ) {
+ this.defaultContext = context;
+ }
+ this.contexts.put( context.getName(),
+ context );
+ }
+
+ public synchronized Context getContext(String identifier) {
+ return this.contexts.get( identifier );
+ }
+
+ public Context getDefaultContext() {
+ return this.defaultContext;
+ }
+}
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/GenericConnector.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/GenericConnector.java (rev 0)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/GenericConnector.java 2009-10-14 01:25:57 UTC (rev 29601)
@@ -0,0 +1,14 @@
+package org.drools.vsm;
+
+public interface GenericConnector {
+
+ boolean connect();
+
+ void disconnect();
+
+ void addResponseHandler(int id,
+ MessageResponseHandler responseHandler);
+
+ void write(Message msg);
+
+}
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/GenericIoWriter.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/GenericIoWriter.java (rev 0)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/GenericIoWriter.java 2009-10-14 01:25:57 UTC (rev 29601)
@@ -0,0 +1,6 @@
+package org.drools.vsm;
+
+public interface GenericIoWriter {
+ public void write(Message message);
+
+}
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/GenericMessageHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/GenericMessageHandler.java (rev 0)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/GenericMessageHandler.java 2009-10-14 01:25:57 UTC (rev 29601)
@@ -0,0 +1,8 @@
+package org.drools.vsm;
+
+public interface GenericMessageHandler {
+
+ public abstract void messageReceived(GenericIoWriter session,
+ Message msg) throws Exception;
+
+}
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/GenericMessageHandlerImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/GenericMessageHandlerImpl.java (rev 0)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/GenericMessageHandlerImpl.java 2009-10-14 01:25:57 UTC (rev 29601)
@@ -0,0 +1,93 @@
+package org.drools.vsm;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.drools.SystemEventListener;
+import org.drools.command.Context;
+import org.drools.command.FinishedCommand;
+import org.drools.command.impl.ContextImpl;
+import org.drools.command.impl.GenericCommand;
+import org.drools.command.vsm.ServiceManagerServerContext;
+import org.drools.runtime.impl.ExecutionResultImpl;
+
+public class GenericMessageHandlerImpl implements GenericMessageHandler {
+ private SystemEventListener systemEventListener;
+
+ private ServiceManagerData data;
+
+ public GenericMessageHandlerImpl(ServiceManagerData data,
+ SystemEventListener systemEventListener) {
+ this.systemEventListener = systemEventListener;
+ this.data = data;
+ }
+
+ /* (non-Javadoc)
+ * @see org.drools.vsm.GenericMessageHandler#messageReceived(org.drools.vsm.GenericIoWriter, org.drools.vsm.Message)
+ */
+ public void messageReceived(GenericIoWriter session,
+ Message msg) throws Exception {
+ systemEventListener.debug( "Message receieved : " + msg );
+
+// try {
+// // establish session
+// if ( msg.getSessionId() == -1 ) {
+// GenericCommand cmd = (GenericCommand) msg.getPayload();
+// Context ctx = new ServiceManagerServerContext( null,
+// data );
+// int sessionId = (Integer) cmd.execute( ctx );
+// session.write( new Message( sessionId,
+// msg.getResponseId(),
+// false,
+// sessionId ) );
+// return;
+// }
+// } catch ( RuntimeException e ) {
+// systemEventListener.exception( e.getMessage(),
+// e );
+// // new Message(msg.getSessionId(), msg.getResponseId(), e);
+// // List<Object> list = new ArrayList<Object>(1);
+// // list.add(e);
+// // Command resultsCmnd = new Command(cmd.getId(), response, list);
+// // session.write(resultsCmnd);
+// } finally {
+//
+// }
+
+ // we always need to process a List, for genericity, but don't force a List on the payload
+ List<GenericCommand> commands;
+ if ( msg.getPayload() instanceof List ) {
+ commands = (List<GenericCommand>) msg.getPayload();
+ } else {
+ commands = new ArrayList<GenericCommand>();
+ commands.add( (GenericCommand) msg.getPayload() );
+ }
+
+ // Setup the evaluation context
+ ContextImpl localSessionContext = new ContextImpl( "session_" + msg.getSessionId(),
+ this.data.getContextManager(),
+ this.data.getTemp() );
+ ExecutionResultImpl localKresults = new ExecutionResultImpl();
+ localSessionContext.set( "kresults_" + msg.getSessionId(),
+ localKresults );
+
+ for ( GenericCommand cmd : commands ) {
+ // evaluate the commands
+ cmd.execute( localSessionContext );
+ }
+
+ if ( !msg.isAsync() && localKresults.getIdentifiers().isEmpty() ) {
+ // if it's not an async invocation and their are no results, just send a simple notification message
+ session.write( new Message( msg.getSessionId(),
+ msg.getResponseId(),
+ msg.isAsync(),
+ new FinishedCommand() ) );
+ } else {
+ // return the payload
+ session.write( new Message( msg.getSessionId(),
+ msg.getResponseId(),
+ msg.isAsync(),
+ localKresults ) );
+ }
+ }
+}
Deleted: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/KnowledgeBaseClient.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/KnowledgeBaseClient.java 2009-10-14 01:22:47 UTC (rev 29600)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/KnowledgeBaseClient.java 2009-10-14 01:25:57 UTC (rev 29601)
@@ -1,188 +0,0 @@
-package org.drools.vsm;
-
-import java.util.Collection;
-import java.util.UUID;
-
-import org.apache.mina.core.future.WriteFuture;
-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.command.builder.KnowledgeBuilderAddCommand;
-import org.drools.command.builder.NewKnowledgeBuilderCommand;
-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.responsehandlers.BlockingMessageResponseHandler;
-
-public class KnowledgeBaseClient
- implements
- KnowledgeBase {
-
- private ServiceManagerClient serviceManager;
- private String instanceId;
-
- public KnowledgeBaseClient(String instanceId,
- ServiceManagerClient 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,
- null,
- new KnowledgeContextResolveFromContextCommand( new KnowledgeBaseAddKnowledgePackagesCommand(),
- kuilderInstanceId,
- instanceId,
- null,
- kresultsId ) );
-
- BlockingMessageResponseHandler handler = new BlockingMessageResponseHandler();
-
- try {
- serviceManager.client.handler.addResponseHandler( msg.getResponseId(),
- handler );
-
- serviceManager.client.session.write( msg );
-
- Object object = handler.getMessage().getPayload();
-
- if ( !(object instanceof FinishedCommand) ) {
- throw new RuntimeException( "Response was not correctly ended" );
- }
-
- } catch ( Exception e ) {
- throw new RuntimeException( "Unable to execute message",
- e );
- }
- }
-
- public 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,
- null,
- new SetVariableCommand( "__TEMP__",
- localId,
- new KnowledgeContextResolveFromContextCommand( new NewStatefulKnowledgeSessionCommand( null ),
- null,
- instanceId,
- null,
- kresultsId ) ) );
-
-
- BlockingMessageResponseHandler handler = new BlockingMessageResponseHandler();
-
- try {
- serviceManager.client.handler.addResponseHandler( msg.getResponseId(),
- handler );
-
- serviceManager.client.session.write( msg );
-
- Object object = handler.getMessage().getPayload();
-
- if ( !(object instanceof FinishedCommand) ) {
- throw new RuntimeException( "Response was not correctly ended" );
- }
-
- } catch ( Exception e ) {
- throw new RuntimeException( "Unable to execute message",
- e );
- }
-
- return new StatefulKnowledgeSessionClient( 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
-
- }
-
-}
Deleted: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/KnowledgeBuilderClient.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/KnowledgeBuilderClient.java 2009-10-14 01:22:47 UTC (rev 29600)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/KnowledgeBuilderClient.java 2009-10-14 01:25:57 UTC (rev 29601)
@@ -1,152 +0,0 @@
-package org.drools.vsm;
-
-import java.util.Collection;
-
-import org.apache.mina.core.future.WriteFuture;
-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.KnowledgeBuilderGetKnowledgePackagesCommand;
-import org.drools.command.builder.KnowledgeBuilderHasErrorsCommand;
-import org.drools.command.builder.KnowledgeBuilderGetErrorsCommand;
-import org.drools.definition.KnowledgePackage;
-import org.drools.io.Resource;
-import org.drools.runtime.ExecutionResults;
-import org.drools.vsm.responsehandlers.BlockingMessageResponseHandler;
-
-public class KnowledgeBuilderClient
- implements
- KnowledgeBuilder {
- private ServiceManagerClient serviceManager;
- private String instanceId;
-
- public KnowledgeBuilderClient(String instanceId,
- ServiceManagerClient 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,
- null,
- new KnowledgeContextResolveFromContextCommand( new KnowledgeBuilderAddCommand( resource,
- resourceType,
- configuration ),
- instanceId,
- null,
- null,
- null ) );
-
- BlockingMessageResponseHandler handler = new BlockingMessageResponseHandler();
-
- try {
- serviceManager.client.handler.addResponseHandler( msg.getResponseId(),
- handler );
-
- serviceManager.client.session.write( msg );
-
- Object object = handler.getMessage().getPayload();
-
- if ( !(object instanceof FinishedCommand) ) {
- throw new RuntimeException( "Response was not correctly ended" );
- }
-
- } catch ( Exception e ) {
- throw new RuntimeException( "Unable to execute message",
- e );
- }
-
- }
-
- public KnowledgeBuilderErrors getErrors() {
- String commandId = "kbuilder.getErrors_" + serviceManager.getNextId();
- String kresultsId = "kresults_" + serviceManager.getSessionId();
-
- Message msg = new Message( serviceManager.getSessionId(),
- serviceManager.counter.incrementAndGet(),
- false,
- null,
- new KnowledgeContextResolveFromContextCommand( new KnowledgeBuilderGetErrorsCommand( commandId ),
- instanceId,
- null,
- null,
- kresultsId ) );
-
- BlockingMessageResponseHandler handler = new BlockingMessageResponseHandler();
-
- try {
- serviceManager.client.handler.addResponseHandler( msg.getResponseId(),
- handler );
-
- serviceManager.client.session.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,
- null,
- new KnowledgeContextResolveFromContextCommand( new KnowledgeBuilderHasErrorsCommand( commandId ),
- instanceId,
- null,
- null,
- kresultsId) );
-
- BlockingMessageResponseHandler handler = new BlockingMessageResponseHandler();
-
- try {
- serviceManager.client.handler.addResponseHandler( msg.getResponseId(),
- handler );
-
- serviceManager.client.session.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 );
- }
- }
-
-}
Deleted: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/KnowledgeBuilderProviderClient.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/KnowledgeBuilderProviderClient.java 2009-10-14 01:22:47 UTC (rev 29600)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/KnowledgeBuilderProviderClient.java 2009-10-14 01:25:57 UTC (rev 29601)
@@ -1,93 +0,0 @@
-/**
- *
- */
-package org.drools.vsm;
-
-import java.util.Collection;
-import java.util.Properties;
-import java.util.UUID;
-
-import org.apache.mina.core.future.WriteFuture;
-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.SetVariableCommand;
-import org.drools.command.builder.KnowledgeBuilderAddCommand;
-import org.drools.command.builder.NewKnowledgeBuilderCommand;
-import org.drools.definition.KnowledgePackage;
-import org.drools.vsm.responsehandlers.BlockingMessageResponseHandler;
-
-import sun.misc.UUEncoder;
-
-public class KnowledgeBuilderProviderClient
- implements
- KnowledgeBuilderProvider {
- private ServiceManagerClient serviceManager;
-
- public KnowledgeBuilderProviderClient(ServiceManagerClient serviceManager) {
- this.serviceManager = serviceManager;
- }
-
- public DecisionTableConfiguration newDecisionTableConfiguration() {
- // TODO Auto-generated method stub
- return null;
- }
-
- public KnowledgeBuilder newKnowledgeBuilder() {
- String localId = UUID.randomUUID().toString();
-
- Message cmd = new Message( serviceManager.getSessionId(),
- serviceManager.counter.incrementAndGet(),
- false,
- null,
- new SetVariableCommand( "__TEMP__",
- localId,
- new NewKnowledgeBuilderCommand( null ) ) );
-
- WriteFuture future = serviceManager.client.session.write( cmd );
- try {
- int tries = 0;
- while ( !future.isDone() && tries++ < 6 ) {
- Thread.sleep( 500 );
- }
- if ( !future.isDone() ) {
- throw new RuntimeException( "unable to create new KnowledgeBuilder" );
- }
- } catch ( InterruptedException e ) {
- throw new RuntimeException( "unable to create new KnowledgeBuilder" );
- }
-
- return new KnowledgeBuilderClient( 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
Modified: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/Message.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/Message.java 2009-10-14 01:22:47 UTC (rev 29600)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/Message.java 2009-10-14 01:25:57 UTC (rev 29601)
@@ -3,20 +3,17 @@
import java.io.Serializable;
import java.util.Map;
-import org.drools.command.Command;
-
public class Message
implements
Serializable {
- private int sessionId;
- private int responseId;
- private boolean async;
- private Object payload;
+ private int sessionId;
+ private int responseId;
+ private boolean async;
+ private Object payload;
public Message(int sessionId,
int responseId,
boolean async,
- Map<String, Integer> contextVars,
Object payload) {
this.sessionId = sessionId;
this.async = async;
@@ -39,8 +36,6 @@
public int getResponseId() {
return responseId;
}
-
-
public boolean isAsync() {
return async;
Deleted: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/MessageHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/MessageHandler.java 2009-10-14 01:22:47 UTC (rev 29600)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/MessageHandler.java 2009-10-14 01:25:57 UTC (rev 29601)
@@ -1,62 +0,0 @@
-package org.drools.vsm;
-
-import org.apache.mina.core.session.IoSession;
-import org.drools.SystemEventListener;
-import org.drools.command.impl.GenericCommand;
-
-import java.util.Arrays;
-import java.util.List;
-
-public class MessageHandler extends BaseMinaHandler {
- private Object owner;
-
- /**
- * Listener used for logging
- */
- private SystemEventListener systemEventListener;
-
- public MessageHandler(SystemEventListener systemEventListener) {
- this.systemEventListener = systemEventListener;
- }
-
- public Object getOwner() {
- return owner;
- }
-
- public void setOwner(Object owner) {
- this.owner = owner;
- }
-
- @Override
- public void exceptionCaught(IoSession session,
- Throwable cause) throws Exception {
- systemEventListener.exception("Uncaught exception on client", cause);
- }
-
- @Override
- public void messageReceived(IoSession session,
- Object object) throws Exception {
- Message msg = (Message) object;
-
- systemEventListener.debug("Message receieved on client : " + msg );
-
-
- MessageResponseHandler responseHandler = (MessageResponseHandler) responseHandlers.remove( msg.getResponseId() );
- //if ( responseHandler instanceof Block)
- if (responseHandler != null) {
- Object payload = msg.getPayload();
- if (payload != null && payload instanceof RuntimeException) {
- responseHandler.setError((RuntimeException) payload);
- } else {
- responseHandler.receive( msg );
- }
- }
- }
-
-// public static interface GetTaskResponseHandler
-// extends
-// ResponseHandler {
-// public void execute(Task task);
-// }
-
-}
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/MessageResponseHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/MessageResponseHandler.java (rev 0)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/MessageResponseHandler.java 2009-10-14 01:25:57 UTC (rev 29601)
@@ -0,0 +1,10 @@
+/**
+ *
+ */
+package org.drools.vsm;
+
+public interface MessageResponseHandler {
+ public void setError(RuntimeException error);
+
+ public void receive(Message message);
+}
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/ServiceManagerClient.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/ServiceManagerClient.java 2009-10-14 01:22:47 UTC (rev 29600)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/ServiceManagerClient.java 2009-10-14 01:25:57 UTC (rev 29601)
@@ -1,267 +0,0 @@
-package org.drools.vsm;
-
-import java.net.SocketAddress;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.Properties;
-import java.util.concurrent.atomic.AtomicInteger;
-
-import org.apache.mina.transport.socket.SocketConnector;
-import org.drools.KnowledgeBase;
-import org.drools.KnowledgeBaseFactory;
-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.KnowledgeBuilderErrors;
-import org.drools.builder.KnowledgeBuilderProvider;
-import org.drools.command.Command;
-import org.drools.command.FinishedCommand;
-import org.drools.command.KnowledgeContextResolveFromContextCommand;
-import org.drools.command.builder.KnowledgeBuilderHasErrorsCommand;
-import org.drools.command.runtime.rule.FireAllRulesCommand;
-import org.drools.command.vsm.LookupCommand;
-import org.drools.command.vsm.RegisterCommand;
-import org.drools.command.vsm.ServiceManagerClientConnectCommand;
-import org.drools.persistence.jpa.JPAKnowledgeServiceProvider;
-import org.drools.runtime.CommandExecutor;
-import org.drools.runtime.Environment;
-import org.drools.runtime.ExecutionResults;
-import org.drools.runtime.StatefulKnowledgeSession;
-import org.drools.vsm.ServiceManager;
-import org.drools.vsm.responsehandlers.BlockingMessageResponseHandler;
-
-public class ServiceManagerClient
- implements
- ServiceManager {
- public BaseMinaClient client;
-
- public AtomicInteger counter;
-
- public ServiceManagerClient(String name,
- BaseMinaHandler handler) {
- this.client = new BaseMinaClient( name,
- handler );
- this.counter = new AtomicInteger();
- }
-
- private int sessionId;
-
- public boolean connect(SocketConnector connector,
- SocketAddress address) {
- boolean connected = this.client.connect( connector,
- address );
-
- if ( connected ) {
- Message msg = new Message( -1,
- counter.incrementAndGet(),
- false,
- null,
- new ServiceManagerClientConnectCommand() );
-
- BlockingMessageResponseHandler handler = new BlockingMessageResponseHandler();
-
- this.client.handler.addResponseHandler( msg.getResponseId(),
- handler );
-
- this.client.session.write( msg );
-
- this.sessionId = (Integer) handler.getMessage().getPayload();
- }
-
- return connected;
- }
-
- public void disconnect() {
- this.client.disconnect();
- }
-
- public KnowledgeBuilderProvider getKnowledgeBuilderFactory() {
- return new KnowledgeBuilderProviderClient( this );
- }
-
- public KnowledgeBaseProvider getKnowledgeBaseFactory() {
- return new KnowledgeBaseProviderClient( this );
- }
-
- public KnowledgeAgentProvider getKnowledgeAgentFactory() {
- // TODO Auto-generated method stub
- return null;
- }
-
- public JPAKnowledgeServiceProvider JPAKnowledgeService() {
- // TODO Auto-generated method stub
- return null;
- }
-
- 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,
- null,
- new KnowledgeContextResolveFromContextCommand( new RegisterCommand( identifier,
- ((StatefulKnowledgeSessionClient) executor).getInstanceId(),
- type ),
- null,
- null,
- null,
- null ) );
-
- BlockingMessageResponseHandler handler = new BlockingMessageResponseHandler();
-
- try {
- client.handler.addResponseHandler( msg.getResponseId(),
- handler );
-
- client.session.write( msg );
-
- Object object = handler.getMessage().getPayload();
-
- if ( !(object instanceof FinishedCommand) ) {
- throw new RuntimeException( "Response was not correctly ended" );
- }
- } catch ( Exception e ) {
- throw new RuntimeException( "Unable to execute message",
- e );
- }
- }
-
- public CommandExecutor lookup(String identifier) {
- String commandId = "client.lookup" + getNextId();
- String kresultsId = "kresults_" + getSessionId();
-
- Message msg = new Message( getSessionId(),
- counter.incrementAndGet(),
- false,
- null,
- new KnowledgeContextResolveFromContextCommand( new LookupCommand( identifier,
- commandId ),
- null,
- null,
- null,
- kresultsId ) );
-
- BlockingMessageResponseHandler handler = new BlockingMessageResponseHandler();
-
- try {
- client.handler.addResponseHandler( msg.getResponseId(),
- handler );
-
- client.session.write( msg );
-
- Object object = handler.getMessage().getPayload();
-
- if ( object == null ) {
- throw new RuntimeException( "Response was not correctly received" );
- }
- String value = (String) ((ExecutionResults) object).getValue( commandId );
- String type = String.valueOf( value.charAt( 0 ) );
- String instanceId = value.substring( 2 );
-
- CommandExecutor executor = null;
- switch ( Integer.parseInt( type ) ) {
- case 0 : {
- executor = new StatefulKnowledgeSessionClient( instanceId,
- this );
- break;
- }
- default : {
-
- }
-
- }
-
- return executor;
- } catch ( Exception e ) {
- throw new RuntimeException( "Unable to execute message",
- e );
- }
- }
-
- public void release(Object object) {
- // TODO Auto-generated method stub
- }
-
- public void release(String identifier) {
- // TODO Auto-generated method stub
-
- }
-
- public static class RemoveKnowledgeBuilderProvider
- implements
- KnowledgeBuilderProvider {
-
- public 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 void send(Command command) {
- this.client.session.write( command );
- }
-
- public int getSessionId() {
- return sessionId;
- }
-
- public int getNextId() {
- return this.counter.incrementAndGet();
- }
-
-}
Added: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/ServiceManagerData.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/ServiceManagerData.java (rev 0)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/ServiceManagerData.java 2009-10-14 01:25:57 UTC (rev 29601)
@@ -0,0 +1,66 @@
+package org.drools.vsm;
+
+import java.util.concurrent.atomic.AtomicInteger;
+
+import org.drools.command.Context;
+import org.drools.command.ContextManager;
+import org.drools.command.impl.ContextImpl;
+
+public class ServiceManagerData {
+ private ContextManager contextManager;
+
+ private Context root;
+ private Context temp;
+
+ public static String ROOT = "ROOT";
+ public static String TEMP = "__TEMP__";
+ public static String SERVICE_MANAGER_DATA = "__ServiceManagerData__";
+
+ private AtomicInteger sessionIdCounter = new AtomicInteger();
+
+ public ServiceManagerData() {
+ // Setup ROOT context, this will hold all long lived intances and instanceIds
+ this.contextManager = new ContextManagerImpl();
+
+ this.root = new ContextImpl( ROOT,
+ this.contextManager );
+ ((ContextManagerImpl) this.contextManager).addContext( this.root );
+ this.root.set( SERVICE_MANAGER_DATA,
+ this );
+ // Setup TEMP context, this will hold all short lived instanceId and instances
+ // TODO: TEMP context should have a time/utilisation eviction queue added
+ this.temp = new ContextImpl( TEMP,
+ this.contextManager,
+ this.root );
+ ((ContextManagerImpl) this.contextManager).addContext( this.temp );
+ }
+
+ public AtomicInteger getSessionIdCounter() {
+ return sessionIdCounter;
+ }
+
+ public ContextManager getContextManager() {
+ return contextManager;
+ }
+
+ public void setContextManager(ContextManager contextManager) {
+ this.contextManager = contextManager;
+ }
+
+ public Context getRoot() {
+ return root;
+ }
+
+ public void setRoot(Context root) {
+ this.root = root;
+ }
+
+ public Context getTemp() {
+ return temp;
+ }
+
+ public void setTemp(Context temp) {
+ this.temp = temp;
+ }
+
+}
Deleted: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/ServiceManagerServer.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/ServiceManagerServer.java 2009-10-14 01:22:47 UTC (rev 29600)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/ServiceManagerServer.java 2009-10-14 01:25:57 UTC (rev 29601)
@@ -1,76 +0,0 @@
-package org.drools.vsm;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Properties;
-import java.util.concurrent.atomic.AtomicInteger;
-
-import org.drools.KnowledgeBase;
-import org.drools.KnowledgeBaseFactory;
-import org.drools.KnowledgeBaseProvider;
-import org.drools.SystemEventListenerFactory;
-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.Context;
-import org.drools.command.ContextManager;
-import org.drools.command.impl.ContextImpl;
-import org.drools.persistence.jpa.JPAKnowledgeServiceProvider;
-import org.drools.runtime.CommandExecutor;
-import org.drools.runtime.Environment;
-import org.drools.vsm.ServiceManagerServerResponseHandler.ContextManagerImpl;
-
-public class ServiceManagerServer extends BaseMinaServer
- implements
- Runnable {
- private AtomicInteger sessionIdCounter = new AtomicInteger();
-
- private ContextManager contextManager;
-
- private Context root;
- private Context temp;
-
- public static String ROOT = "ROOT";
- public static String TEMP = "__TEMP__";
- public static String SERVICE_MANAGER = "__ServiceManager__";
-
- public AtomicInteger getSessionIdCounter() {
- return sessionIdCounter;
- }
-
- public ServiceManagerServer() {
- super( new ServiceManagerServerResponseHandler( SystemEventListenerFactory.getSystemEventListener() ),
- 9123 );
- this.contextManager = new ContextManagerImpl();
-
- this.root = new ContextImpl( ROOT,
- this.contextManager );
- ((ContextManagerImpl) this.contextManager).addContext( this.root );
-
- this.temp = new ContextImpl( TEMP,
- this.contextManager,
- this.root );
- ((ContextManagerImpl) this.contextManager).addContext( this.temp );
-
- ((ServiceManagerServerResponseHandler) this.handler).setServiceManagerService( this );
-
- this.temp.set( "__ServiceManager__",
- this );
- }
-
- public ContextManager getContextManager() {
- return contextManager;
- }
-
- public Context getRoot() {
- return root;
- }
-
- public Context getTemp() {
- return temp;
- }
-
-}
Deleted: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/ServiceManagerServerResponseHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/ServiceManagerServerResponseHandler.java 2009-10-14 01:22:47 UTC (rev 29600)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/ServiceManagerServerResponseHandler.java 2009-10-14 01:25:57 UTC (rev 29601)
@@ -1,197 +0,0 @@
-package org.drools.vsm;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-import java.util.concurrent.ConcurrentHashMap;
-
-import org.apache.mina.core.service.IoHandlerAdapter;
-import org.apache.mina.core.session.IdleStatus;
-import org.apache.mina.core.session.IoSession;
-import org.drools.KnowledgeBase;
-import org.drools.KnowledgeBaseFactory;
-import org.drools.KnowledgeBaseProvider;
-import org.drools.SystemEventListener;
-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.Context;
-import org.drools.command.ContextManager;
-import org.drools.command.FinishedCommand;
-import org.drools.command.KnowledgeContextResolveFromContextCommand;
-import org.drools.command.impl.ContextImpl;
-import org.drools.command.impl.GenericCommand;
-import org.drools.command.impl.KnowledgeCommandContext;
-import org.drools.command.vsm.ServiceManagerClientConnectCommand;
-import org.drools.command.vsm.ServiceManagerServerContext;
-import org.drools.persistence.jpa.JPAKnowledgeServiceProvider;
-import org.drools.runtime.CommandExecutor;
-import org.drools.runtime.Environment;
-import org.drools.runtime.ExecutionResults;
-import org.drools.runtime.impl.ExecutionResultImpl;
-
-public class ServiceManagerServerResponseHandler extends IoHandlerAdapter {
- private ServiceManagerServer server;
-
-
-
- public static class ContextManagerImpl
- implements
- ContextManager {
- private Map<String, Context> contexts;
-
- public ContextManagerImpl() {
- this.contexts = new HashMap<String, Context>();
- }
-
- public void addContext(Context context) {
- this.contexts.put( context.getName(),
- context );
- }
-
- public Context getContext(String identifier) {
- return this.contexts.get( identifier );
- }
-
- }
-
- /**
- * Listener used for logging
- */
- private final SystemEventListener systemEventListener;
-
- public ServiceManagerServerResponseHandler(SystemEventListener systemEventListener) {
- this.systemEventListener = systemEventListener;
-
- }
-
- public void setServiceManagerService(ServiceManagerServer server) {
- this.server = server;
- }
-
- @Override
- public void exceptionCaught(IoSession session,
- Throwable cause) throws Exception {
- systemEventListener.exception( "Uncaught exception on Server",
- cause );
- }
-
- @Override
- public void messageReceived(IoSession session,
- Object object) throws Exception {
- Message msg = (Message) object;
-
- systemEventListener.debug( "Message receieved on server : " + msg );
-
- try {
- // establish session
- if ( msg.getSessionId() == -1 ) {
- GenericCommand cmd = (GenericCommand) msg.getPayload();
- Context ctx = new ServiceManagerServerContext( null,
- server );
- int sessionId = (Integer) cmd.execute( ctx );
- session.write( new Message( sessionId,
- msg.getResponseId(),
- false,
- null,
- sessionId ) );
- return;
- }
- } catch ( RuntimeException e ) {
- systemEventListener.exception( e.getMessage(),
- e );
- // new Message(msg.getSessionId(), msg.getResponseId(), e);
- // List<Object> list = new ArrayList<Object>(1);
- // list.add(e);
- // Command resultsCmnd = new Command(cmd.getId(), response, list);
- // session.write(resultsCmnd);
- } finally {
-
- }
-
- List<GenericCommand> commands;
- if ( msg.getPayload() instanceof List ) {
- commands = (List<GenericCommand>) msg.getPayload();
- } else {
- commands = new ArrayList<GenericCommand>();
- commands.add( (GenericCommand) msg.getPayload() );
- }
-
- //KnowledgeCommandContext ktcx = new KnowledgeCommandContext(this.temp);
- ContextImpl localSessionContext = new ContextImpl( "sesseion_" + msg.getSessionId(), this.server.getContextManager(), this.server.getTemp() );
- ExecutionResultImpl localKresults = new ExecutionResultImpl();
- localSessionContext.set( "kresults_" + msg.getSessionId(), localKresults );
- for ( GenericCommand cmd : commands ) {
- cmd.execute( localSessionContext );
- }
-
- if ( !msg.isAsync() && localKresults.getIdentifiers().isEmpty() ) {
- session.write( new Message(msg.getSessionId(), msg.getResponseId(), msg.isAsync(), null, new FinishedCommand() ) );
- } else {
- session.write( new Message(msg.getSessionId(), msg.getResponseId(), msg.isAsync(), null, localKresults ) );
- }
-
-
- // SessionData data = this.sessionData.get( msg.getSessionId() );
- // if ( data == null ) {
- // data = new SessionData();
- // this.sessionData.put( msg.getSessionId(),
- // data );
- // }
- //
- // Integer sessionId = ( Integer ) data.data.get( msg.getInstanceId() );
- // if ( sessionId == null ) {
- // GenericCommand cmd = ( GenericCommand ) msg.getPayload();
- // data.data.put( sessionId, cmd.execute( null ) );
- // }
-
- // msg.get
-
- // Comman cmd = msg.getPayload();
-
- // TaskServiceSession taskSession = service.createSession();
- // CommandName response = null;
- // try {
- // systemEventListener.debug("Message receieved on server : " +
- // cmd.getName());
- // systemEventListener.debug("Arguments : " +
- // Arrays.toString(cmd.getArguments().toArray()));
- //
- //
- // // response = CommandName.GetTaskResponse;
- // // long taskId = (Long) cmd.getArguments().get(0);
- // //
- // // Task task = taskSession.getTask(taskId);
- // //
- // // List args = new ArrayList(1);
- // // args.add(task);
- // // Command resultsCmnd = new Command(cmd.getId(),
- // CommandName.GetTaskResponse, args);
- // // session.write(resultsCmnd);
- //
- //
- // } catch (RuntimeException e) {
- // systemEventListener.exception(e.getMessage(),e);
- //
- // List<Object> list = new ArrayList<Object>(1);
- // list.add(e);
- // Command resultsCmnd = new Command(cmd.getId(), response, list);
- // session.write(resultsCmnd);
- // } finally {
- // taskSession.dispose();
- // }
- }
-
- @Override
- public void sessionIdle(IoSession session,
- IdleStatus status) throws Exception {
- systemEventListener.debug( "Server IDLE " + session.getIdleCount( status ) );
- }
-
-}
More information about the jboss-svn-commits
mailing list