[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