[jboss-svn-commits] JBL Code SVN: r24647 - in labs/jbossrules/trunk: drools-api/src/main/java/org/drools/runtime/pipeline and 13 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Jan 12 01:45:56 EST 2009


Author: mark.proctor at jboss.com
Date: 2009-01-12 01:45:55 -0500 (Mon, 12 Jan 2009)
New Revision: 24647

Added:
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Join.java
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/KnowledgeRuntimeCommand.java
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Pipeline.java
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/ServiceExceptionHandler.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/ListAdapter.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/AssignObjectAsResult.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/BaseService.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/ExecuteResultHandler.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/ListCollectJoin.java
Removed:
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Adapter.java
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/DataLoader.java
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Feeder.java
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Filter.java
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/ListAdapter.java
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/ResultHandlerContext.java
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Sender.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/ProcessRuntimeDataLoader.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/StatelessKnowledgeSessionDataLoader.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/WorkingMemoryDataLoader.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/impl/
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/Pipeline.java
Modified:
   labs/jbossrules/trunk/drools-api/.classpath
   labs/jbossrules/trunk/drools-api/pom.xml
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/CorePipelineProvider.java
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/PipelineFactory.java
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/ResultHandlerFactory.java
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Service.java
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Splitter.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/StatefulKnowledgeSessionPipelineTest.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/MockWorkingMemory.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/WorkingMemory.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/impl/StatefulKnowledgeSessionImpl.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/DataLoaderFactory.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/DataLoaderProvider.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/CorePipelineProviderImpl.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/IterateSplitter.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/ListAdapterImpl.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionGetGlobalStage.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionInsertStage.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionPipelineImpl.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionSetGlobalStage.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionSignalEventStage.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatelessKnowledgeSessionExecuteStage.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatelessKnowledgeSessionPipelineImpl.java
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/runtime/pipeline/impl/CallableTest.java
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/runtime/pipeline/impl/IterateSplitterTest.java
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/runtime/pipeline/impl/ListAdapterTest.java
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/runtime/pipeline/impl/MvelExpressionTest.java
   labs/jbossrules/trunk/drools-pipeline/drools-transformer-jaxb/src/test/java/org/drools/runtime/pipeline/impl/DroolsJaxbTest.java
   labs/jbossrules/trunk/drools-pipeline/drools-transformer-jxls/src/test/java/org/drools/runtime/pipeline/impl/JxlsTest.java
   labs/jbossrules/trunk/drools-pipeline/drools-transformer-smooks/src/test/java/org/drools/runtime/pipeline/impl/DroolsSmookStatefulSessionTest.java
   labs/jbossrules/trunk/drools-pipeline/drools-transformer-smooks/src/test/java/org/drools/runtime/pipeline/impl/DroolsSmookStatelessSessionTest.java
   labs/jbossrules/trunk/drools-pipeline/drools-transformer-xstream/src/test/java/org/drools/runtime/pipeline/impl/DroolsXStreamStatefulSessionTest.java
   labs/jbossrules/trunk/drools-pipeline/drools-transformer-xstream/src/test/java/org/drools/runtime/pipeline/impl/DroolsXStreamStatelessSessionTest.java
Log:
JBRULES-1903 Pipeline support for DataLoaders and Feeders 
-Refactored all transformation examples to use the pipelines, as dataloaders no longer exist


Modified: labs/jbossrules/trunk/drools-api/.classpath
===================================================================
--- labs/jbossrules/trunk/drools-api/.classpath	2009-01-12 06:39:26 UTC (rev 24646)
+++ labs/jbossrules/trunk/drools-api/.classpath	2009-01-12 06:45:55 UTC (rev 24647)
@@ -19,6 +19,7 @@
   <classpathentry kind="var" path="M2_REPO/com/sun/xml/bind/jaxb-impl/2.0.3/jaxb-impl-2.0.3.jar"/>
   <classpathentry kind="var" path="M2_REPO/com/sun/xml/bind/jaxb-xjc/2.0.3/jaxb-xjc-2.0.3.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/jmock/jmock/2.5.0.1/jmock-2.5.0.1.jar"/>
+  <classpathentry kind="var" path="M2_REPO/javax/jms/jms/1.1/jms-1.1.jar"/>
   <classpathentry kind="var" path="M2_REPO/javax/xml/bind/jsr173_api/1.0/jsr173_api-1.0.jar"/>
   <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
   <classpathentry kind="var" path="M2_REPO/net/sf/jxls/jxls-reader/0.9.6/jxls-reader-0.9.6.jar"/>

Modified: labs/jbossrules/trunk/drools-api/pom.xml
===================================================================
--- labs/jbossrules/trunk/drools-api/pom.xml	2009-01-12 06:39:26 UTC (rev 24646)
+++ labs/jbossrules/trunk/drools-api/pom.xml	2009-01-12 06:45:55 UTC (rev 24647)
@@ -45,7 +45,14 @@
 	      <groupId>com.thoughtworks.xstream</groupId>
 	      <artifactId>xstream</artifactId>
 	      <scope>provided</scope>
-	    </dependency>          
+	    </dependency>     
+	    
+        <dependency>
+		  <groupId>jms</groupId>
+		  <artifactId>jms</artifactId>
+		  <version>1.1</version>
+          <scope>provided</scope>
+        </dependency>  	         
         
   </dependencies>
   

Deleted: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Adapter.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Adapter.java	2009-01-12 06:39:26 UTC (rev 24646)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Adapter.java	2009-01-12 06:45:55 UTC (rev 24647)
@@ -1,4 +0,0 @@
-package org.drools.runtime.pipeline;
-
-public interface Adapter extends Receiver, Stage {
-}

Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/CorePipelineProvider.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/CorePipelineProvider.java	2009-01-12 06:39:26 UTC (rev 24646)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/CorePipelineProvider.java	2009-01-12 06:45:55 UTC (rev 24647)
@@ -1,19 +1,43 @@
 package org.drools.runtime.pipeline;
 
-import java.util.List;
+import org.drools.runtime.StatefulKnowledgeSession;
+import org.drools.runtime.StatelessKnowledgeSession;
 
 public interface CorePipelineProvider {
-    public Expression newMvelExpression(String expression);
-    
-    public Action newMvelAction(String action);
 
-    public Splitter newIterateSplitter();
+    Pipeline newStatefulKnowledgeSessionPipeline(StatefulKnowledgeSession ksession);
 
-    public Adapter newEntryPointReceiverAdapter();
+    Pipeline newStatefulKnowledgeSessionPipeline(StatefulKnowledgeSession ksession,
+                                                String entryPointName);
 
-    public Adapter newStatelessKnowledgeSessionReceiverAdapter();
+    Pipeline newStatelessKnowledgeSessionPipelineImpl(StatelessKnowledgeSession ksession);
+
+    KnowledgeRuntimeCommand newStatefulKnowledgeSessionInsert();
+
+    KnowledgeRuntimeCommand newStatelessKnowledgeSessionExecute();
+
+    KnowledgeRuntimeCommand newStatefulKnowledgeSessionGetGlobal();
+
+    KnowledgeRuntimeCommand newStatefulKnowledgeSessionSetGlobal();
+
+    KnowledgeRuntimeCommand newStatefulKnowledgeSessionSetGlobal(String identifier);
+
+    KnowledgeRuntimeCommand newStatefulKnowledgeSessionSignalEvent(String eventType);
+
+    KnowledgeRuntimeCommand newStatefulKnowledgeSessionSignalEvent(String eventType,
+                                                        long id);
+
+    KnowledgeRuntimeCommand newStatefulKnowledgeSessionStartProcess(String eventType);
     
-    public ListAdapter newListAdapter(List<Object> list, boolean syncAccessors); 
+    Action newAssignObjectAsResult();
     
-    public Callable newCallable();
+    Action newExecuteResultHandler();
+
+    Action newMvelAction(String action);
+    
+    Expression newMvelExpression(String expression);
+
+    Splitter newIterateSplitter();
+    
+    Join newListCollectJoin();
 }

Deleted: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/DataLoader.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/DataLoader.java	2009-01-12 06:39:26 UTC (rev 24646)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/DataLoader.java	2009-01-12 06:45:55 UTC (rev 24647)
@@ -1,5 +0,0 @@
-package org.drools.runtime.pipeline;
-
-public interface DataLoader extends Emitter, Stage {
-
-}

Deleted: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Feeder.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Feeder.java	2009-01-12 06:39:26 UTC (rev 24646)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Feeder.java	2009-01-12 06:45:55 UTC (rev 24647)
@@ -1,5 +0,0 @@
-package org.drools.runtime.pipeline;
-
-public interface Feeder extends Emitter, Stage {
-
-}

Deleted: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Filter.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Filter.java	2009-01-12 06:39:26 UTC (rev 24646)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Filter.java	2009-01-12 06:45:55 UTC (rev 24647)
@@ -1,5 +0,0 @@
-package org.drools.runtime.pipeline;
-
-public interface Filter extends Emitter, Receiver, Stage {
-
-}

Added: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Join.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Join.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Join.java	2009-01-12 06:45:55 UTC (rev 24647)
@@ -0,0 +1,5 @@
+package org.drools.runtime.pipeline;
+
+public interface Join extends Emitter, Receiver, Stage {
+    void completed(PipelineContext context);
+}

Added: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/KnowledgeRuntimeCommand.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/KnowledgeRuntimeCommand.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/KnowledgeRuntimeCommand.java	2009-01-12 06:45:55 UTC (rev 24647)
@@ -0,0 +1,5 @@
+package org.drools.runtime.pipeline;
+
+public interface KnowledgeRuntimeCommand extends Stage, Emitter, Receiver {
+
+}

Deleted: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/ListAdapter.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/ListAdapter.java	2009-01-12 06:39:26 UTC (rev 24646)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/ListAdapter.java	2009-01-12 06:45:55 UTC (rev 24647)
@@ -1,11 +0,0 @@
-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-api/src/main/java/org/drools/runtime/pipeline/Pipeline.java (from rev 24643, labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/Pipeline.java)
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Pipeline.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Pipeline.java	2009-01-12 06:45:55 UTC (rev 24647)
@@ -0,0 +1,6 @@
+package org.drools.runtime.pipeline;
+
+
+public interface Pipeline extends Stage, Emitter{
+    void insert(Object object, ResultHandler resultHandler);
+}


Property changes on: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Pipeline.java
___________________________________________________________________
Name: svn:mergeinfo
   + 

Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/PipelineFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/PipelineFactory.java	2009-01-12 06:39:26 UTC (rev 24646)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/PipelineFactory.java	2009-01-12 06:45:55 UTC (rev 24647)
@@ -7,68 +7,116 @@
 import net.sf.jxls.reader.XLSReader;
 
 import org.drools.ProviderInitializationException;
+import org.drools.runtime.StatefulKnowledgeSession;
+import org.drools.runtime.StatelessKnowledgeSession;
 import org.milyn.Smooks;
 
 import com.thoughtworks.xstream.XStream;
 
 public class PipelineFactory {
 
-    private static CorePipelineProvider   corePipelineProvider;
+    private static CorePipelineProvider       corePipelineProvider;
 
-    private static JaxbTransformerProvider   jaxbPipelineProvider;
+    private static JaxbTransformerProvider    jaxbPipelineProvider;
 
-    private static SmooksTransformerProvider smooksPipelineProvider;
-    
+    private static SmooksTransformerProvider  smooksPipelineProvider;
+
     private static XStreamTransformerProvider xstreamPipelineProvider;
 
-    private static JxlsTransformerProvider jxlsPipelineProvider;
-    
-    public static Transformer newSmooksTransformer(Smooks smooks,
-                                                   String rootId) {
-        return getSmooksPipelineProvider().newSmooksTransformer( smooks,
-                                                                 rootId );
+    private static JxlsTransformerProvider    jxlsPipelineProvider;
+
+    public static Pipeline newStatefulKnowledgeSessionPipeline(StatefulKnowledgeSession ksession) {
+        return getCorePipelineProvider().newStatefulKnowledgeSessionPipeline( ksession );
     }
 
-    public static Transformer newJaxbTransformer(Unmarshaller unmarshaller) {
-        return getJaxbPipelineProvider().newJaxbTransformer( unmarshaller );
+    public static Pipeline newStatefulKnowledgeSessionPipeline(StatefulKnowledgeSession ksession,
+                                                               String entryPointName) {
+        return getCorePipelineProvider().newStatefulKnowledgeSessionPipeline( ksession,
+                                                                              entryPointName );
     }
-    
-    public static Transformer newXStreamTransformer(XStream xstream) {
-    	 return getXStreamTransformerProvider().newXStreamTransformer( xstream );
+
+    public static Pipeline newStatelessKnowledgeSessionPipeline(StatelessKnowledgeSession ksession) {
+        return getCorePipelineProvider().newStatelessKnowledgeSessionPipelineImpl( ksession );
     }
-    
-    public static Transformer newJxlsTransformer(XLSReader xlsReader, String text) {
-        return getJxlsTransformerProvider().newJxlsTransformer( xlsReader, text );
+
+    public static KnowledgeRuntimeCommand newStatefulKnowledgeSessionInsert() {
+        return getCorePipelineProvider().newStatefulKnowledgeSessionInsert();
     }
 
-    public static Expression newMvelExpression(String expression) {
-        return getCorePipelineProvider().newMvelExpression( expression );
+    public static KnowledgeRuntimeCommand newStatelessKnowledgeSessionExecute() {
+        return getCorePipelineProvider().newStatelessKnowledgeSessionExecute();
     }
+
+    public static KnowledgeRuntimeCommand newStatefulKnowledgeSessionGetGlobal() {
+        return getCorePipelineProvider().newStatefulKnowledgeSessionGetGlobal();
+    }
+
+    public static KnowledgeRuntimeCommand newStatefulKnowledgeSessionSetGlobal() {
+        return getCorePipelineProvider().newStatefulKnowledgeSessionSetGlobal();
+    }
+
+    KnowledgeRuntimeCommand newStatefulKnowledgeSessionSetGlobal(String identifier) {
+        return getCorePipelineProvider().newStatefulKnowledgeSessionSetGlobal( identifier );
+    }
+
+    public static KnowledgeRuntimeCommand newStatefulKnowledgeSessionSignalEvent(String eventType) {
+        return getCorePipelineProvider().newStatefulKnowledgeSessionSignalEvent( eventType );
+    }
+
+    public static KnowledgeRuntimeCommand newStatefulKnowledgeSessionSignalEvent(String eventType,
+                                                                                 long id) {
+        return getCorePipelineProvider().newStatefulKnowledgeSessionSignalEvent( eventType,
+                                                                                 id );
+    }
+
+    public static KnowledgeRuntimeCommand newStatefulKnowledgeSessionStartProcess(String eventType) {
+        return getCorePipelineProvider().newStatefulKnowledgeSessionStartProcess( eventType );
+    }
     
+    public static Action newAssignObjectAsResult() {
+        return getCorePipelineProvider().newAssignObjectAsResult();
+    }
+    
+    public static Action newExecuteResultHandler() {
+        return getCorePipelineProvider().newExecuteResultHandler();
+    }
+    
     public static Action newMvelAction(String action) {
         return getCorePipelineProvider().newMvelAction( action );
     }    
 
+    public static Expression newMvelExpression(String expression) {
+        return getCorePipelineProvider().newMvelExpression( expression );
+    }
+
     public static Splitter newIterateSplitter() {
         return getCorePipelineProvider().newIterateSplitter();
-    }
+    }    
     
-    public static ListAdapter newListAdapter(List list, boolean syncAccessor) {
-        return getCorePipelineProvider().newListAdapter(list, syncAccessor);
+    public static Join newListCollectJoin() {
+        return getCorePipelineProvider().newListCollectJoin();
     }
-    
-    public static Callable newCallable() {
-        return getCorePipelineProvider().newCallable();
-    }    
 
-    public static Adapter newEntryPointReceiverAdapter() {
-        return getCorePipelineProvider().newEntryPointReceiverAdapter();
+    public static Transformer newSmooksTransformer(Smooks smooks,
+                                                   String rootId) {
+        return getSmooksPipelineProvider().newSmooksTransformer( smooks,
+                                                                 rootId );
     }
 
-    public static Adapter newStatelessKnowledgeSessionReceiverAdapter() {
-        return getCorePipelineProvider().newStatelessKnowledgeSessionReceiverAdapter();
+    public static Transformer newJaxbTransformer(Unmarshaller unmarshaller) {
+        return getJaxbPipelineProvider().newJaxbTransformer( unmarshaller );
     }
-    
+
+    public static Transformer newXStreamTransformer(XStream xstream) {
+        return getXStreamTransformerProvider().newXStreamTransformer( xstream );
+    }
+
+    public static Transformer newJxlsTransformer(XLSReader xlsReader,
+                                                 String text) {
+        return getJxlsTransformerProvider().newJxlsTransformer( xlsReader,
+                                                                text );
+    }
+
     private static synchronized void setCorePipelineProvider(CorePipelineProvider provider) {
         PipelineFactory.corePipelineProvider = provider;
     }
@@ -88,8 +136,8 @@
             throw new ProviderInitializationException( "org.drools.runtime.pipeline.impl.CorePipelineProviderImpl could not be set.",
                                                        e2 );
         }
-    }   
-    
+    }
+
     private static synchronized void setJaxbTransformerProvider(JaxbTransformerProvider provider) {
         PipelineFactory.jaxbPipelineProvider = provider;
     }
@@ -109,8 +157,8 @@
             throw new ProviderInitializationException( "Provider org.drools.runtime.pipeline.impl.JaxbTransformer$JaxbTransformerProviderImpl could not be set.",
                                                        e2 );
         }
-    } 
-    
+    }
+
     private static synchronized void setSmooksTransformerProvider(SmooksTransformerProvider provider) {
         PipelineFactory.smooksPipelineProvider = provider;
     }
@@ -121,7 +169,7 @@
         }
         return smooksPipelineProvider;
     }
-    
+
     private static void loadSmooksTransformerProvider() {
         try {
             Class<SmooksTransformerProvider> cls = (Class<SmooksTransformerProvider>) Class.forName( "org.drools.runtime.pipeline.impl.SmooksTransformer$SmooksTransformerProviderImpl" );
@@ -130,8 +178,8 @@
             throw new ProviderInitializationException( "Provider org.drools.runtime.pipeline.impl.SmooksTransformer$SmooksTransformerProviderImpl could not be set.",
                                                        e2 );
         }
-    }      
-    
+    }
+
     private static synchronized void setXStreamTransformerProvider(XStreamTransformerProvider provider) {
         PipelineFactory.xstreamPipelineProvider = provider;
     }
@@ -151,8 +199,8 @@
             throw new ProviderInitializationException( "Provider org.drools.runtime.pipeline.impl.XStreamTransformer$XStreamTransformerProviderImpl could not be set.",
                                                        e2 );
         }
-    }   
-    
+    }
+
     private static synchronized void setJxlsTransformerProvider(JxlsTransformerProvider provider) {
         PipelineFactory.jxlsPipelineProvider = provider;
     }
@@ -172,6 +220,6 @@
             throw new ProviderInitializationException( "Provider org.drools.runtime.pipeline.impl.JxlsTransformer$JxlsTransformerProviderImpl could not be set.",
                                                        e2 );
         }
-    }    
+    }
 
 }

Deleted: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/ResultHandlerContext.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/ResultHandlerContext.java	2009-01-12 06:39:26 UTC (rev 24646)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/ResultHandlerContext.java	2009-01-12 06:45:55 UTC (rev 24647)
@@ -1,5 +0,0 @@
-package org.drools.runtime.pipeline;
-
-public interface ResultHandlerContext {
-
-}

Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/ResultHandlerFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/ResultHandlerFactory.java	2009-01-12 06:39:26 UTC (rev 24646)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/ResultHandlerFactory.java	2009-01-12 06:45:55 UTC (rev 24647)
@@ -1,5 +1,5 @@
 package org.drools.runtime.pipeline;
 
 public interface ResultHandlerFactory {    
-    ResultHandler newResult(ResultHandlerContext context);
+    ResultHandler newResultHandler();
 }

Deleted: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Sender.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Sender.java	2009-01-12 06:39:26 UTC (rev 24646)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Sender.java	2009-01-12 06:45:55 UTC (rev 24647)
@@ -1,5 +0,0 @@
-package org.drools.runtime.pipeline;
-
-public interface Sender extends Receiver, Stage {
-
-}

Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Service.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Service.java	2009-01-12 06:39:26 UTC (rev 24646)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Service.java	2009-01-12 06:45:55 UTC (rev 24647)
@@ -3,4 +3,11 @@
 public interface Service {
     void start();
     void stop();
+    
+    void setServiceExceptionHandler(ServiceExceptionHandler exceptionHandler);
+
+    void handleException(Service service,
+                         Object object,
+                         Exception exception);
+    
 }

Added: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/ServiceExceptionHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/ServiceExceptionHandler.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/ServiceExceptionHandler.java	2009-01-12 06:45:55 UTC (rev 24647)
@@ -0,0 +1,5 @@
+package org.drools.runtime.pipeline;
+
+public interface ServiceExceptionHandler {
+    public void handleException(Service service, Object object, Exception exception);
+}

Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Splitter.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Splitter.java	2009-01-12 06:39:26 UTC (rev 24646)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Splitter.java	2009-01-12 06:45:55 UTC (rev 24647)
@@ -1,5 +1,5 @@
 package org.drools.runtime.pipeline;
 
 public interface Splitter  extends Emitter, Receiver, Stage {
-
+    void setJoin(Join join);
 }

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/StatefulKnowledgeSessionPipelineTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/StatefulKnowledgeSessionPipelineTest.java	2009-01-12 06:39:26 UTC (rev 24646)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/StatefulKnowledgeSessionPipelineTest.java	2009-01-12 06:45:55 UTC (rev 24647)
@@ -30,7 +30,12 @@
 import org.drools.rule.Package;
 import org.drools.runtime.ObjectFilter;
 import org.drools.runtime.StatefulKnowledgeSession;
+import org.drools.runtime.pipeline.KnowledgeRuntimeCommand;
+import org.drools.runtime.pipeline.Pipeline;
+import org.drools.runtime.pipeline.PipelineFactory;
 import org.drools.runtime.pipeline.ResultHandler;
+import org.drools.runtime.pipeline.Stage;
+import org.drools.runtime.pipeline.impl.ExecuteResultHandler;
 import org.drools.runtime.pipeline.impl.MvelAction;
 import org.drools.runtime.pipeline.impl.StatefulKnowledgeSessionPipelineImpl;
 import org.drools.runtime.pipeline.impl.StatefulKnowledgeSessionInsertStage;
@@ -45,12 +50,12 @@
         KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
         StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
         
-        StatefulKnowledgeSessionInsertStage stage1 = new StatefulKnowledgeSessionInsertStage();
-        MvelAction mvelAction = new MvelAction( "context.resultHandler.handleResult( context.handles )");
-        stage1.setReceiver( mvelAction );
+        KnowledgeRuntimeCommand insertStage = PipelineFactory.newStatefulKnowledgeSessionInsert();
+        ExecuteResultHandler resultHandlerStage = new ExecuteResultHandler();
+        insertStage.setReceiver( resultHandlerStage );
         
-        StatefulKnowledgeSessionPipelineImpl pipeline = new StatefulKnowledgeSessionPipelineImpl(ksession);
-        pipeline.setReceiver( stage1 );
+        Pipeline pipeline = PipelineFactory.newStatefulKnowledgeSessionPipeline(ksession);
+        pipeline.setReceiver( insertStage );
         
         assertEquals( 0, ksession.getObjects().size() );
         

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/MockWorkingMemory.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/MockWorkingMemory.java	2009-01-12 06:39:26 UTC (rev 24646)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/MockWorkingMemory.java	2009-01-12 06:45:55 UTC (rev 24647)
@@ -303,7 +303,7 @@
         return null;
     }
 
-    public Object getObject(FactHandle handle) {
+    public Object getObject(org.drools.runtime.rule.FactHandle handle) {
         // TODO Auto-generated method stub
         return null;
     }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/WorkingMemory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/WorkingMemory.java	2009-01-12 06:39:26 UTC (rev 24646)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/WorkingMemory.java	2009-01-12 06:45:55 UTC (rev 24647)
@@ -132,7 +132,7 @@
      *
      * @return The associated object.
      */
-    Object getObject(FactHandle handle);
+    Object getObject(org.drools.runtime.rule.FactHandle handle);
 
     /**
      * Retrieve the <code>FactHandle</code> associated with an Object.

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java	2009-01-12 06:39:26 UTC (rev 24646)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java	2009-01-12 06:45:55 UTC (rev 24647)
@@ -673,7 +673,7 @@
      *            <code>Object</code> lookup
      * 
      */
-    public Object getObject(final FactHandle handle) {
+    public Object getObject(final org.drools.runtime.rule.FactHandle handle) {
         return this.objectStore.getObjectForHandle( (InternalFactHandle) handle );
     }
 

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/impl/StatefulKnowledgeSessionImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/impl/StatefulKnowledgeSessionImpl.java	2009-01-12 06:39:26 UTC (rev 24646)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/impl/StatefulKnowledgeSessionImpl.java	2009-01-12 06:45:55 UTC (rev 24647)
@@ -201,6 +201,10 @@
     public FactHandle getFactHandle(Object object) {
         return this.session.getFactHandle( object );
     }
+    
+    public Object getObject(FactHandle factHandle) {
+        return this.session.getObject( factHandle );
+    }
 
     public ProcessInstance getProcessInstance(long id) {
         return this.session.getProcessInstance( id );

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/DataLoaderFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/DataLoaderFactory.java	2009-01-12 06:39:26 UTC (rev 24646)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/DataLoaderFactory.java	2009-01-12 06:45:55 UTC (rev 24647)
@@ -6,42 +6,42 @@
 import org.drools.runtime.pipeline.Receiver;
 
 public class DataLoaderFactory {
-    private static volatile DataLoaderProvider provider;
-
-    public static WorkingMemoryDataLoader newStatefulRuleSessionDataLoader(StatefulKnowledgeSession ksession,
-                                                                                           Receiver pipeline) {
-        return getDataLoaderProvider().newStatefulRuleSessionDataLoader( ksession, pipeline );
-    }
-    
-    public static WorkingMemoryDataLoader newStatefulRuleSessionDataLoader(StatefulKnowledgeSession ksession,
-                                                                                           String entryPointName,
-                                                                                           Receiver pipeline) {
-        return getDataLoaderProvider().newStatefulKnowledgeSessionDataLoader( ksession, entryPointName, pipeline );
-    }    
-
-    public static StatelessKnowledgeSessionDataLoader newStatelessKnowledgeSessionDataLoader(StatelessKnowledgeSession ksession,
-                                                                                             Receiver pipeline) {
-        return getDataLoaderProvider().newStatelessKnowledgeSessionDataLoader( ksession, pipeline );
-    }
-    
-    private static synchronized void setDataLoaderProvider(DataLoaderProvider provider) {
-        DataLoaderFactory.provider = provider;
-    }
-
-    private static synchronized DataLoaderProvider getDataLoaderProvider() {
-        if ( provider == null ) {
-            loadProvider();
-        }
-        return DataLoaderFactory.provider;
-    }
-
-    private static void loadProvider() {
-        try {
-            Class<DataLoaderProvider> cls = (Class<DataLoaderProvider>) Class.forName( "org.drools.runtime.dataloader.impl.DataLoaderProviderImpl" );
-            setDataLoaderProvider( cls.newInstance() );
-        } catch ( Exception e2 ) {
-            throw new ProviderInitializationException( "Provider org.drools.runtime.dataloader.impl.DataLoaderProviderImpl could not be set.",
-                                                       e2 );
-        }
-    }    
+//    private static volatile DataLoaderProvider provider;
+//
+//    public static WorkingMemoryDataLoader newStatefulRuleSessionDataLoader(StatefulKnowledgeSession ksession,
+//                                                                                           Receiver pipeline) {
+//        return getDataLoaderProvider().newStatefulRuleSessionDataLoader( ksession, pipeline );
+//    }
+//    
+//    public static WorkingMemoryDataLoader newStatefulRuleSessionDataLoader(StatefulKnowledgeSession ksession,
+//                                                                                           String entryPointName,
+//                                                                                           Receiver pipeline) {
+//        return getDataLoaderProvider().newStatefulKnowledgeSessionDataLoader( ksession, entryPointName, pipeline );
+//    }    
+//
+//    public static StatelessKnowledgeSessionDataLoader newStatelessKnowledgeSessionDataLoader(StatelessKnowledgeSession ksession,
+//                                                                                             Receiver pipeline) {
+//        return getDataLoaderProvider().newStatelessKnowledgeSessionDataLoader( ksession, pipeline );
+//    }
+//    
+//    private static synchronized void setDataLoaderProvider(DataLoaderProvider provider) {
+//        DataLoaderFactory.provider = provider;
+//    }
+//
+//    private static synchronized DataLoaderProvider getDataLoaderProvider() {
+//        if ( provider == null ) {
+//            loadProvider();
+//        }
+//        return DataLoaderFactory.provider;
+//    }
+//
+//    private static void loadProvider() {
+//        try {
+//            Class<DataLoaderProvider> cls = (Class<DataLoaderProvider>) Class.forName( "org.drools.runtime.dataloader.impl.DataLoaderProviderImpl" );
+//            setDataLoaderProvider( cls.newInstance() );
+//        } catch ( Exception e2 ) {
+//            throw new ProviderInitializationException( "Provider org.drools.runtime.dataloader.impl.DataLoaderProviderImpl could not be set.",
+//                                                       e2 );
+//        }
+//    }    
 }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/DataLoaderProvider.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/DataLoaderProvider.java	2009-01-12 06:39:26 UTC (rev 24646)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/DataLoaderProvider.java	2009-01-12 06:45:55 UTC (rev 24647)
@@ -5,13 +5,13 @@
 import org.drools.runtime.pipeline.Receiver;
 
 public interface DataLoaderProvider {
-    WorkingMemoryDataLoader newStatefulRuleSessionDataLoader(StatefulKnowledgeSession ksession,
-                                                                             Receiver pipeline);
-
-    WorkingMemoryDataLoader newStatefulKnowledgeSessionDataLoader(StatefulKnowledgeSession ksession,
-                                                                             String entryPointName,
-                                                                             Receiver pipeline);
-    
-    StatelessKnowledgeSessionDataLoader newStatelessKnowledgeSessionDataLoader(StatelessKnowledgeSession ksession,
-                                                                               Receiver pipeline);
+//    WorkingMemoryDataLoader newStatefulRuleSessionDataLoader(StatefulKnowledgeSession ksession,
+//                                                                             Receiver pipeline);
+//
+//    WorkingMemoryDataLoader newStatefulKnowledgeSessionDataLoader(StatefulKnowledgeSession ksession,
+//                                                                             String entryPointName,
+//                                                                             Receiver pipeline);
+//    
+//    StatelessKnowledgeSessionDataLoader newStatelessKnowledgeSessionDataLoader(StatelessKnowledgeSession ksession,
+//                                                                               Receiver pipeline);
 }

Deleted: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/ProcessRuntimeDataLoader.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/ProcessRuntimeDataLoader.java	2009-01-12 06:39:26 UTC (rev 24646)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/ProcessRuntimeDataLoader.java	2009-01-12 06:45:55 UTC (rev 24647)
@@ -1,8 +0,0 @@
-package org.drools.runtime.dataloader;
-
-import org.drools.runtime.process.ProcessInstance;
-
-public interface ProcessRuntimeDataLoader {
-    ProcessInstance startProcess(String processId,
-                                 Object parameters);
-}
\ No newline at end of file

Deleted: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/StatelessKnowledgeSessionDataLoader.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/StatelessKnowledgeSessionDataLoader.java	2009-01-12 06:39:26 UTC (rev 24646)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/StatelessKnowledgeSessionDataLoader.java	2009-01-12 06:45:55 UTC (rev 24647)
@@ -1,18 +0,0 @@
-package org.drools.runtime.dataloader;
-
-import org.drools.runtime.Parameters;
-import org.drools.runtime.StatelessKnowledgeSessionResults;
-
-public interface StatelessKnowledgeSessionDataLoader {
-
-    void executeObject(Object object);
-
-    void executeIterable(Object object);
-
-    StatelessKnowledgeSessionResults executeObjectWithParameters(Object object,
-                                                                 Parameters parameters);
-
-    StatelessKnowledgeSessionResults executeIterableWithParameters(Object object,
-                                                                   Parameters parameters);
-
-}
\ No newline at end of file

Deleted: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/WorkingMemoryDataLoader.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/WorkingMemoryDataLoader.java	2009-01-12 06:39:26 UTC (rev 24646)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/WorkingMemoryDataLoader.java	2009-01-12 06:45:55 UTC (rev 24647)
@@ -1,10 +0,0 @@
-package org.drools.runtime.dataloader;
-
-import java.util.Map;
-
-import org.drools.runtime.pipeline.Feeder;
-import org.drools.runtime.rule.FactHandle;
-
-public interface WorkingMemoryDataLoader {
-    Map<FactHandle, Object> insert(Object object);
-}
\ No newline at end of file

Copied: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/ListAdapter.java (from rev 24643, labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/ListAdapter.java)
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/ListAdapter.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/ListAdapter.java	2009-01-12 06:45:55 UTC (rev 24647)
@@ -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);
+    
+}


Property changes on: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/ListAdapter.java
___________________________________________________________________
Name: svn:mergeinfo
   + 

Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/AssignObjectAsResult.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/AssignObjectAsResult.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/AssignObjectAsResult.java	2009-01-12 06:45:55 UTC (rev 24647)
@@ -0,0 +1,23 @@
+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 receive(Object object,
+                        PipelineContext context) {
+        context.setResult( object );
+
+        emit( object,
+              context );
+    }
+
+}

Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/BaseService.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/BaseService.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/BaseService.java	2009-01-12 06:45:55 UTC (rev 24647)
@@ -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 );
+        }
+    }
+}

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/CorePipelineProviderImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/CorePipelineProviderImpl.java	2009-01-12 06:39:26 UTC (rev 24646)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/CorePipelineProviderImpl.java	2009-01-12 06:45:55 UTC (rev 24647)
@@ -2,46 +2,101 @@
 
 import java.util.List;
 
-import org.drools.runtime.dataloader.impl.EntryPointReceiverAdapter;
-import org.drools.runtime.dataloader.impl.StatelessKnowledgeSessionReceiverAdapter;
+import org.drools.runtime.StatefulKnowledgeSession;
+import org.drools.runtime.StatelessKnowledgeSession;
 import org.drools.runtime.pipeline.Action;
-import org.drools.runtime.pipeline.Adapter;
 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;
-import org.drools.runtime.pipeline.ListAdapter;
 
 public class CorePipelineProviderImpl
     implements
     CorePipelineProvider {
-    public Expression newMvelExpression(String expression) {
-        return new MvelExpression( expression );
+
+    public Pipeline newStatefulKnowledgeSessionPipeline(StatefulKnowledgeSession ksession) {
+        return new StatefulKnowledgeSessionPipelineImpl( ksession );
     }
+
+    public Pipeline newStatefulKnowledgeSessionPipeline(StatefulKnowledgeSession ksession,
+                                                        String entryPointName) {
+        return new StatefulKnowledgeSessionPipelineImpl( ksession,
+                                                         entryPointName );
+    }
+
+    public Pipeline newStatelessKnowledgeSessionPipelineImpl(StatelessKnowledgeSession ksession) {
+        return new StatelessKnowledgeSessionPipelineImpl( ksession );
+    }
+
+    public KnowledgeRuntimeCommand newStatefulKnowledgeSessionInsert() {
+        return new StatefulKnowledgeSessionInsertStage();
+    }
+
+    public KnowledgeRuntimeCommand newStatelessKnowledgeSessionExecute() {
+        return new StatelessKnowledgeSessionExecuteStage();
+    }
+
+    public KnowledgeRuntimeCommand newStatefulKnowledgeSessionGetGlobal() {
+        return new StatefulKnowledgeSessionGetGlobalStage();
+    }
+
+    public KnowledgeRuntimeCommand newStatefulKnowledgeSessionSetGlobal() {
+        return new StatefulKnowledgeSessionSetGlobalStage();
+    }
+
+    public KnowledgeRuntimeCommand newStatefulKnowledgeSessionSetGlobal(String identifier) {
+        return new StatefulKnowledgeSessionSetGlobalStage( identifier );
+    }
+
+    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 eventType) {
+        return new StatefulKnowledgeSessionSignalEventStage( eventType );
+    }
     
+    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 Adapter newEntryPointReceiverAdapter() {
-        return new EntryPointReceiverAdapter();
+    
+    public Join newListCollectJoin() {
+        return new ListCollectJoin();
     }
 
-    public Adapter newStatelessKnowledgeSessionReceiverAdapter() {
-        return new StatelessKnowledgeSessionReceiverAdapter();
-    }
-
     public ListAdapter newListAdapter(List<Object> list,
                                       boolean syncAccessors) {
         return new ListAdapterImpl( list,
                                     syncAccessors );
     }
-    
+
     public Callable newCallable() {
         return new CallableImpl();
-    }    
+    }
 }

Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/ExecuteResultHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/ExecuteResultHandler.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/ExecuteResultHandler.java	2009-01-12 06:45:55 UTC (rev 24647)
@@ -0,0 +1,26 @@
+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 ExecuteResultHandler extends BaseEmitter
+    implements
+    Action {
+
+    public void receive(Object object,
+                        PipelineContext context) {
+        context.getResultHandler().handleResult( context.getResult() );
+
+        try {
+            context.getResultHandler().handleResult( context.getResult() );
+        } catch ( Exception e ) {
+            handleException( this,
+                             object,
+                             e );
+        }
+        emit( object,
+              context );
+    }
+
+}

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/IterateSplitter.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/IterateSplitter.java	2009-01-12 06:39:26 UTC (rev 24646)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/IterateSplitter.java	2009-01-12 06:45:55 UTC (rev 24647)
@@ -1,11 +1,14 @@
 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) {
@@ -18,6 +21,14 @@
             emit( object,
                   context );
         }
+        
+        if ( this.join != null ) {
+            this.join.completed( context);
+        }
     }
 
+    public void setJoin(Join join) {
+        this.join = join;
+    }
+
 }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/ListAdapterImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/ListAdapterImpl.java	2009-01-12 06:39:26 UTC (rev 24646)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/ListAdapterImpl.java	2009-01-12 06:45:55 UTC (rev 24647)
@@ -8,17 +8,17 @@
 public class ListAdapterImpl extends BaseStage
     implements
     ListAdapter {
-    private List<Object> list;
+    private List list;
     private boolean      syncAccessor;
 
-    public ListAdapterImpl(List<Object> list,
+    public ListAdapterImpl(List list,
                            boolean syncAccessor) {
         super();
         this.list = list;
         this.syncAccessor = syncAccessor;
     }
 
-    public List<Object> getList() {
+    public List getList() {
         if ( this.syncAccessor ) {
             synchronized ( this ) {
                 return list;
@@ -28,7 +28,7 @@
         }
     }
 
-    public void setList(List<Object> list) {
+    public void setList(List list) {
         if ( this.syncAccessor ) {
             synchronized ( this ) {
                 this.list = list;

Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/ListCollectJoin.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/ListCollectJoin.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/ListCollectJoin.java	2009-01-12 06:45:55 UTC (rev 24647)
@@ -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);
+    }    
+}

Deleted: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/Pipeline.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/Pipeline.java	2009-01-12 06:39:26 UTC (rev 24646)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/Pipeline.java	2009-01-12 06:45:55 UTC (rev 24647)
@@ -1,7 +0,0 @@
-package org.drools.runtime.pipeline.impl;
-
-import org.drools.runtime.pipeline.ResultHandler;
-
-public interface Pipeline {
-    void insert(Object object, ResultHandler resultHandler);
-}

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionGetGlobalStage.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionGetGlobalStage.java	2009-01-12 06:39:26 UTC (rev 24646)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionGetGlobalStage.java	2009-01-12 06:45:55 UTC (rev 24647)
@@ -4,13 +4,14 @@
 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
-    Receiver {
+    KnowledgeRuntimeCommand {
 
     public StatefulKnowledgeSessionGetGlobalStage() {
     }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionInsertStage.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionInsertStage.java	2009-01-12 06:39:26 UTC (rev 24646)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionInsertStage.java	2009-01-12 06:45:55 UTC (rev 24647)
@@ -4,13 +4,14 @@
 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
-    Receiver {
+    KnowledgeRuntimeCommand {
 
     public void receive(Object object,
                         PipelineContext context) {

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionPipelineImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionPipelineImpl.java	2009-01-12 06:39:26 UTC (rev 24646)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionPipelineImpl.java	2009-01-12 06:45:55 UTC (rev 24647)
@@ -3,6 +3,7 @@
 import org.drools.common.InternalRuleBase;
 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;
 

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionSetGlobalStage.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionSetGlobalStage.java	2009-01-12 06:39:26 UTC (rev 24646)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionSetGlobalStage.java	2009-01-12 06:45:55 UTC (rev 24647)
@@ -4,13 +4,14 @@
 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
-    Receiver {
+    KnowledgeRuntimeCommand {
     private String key;
     
     public StatefulKnowledgeSessionSetGlobalStage() {

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionSignalEventStage.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionSignalEventStage.java	2009-01-12 06:39:26 UTC (rev 24646)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionSignalEventStage.java	2009-01-12 06:45:55 UTC (rev 24647)
@@ -1,12 +1,13 @@
 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
-    Receiver {
+    KnowledgeRuntimeCommand {
     private long   id;
     private String eventType;
 

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatelessKnowledgeSessionExecuteStage.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatelessKnowledgeSessionExecuteStage.java	2009-01-12 06:39:26 UTC (rev 24646)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatelessKnowledgeSessionExecuteStage.java	2009-01-12 06:45:55 UTC (rev 24647)
@@ -2,13 +2,14 @@
 
 import org.drools.impl.ParametersImpl;
 import org.drools.runtime.StatelessKnowledgeSessionResults;
+import org.drools.runtime.pipeline.KnowledgeRuntimeCommand;
 import org.drools.runtime.pipeline.PipelineContext;
 import org.drools.runtime.pipeline.Receiver;
 import org.drools.runtime.pipeline.StatelessKnowledgeSessionPipelineContext;
 
 public class StatelessKnowledgeSessionExecuteStage extends BaseEmitter
     implements
-    Receiver {
+    KnowledgeRuntimeCommand {
 
     public void receive(Object object,
                         PipelineContext context) {

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatelessKnowledgeSessionPipelineImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatelessKnowledgeSessionPipelineImpl.java	2009-01-12 06:39:26 UTC (rev 24646)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatelessKnowledgeSessionPipelineImpl.java	2009-01-12 06:45:55 UTC (rev 24647)
@@ -1,8 +1,11 @@
 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.dataloader.impl.EntryPointPipelineContext;
+import org.drools.runtime.pipeline.Pipeline;
 import org.drools.runtime.pipeline.Receiver;
 import org.drools.runtime.pipeline.ResultHandler;
 import org.drools.runtime.rule.WorkingMemoryEntryPoint;
@@ -18,8 +21,10 @@
 
     public void insert(Object object,
                        ResultHandler resultHandler) {
-        StatelessKnowledgeSessionPipelineContextImpl context = new StatelessKnowledgeSessionPipelineContextImpl(ksession, Thread.currentThread().getContextClassLoader(), resultHandler );
+        ClassLoader cl = ((InternalRuleBase) ((StatelessKnowledgeSessionImpl) this.ksession).getRuleBase()).getRootClassLoader();                
         
+        StatelessKnowledgeSessionPipelineContextImpl context = new StatelessKnowledgeSessionPipelineContextImpl(ksession, cl, resultHandler );
+        
         emit( object, context );        
     }
 

Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/runtime/pipeline/impl/CallableTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/runtime/pipeline/impl/CallableTest.java	2009-01-12 06:39:26 UTC (rev 24646)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/runtime/pipeline/impl/CallableTest.java	2009-01-12 06:45:55 UTC (rev 24647)
@@ -9,7 +9,7 @@
 public class CallableTest extends TestCase {
     public void testCallable() {
         MockClass mock = new MockClass();
-        Callable callable = PipelineFactory.newCallable();
+        Callable callable = new CallableImpl();
         Action action = PipelineFactory.newMvelAction( "this.set = true" );
         callable.setReceiver( action );
         action.setReceiver( callable );

Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/runtime/pipeline/impl/IterateSplitterTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/runtime/pipeline/impl/IterateSplitterTest.java	2009-01-12 06:39:26 UTC (rev 24646)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/runtime/pipeline/impl/IterateSplitterTest.java	2009-01-12 06:45:55 UTC (rev 24647)
@@ -26,7 +26,7 @@
         Splitter splitter = PipelineFactory.newIterateSplitter();
         expr.setReceiver( splitter );
         
-        ListAdapter listAdapter = PipelineFactory.newListAdapter( list, true );        
+        ListAdapter listAdapter = new ListAdapterImpl( list, true );        
         splitter.setReceiver( listAdapter );
         
         assertNull( mock.getValues() );

Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/runtime/pipeline/impl/ListAdapterTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/runtime/pipeline/impl/ListAdapterTest.java	2009-01-12 06:39:26 UTC (rev 24646)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/runtime/pipeline/impl/ListAdapterTest.java	2009-01-12 06:45:55 UTC (rev 24647)
@@ -18,7 +18,7 @@
         
         Action action = PipelineFactory.newMvelAction( "this.set = true" );   
         
-        ListAdapter listAdapter = PipelineFactory.newListAdapter( list, true );        
+        ListAdapter listAdapter = new ListAdapterImpl( list, true );        
         action.setReceiver( listAdapter );
         
         assertFalse( mock.isSet() );

Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/runtime/pipeline/impl/MvelExpressionTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/runtime/pipeline/impl/MvelExpressionTest.java	2009-01-12 06:39:26 UTC (rev 24646)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/runtime/pipeline/impl/MvelExpressionTest.java	2009-01-12 06:45:55 UTC (rev 24647)
@@ -18,7 +18,7 @@
     public void testExpression() {
         MockClass mock = new MockClass();
                
-        Callable callable = PipelineFactory.newCallable();
+        Callable callable = new CallableImpl();
         Action action = PipelineFactory.newMvelAction( "this.setValues( [0, 1, 2, 3, 4] ) " );
         callable.setReceiver( action );
         Expression expr = PipelineFactory.newMvelExpression( "this.values" );

Modified: labs/jbossrules/trunk/drools-pipeline/drools-transformer-jaxb/src/test/java/org/drools/runtime/pipeline/impl/DroolsJaxbTest.java
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/drools-transformer-jaxb/src/test/java/org/drools/runtime/pipeline/impl/DroolsJaxbTest.java	2009-01-12 06:39:26 UTC (rev 24646)
+++ labs/jbossrules/trunk/drools-pipeline/drools-transformer-jaxb/src/test/java/org/drools/runtime/pipeline/impl/DroolsJaxbTest.java	2009-01-12 06:45:55 UTC (rev 24647)
@@ -34,12 +34,15 @@
 import org.drools.builder.help.KnowledgeBuilderHelper;
 import org.drools.io.ResourceFactory;
 import org.drools.runtime.StatefulKnowledgeSession;
-import org.drools.runtime.dataloader.WorkingMemoryDataLoader;
-import org.drools.runtime.dataloader.impl.StatefulKnowledgeSessionDataLoaderImpl;
+import org.drools.runtime.pipeline.Action;
 import org.drools.runtime.pipeline.Expression;
+import org.drools.runtime.pipeline.KnowledgeRuntimeCommand;
+import org.drools.runtime.pipeline.Pipeline;
 import org.drools.runtime.pipeline.PipelineFactory;
+import org.drools.runtime.pipeline.ResultHandler;
 import org.drools.runtime.pipeline.Splitter;
 import org.drools.runtime.pipeline.Transformer;
+import org.drools.runtime.pipeline.impl.StatefulKnowledgeSessionPipelineTest.ResultHandlerImpl;
 import org.drools.runtime.rule.FactHandle;
 
 import com.sun.tools.xjc.Language;
@@ -96,17 +99,27 @@
         List list1 = new ArrayList();
         ksession.setGlobal( "list1",
                             list1 );
+        
+        Action executeResultHandler = PipelineFactory.newExecuteResultHandler();
 
+        KnowledgeRuntimeCommand insertStage = PipelineFactory.newStatefulKnowledgeSessionInsert();
+        insertStage.setReceiver( executeResultHandler );
+        
         JAXBContext jaxbCtx = KnowledgeBuilderHelper.newJAXBContext( classNames,
                                                                      kbase );
         Unmarshaller unmarshaller = jaxbCtx.createUnmarshaller();
         Transformer transformer = PipelineFactory.newJaxbTransformer( unmarshaller );
-        transformer.setReceiver( PipelineFactory.newEntryPointReceiverAdapter() );
+        transformer.setReceiver(insertStage );
+        
+        Pipeline pipeline = PipelineFactory.newStatefulKnowledgeSessionPipeline( ksession );
+        pipeline.setReceiver( transformer );        
+        
+        ResultHandlerImpl resultHandler = new ResultHandlerImpl();
+        pipeline.insert( new StreamSource( getClass().getResourceAsStream( "order.xml" ) ), resultHandler );
+        ksession.fireAllRules();
+        
+        Map<FactHandle, Object> handles = ( Map<FactHandle, Object>  ) resultHandler.getObject();
 
-        WorkingMemoryDataLoader dataLoader = new StatefulKnowledgeSessionDataLoaderImpl( ksession,
-                                                                                         transformer );
-        Map<FactHandle, Object> handles = dataLoader.insert( new StreamSource( getClass().getResourceAsStream( "order.xml" ) ) );
-
         ksession.fireAllRules();
 
         assertEquals( 1,
@@ -145,20 +158,32 @@
                             list1 );
         ksession.setGlobal( "list2",
                             list2 );
+        
+        
+        Action executeResultHandler = PipelineFactory.newExecuteResultHandler();
 
+        KnowledgeRuntimeCommand insertStage = PipelineFactory.newStatefulKnowledgeSessionInsert();
+        insertStage.setReceiver( executeResultHandler );
+        
+        Splitter splitter = PipelineFactory.newIterateSplitter();
+        splitter.setReceiver( insertStage );
+        
+        Expression expression = PipelineFactory.newMvelExpression( "this.orderItem" );
+        expression.setReceiver( splitter );
+        
         JAXBContext jaxbCtx = KnowledgeBuilderHelper.newJAXBContext( classNames,
                                                                      kbase );
         Unmarshaller unmarshaller = jaxbCtx.createUnmarshaller();
-        Transformer transformer = PipelineFactory.newJaxbTransformer( unmarshaller );
-        Expression expression = PipelineFactory.newMvelExpression( "this.orderItem" );
+        Transformer transformer = PipelineFactory.newJaxbTransformer( unmarshaller );        
         transformer.setReceiver( expression );
-        Splitter splitter = PipelineFactory.newIterateSplitter();
-        expression.setReceiver( splitter );
-        splitter.setReceiver( PipelineFactory.newEntryPointReceiverAdapter() );
-        WorkingMemoryDataLoader dataLoader = new StatefulKnowledgeSessionDataLoaderImpl( ksession,
-                                                                                         transformer );
-        Map<FactHandle, Object> handles = dataLoader.insert( new StreamSource( getClass().getResourceAsStream( "order.xml" ) ) );
+        
+        Pipeline pipeline = PipelineFactory.newStatefulKnowledgeSessionPipeline( ksession );
+        pipeline.setReceiver( transformer );
+        
+        ResultHandlerImpl resultHandler = new ResultHandlerImpl();
+        pipeline.insert( new StreamSource( getClass().getResourceAsStream( "order.xml" ) ), resultHandler );
 
+        Map<FactHandle, Object> handles = ( Map<FactHandle, Object>  ) resultHandler.getObject();
         ksession.fireAllRules();
 
         assertEquals( 2,
@@ -177,4 +202,14 @@
         assertNotSame( list1.get( 0 ),
                        list2.get( 0 ) );
     }
+    
+    public static class ResultHandlerImpl implements ResultHandler {
+        Object object;
+        public void handleResult(Object object) {
+           this.object = object;             
+        }
+        public Object getObject() {
+            return this.object;
+        }       
+    } 
 }

Modified: labs/jbossrules/trunk/drools-pipeline/drools-transformer-jxls/src/test/java/org/drools/runtime/pipeline/impl/JxlsTest.java
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/drools-transformer-jxls/src/test/java/org/drools/runtime/pipeline/impl/JxlsTest.java	2009-01-12 06:39:26 UTC (rev 24646)
+++ labs/jbossrules/trunk/drools-pipeline/drools-transformer-jxls/src/test/java/org/drools/runtime/pipeline/impl/JxlsTest.java	2009-01-12 06:45:55 UTC (rev 24647)
@@ -45,7 +45,7 @@
         XLSReader mainReader = ReaderBuilder.buildFromXML( inputXML );
         InputStream inputXLS = new BufferedInputStream(getClass().getResourceAsStream( "departmentData.xls"));
         
-        Callable callable = PipelineFactory.newCallable();
+        Callable callable = new CallableImpl();
         Transformer transformer = PipelineFactory.newJxlsTransformer(mainReader, "[ 'departments' : new java.util.ArrayList(), 'company' : new org.drools.runtime.pipeline.impl.Company() ]");
         callable.setReceiver( transformer );
         transformer.setReceiver( callable );        

Modified: labs/jbossrules/trunk/drools-pipeline/drools-transformer-smooks/src/test/java/org/drools/runtime/pipeline/impl/DroolsSmookStatefulSessionTest.java
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/drools-transformer-smooks/src/test/java/org/drools/runtime/pipeline/impl/DroolsSmookStatefulSessionTest.java	2009-01-12 06:39:26 UTC (rev 24646)
+++ labs/jbossrules/trunk/drools-pipeline/drools-transformer-smooks/src/test/java/org/drools/runtime/pipeline/impl/DroolsSmookStatefulSessionTest.java	2009-01-12 06:45:55 UTC (rev 24647)
@@ -17,22 +17,19 @@
 import org.drools.builder.ResourceType;
 import org.drools.io.ResourceFactory;
 import org.drools.runtime.StatefulKnowledgeSession;
-import org.drools.runtime.dataloader.DataLoaderFactory;
-import org.drools.runtime.dataloader.WorkingMemoryDataLoader;
-import org.drools.runtime.dataloader.impl.StatefulKnowledgeSessionDataLoaderImpl;
-import org.drools.runtime.dataloader.impl.EntryPointReceiverAdapter;
+import org.drools.runtime.pipeline.Action;
 import org.drools.runtime.pipeline.Expression;
+import org.drools.runtime.pipeline.KnowledgeRuntimeCommand;
+import org.drools.runtime.pipeline.Pipeline;
 import org.drools.runtime.pipeline.PipelineFactory;
+import org.drools.runtime.pipeline.ResultHandler;
 import org.drools.runtime.pipeline.Splitter;
 import org.drools.runtime.pipeline.Transformer;
-import org.drools.runtime.pipeline.impl.DroolsSmooksConfiguration;
-import org.drools.runtime.pipeline.impl.IterateSplitter;
-import org.drools.runtime.pipeline.impl.MvelExpression;
 import org.drools.runtime.rule.FactHandle;
 import org.milyn.Smooks;
 import org.milyn.io.StreamUtils;
 
-public class DroolsSmookStatefulSessionTest extends TestCase {  
+public class DroolsSmookStatefulSessionTest extends TestCase {
 
     public void testDirectRoot() throws Exception {
         KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
@@ -51,17 +48,28 @@
         ksession.setGlobal( "list",
                             list );
 
+        Action executeResultHandler = PipelineFactory.newExecuteResultHandler();
+
+        KnowledgeRuntimeCommand insertStage = PipelineFactory.newStatefulKnowledgeSessionInsert();
+        insertStage.setReceiver( executeResultHandler );
+
         // Instantiate Smooks with the config...
         Smooks smooks = new Smooks( getClass().getResourceAsStream( "smooks-config.xml" ) );
-        
-        Transformer transformer = PipelineFactory.newSmooksTransformer( smooks, "orderItem" );       
-        transformer.setReceiver( PipelineFactory.newEntryPointReceiverAdapter() );
-        
-        WorkingMemoryDataLoader dataLoader = DataLoaderFactory.newStatefulRuleSessionDataLoader( ksession,
-                                                                                                    transformer );
-        Map<FactHandle, Object> handles = dataLoader.insert( new StreamSource( getClass().getResourceAsStream( "SmooksDirectRoot.xml" ) ) );
+
+        Transformer transformer = PipelineFactory.newSmooksTransformer( smooks,
+                                                                        "orderItem" );
+        transformer.setReceiver( insertStage );
+
+        Pipeline pipeline = PipelineFactory.newStatefulKnowledgeSessionPipeline( ksession );
+        pipeline.setReceiver( transformer );
+
+        ResultHandlerImpl resultHandler = new ResultHandlerImpl();
+        pipeline.insert( new StreamSource( getClass().getResourceAsStream( "SmooksDirectRoot.xml" ) ),
+                         resultHandler );
         ksession.fireAllRules();
 
+        Map<FactHandle, Object> handles = (Map<FactHandle, Object>) resultHandler.getObject();
+
         assertEquals( 1,
                       handles.size() );
         assertEquals( 1,
@@ -88,20 +96,32 @@
         ksession.setGlobal( "list",
                             list );
 
+        Action executeResultHandler = PipelineFactory.newExecuteResultHandler();
+
+        KnowledgeRuntimeCommand insertStage = PipelineFactory.newStatefulKnowledgeSessionInsert();
+        insertStage.setReceiver( executeResultHandler );
+
+        Splitter splitter = PipelineFactory.newIterateSplitter();
+        splitter.setReceiver( insertStage );
+
+        Expression expression = PipelineFactory.newMvelExpression( "children" );
+        expression.setReceiver( splitter );
+
         // Instantiate Smooks with the config...
         Smooks smooks = new Smooks( getClass().getResourceAsStream( "smooks-config.xml" ) );
 
-        Transformer transformer = PipelineFactory.newSmooksTransformer( smooks, "root" );               
-        Expression expression = PipelineFactory.newMvelExpression( "children" );
+        Transformer transformer = PipelineFactory.newSmooksTransformer( smooks,
+                                                                        "root" );
         transformer.setReceiver( expression );
-        Splitter splitter = PipelineFactory.newIterateSplitter();
-        expression.setReceiver( splitter );
-        splitter.setReceiver( PipelineFactory.newEntryPointReceiverAdapter() );
 
-        WorkingMemoryDataLoader dataLoader = DataLoaderFactory.newStatefulRuleSessionDataLoader( ksession,
-                                                                                                transformer );
+        Pipeline pipeline = PipelineFactory.newStatefulKnowledgeSessionPipeline( ksession );
+        pipeline.setReceiver( transformer );
 
-        Map<FactHandle, Object> handles = dataLoader.insert( new StreamSource( getClass().getResourceAsStream( "SmooksNestedIterable.xml" ) ) );
+        ResultHandlerImpl resultHandler = new ResultHandlerImpl();
+        pipeline.insert( new StreamSource( getClass().getResourceAsStream( "SmooksNestedIterable.xml" ) ),
+                         resultHandler );
+
+        Map<FactHandle, Object> handles = (Map<FactHandle, Object>) resultHandler.getObject();
         ksession.fireAllRules();
 
         assertEquals( 2,
@@ -116,7 +136,7 @@
 
         assertNotSame( list.get( 0 ),
                        list.get( 1 ) );
-    }   
+    }
 
     private static byte[] readInputMessage(InputStream stream) {
         try {
@@ -126,4 +146,18 @@
             return "<no-message/>".getBytes();
         }
     }
+
+    public static class ResultHandlerImpl
+        implements
+        ResultHandler {
+        Object object;
+
+        public void handleResult(Object object) {
+            this.object = object;
+        }
+
+        public Object getObject() {
+            return this.object;
+        }
+    }
 }

Modified: labs/jbossrules/trunk/drools-pipeline/drools-transformer-smooks/src/test/java/org/drools/runtime/pipeline/impl/DroolsSmookStatelessSessionTest.java
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/drools-transformer-smooks/src/test/java/org/drools/runtime/pipeline/impl/DroolsSmookStatelessSessionTest.java	2009-01-12 06:39:26 UTC (rev 24646)
+++ labs/jbossrules/trunk/drools-pipeline/drools-transformer-smooks/src/test/java/org/drools/runtime/pipeline/impl/DroolsSmookStatelessSessionTest.java	2009-01-12 06:45:55 UTC (rev 24647)
@@ -16,10 +16,13 @@
 import org.drools.builder.ResourceType;
 import org.drools.io.ResourceFactory;
 import org.drools.runtime.StatelessKnowledgeSession;
-import org.drools.runtime.dataloader.StatelessKnowledgeSessionDataLoader;
-import org.drools.runtime.dataloader.impl.StatelessKnowledgeSessionDataLoaderImpl;
+import org.drools.runtime.pipeline.Action;
 import org.drools.runtime.pipeline.Expression;
+import org.drools.runtime.pipeline.Join;
+import org.drools.runtime.pipeline.KnowledgeRuntimeCommand;
+import org.drools.runtime.pipeline.Pipeline;
 import org.drools.runtime.pipeline.PipelineFactory;
+import org.drools.runtime.pipeline.ResultHandler;
 import org.drools.runtime.pipeline.Splitter;
 import org.drools.runtime.pipeline.Transformer;
 import org.milyn.Smooks;
@@ -44,16 +47,22 @@
         ksession.setGlobal( "list",
                             list );
 
+        KnowledgeRuntimeCommand execute = PipelineFactory.newStatelessKnowledgeSessionExecute();
+
         // Instantiate Smooks with the config...
         Smooks smooks = new Smooks( getClass().getResourceAsStream( "smooks-config.xml" ) );
 
-        Transformer transformer = PipelineFactory.newSmooksTransformer( smooks, "orderItem" );       
-        transformer.setReceiver( PipelineFactory.newStatelessKnowledgeSessionReceiverAdapter() );
+        Transformer transformer = PipelineFactory.newSmooksTransformer( smooks,
+                                                                        "orderItem" );
+        transformer.setReceiver( execute );
 
-        StatelessKnowledgeSessionDataLoader dataLoader = new StatelessKnowledgeSessionDataLoaderImpl( ksession,
-                                                                                                  transformer );
-        dataLoader.executeObject( new StreamSource( getClass().getResourceAsStream( "SmooksDirectRoot.xml" ) ) );
+        Pipeline pipeline = PipelineFactory.newStatelessKnowledgeSessionPipeline( ksession );
+        pipeline.setReceiver( transformer );
 
+        ResultHandlerImpl resultHandler = new ResultHandlerImpl();
+        pipeline.insert( new StreamSource( getClass().getResourceAsStream( "SmooksDirectRoot.xml" ) ),
+                         resultHandler );
+
         assertEquals( 1,
                       list.size() );
 
@@ -78,20 +87,25 @@
         ksession.setGlobal( "list",
                             list );
 
+        KnowledgeRuntimeCommand execute = PipelineFactory.newStatelessKnowledgeSessionExecute();
+
+        Action mvelAction = PipelineFactory.newMvelAction( "context.setIterable( this.children  )" );
+        mvelAction.setReceiver( execute );
+
         // Instantiate Smooks with the config...
         Smooks smooks = new Smooks( getClass().getResourceAsStream( "smooks-config.xml" ) );
 
-        Transformer transformer = PipelineFactory.newSmooksTransformer( smooks, "root" );               
-        Expression expression = PipelineFactory.newMvelExpression( "children" );
-        transformer.setReceiver( expression );
-        Splitter splitter = PipelineFactory.newIterateSplitter();
-        expression.setReceiver( splitter );
-        splitter.setReceiver( PipelineFactory.newStatelessKnowledgeSessionReceiverAdapter() );
+        Transformer transformer = PipelineFactory.newSmooksTransformer( smooks,
+                                                                        "root" );
+        transformer.setReceiver( mvelAction );
 
-        StatelessKnowledgeSessionDataLoader dataLoader = new StatelessKnowledgeSessionDataLoaderImpl( ksession,
-                                                                                                  transformer );
-        dataLoader.executeIterable( new StreamSource( getClass().getResourceAsStream( "SmooksNestedIterable.xml" ) ) );
+        Pipeline pipeline = PipelineFactory.newStatelessKnowledgeSessionPipeline( ksession );
+        pipeline.setReceiver( transformer );
 
+        ResultHandlerImpl resultHandler = new ResultHandlerImpl();
+        pipeline.insert( new StreamSource( getClass().getResourceAsStream( "SmooksNestedIterable.xml" ) ),
+                         resultHandler );
+
         assertEquals( 2,
                       list.size() );
 
@@ -102,14 +116,19 @@
 
         assertNotSame( list.get( 0 ),
                        list.get( 1 ) );
-    }   
+    }
 
-    private static byte[] readInputMessage(InputStream stream) {
-        try {
-            return StreamUtils.readStream( stream );
-        } catch ( IOException e ) {
-            e.printStackTrace();
-            return "<no-message/>".getBytes();
+    public static class ResultHandlerImpl
+        implements
+        ResultHandler {
+        Object object;
+
+        public void handleResult(Object object) {
+            this.object = object;
         }
+
+        public Object getObject() {
+            return this.object;
+        }
     }
 }

Modified: labs/jbossrules/trunk/drools-pipeline/drools-transformer-xstream/src/test/java/org/drools/runtime/pipeline/impl/DroolsXStreamStatefulSessionTest.java
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/drools-transformer-xstream/src/test/java/org/drools/runtime/pipeline/impl/DroolsXStreamStatefulSessionTest.java	2009-01-12 06:39:26 UTC (rev 24646)
+++ labs/jbossrules/trunk/drools-pipeline/drools-transformer-xstream/src/test/java/org/drools/runtime/pipeline/impl/DroolsXStreamStatefulSessionTest.java	2009-01-12 06:45:55 UTC (rev 24647)
@@ -1,7 +1,5 @@
 package org.drools.runtime.pipeline.impl;
 
-import java.io.IOException;
-import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
@@ -15,21 +13,16 @@
 import org.drools.builder.KnowledgeBuilder;
 import org.drools.builder.KnowledgeBuilderFactory;
 import org.drools.builder.ResourceType;
-import org.drools.common.InternalRuleBase;
-import org.drools.impl.KnowledgeBaseImpl;
-import org.drools.impl.StatefulKnowledgeSessionImpl;
 import org.drools.io.ResourceFactory;
 import org.drools.runtime.StatefulKnowledgeSession;
-import org.drools.runtime.dataloader.DataLoaderFactory;
-import org.drools.runtime.dataloader.WorkingMemoryDataLoader;
-import org.drools.runtime.dataloader.impl.StatefulKnowledgeSessionDataLoaderImpl;
-import org.drools.runtime.dataloader.impl.EntryPointReceiverAdapter;
+import org.drools.runtime.pipeline.Action;
 import org.drools.runtime.pipeline.Expression;
+import org.drools.runtime.pipeline.KnowledgeRuntimeCommand;
+import org.drools.runtime.pipeline.Pipeline;
 import org.drools.runtime.pipeline.PipelineFactory;
+import org.drools.runtime.pipeline.ResultHandler;
 import org.drools.runtime.pipeline.Splitter;
 import org.drools.runtime.pipeline.Transformer;
-import org.drools.runtime.pipeline.impl.IterateSplitter;
-import org.drools.runtime.pipeline.impl.MvelExpression;
 import org.drools.runtime.rule.FactHandle;
 
 import com.thoughtworks.xstream.XStream;
@@ -53,15 +46,25 @@
         ksession.setGlobal( "list",
                             list );
 
+        Action executeResultHandler = PipelineFactory.newExecuteResultHandler();
+
+        KnowledgeRuntimeCommand insertStage = PipelineFactory.newStatefulKnowledgeSessionInsert();
+        insertStage.setReceiver( executeResultHandler );
+
         XStream xstream = new XStream();
         Transformer transformer = PipelineFactory.newXStreamTransformer( xstream );
-        transformer.setReceiver( PipelineFactory.newEntryPointReceiverAdapter() );
+        transformer.setReceiver( insertStage );
 
-        WorkingMemoryDataLoader dataLoader = DataLoaderFactory.newStatefulRuleSessionDataLoader( ksession,
-                                                                                                 transformer );
-        Map<FactHandle, Object> handles = dataLoader.insert( getClass().getResourceAsStream( "XStreamDirectRoot.xml" ) );
+        Pipeline pipeline = PipelineFactory.newStatefulKnowledgeSessionPipeline( ksession );
+        pipeline.setReceiver( transformer );
+
+        ResultHandlerImpl resultHandler = new ResultHandlerImpl();
+        pipeline.insert( getClass().getResourceAsStream( "XStreamDirectRoot.xml" ),
+                         resultHandler );
         ksession.fireAllRules();
 
+        Map<FactHandle, Object> handles = (Map<FactHandle, Object>) resultHandler.getObject();
+
         assertEquals( 1,
                       handles.size() );
         assertEquals( 1,
@@ -88,18 +91,26 @@
         ksession.setGlobal( "list",
                             list );
 
+        Action executeResultHandler = PipelineFactory.newExecuteResultHandler();
+
+        KnowledgeRuntimeCommand insertStage = PipelineFactory.newStatefulKnowledgeSessionInsert();
+        insertStage.setReceiver( executeResultHandler );
+
+        Splitter splitter = PipelineFactory.newIterateSplitter();
+        splitter.setReceiver( insertStage );
+
         XStream xstream = new XStream();
         Transformer transformer = PipelineFactory.newXStreamTransformer( xstream );
-        Expression expression = PipelineFactory.newMvelExpression( "this" );
-        transformer.setReceiver( expression );
-        Splitter splitter = PipelineFactory.newIterateSplitter();
-        expression.setReceiver( splitter );
-        splitter.setReceiver( PipelineFactory.newEntryPointReceiverAdapter() );
+        transformer.setReceiver( splitter );
 
-        WorkingMemoryDataLoader dataLoader = DataLoaderFactory.newStatefulRuleSessionDataLoader( ksession,
-                                                                                                 transformer );
+        Pipeline pipeline = PipelineFactory.newStatefulKnowledgeSessionPipeline( ksession );
+        pipeline.setReceiver( transformer );
 
-        Map<FactHandle, Object> handles = dataLoader.insert( getClass().getResourceAsStream( "XStreamNestedIterable.xml" ) );
+        ResultHandlerImpl resultHandler = new ResultHandlerImpl();
+        pipeline.insert( getClass().getResourceAsStream( "XStreamNestedIterable.xml" ),
+                         resultHandler );
+
+        Map<FactHandle, Object> handles = (Map<FactHandle, Object>) resultHandler.getObject();
         ksession.fireAllRules();
 
         assertEquals( 2,
@@ -116,4 +127,18 @@
                        list.get( 1 ) );
     }
 
+    public static class ResultHandlerImpl
+        implements
+        ResultHandler {
+        Object object;
+
+        public void handleResult(Object object) {
+            this.object = object;
+        }
+
+        public Object getObject() {
+            return this.object;
+        }
+    }
+
 }

Modified: labs/jbossrules/trunk/drools-pipeline/drools-transformer-xstream/src/test/java/org/drools/runtime/pipeline/impl/DroolsXStreamStatelessSessionTest.java
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/drools-transformer-xstream/src/test/java/org/drools/runtime/pipeline/impl/DroolsXStreamStatelessSessionTest.java	2009-01-12 06:39:26 UTC (rev 24646)
+++ labs/jbossrules/trunk/drools-pipeline/drools-transformer-xstream/src/test/java/org/drools/runtime/pipeline/impl/DroolsXStreamStatelessSessionTest.java	2009-01-12 06:45:55 UTC (rev 24647)
@@ -3,8 +3,6 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import javax.xml.transform.stream.StreamSource;
-
 import junit.framework.TestCase;
 
 import org.drools.KnowledgeBase;
@@ -14,11 +12,11 @@
 import org.drools.builder.ResourceType;
 import org.drools.io.ResourceFactory;
 import org.drools.runtime.StatelessKnowledgeSession;
-import org.drools.runtime.dataloader.StatelessKnowledgeSessionDataLoader;
-import org.drools.runtime.dataloader.impl.StatelessKnowledgeSessionDataLoaderImpl;
-import org.drools.runtime.pipeline.Expression;
+import org.drools.runtime.pipeline.Action;
+import org.drools.runtime.pipeline.KnowledgeRuntimeCommand;
+import org.drools.runtime.pipeline.Pipeline;
 import org.drools.runtime.pipeline.PipelineFactory;
-import org.drools.runtime.pipeline.Splitter;
+import org.drools.runtime.pipeline.ResultHandler;
 import org.drools.runtime.pipeline.Transformer;
 
 import com.thoughtworks.xstream.XStream;
@@ -42,14 +40,19 @@
         ksession.setGlobal( "list",
                             list );
 
+        KnowledgeRuntimeCommand execute = PipelineFactory.newStatelessKnowledgeSessionExecute();
+
         XStream xstream = new XStream();
         Transformer transformer = PipelineFactory.newXStreamTransformer( xstream );
-        transformer.setReceiver( PipelineFactory.newStatelessKnowledgeSessionReceiverAdapter() );
+        transformer.setReceiver( execute );
 
-        StatelessKnowledgeSessionDataLoader dataLoader = new StatelessKnowledgeSessionDataLoaderImpl( ksession,
-                                                                                                      transformer );
-        dataLoader.executeObject( getClass().getResourceAsStream( "XStreamDirectRoot.xml" ) );
+        Pipeline pipeline = PipelineFactory.newStatelessKnowledgeSessionPipeline( ksession );
+        pipeline.setReceiver( transformer );
 
+        ResultHandlerImpl resultHandler = new ResultHandlerImpl();
+        pipeline.insert( getClass().getResourceAsStream( "XStreamDirectRoot.xml" ),
+                         resultHandler );
+
         assertEquals( 1,
                       list.size() );
 
@@ -74,20 +77,21 @@
         ksession.setGlobal( "list",
                             list );
 
+        KnowledgeRuntimeCommand execute = PipelineFactory.newStatelessKnowledgeSessionExecute();
+
+        Action mvelAction = PipelineFactory.newMvelAction( "context.setIterable( this  )" );
+        mvelAction.setReceiver( execute );
+
         XStream xstream = new XStream();
         Transformer transformer = PipelineFactory.newXStreamTransformer( xstream );
-        Expression expression = PipelineFactory.newMvelExpression( "this" );
-        transformer.setReceiver( expression );
-        Splitter splitter = PipelineFactory.newIterateSplitter();
-        expression.setReceiver( splitter );
-        splitter.setReceiver( PipelineFactory.newStatelessKnowledgeSessionReceiverAdapter() );
+        transformer.setReceiver( mvelAction );
 
-        StatelessKnowledgeSessionDataLoader dataLoader = new StatelessKnowledgeSessionDataLoaderImpl( ksession,
-                                                                                                      transformer );
-        dataLoader.executeIterable( getClass().getResourceAsStream( "XStreamNestedIterable.xml" ) );
+        Pipeline pipeline = PipelineFactory.newStatelessKnowledgeSessionPipeline( ksession );
+        pipeline.setReceiver( transformer );
 
-        assertEquals( 2,
-                      list.size() );
+        ResultHandlerImpl resultHandler = new ResultHandlerImpl();
+        pipeline.insert( getClass().getResourceAsStream( "XStreamNestedIterable.xml" ),
+                         resultHandler );
 
         assertEquals( "example.OrderItem",
                       list.get( 0 ).getClass().getName() );
@@ -98,4 +102,17 @@
                        list.get( 1 ) );
     }
 
+    public static class ResultHandlerImpl
+        implements
+        ResultHandler {
+        Object object;
+
+        public void handleResult(Object object) {
+            this.object = object;
+        }
+
+        public Object getObject() {
+            return this.object;
+        }
+    }
 }




More information about the jboss-svn-commits mailing list