[jboss-svn-commits] JBL Code SVN: r33982 - in labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline: impl and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sat Jul 17 00:01:03 EDT 2010
Author: mark.proctor at jboss.com
Date: 2010-07-17 00:01:02 -0400 (Sat, 17 Jul 2010)
New Revision: 33982
Added:
labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/Callable.java
labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/ListAdapter.java
labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/AssignObjectAsResult.java
labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/BaseEmitter.java
labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/BasePipelineContext.java
labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/BaseService.java
labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/BaseStage.java
labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/CallableImpl.java
labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/CorePipelineProviderImpl.java
labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/ExecuteResultHandler.java
labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/ExecutionNodePipelineContextImpl.java
labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/ExecutionNodePipelineImpl.java
labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/ExecutorStage.java
labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/InsertElementsCommandStage.java
labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/InsertObjectCommandStage.java
labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/IterateSplitter.java
labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/ListAdapterImpl.java
labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/ListCollectJoin.java
labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/MvelAction.java
labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/MvelExpression.java
labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/PipelineContextFactory.java
labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/PipelineImpl.java
labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/ServiceManagerPipelineContextImpl.java
labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/ServiceManagerPipelineImpl.java
labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionGetGlobalStage.java
labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionGetObjectStage.java
labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionInsertStage.java
labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionPipelineContextImpl.java
labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionPipelineImpl.java
labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionSetGlobalStage.java
labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionSignalEventStage.java
labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionStartProcessStage.java
labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/StatelessKnowledgeSessionPipelineContextImpl.java
labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/StatelessKnowledgeSessionPipelineImpl.java
Log:
JBRULES-2347 Camel
-merging all the pipelien modules, to simplify the build, as they are only kept around now for legacy users.
Copied: labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/Callable.java (from rev 33978, labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/Callable.java)
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/Callable.java (rev 0)
+++ labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/Callable.java 2010-07-17 04:01:02 UTC (rev 33982)
@@ -0,0 +1,16 @@
+package org.drools.runtime.pipeline;
+
+/**
+ *
+ * Must be the first and last Stage in the Pipeline
+ *
+ * @param <E>
+ */
+public interface Callable<E>
+ extends
+ Receiver,
+ Emitter,
+ Stage {
+ E call(Object signal,
+ PipelineContext context);
+}
Copied: labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/ListAdapter.java (from rev 33978, labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/ListAdapter.java)
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/ListAdapter.java (rev 0)
+++ labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/ListAdapter.java 2010-07-17 04:01:02 UTC (rev 33982)
@@ -0,0 +1,11 @@
+package org.drools.runtime.pipeline;
+
+import java.util.List;
+
+public interface ListAdapter extends Receiver, Stage{
+
+ List< Object > getList();
+
+ void setList(List< Object > list);
+
+}
Copied: labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/AssignObjectAsResult.java (from rev 33978, labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/AssignObjectAsResult.java)
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/AssignObjectAsResult.java (rev 0)
+++ labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/AssignObjectAsResult.java 2010-07-17 04:01:02 UTC (rev 33982)
@@ -0,0 +1,27 @@
+package org.drools.runtime.pipeline.impl;
+
+import org.drools.runtime.pipeline.Action;
+import org.drools.runtime.pipeline.PipelineContext;
+import org.drools.runtime.pipeline.Receiver;
+
+public class AssignObjectAsResult extends BaseEmitter
+ implements
+ Action {
+
+ public AssignObjectAsResult() {
+ super();
+ }
+
+ public void assignResult(PipelineContext context, Object object) {
+ context.setResult(object);
+ }
+
+ public void receive(Object object,
+ PipelineContext context) {
+ assignResult( context , object);
+
+ emit( object,
+ context );
+ }
+
+}
Copied: labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/BaseEmitter.java (from rev 33978, labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/BaseEmitter.java)
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/BaseEmitter.java (rev 0)
+++ labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/BaseEmitter.java 2010-07-17 04:01:02 UTC (rev 33982)
@@ -0,0 +1,36 @@
+package org.drools.runtime.pipeline.impl;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.concurrent.CopyOnWriteArrayList;
+
+import org.drools.runtime.pipeline.Emitter;
+import org.drools.runtime.pipeline.PipelineContext;
+import org.drools.runtime.pipeline.Receiver;
+
+public class BaseEmitter extends BaseStage
+ implements
+ Emitter {
+ protected Receiver receiver;
+
+ public BaseEmitter() {
+ }
+
+ public void setReceiver(Receiver receiver) {
+ this.receiver = receiver;
+ }
+
+ public Receiver getReceiver() {
+ return this.receiver;
+ }
+
+ protected void emit(Object object,
+ PipelineContext context) {
+ if ( this.receiver != null ) {
+ receiver.receive( object,
+ context );
+ }
+ }
+
+}
Copied: labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/BasePipelineContext.java (from rev 33978, labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/BasePipelineContext.java)
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/BasePipelineContext.java (rev 0)
+++ labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/BasePipelineContext.java 2010-07-17 04:01:02 UTC (rev 33982)
@@ -0,0 +1,57 @@
+package org.drools.runtime.pipeline.impl;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.drools.runtime.CommandExecutor;
+import org.drools.runtime.pipeline.PipelineContext;
+import org.drools.runtime.pipeline.ResultHandler;
+
+public class BasePipelineContext
+ implements
+ PipelineContext {
+ private ClassLoader classLoader;
+ private Map<String, Object> properties;
+ private Object result;
+ private ResultHandler resultHandler;
+
+ public BasePipelineContext(ClassLoader classLoader) {
+ this(classLoader, null);
+ }
+
+ public BasePipelineContext(ClassLoader classLoader,
+ ResultHandler resultHandler) {
+ this.classLoader = classLoader;
+ this.resultHandler = resultHandler;
+ this.properties = new HashMap<String, Object>();
+ }
+
+ public ClassLoader getClassLoader() {
+ return this.classLoader;
+ }
+
+ public void setClassLoader(ClassLoader classLoader) {
+ this.classLoader = classLoader;
+ }
+
+ public Map<String, Object> getProperties() {
+ return properties;
+ }
+
+ public ResultHandler getResultHandler() {
+ return this.resultHandler;
+ }
+
+ public Object getResult() {
+ return result;
+ }
+
+ public void setResult(Object result) {
+ this.result = result;
+ }
+
+ public CommandExecutor getCommandExecutor() {
+ throw new UnsupportedOperationException( "this method is not implemented" );
+ }
+
+}
Copied: labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/BaseService.java (from rev 33978, labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/BaseService.java)
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/BaseService.java (rev 0)
+++ labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/BaseService.java 2010-07-17 04:01:02 UTC (rev 33982)
@@ -0,0 +1,28 @@
+package org.drools.runtime.pipeline.impl;
+
+import org.drools.runtime.pipeline.Service;
+import org.drools.runtime.pipeline.ServiceExceptionHandler;
+
+public class BaseService {
+ private ServiceExceptionHandler exceptionHandler;
+
+ public BaseService() {
+ super();
+ }
+
+ public void setServiceExceptionHandler(ServiceExceptionHandler exceptionHandler) {
+ this.exceptionHandler = exceptionHandler;
+ }
+
+ public void handleException(Service service,
+ Object object,
+ Exception exception) {
+ if ( this.exceptionHandler != null ) {
+ this.exceptionHandler.handleException( service,
+ object,
+ exception );
+ } else {
+ throw new RuntimeException( exception );
+ }
+ }
+}
Copied: labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/BaseStage.java (from rev 33978, labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/BaseStage.java)
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/BaseStage.java (rev 0)
+++ labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/BaseStage.java 2010-07-17 04:01:02 UTC (rev 33982)
@@ -0,0 +1,25 @@
+package org.drools.runtime.pipeline.impl;
+
+import org.drools.runtime.pipeline.Stage;
+import org.drools.runtime.pipeline.StageExceptionHandler;
+
+public class BaseStage implements Stage {
+ private StageExceptionHandler exceptionHandler;
+
+ public BaseStage() {
+ super();
+ }
+
+ public void setStageExceptionHandler(StageExceptionHandler exceptionHandler) {
+ this.exceptionHandler = exceptionHandler;
+ }
+
+ protected void handleException(Stage stage, Object object, Exception exception) {
+ if ( this.exceptionHandler != null ) {
+ this.exceptionHandler.handleException( stage, object, exception );
+ } else {
+ throw new RuntimeException( exception );
+ }
+ }
+
+}
Copied: labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/CallableImpl.java (from rev 33978, labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/CallableImpl.java)
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/CallableImpl.java (rev 0)
+++ labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/CallableImpl.java 2010-07-17 04:01:02 UTC (rev 33982)
@@ -0,0 +1,29 @@
+package org.drools.runtime.pipeline.impl;
+
+import org.drools.runtime.pipeline.Callable;
+import org.drools.runtime.pipeline.PipelineContext;
+
+public class CallableImpl<E> extends BaseEmitter
+ implements
+ Callable {
+ public static final String key = "__CallableReturnValue__";
+
+ public CallableImpl() {
+ super();
+ }
+
+ public Object call(Object object,
+ PipelineContext context) {
+ emit( object,
+ context );
+ return context.getProperties().remove( key );
+ }
+
+ public void receive(Object object,
+ PipelineContext context) {
+ context.getProperties().put( key,
+ object );
+
+ }
+
+}
Copied: labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/CorePipelineProviderImpl.java (from rev 33978, labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/CorePipelineProviderImpl.java)
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/CorePipelineProviderImpl.java (rev 0)
+++ labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/CorePipelineProviderImpl.java 2010-07-17 04:01:02 UTC (rev 33982)
@@ -0,0 +1,115 @@
+package org.drools.runtime.pipeline.impl;
+
+import java.util.List;
+
+import org.drools.command.runtime.rule.InsertElementsCommand;
+import org.drools.runtime.StatefulKnowledgeSession;
+import org.drools.runtime.StatelessKnowledgeSession;
+import org.drools.runtime.pipeline.Action;
+import org.drools.runtime.pipeline.Callable;
+import org.drools.runtime.pipeline.CorePipelineProvider;
+import org.drools.runtime.pipeline.Expression;
+import org.drools.runtime.pipeline.Join;
+import org.drools.runtime.pipeline.KnowledgeRuntimeCommand;
+import org.drools.runtime.pipeline.ListAdapter;
+import org.drools.runtime.pipeline.Pipeline;
+import org.drools.runtime.pipeline.Splitter;
+
+public class CorePipelineProviderImpl
+ implements
+ CorePipelineProvider {
+
+ public Pipeline newStatefulKnowledgeSessionPipeline(StatefulKnowledgeSession ksession) {
+ return new StatefulKnowledgeSessionPipelineImpl( ksession );
+ }
+
+ public Pipeline newStatefulKnowledgeSessionPipeline(StatefulKnowledgeSession ksession,
+ String entryPointName) {
+ return new StatefulKnowledgeSessionPipelineImpl( ksession,
+ entryPointName );
+ }
+
+ public Pipeline newStatelessKnowledgeSessionPipeline(StatelessKnowledgeSession ksession) {
+ return new StatelessKnowledgeSessionPipelineImpl( ksession );
+ }
+
+ public KnowledgeRuntimeCommand newCommandExecutor() {
+ return new ExecutorStage();
+ }
+
+ public KnowledgeRuntimeCommand newStatefulKnowledgeSessionInsert() {
+ return new StatefulKnowledgeSessionInsertStage();
+ }
+
+ public KnowledgeRuntimeCommand newStatefulKnowledgeSessionGetGlobal() {
+ return new StatefulKnowledgeSessionGetGlobalStage();
+ }
+
+ public KnowledgeRuntimeCommand newStatefulKnowledgeSessionSetGlobal() {
+ return new StatefulKnowledgeSessionSetGlobalStage();
+ }
+
+ public KnowledgeRuntimeCommand newStatefulKnowledgeSessionSetGlobal(String identifier) {
+ return new StatefulKnowledgeSessionSetGlobalStage( identifier );
+ }
+
+ public KnowledgeRuntimeCommand newStatefulKnowledgeSessionGetObject() {
+ return new StatefulKnowledgeSessionGetObjectStage( );
+ }
+
+ public KnowledgeRuntimeCommand newStatefulKnowledgeSessionSignalEvent(String eventType) {
+ return new StatefulKnowledgeSessionSignalEventStage( eventType );
+ }
+
+ public KnowledgeRuntimeCommand newStatefulKnowledgeSessionSignalEvent(String eventType,
+ long id) {
+ return new StatefulKnowledgeSessionSignalEventStage( eventType,
+ id );
+ }
+
+ public KnowledgeRuntimeCommand newStatefulKnowledgeSessionStartProcess(String id) {
+ return new StatefulKnowledgeSessionStartProcessStage( id );
+ }
+
+ public Action newAssignObjectAsResult() {
+ return new AssignObjectAsResult();
+ }
+
+ public Action newExecuteResultHandler() {
+ return new ExecuteResultHandler();
+ }
+
+ public Action newMvelAction(String action) {
+ return new MvelAction( action );
+ }
+
+ public Expression newMvelExpression(String expression) {
+ return new MvelExpression( expression );
+ }
+
+ public Splitter newIterateSplitter() {
+ return new IterateSplitter();
+ }
+
+ public Join newListCollectJoin() {
+ return new ListCollectJoin();
+ }
+
+ public ListAdapter newListAdapter(List<Object> list,
+ boolean syncAccessors) {
+ return new ListAdapterImpl( list,
+ syncAccessors );
+ }
+
+ public Callable newCallable() {
+ return new CallableImpl();
+ }
+
+ public KnowledgeRuntimeCommand newInsertElementsCommand() {
+ return new InsertElementsCommandStage();
+ }
+
+ public KnowledgeRuntimeCommand newInsertObjectCommand() {
+ return new InsertObjectCommandStage();
+ }
+}
Copied: labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/ExecuteResultHandler.java (from rev 33978, labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/ExecuteResultHandler.java)
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/ExecuteResultHandler.java (rev 0)
+++ labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/ExecuteResultHandler.java 2010-07-17 04:01:02 UTC (rev 33982)
@@ -0,0 +1,29 @@
+package org.drools.runtime.pipeline.impl;
+
+import org.drools.runtime.pipeline.Action;
+import org.drools.runtime.pipeline.PipelineContext;
+
+public class ExecuteResultHandler extends BaseEmitter
+ implements
+ Action {
+
+ public void handleResult(PipelineContext context,
+ Object object) {
+ try {
+ context.getResultHandler().handleResult( context.getResult() );
+ } catch ( Exception e ) {
+ handleException( this,
+ object,
+ e );
+ }
+ }
+
+ public void receive(Object object,
+ PipelineContext context) {
+ handleResult( context,
+ object );
+ emit( object,
+ context );
+ }
+
+}
Copied: labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/ExecutionNodePipelineContextImpl.java (from rev 33978, labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/ExecutionNodePipelineContextImpl.java)
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/ExecutionNodePipelineContextImpl.java (rev 0)
+++ labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/ExecutionNodePipelineContextImpl.java 2010-07-17 04:01:02 UTC (rev 33982)
@@ -0,0 +1,37 @@
+package org.drools.runtime.pipeline.impl;
+
+import org.drools.grid.ExecutionNode;
+import org.drools.runtime.CommandExecutor;
+import org.drools.runtime.pipeline.ResultHandler;
+import org.drools.runtime.pipeline.impl.BasePipelineContext;
+
+public class ExecutionNodePipelineContextImpl extends BasePipelineContext {
+
+ private ExecutionNode node;
+ private CommandExecutor commandExecutor;
+
+ public ExecutionNodePipelineContextImpl(ExecutionNode node,
+ ClassLoader classLoader) {
+ this( node, classLoader, null );
+ }
+
+ public ExecutionNodePipelineContextImpl(ExecutionNode node,
+ ClassLoader classLoader,
+ ResultHandler resultHandler) {
+ super( classLoader, resultHandler );
+ this.node = node;
+ }
+
+ public ExecutionNode getExecutionNode() {
+ return this.node;
+ }
+
+ public CommandExecutor getCommandExecutor() {
+ return this.commandExecutor;
+ }
+
+ public void setCommandExecutor(CommandExecutor commandExecutor) {
+ this.commandExecutor = commandExecutor;
+ }
+
+}
Copied: labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/ExecutionNodePipelineImpl.java (from rev 33978, labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/ExecutionNodePipelineImpl.java)
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/ExecutionNodePipelineImpl.java (rev 0)
+++ labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/ExecutionNodePipelineImpl.java 2010-07-17 04:01:02 UTC (rev 33982)
@@ -0,0 +1,18 @@
+package org.drools.runtime.pipeline.impl;
+
+import org.drools.grid.ExecutionNode;
+import org.drools.runtime.pipeline.Pipeline;
+import org.drools.runtime.pipeline.ResultHandler;
+
+public class ExecutionNodePipelineImpl extends BaseEmitter implements Pipeline {
+ private ExecutionNode node;
+
+ public ExecutionNodePipelineImpl(ExecutionNode node) {
+ this.node = node;
+ }
+
+ public synchronized void insert(Object object, ResultHandler resultHandler) {
+ emit(object, new ExecutionNodePipelineContextImpl(this.node, null, resultHandler));
+ }
+
+}
Copied: labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/ExecutorStage.java (from rev 33978, labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/ExecutorStage.java)
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/ExecutorStage.java (rev 0)
+++ labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/ExecutorStage.java 2010-07-17 04:01:02 UTC (rev 33982)
@@ -0,0 +1,32 @@
+package org.drools.runtime.pipeline.impl;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.drools.command.Command;
+import org.drools.command.CommandFactory;
+import org.drools.runtime.ExecutionResults;
+import org.drools.runtime.pipeline.KnowledgeRuntimeCommand;
+import org.drools.runtime.pipeline.PipelineContext;
+
+public class ExecutorStage<T> extends BaseEmitter
+ implements
+ KnowledgeRuntimeCommand {
+ private T result = null;
+ public void receive(Object object,
+ PipelineContext context) {
+ BasePipelineContext kContext = (BasePipelineContext) context;
+ this.result = execute(object, kContext);
+ emit( result,
+ kContext );
+ }
+ public T execute(Object object, PipelineContext kContext){
+
+ if ( object instanceof Collection ) {
+ object = CommandFactory.newBatchExecution( (List<Command>) object );
+ }
+
+ return ( T ) kContext.getCommandExecutor().execute( (Command) object );
+ }
+
+}
Copied: labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/InsertElementsCommandStage.java (from rev 33978, labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/InsertElementsCommandStage.java)
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/InsertElementsCommandStage.java (rev 0)
+++ labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/InsertElementsCommandStage.java 2010-07-17 04:01:02 UTC (rev 33982)
@@ -0,0 +1,24 @@
+/**
+ *
+ */
+package org.drools.runtime.pipeline.impl;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.drools.command.runtime.rule.InsertElementsCommand;
+import org.drools.runtime.pipeline.KnowledgeRuntimeCommand;
+import org.drools.runtime.pipeline.PipelineContext;
+
+public class InsertElementsCommandStage extends BaseEmitter
+ implements
+ KnowledgeRuntimeCommand {
+
+ public void receive(Object object,
+ PipelineContext context) {
+ InsertElementsCommand cmd = new InsertElementsCommand( (List<Object>) object );
+
+ emit( cmd,
+ context );
+ }
+}
\ No newline at end of file
Copied: labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/InsertObjectCommandStage.java (from rev 33978, labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/InsertObjectCommandStage.java)
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/InsertObjectCommandStage.java (rev 0)
+++ labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/InsertObjectCommandStage.java 2010-07-17 04:01:02 UTC (rev 33982)
@@ -0,0 +1,33 @@
+/**
+ *
+ */
+package org.drools.runtime.pipeline.impl;
+
+import org.drools.command.runtime.rule.InsertObjectCommand;
+import org.drools.runtime.pipeline.KnowledgeRuntimeCommand;
+import org.drools.runtime.pipeline.PipelineContext;
+
+public class InsertObjectCommandStage extends BaseEmitter
+ implements
+ KnowledgeRuntimeCommand {
+ private String outIdentifier;
+
+ public InsertObjectCommandStage() {
+
+ }
+
+ public InsertObjectCommandStage(String outIdentifier) {
+ this.outIdentifier = outIdentifier;
+ }
+
+ public void receive(Object object,
+ PipelineContext context) {
+ InsertObjectCommand cmd = new InsertObjectCommand( object );
+ if ( outIdentifier != null ) {
+ cmd.setOutIdentifier( this.outIdentifier );
+ }
+
+ emit( cmd,
+ context );
+ }
+}
\ No newline at end of file
Copied: labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/IterateSplitter.java (from rev 33978, labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/IterateSplitter.java)
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/IterateSplitter.java (rev 0)
+++ labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/IterateSplitter.java 2010-07-17 04:01:02 UTC (rev 33982)
@@ -0,0 +1,34 @@
+package org.drools.runtime.pipeline.impl;
+
+import org.drools.runtime.pipeline.Join;
+import org.drools.runtime.pipeline.PipelineContext;
+import org.drools.runtime.pipeline.Splitter;
+
+public class IterateSplitter extends BaseEmitter
+ implements
+ Splitter {
+
+ private Join join;
+
+ public void receive(Object object,
+ PipelineContext context) {
+ if ( object instanceof Iterable ) {
+ for ( Object result : ((Iterable) object) ) {
+ emit( result,
+ context );
+ }
+ } else {
+ emit( object,
+ context );
+ }
+
+ if ( this.join != null ) {
+ this.join.completed( context);
+ }
+ }
+
+ public void setJoin(Join join) {
+ this.join = join;
+ }
+
+}
Copied: labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/ListAdapterImpl.java (from rev 33978, labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/ListAdapterImpl.java)
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/ListAdapterImpl.java (rev 0)
+++ labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/ListAdapterImpl.java 2010-07-17 04:01:02 UTC (rev 33982)
@@ -0,0 +1,46 @@
+package org.drools.runtime.pipeline.impl;
+
+import java.util.List;
+
+import org.drools.runtime.pipeline.ListAdapter;
+import org.drools.runtime.pipeline.PipelineContext;
+
+public class ListAdapterImpl extends BaseStage
+ implements
+ ListAdapter {
+ private List list;
+ private boolean syncAccessor;
+
+ public ListAdapterImpl(List list,
+ boolean syncAccessor) {
+ super();
+ this.list = list;
+ this.syncAccessor = syncAccessor;
+ }
+
+ public List getList() {
+ if ( this.syncAccessor ) {
+ synchronized ( this ) {
+ return list;
+ }
+ } else {
+ return list;
+ }
+ }
+
+ public void setList(List list) {
+ if ( this.syncAccessor ) {
+ synchronized ( this ) {
+ this.list = list;
+ }
+ } else {
+ this.list = list;
+ }
+ }
+
+ public void receive(Object object,
+ PipelineContext context) {
+ this.list.add( object );
+ }
+
+}
Copied: labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/ListCollectJoin.java (from rev 33978, labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/ListCollectJoin.java)
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/ListCollectJoin.java (rev 0)
+++ labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/ListCollectJoin.java 2010-07-17 04:01:02 UTC (rev 33982)
@@ -0,0 +1,31 @@
+package org.drools.runtime.pipeline.impl;
+
+import java.util.ArrayList;
+import java.util.IdentityHashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.drools.runtime.pipeline.Join;
+import org.drools.runtime.pipeline.PipelineContext;
+
+public class ListCollectJoin extends BaseEmitter implements Join {
+ private Map<PipelineContext, List> lists;
+
+ public ListCollectJoin() {
+ lists = new IdentityHashMap<PipelineContext, List>();
+ }
+
+ public void receive(Object object,
+ PipelineContext context) {
+ List list = lists.get( context );
+ if ( list == null ) {
+ list = new ArrayList();
+ lists.put( context, list );
+ }
+ list.add( object );
+ }
+
+ public void completed(PipelineContext context) {
+ emit( lists.remove( context ), context);
+ }
+}
Copied: labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/MvelAction.java (from rev 33978, labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/MvelAction.java)
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/MvelAction.java (rev 0)
+++ labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/MvelAction.java 2010-07-17 04:01:02 UTC (rev 33982)
@@ -0,0 +1,45 @@
+package org.drools.runtime.pipeline.impl;
+
+import java.io.Serializable;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.drools.runtime.pipeline.Action;
+import org.drools.runtime.pipeline.PipelineContext;
+import org.drools.runtime.pipeline.Receiver;
+import org.mvel2.MVEL;
+import org.mvel2.ParserContext;
+import org.mvel2.compiler.ExpressionCompiler;
+
+public class MvelAction extends BaseEmitter
+ implements
+ Action,
+ Receiver {
+ private Serializable expr;
+
+ public MvelAction(String text) {
+ final ParserContext parserContext = new ParserContext();
+ parserContext.setStrictTypeEnforcement( false );
+
+ ExpressionCompiler compiler = new ExpressionCompiler( text );
+ this.expr = compiler.compile( );
+ }
+
+ public void receive(Object object,
+ PipelineContext context) {
+ try {
+ Map<String, Object> vars = new HashMap<String, Object>(1);
+ vars.put( "context", context );
+ MVEL.executeExpression( this.expr,
+ object,
+ vars );
+ } catch ( Exception e ) {
+ handleException( this,
+ object,
+ e );
+ }
+ emit( object,
+ context );
+ }
+
+}
Copied: labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/MvelExpression.java (from rev 33978, labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/MvelExpression.java)
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/MvelExpression.java (rev 0)
+++ labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/MvelExpression.java 2010-07-17 04:01:02 UTC (rev 33982)
@@ -0,0 +1,46 @@
+package org.drools.runtime.pipeline.impl;
+
+import java.io.Serializable;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.drools.runtime.pipeline.Expression;
+import org.drools.runtime.pipeline.PipelineContext;
+import org.drools.runtime.pipeline.Receiver;
+import org.mvel2.MVEL;
+import org.mvel2.ParserContext;
+import org.mvel2.compiler.ExpressionCompiler;
+
+public class MvelExpression extends BaseEmitter
+ implements
+ Expression,
+ Receiver {
+ private Serializable expr;
+
+ public MvelExpression(String text) {
+ final ParserContext parserContext = new ParserContext();
+ parserContext.setStrictTypeEnforcement( false );
+
+ ExpressionCompiler compiler = new ExpressionCompiler( text );
+ this.expr = compiler.compile( parserContext );
+ }
+
+ public void receive(Object object,
+ PipelineContext context) {
+ Object result = null;
+ try {
+ Map<String, Object> vars = new HashMap<String, Object>(1);
+ vars.put( "context", context );
+ result = MVEL.executeExpression( this.expr,
+ object,
+ vars );
+ } catch ( Exception e ) {
+ handleException( this,
+ object,
+ e );
+ }
+ emit( result,
+ context );
+ }
+
+}
Copied: labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/PipelineContextFactory.java (from rev 33978, labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/PipelineContextFactory.java)
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/PipelineContextFactory.java (rev 0)
+++ labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/PipelineContextFactory.java 2010-07-17 04:01:02 UTC (rev 33982)
@@ -0,0 +1,7 @@
+package org.drools.runtime.pipeline.impl;
+
+import org.drools.runtime.pipeline.PipelineContext;
+
+public interface PipelineContextFactory {
+ PipelineContext newPipelineContext();
+}
Copied: labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/PipelineImpl.java (from rev 33978, labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/PipelineImpl.java)
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/PipelineImpl.java (rev 0)
+++ labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/PipelineImpl.java 2010-07-17 04:01:02 UTC (rev 33982)
@@ -0,0 +1,13 @@
+package org.drools.runtime.pipeline.impl;
+
+public class PipelineImpl extends BaseEmitter {
+ private PipelineContextFactory factory;
+
+ public PipelineImpl(PipelineContextFactory factory) {
+ this.factory = factory;
+ }
+
+ public void insert(Object object) {
+ emit( object, this.factory.newPipelineContext() );
+ }
+}
Copied: labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/ServiceManagerPipelineContextImpl.java (from rev 33978, labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/ServiceManagerPipelineContextImpl.java)
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/ServiceManagerPipelineContextImpl.java (rev 0)
+++ labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/ServiceManagerPipelineContextImpl.java 2010-07-17 04:01:02 UTC (rev 33982)
@@ -0,0 +1,44 @@
+package org.drools.runtime.pipeline.impl;
+
+import org.drools.runtime.CommandExecutor;
+import org.drools.runtime.StatelessKnowledgeSession;
+import org.drools.runtime.pipeline.ResultHandler;
+import org.drools.runtime.pipeline.StatelessKnowledgeSessionPipelineContext;
+import org.drools.vsm.ServiceManager;
+
+public class ServiceManagerPipelineContextImpl extends BasePipelineContext {
+
+ private ServiceManager serviceManager;
+
+ private CommandExecutor commandExecutor;
+
+ public ServiceManagerPipelineContextImpl(ServiceManager serviceManager,
+ ClassLoader classLoader) {
+ this( serviceManager,
+ classLoader,
+ null );
+ }
+
+ public ServiceManagerPipelineContextImpl(ServiceManager serviceManager,
+ ClassLoader classLoader,
+ ResultHandler resultHandler) {
+ super( classLoader,
+ resultHandler );
+ this.serviceManager = serviceManager;
+ }
+
+ public ServiceManager getServiceManager() {
+ return this.serviceManager;
+ }
+
+ public CommandExecutor getCommandExecutor() {
+ return this.commandExecutor;
+ }
+
+ public void setCommandExecutor(CommandExecutor commandExecutor) {
+ this.commandExecutor = commandExecutor;
+ }
+
+
+
+}
Copied: labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/ServiceManagerPipelineImpl.java (from rev 33978, labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/ServiceManagerPipelineImpl.java)
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/ServiceManagerPipelineImpl.java (rev 0)
+++ labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/ServiceManagerPipelineImpl.java 2010-07-17 04:01:02 UTC (rev 33982)
@@ -0,0 +1,32 @@
+package org.drools.runtime.pipeline.impl;
+
+import java.io.InputStream;
+import java.io.Reader;
+
+import org.drools.common.InternalRuleBase;
+import org.drools.impl.KnowledgeBaseImpl;
+import org.drools.io.Resource;
+import org.drools.runtime.StatefulKnowledgeSession;
+import org.drools.runtime.pipeline.Pipeline;
+import org.drools.runtime.pipeline.ResultHandler;
+import org.drools.runtime.rule.WorkingMemoryEntryPoint;
+import org.drools.vsm.ServiceManager;
+
+
+public class ServiceManagerPipelineImpl extends BaseEmitter
+ implements
+ Pipeline {
+ private ServiceManager sm;
+
+ public ServiceManagerPipelineImpl(ServiceManager sm) {
+ this.sm = sm;
+ }
+
+ public synchronized void insert(Object object,
+ ResultHandler resultHandler) {
+ emit( object,
+ new ServiceManagerPipelineContextImpl(this.sm, null, resultHandler ) );
+
+ }
+
+}
Copied: labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionGetGlobalStage.java (from rev 33978, labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionGetGlobalStage.java)
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionGetGlobalStage.java (rev 0)
+++ labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionGetGlobalStage.java 2010-07-17 04:01:02 UTC (rev 33982)
@@ -0,0 +1,29 @@
+package org.drools.runtime.pipeline.impl;
+
+import java.util.Map;
+import java.util.Map.Entry;
+
+import org.drools.runtime.StatefulKnowledgeSession;
+import org.drools.runtime.pipeline.KnowledgeRuntimeCommand;
+import org.drools.runtime.pipeline.PipelineContext;
+import org.drools.runtime.pipeline.Receiver;
+import org.drools.runtime.pipeline.StatefulKnowledgeSessionPipelineContext;
+
+public class StatefulKnowledgeSessionGetGlobalStage extends BaseEmitter
+ implements
+ KnowledgeRuntimeCommand {
+
+ public StatefulKnowledgeSessionGetGlobalStage() {
+ }
+
+ public void receive(Object object,
+ PipelineContext context) {
+ StatefulKnowledgeSessionPipelineContext kContext = (StatefulKnowledgeSessionPipelineContext) context;
+ StatefulKnowledgeSession ksession = kContext.getStatefulKnowledgeSession();
+ Object result = ksession.getGlobal( (String) object );
+
+ emit( result,
+ kContext );
+ }
+
+}
Copied: labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionGetObjectStage.java (from rev 33978, labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionGetObjectStage.java)
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionGetObjectStage.java (rev 0)
+++ labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionGetObjectStage.java 2010-07-17 04:01:02 UTC (rev 33982)
@@ -0,0 +1,32 @@
+package org.drools.runtime.pipeline.impl;
+
+import java.util.Map;
+import java.util.Map.Entry;
+
+import org.drools.runtime.StatefulKnowledgeSession;
+import org.drools.runtime.pipeline.KnowledgeRuntimeCommand;
+import org.drools.runtime.pipeline.PipelineContext;
+import org.drools.runtime.pipeline.Receiver;
+import org.drools.runtime.pipeline.StatefulKnowledgeSessionPipelineContext;
+import org.drools.runtime.rule.FactHandle;
+
+public class StatefulKnowledgeSessionGetObjectStage extends BaseEmitter
+ implements
+ KnowledgeRuntimeCommand {
+
+ public StatefulKnowledgeSessionGetObjectStage() {
+ }
+
+ public void receive(Object object,
+ PipelineContext context) {
+ StatefulKnowledgeSessionPipelineContext kContext = (StatefulKnowledgeSessionPipelineContext) context;
+ StatefulKnowledgeSession ksession = kContext.getStatefulKnowledgeSession();
+ Object result = ksession.getObject( (FactHandle) object );
+
+ context.setResult( result );
+
+ emit( result,
+ kContext );
+ }
+
+}
Copied: labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionInsertStage.java (from rev 33978, labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionInsertStage.java)
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionInsertStage.java (rev 0)
+++ labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionInsertStage.java 2010-07-17 04:01:02 UTC (rev 33982)
@@ -0,0 +1,33 @@
+package org.drools.runtime.pipeline.impl;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.drools.common.InternalFactHandle;
+import org.drools.runtime.pipeline.KnowledgeRuntimeCommand;
+import org.drools.runtime.pipeline.PipelineContext;
+import org.drools.runtime.pipeline.Receiver;
+import org.drools.runtime.rule.FactHandle;
+
+public class StatefulKnowledgeSessionInsertStage extends BaseEmitter
+ implements
+ KnowledgeRuntimeCommand {
+
+ public void receive(Object object,
+ PipelineContext context) {
+ StatefulKnowledgeSessionPipelineContextImpl kContext = (StatefulKnowledgeSessionPipelineContextImpl) context;
+ FactHandle handle = kContext.getEntryPoint().insert( object );
+ Map<FactHandle, Object> handles = (Map<FactHandle, Object>)kContext.getResult();
+ if ( handles == null ) {
+ handles = new HashMap<FactHandle, Object>();
+ kContext.setResult( handles );
+ }
+
+ handles.put( handle,
+ ((InternalFactHandle) handle).getObject() );
+
+ emit( object,
+ kContext );
+ }
+
+}
Copied: labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionPipelineContextImpl.java (from rev 33978, labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionPipelineContextImpl.java)
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionPipelineContextImpl.java (rev 0)
+++ labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionPipelineContextImpl.java 2010-07-17 04:01:02 UTC (rev 33982)
@@ -0,0 +1,44 @@
+package org.drools.runtime.pipeline.impl;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.drools.runtime.CommandExecutor;
+import org.drools.runtime.StatefulKnowledgeSession;
+import org.drools.runtime.pipeline.ResultHandler;
+import org.drools.runtime.pipeline.StatefulKnowledgeSessionPipelineContext;
+import org.drools.runtime.rule.WorkingMemoryEntryPoint;
+
+public class StatefulKnowledgeSessionPipelineContextImpl extends BasePipelineContext
+ implements
+ StatefulKnowledgeSessionPipelineContext {
+ private StatefulKnowledgeSession ksession;
+ private WorkingMemoryEntryPoint entryPoint;
+
+ public StatefulKnowledgeSessionPipelineContextImpl(StatefulKnowledgeSession ksession,
+ WorkingMemoryEntryPoint entryPoint,
+ ResultHandler resultHandler,
+ ClassLoader classLoader) {
+ super( classLoader,
+ resultHandler );
+ this.ksession = ksession;
+ this.entryPoint = entryPoint;
+ }
+
+ public StatefulKnowledgeSession getStatefulKnowledgeSession() {
+ return this.ksession;
+ }
+
+ public WorkingMemoryEntryPoint getEntryPoint() {
+ return entryPoint;
+ }
+
+ public CommandExecutor getCommandExecutor() {
+ return this.ksession;
+ }
+
+
+
+
+}
Copied: labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionPipelineImpl.java (from rev 33978, labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionPipelineImpl.java)
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionPipelineImpl.java (rev 0)
+++ labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionPipelineImpl.java 2010-07-17 04:01:02 UTC (rev 33982)
@@ -0,0 +1,44 @@
+package org.drools.runtime.pipeline.impl;
+
+import org.drools.common.InternalRuleBase;
+import org.drools.impl.KnowledgeBaseImpl;
+import org.drools.impl.StatefulKnowledgeSessionImpl;
+import org.drools.runtime.StatefulKnowledgeSession;
+import org.drools.runtime.pipeline.Pipeline;
+import org.drools.runtime.pipeline.ResultHandler;
+import org.drools.runtime.rule.WorkingMemoryEntryPoint;
+
+public class StatefulKnowledgeSessionPipelineImpl extends BaseEmitter
+ implements
+ Pipeline {
+ private StatefulKnowledgeSession ksession;
+ private WorkingMemoryEntryPoint entryPoint;
+
+ public StatefulKnowledgeSessionPipelineImpl(StatefulKnowledgeSession ksession) {
+ this.ksession = ksession;
+ this.entryPoint = ksession;
+ }
+
+ public StatefulKnowledgeSessionPipelineImpl(StatefulKnowledgeSession ksession,
+ String entryPointName) {
+ this.ksession = ksession;
+ this.entryPoint = ksession.getWorkingMemoryEntryPoint( entryPointName );
+ }
+
+ public synchronized void insert(Object object,
+ ResultHandler resultHandler) {
+ ClassLoader cl = ((InternalRuleBase) (
+ (
+ (KnowledgeBaseImpl)
+ ((StatefulKnowledgeSession) this.ksession).getKnowledgeBase()
+ ).getRuleBase())).getRootClassLoader();
+
+ StatefulKnowledgeSessionPipelineContextImpl context = new StatefulKnowledgeSessionPipelineContextImpl( this.ksession,
+ this.entryPoint,
+ resultHandler,
+ cl );
+ emit( object,
+ context );
+ }
+
+}
Copied: labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionSetGlobalStage.java (from rev 33978, labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionSetGlobalStage.java)
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionSetGlobalStage.java (rev 0)
+++ labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionSetGlobalStage.java 2010-07-17 04:01:02 UTC (rev 33982)
@@ -0,0 +1,47 @@
+package org.drools.runtime.pipeline.impl;
+
+import java.util.Map;
+import java.util.Map.Entry;
+
+import org.drools.runtime.StatefulKnowledgeSession;
+import org.drools.runtime.pipeline.KnowledgeRuntimeCommand;
+import org.drools.runtime.pipeline.PipelineContext;
+import org.drools.runtime.pipeline.Receiver;
+import org.drools.runtime.pipeline.StatefulKnowledgeSessionPipelineContext;
+
+public class StatefulKnowledgeSessionSetGlobalStage extends BaseEmitter
+ implements
+ KnowledgeRuntimeCommand {
+ private String key;
+
+ public StatefulKnowledgeSessionSetGlobalStage() {
+
+ }
+
+ public StatefulKnowledgeSessionSetGlobalStage(String key) {
+ this.key = key;
+ }
+
+ public void receive(Object object,
+ PipelineContext context) {
+ StatefulKnowledgeSessionPipelineContext kContext = (StatefulKnowledgeSessionPipelineContext) context;
+ StatefulKnowledgeSession ksession = kContext.getStatefulKnowledgeSession();
+ if ( key == null ) {
+ if ( !(object instanceof Map) ) {
+ throw new IllegalArgumentException( "SetGlobalStage must either declare a key or be an instanceof a Map");
+ } else {
+ Map<String, Object> vars = ( Map<String, Object> ) object;
+ for ( Entry<String, Object> entry : vars.entrySet()) {
+ ksession.setGlobal( entry.getKey(), entry.getValue() );
+ }
+ }
+ } else {
+ ksession.setGlobal( this.key, object );
+ }
+
+
+ emit( object,
+ kContext );
+ }
+
+}
Copied: labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionSignalEventStage.java (from rev 33978, labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionSignalEventStage.java)
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionSignalEventStage.java (rev 0)
+++ labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionSignalEventStage.java 2010-07-17 04:01:02 UTC (rev 33982)
@@ -0,0 +1,41 @@
+package org.drools.runtime.pipeline.impl;
+
+import org.drools.runtime.pipeline.KnowledgeRuntimeCommand;
+import org.drools.runtime.pipeline.PipelineContext;
+import org.drools.runtime.pipeline.Receiver;
+import org.drools.runtime.pipeline.StatefulKnowledgeSessionPipelineContext;
+
+public class StatefulKnowledgeSessionSignalEventStage extends BaseEmitter
+ implements
+ KnowledgeRuntimeCommand {
+ private long id;
+ private String eventType;
+
+ public StatefulKnowledgeSessionSignalEventStage(String eventType) {
+ this.eventType = eventType;
+ this.id = -1;
+ }
+
+ public StatefulKnowledgeSessionSignalEventStage(String eventType,
+ long id) {
+ this.eventType = eventType;
+ this.id = id;
+ }
+
+ public void receive(Object object,
+ PipelineContext context) {
+ StatefulKnowledgeSessionPipelineContext kContext = (StatefulKnowledgeSessionPipelineContext) context;
+
+ if ( this.id != -1 ) {
+ kContext.getStatefulKnowledgeSession().getProcessInstance( this.id ).signalEvent( this.eventType,
+ object );
+ } else {
+ kContext.getStatefulKnowledgeSession().signalEvent( this.eventType,
+ object );
+ }
+
+ emit( object,
+ kContext );
+ }
+
+}
Copied: labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionStartProcessStage.java (from rev 33978, labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionStartProcessStage.java)
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionStartProcessStage.java (rev 0)
+++ labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionStartProcessStage.java 2010-07-17 04:01:02 UTC (rev 33982)
@@ -0,0 +1,29 @@
+package org.drools.runtime.pipeline.impl;
+
+import java.util.Map;
+
+import org.drools.runtime.pipeline.KnowledgeRuntimeCommand;
+import org.drools.runtime.pipeline.PipelineContext;
+import org.drools.runtime.pipeline.StatefulKnowledgeSessionPipelineContext;
+
+public class StatefulKnowledgeSessionStartProcessStage extends BaseEmitter
+ implements
+ KnowledgeRuntimeCommand {
+ private String id;
+
+ public StatefulKnowledgeSessionStartProcessStage(String id) {
+ this.id = id;
+ }
+
+ public void receive(Object object,
+ PipelineContext context) {
+ StatefulKnowledgeSessionPipelineContext kContext = (StatefulKnowledgeSessionPipelineContext) context;
+ long instanceId = kContext.getStatefulKnowledgeSession().startProcess( id,
+ (Map<String, Object>) object ).getId();
+ kContext.setResult( instanceId );
+
+ emit( object,
+ kContext );
+ }
+
+}
Copied: labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/StatelessKnowledgeSessionPipelineContextImpl.java (from rev 33978, labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatelessKnowledgeSessionPipelineContextImpl.java)
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/StatelessKnowledgeSessionPipelineContextImpl.java (rev 0)
+++ labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/StatelessKnowledgeSessionPipelineContextImpl.java 2010-07-17 04:01:02 UTC (rev 33982)
@@ -0,0 +1,37 @@
+package org.drools.runtime.pipeline.impl;
+
+import org.drools.runtime.CommandExecutor;
+import org.drools.runtime.StatelessKnowledgeSession;
+import org.drools.runtime.pipeline.ResultHandler;
+import org.drools.runtime.pipeline.StatelessKnowledgeSessionPipelineContext;
+
+public class StatelessKnowledgeSessionPipelineContextImpl extends BasePipelineContext
+ implements
+ StatelessKnowledgeSessionPipelineContext {
+
+ private StatelessKnowledgeSession ksession;
+
+ public StatelessKnowledgeSessionPipelineContextImpl(StatelessKnowledgeSession ksession,
+ ClassLoader classLoader) {
+ this( ksession,
+ classLoader,
+ null );
+ }
+
+ public StatelessKnowledgeSessionPipelineContextImpl(StatelessKnowledgeSession ksession,
+ ClassLoader classLoader,
+ ResultHandler resultHandler) {
+ super( classLoader,
+ resultHandler );
+ this.ksession = ksession;
+ }
+
+ public StatelessKnowledgeSession getStatelessKnowledgeSession() {
+ return this.ksession;
+ }
+
+ public CommandExecutor getCommandExecutor() {
+ return this.ksession;
+ }
+
+}
Copied: labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/StatelessKnowledgeSessionPipelineImpl.java (from rev 33978, labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatelessKnowledgeSessionPipelineImpl.java)
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/StatelessKnowledgeSessionPipelineImpl.java (rev 0)
+++ labs/jbossrules/trunk/drools-pipeline/src/main/java/org/drools/runtime/pipeline/impl/StatelessKnowledgeSessionPipelineImpl.java 2010-07-17 04:01:02 UTC (rev 33982)
@@ -0,0 +1,34 @@
+package org.drools.runtime.pipeline.impl;
+
+import org.drools.common.InternalRuleBase;
+import org.drools.impl.StatefulKnowledgeSessionImpl;
+import org.drools.impl.StatelessKnowledgeSessionImpl;
+import org.drools.runtime.StatefulKnowledgeSession;
+import org.drools.runtime.StatelessKnowledgeSession;
+import org.drools.runtime.pipeline.Pipeline;
+import org.drools.runtime.pipeline.Receiver;
+import org.drools.runtime.pipeline.ResultHandler;
+import org.drools.runtime.rule.WorkingMemoryEntryPoint;
+
+public class StatelessKnowledgeSessionPipelineImpl extends BaseEmitter
+ implements
+ Pipeline {
+ private StatelessKnowledgeSession ksession;
+
+ public StatelessKnowledgeSessionPipelineImpl(StatelessKnowledgeSession ksession) {
+ this.ksession = ksession;
+ }
+
+ public synchronized void insert(Object object,
+ ResultHandler resultHandler) {
+ ClassLoader cl = ((InternalRuleBase) ((StatelessKnowledgeSessionImpl) this.ksession).getRuleBase()).getRootClassLoader();
+
+ StatelessKnowledgeSessionPipelineContextImpl context = new StatelessKnowledgeSessionPipelineContextImpl( ksession,
+ cl,
+ resultHandler );
+
+ emit( object,
+ context );
+ }
+
+}
More information about the jboss-svn-commits
mailing list