[jboss-svn-commits] JBL Code SVN: r24596 - in labs/jbossrules/trunk: drools-api/src/main/java/org/drools/runtime/pipeline and 11 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Jan 7 23:17:30 EST 2009
Author: mark.proctor at jboss.com
Date: 2009-01-07 23:17:30 -0500 (Wed, 07 Jan 2009)
New Revision: 24596
Added:
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/dataloader/ProcessRuntimeDataLoader.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/dataloader/WorkingMemoryDataLoader.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/ResultHandler.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/ResultHandlerFactory.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/StatefulKnowledgeSessionPipelineContext.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/StatelessKnowledgeSessionPipelineContext.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/StatefulKnowledgeSessionPipelineTest.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/StatelessKnowledgeSessionPipelineTest.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/impl/StatefulKnowledgeSessionDataLoaderImpl.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/EntryPointResultStage.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/EntryPointStage.java
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/PipelineContextFactory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/PipelineImpl.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionInsertPipelineImpl.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/StatefulKnowledgeSessionPipelineContextImpl.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionStartProcessStage.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/StatelessKnowledgeSessionPipelineContextImpl.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/StatefulKnowledgeSessionPipelineTest.java
Removed:
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/dataloader/StatefulKnowledgeSessionDataLoader.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/impl/StatefulKnowledgeSessionDataLoaderImpl.java
Modified:
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/dataloader/DataLoaderFactory.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/dataloader/DataLoaderProvider.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Emitter.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/PipelineContext.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/impl/ParametersImpl.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/impl/DataLoaderProviderImpl.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/impl/EntryPointPipelineContext.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/BaseEmitter.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/BasePipelineContext.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/MvelAction.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/MvelExpression.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/pom.xml
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/
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
-Make individual pipelines for each stateful and stateless use case.
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/dataloader/DataLoaderFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/dataloader/DataLoaderFactory.java 2009-01-08 03:18:57 UTC (rev 24595)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/dataloader/DataLoaderFactory.java 2009-01-08 04:17:30 UTC (rev 24596)
@@ -8,12 +8,12 @@
public class DataLoaderFactory {
private static volatile DataLoaderProvider provider;
- public static StatefulKnowledgeSessionDataLoader newStatefulKnowledgeSessionDataLoader(StatefulKnowledgeSession ksession,
+ public static WorkingMemoryDataLoader newStatefulRuleSessionDataLoader(StatefulKnowledgeSession ksession,
Receiver pipeline) {
- return getDataLoaderProvider().newStatefulKnowledgeSessionDataLoader( ksession, pipeline );
+ return getDataLoaderProvider().newStatefulRuleSessionDataLoader( ksession, pipeline );
}
- public static StatefulKnowledgeSessionDataLoader newStatefulKnowledgeSessionDataLoader(StatefulKnowledgeSession ksession,
+ public static WorkingMemoryDataLoader newStatefulRuleSessionDataLoader(StatefulKnowledgeSession ksession,
String entryPointName,
Receiver pipeline) {
return getDataLoaderProvider().newStatefulKnowledgeSessionDataLoader( ksession, entryPointName, pipeline );
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/dataloader/DataLoaderProvider.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/dataloader/DataLoaderProvider.java 2009-01-08 03:18:57 UTC (rev 24595)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/dataloader/DataLoaderProvider.java 2009-01-08 04:17:30 UTC (rev 24596)
@@ -5,10 +5,10 @@
import org.drools.runtime.pipeline.Receiver;
public interface DataLoaderProvider {
- StatefulKnowledgeSessionDataLoader newStatefulKnowledgeSessionDataLoader(StatefulKnowledgeSession ksession,
+ WorkingMemoryDataLoader newStatefulRuleSessionDataLoader(StatefulKnowledgeSession ksession,
Receiver pipeline);
- StatefulKnowledgeSessionDataLoader newStatefulKnowledgeSessionDataLoader(StatefulKnowledgeSession ksession,
+ WorkingMemoryDataLoader newStatefulKnowledgeSessionDataLoader(StatefulKnowledgeSession ksession,
String entryPointName,
Receiver pipeline);
Added: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/dataloader/ProcessRuntimeDataLoader.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/dataloader/ProcessRuntimeDataLoader.java (rev 0)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/dataloader/ProcessRuntimeDataLoader.java 2009-01-08 04:17:30 UTC (rev 24596)
@@ -0,0 +1,8 @@
+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-api/src/main/java/org/drools/runtime/dataloader/StatefulKnowledgeSessionDataLoader.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/dataloader/StatefulKnowledgeSessionDataLoader.java 2009-01-08 03:18:57 UTC (rev 24595)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/dataloader/StatefulKnowledgeSessionDataLoader.java 2009-01-08 04:17:30 UTC (rev 24596)
@@ -1,9 +0,0 @@
-package org.drools.runtime.dataloader;
-
-import java.util.Map;
-
-import org.drools.runtime.rule.FactHandle;
-
-public interface StatefulKnowledgeSessionDataLoader {
- Map<FactHandle, Object> insert(Object object);
-}
\ No newline at end of file
Copied: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/dataloader/WorkingMemoryDataLoader.java (from rev 24524, labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/dataloader/StatefulKnowledgeSessionDataLoader.java)
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/dataloader/WorkingMemoryDataLoader.java (rev 0)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/dataloader/WorkingMemoryDataLoader.java 2009-01-08 04:17:30 UTC (rev 24596)
@@ -0,0 +1,10 @@
+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
Property changes on: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/dataloader/WorkingMemoryDataLoader.java
___________________________________________________________________
Name: svn:mergeinfo
+
Added: 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 (rev 0)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/DataLoader.java 2009-01-08 04:17:30 UTC (rev 24596)
@@ -0,0 +1,5 @@
+package org.drools.runtime.pipeline;
+
+public interface DataLoader extends Emitter, Stage {
+
+}
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Emitter.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Emitter.java 2009-01-08 03:18:57 UTC (rev 24595)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Emitter.java 2009-01-08 04:17:30 UTC (rev 24596)
@@ -1,12 +1,7 @@
package org.drools.runtime.pipeline;
-import java.util.Collection;
-
public interface Emitter {
- void addReceiver(Receiver receiver);
+ void setReceiver(Receiver receiver);
- void removeReceiver(Receiver receiver);
-
- Collection<Receiver> getReceivers();
-
+ Receiver getReceiver();
}
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/PipelineContext.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/PipelineContext.java 2009-01-08 03:18:57 UTC (rev 24595)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/PipelineContext.java 2009-01-08 04:17:30 UTC (rev 24596)
@@ -3,7 +3,15 @@
import java.util.Map;
public interface PipelineContext {
+
ClassLoader getClassLoader();
- public Map<String, Object> getProperties();
+ Map<String, Object> getProperties();
+
+ void setResult(Object result);
+
+ Object getResult();
+
+ ResultHandler getResultHandler();
+
}
Added: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/ResultHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/ResultHandler.java (rev 0)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/ResultHandler.java 2009-01-08 04:17:30 UTC (rev 24596)
@@ -0,0 +1,5 @@
+package org.drools.runtime.pipeline;
+
+public interface ResultHandler {
+ public void handleResult(Object object);
+}
Added: 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 (rev 0)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/ResultHandlerContext.java 2009-01-08 04:17:30 UTC (rev 24596)
@@ -0,0 +1,5 @@
+package org.drools.runtime.pipeline;
+
+public interface ResultHandlerContext {
+
+}
Added: 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 (rev 0)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/ResultHandlerFactory.java 2009-01-08 04:17:30 UTC (rev 24596)
@@ -0,0 +1,5 @@
+package org.drools.runtime.pipeline;
+
+public interface ResultHandlerFactory {
+ ResultHandler newResult(ResultHandlerContext context);
+}
Added: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/StatefulKnowledgeSessionPipelineContext.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/StatefulKnowledgeSessionPipelineContext.java (rev 0)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/StatefulKnowledgeSessionPipelineContext.java 2009-01-08 04:17:30 UTC (rev 24596)
@@ -0,0 +1,9 @@
+package org.drools.runtime.pipeline;
+
+import org.drools.runtime.StatefulKnowledgeSession;
+
+public interface StatefulKnowledgeSessionPipelineContext
+ extends
+ PipelineContext {
+ StatefulKnowledgeSession getStatefulKnowledgeSession();
+}
Added: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/StatelessKnowledgeSessionPipelineContext.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/StatelessKnowledgeSessionPipelineContext.java (rev 0)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/StatelessKnowledgeSessionPipelineContext.java 2009-01-08 04:17:30 UTC (rev 24596)
@@ -0,0 +1,22 @@
+package org.drools.runtime.pipeline;
+
+import org.drools.runtime.Parameters;
+import org.drools.runtime.StatelessKnowledgeSession;
+
+public interface StatelessKnowledgeSessionPipelineContext
+ extends
+ PipelineContext {
+
+ StatelessKnowledgeSession getStatelessKnowledgeSession();
+
+ void setObject(Object object);
+
+ Object getObject();
+
+ void setIterable(Iterable iterable);
+
+ Iterable getIterable();
+
+ Parameters getParameters();
+
+}
\ No newline at end of file
Added: 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 (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/StatefulKnowledgeSessionPipelineTest.java 2009-01-08 04:17:30 UTC (rev 24596)
@@ -0,0 +1,45 @@
+package org.drools.integrationtests;
+
+import java.util.Map;
+
+import org.drools.KnowledgeBase;
+import org.drools.KnowledgeBaseFactory;
+import org.drools.runtime.StatefulKnowledgeSession;
+import org.drools.runtime.pipeline.ResultHandler;
+import org.drools.runtime.pipeline.impl.MvelAction;
+import org.drools.runtime.pipeline.impl.StatefulKnowledgeSessionInsertPipelineImpl;
+import org.drools.runtime.pipeline.impl.StatefulKnowledgeSessionInsertStage;
+
+import junit.framework.TestCase;
+
+public class StatefulKnowledgeSessionPipelineTest extends TestCase {
+ public void testInsertObject() {
+ KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
+ StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
+
+ StatefulKnowledgeSessionInsertStage stage1 = new StatefulKnowledgeSessionInsertStage();
+ MvelAction mvelAction = new MvelAction( "context.resultHandler.handleResult( context.handles )");
+ stage1.setReceiver( mvelAction );
+
+ StatefulKnowledgeSessionInsertPipelineImpl pipeline = new StatefulKnowledgeSessionInsertPipelineImpl(ksession);
+ pipeline.setReceiver( stage1 );
+
+ assertEquals( 0, ksession.getObjects().size() );
+
+ ResultHandlerImpl resultHanadle = new ResultHandlerImpl();
+ pipeline.insert( "Hello", resultHanadle );
+
+ assertEquals( 1, resultHanadle.getHandles().size() );
+ }
+
+ public static class ResultHandlerImpl implements ResultHandler {
+ Map handles;
+ public void handleResult(Object object) {
+ this.handles = ( Map ) object;
+ }
+ public Map getHandles() {
+ return this.handles;
+ }
+
+ }
+}
Added: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/StatelessKnowledgeSessionPipelineTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/StatelessKnowledgeSessionPipelineTest.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/StatelessKnowledgeSessionPipelineTest.java 2009-01-08 04:17:30 UTC (rev 24596)
@@ -0,0 +1,311 @@
+package org.drools.integrationtests;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import junit.framework.TestCase;
+
+import org.drools.KnowledgeBase;
+import org.drools.KnowledgeBaseFactory;
+import org.drools.StatelessSessionResult;
+import org.drools.builder.KnowledgeBuilder;
+import org.drools.builder.KnowledgeBuilderFactory;
+import org.drools.builder.ResourceType;
+import org.drools.io.ResourceFactory;
+import org.drools.runtime.Parameters;
+import org.drools.runtime.StatelessKnowledgeSession;
+import org.drools.runtime.StatelessKnowledgeSessionResults;
+import org.drools.runtime.pipeline.ResultHandler;
+import org.drools.runtime.pipeline.impl.MvelAction;
+import org.drools.runtime.pipeline.impl.StatefulKnowledgeSessionInsertStage;
+import org.drools.runtime.pipeline.impl.StatelessKnowledgeSessionExecuteStage;
+import org.drools.runtime.pipeline.impl.StatelessKnowledgeSessionPipelineImpl;
+
+public class StatelessKnowledgeSessionPipelineTest extends TestCase {
+ public void testExecuteObjectAsDefault() {
+ String str = "";
+ str += "package org.sample \n";
+ str += "global java.util.List list; \n";
+ str += "rule rule1 \n";
+ str += " when \n";
+ str += " s : String() \n";
+ str += " then \n";
+ str += " list.add( s ); ";
+ str += "end\n";
+
+ KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
+ kbuilder.add( ResourceFactory.newByteArrayResource( str.getBytes() ), ResourceType.DRL );
+
+ if ( kbuilder.hasErrors() ) {
+ System.out.println( kbuilder.getErrors() );
+ }
+ assertFalse( kbuilder.hasErrors() );
+
+ KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
+ kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
+ StatelessKnowledgeSession ksession = kbase.newStatelessKnowledgeSession();
+ List list = new ArrayList();
+ ksession.setGlobal( "list", list );
+
+
+ StatelessKnowledgeSessionExecuteStage stage1 = new StatelessKnowledgeSessionExecuteStage();
+
+ StatelessKnowledgeSessionPipelineImpl pipeline = new StatelessKnowledgeSessionPipelineImpl(ksession);
+ pipeline.setReceiver( stage1 );
+
+ pipeline.insert( "hello world", null );
+
+ assertEquals( 1, list.size() );
+
+ assertEquals( "hello world", list.get( 0 ) );
+ }
+
+ public void testExecuteObject() {
+ String str = "";
+ str += "package org.sample \n";
+ str += "global java.util.List list; \n";
+ str += "rule rule1 \n";
+ str += " when \n";
+ str += " s : String() \n";
+ str += " then \n";
+ str += " list.add( s ); ";
+ str += "end\n";
+
+ KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
+ kbuilder.add( ResourceFactory.newByteArrayResource( str.getBytes() ), ResourceType.DRL );
+
+ if ( kbuilder.hasErrors() ) {
+ System.out.println( kbuilder.getErrors() );
+ }
+ assertFalse( kbuilder.hasErrors() );
+
+ KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
+ kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
+ StatelessKnowledgeSession ksession = kbase.newStatelessKnowledgeSession();
+ List list = new ArrayList();
+ ksession.setGlobal( "list", list );
+
+
+ MvelAction mvelAction = new MvelAction( "context.object = this");
+ StatelessKnowledgeSessionExecuteStage stage1 = new StatelessKnowledgeSessionExecuteStage();
+ mvelAction.setReceiver( stage1 );
+
+ StatelessKnowledgeSessionPipelineImpl pipeline = new StatelessKnowledgeSessionPipelineImpl(ksession);
+ pipeline.setReceiver( mvelAction );
+
+ pipeline.insert( "hello world", null );
+
+ assertEquals( 1, list.size() );
+
+ assertEquals( "hello world", list.get( 0 ) );
+ }
+
+ public void testExecuteIterable() {
+ String str = "";
+ str += "package org.sample \n";
+ str += "global java.util.List list; \n";
+ str += "rule rule1 \n";
+ str += " when \n";
+ str += " s : String() \n";
+ str += " then \n";
+ str += " list.add( s ); ";
+ str += "end\n";
+
+ KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
+ kbuilder.add( ResourceFactory.newByteArrayResource( str.getBytes() ), ResourceType.DRL );
+
+ if ( kbuilder.hasErrors() ) {
+ System.out.println( kbuilder.getErrors() );
+ }
+ assertFalse( kbuilder.hasErrors() );
+
+ KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
+ kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
+ StatelessKnowledgeSession ksession = kbase.newStatelessKnowledgeSession();
+ List list = new ArrayList();
+ ksession.setGlobal( "list", list );
+
+
+ MvelAction mvelAction = new MvelAction( "context.setIterable( this )");
+ StatelessKnowledgeSessionExecuteStage stage1 = new StatelessKnowledgeSessionExecuteStage();
+ mvelAction.setReceiver( stage1 );
+
+ StatelessKnowledgeSessionPipelineImpl pipeline = new StatelessKnowledgeSessionPipelineImpl(ksession);
+ pipeline.setReceiver( mvelAction );
+
+ List items = new ArrayList();
+ items.add( "hello world" );
+ items.add( "goodbye world" );
+
+ pipeline.insert( items, null );
+
+ assertEquals( 2, list.size() );
+
+ Collections.sort( list );
+ assertEquals( "goodbye world", list.get( 0 ) );
+ assertEquals( "hello world", list.get( 1 ) );
+ }
+
+ public void testExecuteObjectAsDefaultWithParameters() {
+ String str = "";
+ str += "package org.sample \n";
+ str += "global java.util.List list; \n";
+ str += "rule rule1 \n";
+ str += " when \n";
+ str += " s : String() \n";
+ str += " then \n";
+ str += " list.add( s ); ";
+ str += "end\n";
+
+ KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
+ kbuilder.add( ResourceFactory.newByteArrayResource( str.getBytes() ), ResourceType.DRL );
+
+ if ( kbuilder.hasErrors() ) {
+ System.out.println( kbuilder.getErrors() );
+ }
+ assertFalse( kbuilder.hasErrors() );
+
+ KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
+ kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
+ StatelessKnowledgeSession ksession = kbase.newStatelessKnowledgeSession();
+
+ MvelAction mvelAction2 = new MvelAction( "context.parameters.globalParams.setInOut( ['list' : new java.util.ArrayList()] )");
+
+ StatelessKnowledgeSessionExecuteStage stage1 = new StatelessKnowledgeSessionExecuteStage();
+ mvelAction2.setReceiver( stage1 );
+
+ MvelAction mvelAction3 = new MvelAction( "context.resultHandler.handleResult( context.result )");
+ stage1.setReceiver( mvelAction3 );
+
+ StatelessKnowledgeSessionPipelineImpl pipeline = new StatelessKnowledgeSessionPipelineImpl(ksession);
+ pipeline.setReceiver( mvelAction2 );
+
+ ResultHandlerImpl handler = new ResultHandlerImpl();
+
+ pipeline.insert( "hello world", handler );
+
+ List list = (List)handler.getStatelessKnowledgeSessionResults().getValue( "list" );
+
+ assertEquals( 1, list.size() );
+
+ assertEquals( "hello world", list.get( 0 ) );
+ }
+
+ public void testExecuteObjectWithParameters() {
+ String str = "";
+ str += "package org.sample \n";
+ str += "global java.util.List list; \n";
+ str += "rule rule1 \n";
+ str += " when \n";
+ str += " s : String() \n";
+ str += " then \n";
+ str += " list.add( s ); ";
+ str += "end\n";
+
+ KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
+ kbuilder.add( ResourceFactory.newByteArrayResource( str.getBytes() ), ResourceType.DRL );
+
+ if ( kbuilder.hasErrors() ) {
+ System.out.println( kbuilder.getErrors() );
+ }
+ assertFalse( kbuilder.hasErrors() );
+
+ KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
+ kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
+ StatelessKnowledgeSession ksession = kbase.newStatelessKnowledgeSession();
+
+ MvelAction mvelAction1 = new MvelAction( "context.object = this");
+ MvelAction mvelAction2 = new MvelAction( "context.parameters.globalParams.setInOut( ['list' : new java.util.ArrayList()] )");
+
+ mvelAction1.setReceiver( mvelAction2 );
+
+ StatelessKnowledgeSessionExecuteStage stage1 = new StatelessKnowledgeSessionExecuteStage();
+ mvelAction2.setReceiver( stage1 );
+
+ MvelAction mvelAction3 = new MvelAction( "context.resultHandler.handleResult( context.result )");
+ stage1.setReceiver( mvelAction3 );
+
+ StatelessKnowledgeSessionPipelineImpl pipeline = new StatelessKnowledgeSessionPipelineImpl(ksession);
+ pipeline.setReceiver( mvelAction1 );
+
+ ResultHandlerImpl handler = new ResultHandlerImpl();
+
+ pipeline.insert( "hello world", handler );
+
+ List list = (List)handler.getStatelessKnowledgeSessionResults().getValue( "list" );
+
+ assertEquals( 1, list.size() );
+
+ assertEquals( "hello world", list.get( 0 ) );
+ }
+
+ public void testExecuteIterableWithParameters() {
+ String str = "";
+ str += "package org.sample \n";
+ str += "global java.util.List list; \n";
+ str += "rule rule1 \n";
+ str += " when \n";
+ str += " s : String() \n";
+ str += " then \n";
+ str += " list.add( s ); ";
+ str += "end\n";
+
+ KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
+ kbuilder.add( ResourceFactory.newByteArrayResource( str.getBytes() ), ResourceType.DRL );
+
+ if ( kbuilder.hasErrors() ) {
+ System.out.println( kbuilder.getErrors() );
+ }
+ assertFalse( kbuilder.hasErrors() );
+
+ KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
+ kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
+ StatelessKnowledgeSession ksession = kbase.newStatelessKnowledgeSession();
+
+ MvelAction mvelAction1 = new MvelAction( "context.setIterable( this )");
+ MvelAction mvelAction2 = new MvelAction( "context.parameters.globalParams.setInOut( ['list' : new java.util.ArrayList()] )");
+
+ mvelAction1.setReceiver( mvelAction2 );
+
+ StatelessKnowledgeSessionExecuteStage stage1 = new StatelessKnowledgeSessionExecuteStage();
+ mvelAction2.setReceiver( stage1 );
+
+ MvelAction mvelAction3 = new MvelAction( "context.resultHandler.handleResult( context.result )");
+ stage1.setReceiver( mvelAction3 );
+
+ StatelessKnowledgeSessionPipelineImpl pipeline = new StatelessKnowledgeSessionPipelineImpl(ksession);
+ pipeline.setReceiver( mvelAction1 );
+
+ ResultHandlerImpl handler = new ResultHandlerImpl();
+
+ List items = new ArrayList();
+ items.add( "hello world" );
+ items.add( "goodbye world" );
+
+ pipeline.insert( items, handler );
+
+ List list = (List)handler.getStatelessKnowledgeSessionResults().getValue( "list" );
+
+ assertEquals( 2, list.size() );
+
+ Collections.sort( list );
+ assertEquals( "goodbye world", list.get( 0 ) );
+ assertEquals( "hello world", list.get( 1 ) );
+ }
+
+ public static class ResultHandlerImpl implements ResultHandler {
+ StatelessKnowledgeSessionResults results;
+
+ public void handleResult(Object object) {
+ this.results = ( StatelessKnowledgeSessionResults ) object;
+ }
+
+ public StatelessKnowledgeSessionResults getStatelessKnowledgeSessionResults() {
+ return this.results;
+ }
+
+ }
+}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/impl/ParametersImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/impl/ParametersImpl.java 2009-01-08 03:18:57 UTC (rev 24595)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/impl/ParametersImpl.java 2009-01-08 04:17:30 UTC (rev 24596)
@@ -1,12 +1,15 @@
package org.drools.impl;
+import java.util.Collection;
+import java.util.Map;
+
import org.drools.runtime.FactParams;
import org.drools.runtime.GlobalParams;
import org.drools.runtime.Parameters;
public class ParametersImpl implements Parameters {
- private FactParams factParams = new FactParamsImpl();
- private GlobalParams globalParams = new GlobalParamsImpl();
+ private FactParamsImpl factParams = new FactParamsImpl();
+ private GlobalParamsImpl globalParams = new GlobalParamsImpl();
public FactParams getFactParams() {
return this.factParams;
@@ -15,5 +18,25 @@
public GlobalParams getGlobalParams() {
return this.globalParams;
}
+
+ public boolean isEmpty() {
+ if ( !isEmpty(factParams.getIn() ) || !isEmpty( factParams.getOut() ) || !isEmpty( factParams.getInOut() ) ) {
+ return false;
+ }
+
+ if ( !isEmpty(globalParams.getIn() ) || !isEmpty( globalParams.getOut() ) || !isEmpty( globalParams.getInOut() ) ) {
+ return false;
+ }
+
+ return true;
+ }
+
+ public boolean isEmpty(Collection collection) {
+ return collection == null || collection.isEmpty();
+ }
+
+ public boolean isEmpty(Map map) {
+ return map == null || map.isEmpty();
+ }
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/impl/DataLoaderProviderImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/impl/DataLoaderProviderImpl.java 2009-01-08 03:18:57 UTC (rev 24595)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/impl/DataLoaderProviderImpl.java 2009-01-08 04:17:30 UTC (rev 24596)
@@ -3,7 +3,7 @@
import org.drools.runtime.StatefulKnowledgeSession;
import org.drools.runtime.StatelessKnowledgeSession;
import org.drools.runtime.dataloader.DataLoaderProvider;
-import org.drools.runtime.dataloader.StatefulKnowledgeSessionDataLoader;
+import org.drools.runtime.dataloader.WorkingMemoryDataLoader;
import org.drools.runtime.dataloader.StatelessKnowledgeSessionDataLoader;
import org.drools.runtime.pipeline.Receiver;
@@ -11,12 +11,12 @@
implements
DataLoaderProvider {
- public StatefulKnowledgeSessionDataLoader newStatefulKnowledgeSessionDataLoader(StatefulKnowledgeSession ksession,
+ public WorkingMemoryDataLoader newStatefulRuleSessionDataLoader(StatefulKnowledgeSession ksession,
Receiver pipeline) {
return new StatefulKnowledgeSessionDataLoaderImpl(ksession, pipeline);
}
- public StatefulKnowledgeSessionDataLoader newStatefulKnowledgeSessionDataLoader(StatefulKnowledgeSession ksession,
+ public WorkingMemoryDataLoader newStatefulKnowledgeSessionDataLoader(StatefulKnowledgeSession ksession,
String entryPointName,
Receiver pipeline) {
return new StatefulKnowledgeSessionDataLoaderImpl(ksession, entryPointName, pipeline);
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/impl/EntryPointPipelineContext.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/impl/EntryPointPipelineContext.java 2009-01-08 03:18:57 UTC (rev 24595)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/impl/EntryPointPipelineContext.java 2009-01-08 04:17:30 UTC (rev 24596)
@@ -8,10 +8,8 @@
import org.drools.common.InternalRuleBase;
import org.drools.common.InternalWorkingMemoryEntryPoint;
-import org.drools.impl.KnowledgeBaseImpl;
-import org.drools.impl.StatefulKnowledgeSessionImpl;
-import org.drools.runtime.StatefulKnowledgeSession;
import org.drools.runtime.pipeline.PipelineContext;
+import org.drools.runtime.pipeline.ResultHandler;
import org.drools.runtime.pipeline.impl.BasePipelineContext;
import org.drools.runtime.rule.FactHandle;
import org.drools.runtime.rule.WorkingMemoryEntryPoint;
@@ -19,13 +17,16 @@
public class EntryPointPipelineContext extends BasePipelineContext
implements
PipelineContext {
- private Map handles;
- private WorkingMemoryEntryPoint entryPoint;
+ private Map handles;
+ private WorkingMemoryEntryPoint entryPoint;
+ private ResultHandler resultHandler;
- public EntryPointPipelineContext(WorkingMemoryEntryPoint entryPoint) {
- super( ((InternalRuleBase)((InternalWorkingMemoryEntryPoint)entryPoint).getRuleBase()).getRootClassLoader() );
+ public EntryPointPipelineContext(WorkingMemoryEntryPoint entryPoint,
+ ResultHandler resultHandler) {
+ super( ((InternalRuleBase) ((InternalWorkingMemoryEntryPoint) entryPoint).getRuleBase()).getRootClassLoader() );
this.handles = new HashMap<FactHandle, Object>();
this.entryPoint = entryPoint;
+ this.resultHandler = resultHandler;
}
public Map getHandles() {
@@ -35,4 +36,9 @@
public WorkingMemoryEntryPoint getEntryPoint() {
return entryPoint;
}
+
+ public ResultHandler getResultHandler() {
+ return resultHandler;
+ }
+
}
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/impl/StatefulKnowledgeSessionDataLoaderImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/impl/StatefulKnowledgeSessionDataLoaderImpl.java 2009-01-08 03:18:57 UTC (rev 24595)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/impl/StatefulKnowledgeSessionDataLoaderImpl.java 2009-01-08 04:17:30 UTC (rev 24596)
@@ -1,46 +0,0 @@
-package org.drools.runtime.dataloader.impl;
-
-import java.util.Map;
-
-import org.drools.runtime.StatefulKnowledgeSession;
-import org.drools.runtime.dataloader.StatefulKnowledgeSessionDataLoader;
-import org.drools.runtime.pipeline.Receiver;
-import org.drools.runtime.rule.WorkingMemoryEntryPoint;
-
-public class StatefulKnowledgeSessionDataLoaderImpl
- implements
- StatefulKnowledgeSessionDataLoader {
- private StatefulKnowledgeSession ksession;
- private String entryPointName;
- private WorkingMemoryEntryPoint entryPoint;
-
- private Receiver pipeline;
-
- public StatefulKnowledgeSessionDataLoaderImpl(StatefulKnowledgeSession ksession,
- String entryPointName,
- Receiver pipeline) {
- this.ksession = ksession;
- this.entryPointName = entryPointName;
- this.entryPoint = ksession.getWorkingMemoryEntryPoint( this.entryPointName );
- this.pipeline = pipeline;
- }
-
- public StatefulKnowledgeSessionDataLoaderImpl(StatefulKnowledgeSession ksession,
- Receiver pipeline) {
- this.ksession = ksession;
- this.entryPoint = ksession;
- this.pipeline = pipeline;
- }
-
- /* (non-Javadoc)
- * @see org.drools.dataloaders.smooks.StatefulKnowledgeSessionDataLoader#insert(java.lang.Object)
- */
- public Map insert(Object object) {
- EntryPointPipelineContext context = new EntryPointPipelineContext( this.entryPoint );
- this.pipeline.receive( object,
- context );
-
- return context.getHandles();
- }
-
-}
Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/impl/StatefulKnowledgeSessionDataLoaderImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/impl/StatefulKnowledgeSessionDataLoaderImpl.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/impl/StatefulKnowledgeSessionDataLoaderImpl.java 2009-01-08 04:17:30 UTC (rev 24596)
@@ -0,0 +1,50 @@
+package org.drools.runtime.dataloader.impl;
+
+import java.util.Map;
+
+import org.drools.runtime.StatefulKnowledgeSession;
+import org.drools.runtime.dataloader.WorkingMemoryDataLoader;
+import org.drools.runtime.pipeline.Receiver;
+import org.drools.runtime.process.ProcessInstance;
+import org.drools.runtime.rule.WorkingMemoryEntryPoint;
+
+public class StatefulKnowledgeSessionDataLoaderImpl
+ implements
+ WorkingMemoryDataLoader {
+ private StatefulKnowledgeSession ksession;
+ private String entryPointName;
+ private WorkingMemoryEntryPoint entryPoint;
+ private Receiver pipeline;
+
+ public StatefulKnowledgeSessionDataLoaderImpl(StatefulKnowledgeSession ksession,
+ String entryPointName,
+ Receiver pipeline) {
+ this.ksession = ksession;
+ this.entryPointName = entryPointName;
+ this.entryPoint = ksession.getWorkingMemoryEntryPoint( this.entryPointName );
+ this.pipeline = pipeline;
+ }
+
+ public StatefulKnowledgeSessionDataLoaderImpl(StatefulKnowledgeSession ksession,
+ Receiver pipeline) {
+ this.ksession = ksession;
+ this.entryPoint = ksession;
+ this.pipeline = pipeline;
+ }
+
+ /* (non-Javadoc)
+ * @see org.drools.dataloaders.smooks.StatefulKnowledgeSessionDataLoader#insert(java.lang.Object)
+ */
+ public Map insert(Object object) {
+ EntryPointPipelineContext context = new EntryPointPipelineContext( this.entryPoint, null );
+ this.pipeline.receive( object,
+ context );
+
+ return context.getHandles();
+ }
+
+ public ProcessInstance startProcess(String id, Object object) {
+ return null;
+ }
+
+}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/BaseEmitter.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/BaseEmitter.java 2009-01-08 03:18:57 UTC (rev 24595)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/BaseEmitter.java 2009-01-08 04:17:30 UTC (rev 24596)
@@ -12,29 +12,24 @@
public class BaseEmitter extends BaseStage
implements
Emitter {
- protected List<Receiver> receivers;
+ protected Receiver receiver;
public BaseEmitter() {
- this.receivers = new CopyOnWriteArrayList<Receiver>();
}
- public void addReceiver(Receiver receiver) {
- this.receivers.add( receiver );
+ public void setReceiver(Receiver receiver) {
+ this.receiver = receiver;
}
- public void removeReceiver(Receiver receiver) {
- this.receivers.remove( receiver );
+ public Receiver getReceiver() {
+ return this.receiver;
}
- public Collection<Receiver> getReceivers() {
- return Collections.unmodifiableCollection( this.receivers );
- }
-
protected void emit(Object object,
PipelineContext context) {
- for ( Receiver receiver : this.receivers ) {
+ if ( this.receiver != null ) {
receiver.receive( object,
- context );
+ context );
}
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/BasePipelineContext.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/BasePipelineContext.java 2009-01-08 03:18:57 UTC (rev 24595)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/BasePipelineContext.java 2009-01-08 04:17:30 UTC (rev 24596)
@@ -4,13 +4,24 @@
import java.util.Map;
import org.drools.runtime.pipeline.PipelineContext;
+import org.drools.runtime.pipeline.ResultHandler;
-public class BasePipelineContext implements PipelineContext {
- private ClassLoader classLoader;
- private Map<String, Object> properties;
+public class BasePipelineContext
+ implements
+ PipelineContext {
+ private ClassLoader classLoader;
+ private Map<String, Object> properties;
+ private Object result;
+ private ResultHandler resultHandler;
- public BasePipelineContext(ClassLoader classLoader) {
+ public BasePipelineContext(ClassLoader classLoader) {
+ this(classLoader, null);
+ }
+
+ public BasePipelineContext(ClassLoader classLoader,
+ ResultHandler resultHandler) {
this.classLoader = classLoader;
+ this.resultHandler = resultHandler;
this.properties = new HashMap<String, Object>();
}
@@ -21,5 +32,17 @@
public Map<String, Object> getProperties() {
return properties;
}
+
+ public ResultHandler getResultHandler() {
+ return this.resultHandler;
+ }
+
+ public Object getResult() {
+ return result;
+ }
+
+ public void setResult(Object result) {
+ this.result = result;
+ }
}
Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/EntryPointResultStage.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/EntryPointResultStage.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/EntryPointResultStage.java 2009-01-08 04:17:30 UTC (rev 24596)
@@ -0,0 +1,20 @@
+/**
+ *
+ */
+package org.drools.runtime.pipeline.impl;
+
+import org.drools.runtime.dataloader.impl.EntryPointPipelineContext;
+import org.drools.runtime.pipeline.PipelineContext;
+import org.drools.runtime.pipeline.Receiver;
+
+public class EntryPointResultStage extends BaseEmitter
+ implements
+ Receiver {
+ public void receive(Object object,
+ PipelineContext context) {
+
+ EntryPointPipelineContext pContext = (EntryPointPipelineContext) context;
+ pContext.getResultHandler().handleResult( pContext.getHandles() );
+ }
+
+}
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/EntryPointStage.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/EntryPointStage.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/EntryPointStage.java 2009-01-08 04:17:30 UTC (rev 24596)
@@ -0,0 +1,25 @@
+/**
+ *
+ */
+package org.drools.runtime.pipeline.impl;
+
+import org.drools.runtime.dataloader.impl.EntryPointPipelineContext;
+import org.drools.runtime.pipeline.Adapter;
+import org.drools.runtime.pipeline.PipelineContext;
+import org.drools.runtime.pipeline.Receiver;
+import org.drools.runtime.pipeline.impl.BaseStage;
+import org.drools.runtime.rule.FactHandle;
+
+public class EntryPointStage extends BaseEmitter
+ implements
+ Receiver {
+ public void receive(Object object,
+ PipelineContext context) {
+ EntryPointPipelineContext pContext = (EntryPointPipelineContext) context;
+
+ FactHandle handle = ((pContext).getEntryPoint()).insert( object );
+ ((pContext).getHandles()).put( handle,
+ object );
+ }
+
+}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/MvelAction.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/MvelAction.java 2009-01-08 03:18:57 UTC (rev 24595)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/MvelAction.java 2009-01-08 04:17:30 UTC (rev 24596)
@@ -1,6 +1,8 @@
package org.drools.runtime.pipeline.impl;
import java.io.Serializable;
+import java.util.HashMap;
+import java.util.Map;
import org.drools.runtime.pipeline.Action;
import org.drools.runtime.pipeline.PipelineContext;
@@ -26,8 +28,11 @@
public void receive(Object object,
PipelineContext context) {
try {
+ Map<String, Object> vars = new HashMap<String, Object>(1);
+ vars.put( "context", context );
MVEL.executeExpression( this.expr,
- object );
+ object,
+ vars );
} catch ( Exception e ) {
handleException( this,
object,
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/MvelExpression.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/MvelExpression.java 2009-01-08 03:18:57 UTC (rev 24595)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/MvelExpression.java 2009-01-08 04:17:30 UTC (rev 24596)
@@ -1,6 +1,8 @@
package org.drools.runtime.pipeline.impl;
import java.io.Serializable;
+import java.util.HashMap;
+import java.util.Map;
import org.drools.runtime.pipeline.Expression;
import org.drools.runtime.pipeline.PipelineContext;
@@ -27,8 +29,11 @@
PipelineContext context) {
Object result = null;
try {
+ Map<String, Object> vars = new HashMap<String, Object>(1);
+ vars.put( "context", context );
result = MVEL.executeExpression( this.expr,
- object );
+ object,
+ vars );
} catch ( Exception e ) {
handleException( this,
object,
Added: 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 (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/Pipeline.java 2009-01-08 04:17:30 UTC (rev 24596)
@@ -0,0 +1,7 @@
+package org.drools.runtime.pipeline.impl;
+
+import org.drools.runtime.pipeline.ResultHandler;
+
+public interface Pipeline {
+ void insert(Object object, ResultHandler resultHandler);
+}
Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/PipelineContextFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/PipelineContextFactory.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/PipelineContextFactory.java 2009-01-08 04:17:30 UTC (rev 24596)
@@ -0,0 +1,7 @@
+package org.drools.runtime.pipeline.impl;
+
+import org.drools.runtime.pipeline.PipelineContext;
+
+public interface PipelineContextFactory {
+ PipelineContext newPipelineContext();
+}
Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/PipelineImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/PipelineImpl.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/PipelineImpl.java 2009-01-08 04:17:30 UTC (rev 24596)
@@ -0,0 +1,13 @@
+package org.drools.runtime.pipeline.impl;
+
+public class PipelineImpl extends BaseEmitter {
+ private PipelineContextFactory factory;
+
+ public PipelineImpl(PipelineContextFactory factory) {
+ this.factory = factory;
+ }
+
+ public void insert(Object object) {
+ emit( object, this.factory.newPipelineContext() );
+ }
+}
Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionInsertPipelineImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionInsertPipelineImpl.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionInsertPipelineImpl.java 2009-01-08 04:17:30 UTC (rev 24596)
@@ -0,0 +1,30 @@
+package org.drools.runtime.pipeline.impl;
+
+import org.drools.runtime.StatefulKnowledgeSession;
+import org.drools.runtime.dataloader.impl.EntryPointPipelineContext;
+import org.drools.runtime.pipeline.Receiver;
+import org.drools.runtime.pipeline.ResultHandler;
+import org.drools.runtime.rule.WorkingMemoryEntryPoint;
+
+public class StatefulKnowledgeSessionInsertPipelineImpl extends BaseEmitter
+ implements
+ Pipeline {
+ private WorkingMemoryEntryPoint entryPoint;
+
+ public StatefulKnowledgeSessionInsertPipelineImpl(StatefulKnowledgeSession ksession,
+ String entryPointName) {
+ this.entryPoint = ksession.getWorkingMemoryEntryPoint( entryPointName );
+ }
+
+ public StatefulKnowledgeSessionInsertPipelineImpl(StatefulKnowledgeSession ksession) {
+ this.entryPoint = ksession;
+ }
+
+ public void insert(Object object,
+ ResultHandler resultHandler) {
+ EntryPointPipelineContext context = new EntryPointPipelineContext( this.entryPoint,
+ resultHandler );
+ emit( object, context );
+ }
+
+}
Added: 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 (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionInsertStage.java 2009-01-08 04:17:30 UTC (rev 24596)
@@ -0,0 +1,21 @@
+package org.drools.runtime.pipeline.impl;
+
+import org.drools.common.InternalFactHandle;
+import org.drools.runtime.dataloader.impl.EntryPointPipelineContext;
+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 {
+
+ public void receive(Object object,
+ PipelineContext context) {
+ EntryPointPipelineContext epContext = ( EntryPointPipelineContext ) context;
+ FactHandle handle = epContext.getEntryPoint().insert( object );
+
+ epContext.getHandles().put( handle, (( InternalFactHandle ) handle ).getObject() );
+
+ emit( object, epContext );
+ }
+
+}
Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionPipelineContextImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionPipelineContextImpl.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionPipelineContextImpl.java 2009-01-08 04:17:30 UTC (rev 24596)
@@ -0,0 +1,32 @@
+package org.drools.runtime.pipeline.impl;
+
+import org.drools.runtime.StatefulKnowledgeSession;
+import org.drools.runtime.pipeline.ResultHandler;
+import org.drools.runtime.pipeline.StatefulKnowledgeSessionPipelineContext;
+import org.drools.runtime.rule.WorkingMemoryEntryPoint;
+
+public class StatefulKnowledgeSessionPipelineContextImpl extends BasePipelineContext
+ implements
+ StatefulKnowledgeSessionPipelineContext {
+ private StatefulKnowledgeSession ksession;
+ private WorkingMemoryEntryPoint entryPoint;
+
+ public StatefulKnowledgeSessionPipelineContextImpl(StatefulKnowledgeSession ksession,
+ ClassLoader classLoader,
+ WorkingMemoryEntryPoint entryPoint,
+ ResultHandler resultHandler) {
+ super( classLoader,
+ resultHandler );
+ this.ksession = ksession;
+ this.entryPoint = entryPoint;
+ }
+
+ public StatefulKnowledgeSession getStatefulKnowledgeSession() {
+ return this.ksession;
+ }
+
+ public WorkingMemoryEntryPoint getEntryPoint() {
+ return entryPoint;
+ }
+
+}
Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionStartProcessStage.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionStartProcessStage.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionStartProcessStage.java 2009-01-08 04:17:30 UTC (rev 24596)
@@ -0,0 +1,25 @@
+package org.drools.runtime.pipeline.impl;
+
+import java.util.Map;
+
+import org.drools.runtime.pipeline.PipelineContext;
+import org.drools.runtime.pipeline.Receiver;
+import org.drools.runtime.pipeline.StatefulKnowledgeSessionPipelineContext;
+
+public class StatefulKnowledgeSessionStartProcessStage extends BaseStage
+ implements
+ Receiver {
+ private String id;
+
+ public StatefulKnowledgeSessionStartProcessStage(String id) {
+ this.id = id;
+ }
+
+ public void receive(Object object,
+ PipelineContext context) {
+ StatefulKnowledgeSessionPipelineContext kContext = (StatefulKnowledgeSessionPipelineContext) context;
+ kContext.getStatefulKnowledgeSession().startProcess( id,
+ (Map<String, Object>) object );
+ }
+
+}
Added: 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 (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatelessKnowledgeSessionExecuteStage.java 2009-01-08 04:17:30 UTC (rev 24596)
@@ -0,0 +1,47 @@
+package org.drools.runtime.pipeline.impl;
+
+import org.drools.impl.ParametersImpl;
+import org.drools.runtime.StatelessKnowledgeSessionResults;
+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 {
+
+ public void receive(Object object,
+ PipelineContext context) {
+ StatelessKnowledgeSessionPipelineContext kContext = (StatelessKnowledgeSessionPipelineContext) context;
+
+ StatelessKnowledgeSessionResults results = null;
+ if ( kContext.getObject() != null ) {
+ if ( kContext.getParameters() == null || ((ParametersImpl) kContext.getParameters()).isEmpty() ) {
+ kContext.getStatelessKnowledgeSession().executeObject( kContext.getObject() );
+ } else {
+ results = kContext.getStatelessKnowledgeSession().executeObjectWithParameters( kContext.getObject(),
+ kContext.getParameters() );
+ }
+ } else if ( kContext.getIterable() != null ) {
+ if ( kContext.getParameters() == null || ((ParametersImpl) kContext.getParameters()).isEmpty() ) {
+ kContext.getStatelessKnowledgeSession().executeIterable( kContext.getIterable() );
+ } else {
+ results = kContext.getStatelessKnowledgeSession().executeIterableWithParameters( kContext.getIterable(),
+ kContext.getParameters() );
+ }
+ } else {
+ if ( kContext.getParameters() == null || ((ParametersImpl) kContext.getParameters()).isEmpty() ) {
+ kContext.getStatelessKnowledgeSession().executeObject( object );
+ } else {
+ results = kContext.getStatelessKnowledgeSession().executeObjectWithParameters( object,
+ kContext.getParameters() );
+ }
+ }
+
+ context.setResult( results );
+
+ emit( object, context );
+
+ }
+
+}
Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatelessKnowledgeSessionPipelineContextImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatelessKnowledgeSessionPipelineContextImpl.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatelessKnowledgeSessionPipelineContextImpl.java 2009-01-08 04:17:30 UTC (rev 24596)
@@ -0,0 +1,61 @@
+package org.drools.runtime.pipeline.impl;
+
+import org.drools.impl.ParametersImpl;
+import org.drools.runtime.Parameters;
+import org.drools.runtime.StatelessKnowledgeSession;
+import org.drools.runtime.pipeline.ResultHandler;
+import org.drools.runtime.pipeline.StatelessKnowledgeSessionPipelineContext;
+
+public class StatelessKnowledgeSessionPipelineContextImpl extends BasePipelineContext
+ implements
+ StatelessKnowledgeSessionPipelineContext {
+
+ private StatelessKnowledgeSession ksession;
+
+ private Iterable iterable;
+
+ private Object object;
+
+ private Parameters parameters;
+
+ public StatelessKnowledgeSessionPipelineContextImpl(StatelessKnowledgeSession ksession,
+ ClassLoader classLoader) {
+ this( ksession,
+ classLoader,
+ null );
+ }
+
+ public StatelessKnowledgeSessionPipelineContextImpl(StatelessKnowledgeSession ksession,
+ ClassLoader classLoader,
+ ResultHandler resultHandler) {
+ super( classLoader,
+ resultHandler );
+ this.ksession = ksession;
+ this.parameters = new ParametersImpl();
+ }
+
+ public StatelessKnowledgeSession getStatelessKnowledgeSession() {
+ return this.ksession;
+ }
+
+ public Parameters getParameters() {
+ return parameters;
+ }
+
+ public Iterable getIterable() {
+ return iterable;
+ }
+
+ public void setIterable(Iterable iterable) {
+ this.iterable = iterable;
+ }
+
+ public Object getObject() {
+ return object;
+ }
+
+ public void setObject(Object object) {
+ this.object = object;
+ }
+
+}
Added: 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 (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatelessKnowledgeSessionPipelineImpl.java 2009-01-08 04:17:30 UTC (rev 24596)
@@ -0,0 +1,26 @@
+package org.drools.runtime.pipeline.impl;
+
+import org.drools.runtime.StatefulKnowledgeSession;
+import org.drools.runtime.StatelessKnowledgeSession;
+import org.drools.runtime.dataloader.impl.EntryPointPipelineContext;
+import org.drools.runtime.pipeline.Receiver;
+import org.drools.runtime.pipeline.ResultHandler;
+import org.drools.runtime.rule.WorkingMemoryEntryPoint;
+
+public class StatelessKnowledgeSessionPipelineImpl extends BaseEmitter
+ implements
+ Pipeline {
+ private StatelessKnowledgeSession ksession;
+
+ public StatelessKnowledgeSessionPipelineImpl(StatelessKnowledgeSession ksession) {
+ this.ksession = ksession;
+ }
+
+ public void insert(Object object,
+ ResultHandler resultHandler) {
+ StatelessKnowledgeSessionPipelineContextImpl context = new StatelessKnowledgeSessionPipelineContextImpl(ksession, Thread.currentThread().getContextClassLoader(), 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-08 03:18:57 UTC (rev 24595)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/runtime/pipeline/impl/CallableTest.java 2009-01-08 04:17:30 UTC (rev 24596)
@@ -11,8 +11,8 @@
MockClass mock = new MockClass();
Callable callable = PipelineFactory.newCallable();
Action action = PipelineFactory.newMvelAction( "this.set = true" );
- callable.addReceiver( action );
- action.addReceiver( callable );
+ callable.setReceiver( action );
+ action.setReceiver( callable );
assertFalse( mock.isSet() );
callable.call( mock,
new BasePipelineContext( Thread.currentThread().getContextClassLoader() ) );
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-08 03:18:57 UTC (rev 24595)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/runtime/pipeline/impl/IterateSplitterTest.java 2009-01-08 04:17:30 UTC (rev 24596)
@@ -21,13 +21,13 @@
Action action = PipelineFactory.newMvelAction( "this.setValues( [0, 1, 2, 3, 4] ) " );
Expression expr = PipelineFactory.newMvelExpression( "this.values" );
- action.addReceiver( expr );
+ action.setReceiver( expr );
Splitter splitter = PipelineFactory.newIterateSplitter();
- expr.addReceiver( splitter );
+ expr.setReceiver( splitter );
ListAdapter listAdapter = PipelineFactory.newListAdapter( list, true );
- splitter.addReceiver( listAdapter );
+ splitter.setReceiver( listAdapter );
assertNull( mock.getValues() );
action.receive( mock, new BasePipelineContext( Thread.currentThread().getContextClassLoader() ) );
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-08 03:18:57 UTC (rev 24595)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/runtime/pipeline/impl/ListAdapterTest.java 2009-01-08 04:17:30 UTC (rev 24596)
@@ -19,7 +19,7 @@
Action action = PipelineFactory.newMvelAction( "this.set = true" );
ListAdapter listAdapter = PipelineFactory.newListAdapter( list, true );
- action.addReceiver( listAdapter );
+ action.setReceiver( listAdapter );
assertFalse( mock.isSet() );
action.receive( mock, new BasePipelineContext( Thread.currentThread().getContextClassLoader() ) );
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-08 03:18:57 UTC (rev 24595)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/runtime/pipeline/impl/MvelExpressionTest.java 2009-01-08 04:17:30 UTC (rev 24596)
@@ -20,10 +20,10 @@
Callable callable = PipelineFactory.newCallable();
Action action = PipelineFactory.newMvelAction( "this.setValues( [0, 1, 2, 3, 4] ) " );
- callable.addReceiver( action );
+ callable.setReceiver( action );
Expression expr = PipelineFactory.newMvelExpression( "this.values" );
- action.addReceiver( expr );
- expr.addReceiver( callable );
+ action.setReceiver( expr );
+ expr.setReceiver( callable );
assertNull( mock.getValues() );
List<Integer> list = ( List<Integer> ) callable.call( mock, new BasePipelineContext( Thread.currentThread().getContextClassLoader() ) );
Added: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionPipelineTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionPipelineTest.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionPipelineTest.java 2009-01-08 04:17:30 UTC (rev 24596)
@@ -0,0 +1,42 @@
+package org.drools.runtime.pipeline.impl;
+
+import java.util.Map;
+
+import org.drools.KnowledgeBase;
+import org.drools.KnowledgeBaseFactory;
+import org.drools.runtime.StatefulKnowledgeSession;
+import org.drools.runtime.pipeline.ResultHandler;
+
+import junit.framework.TestCase;
+
+public class StatefulKnowledgeSessionPipelineTest extends TestCase {
+ public void testInsertObject() {
+ KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
+ StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
+
+ StatefulKnowledgeSessionInsertStage stage1 = new StatefulKnowledgeSessionInsertStage();
+ MvelAction mvelAction = new MvelAction( "context.resultHandler.handleResult( context.handles )");
+ stage1.setReceiver( mvelAction );
+
+ StatefulKnowledgeSessionInsertPipelineImpl pipeline = new StatefulKnowledgeSessionInsertPipelineImpl(ksession);
+ pipeline.setReceiver( stage1 );
+
+ assertEquals( 0, ksession.getObjects().size() );
+
+ ResultHandlerImpl resultHanadle = new ResultHandlerImpl();
+ pipeline.insert( "Hello", resultHanadle );
+
+ assertEquals( 1, resultHanadle.getHandles().size() );
+ }
+
+ public static class ResultHandlerImpl implements ResultHandler {
+ Map handles;
+ public void handleResult(Object object) {
+ this.handles = ( Map ) object;
+ }
+ public Map getHandles() {
+ return this.handles;
+ }
+
+ }
+}
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-08 03:18:57 UTC (rev 24595)
+++ labs/jbossrules/trunk/drools-pipeline/drools-transformer-jaxb/src/test/java/org/drools/runtime/pipeline/impl/DroolsJaxbTest.java 2009-01-08 04:17:30 UTC (rev 24596)
@@ -34,7 +34,7 @@
import org.drools.builder.help.KnowledgeBuilderHelper;
import org.drools.io.ResourceFactory;
import org.drools.runtime.StatefulKnowledgeSession;
-import org.drools.runtime.dataloader.StatefulKnowledgeSessionDataLoader;
+import org.drools.runtime.dataloader.WorkingMemoryDataLoader;
import org.drools.runtime.dataloader.impl.StatefulKnowledgeSessionDataLoaderImpl;
import org.drools.runtime.pipeline.Expression;
import org.drools.runtime.pipeline.PipelineFactory;
@@ -101,10 +101,10 @@
kbase );
Unmarshaller unmarshaller = jaxbCtx.createUnmarshaller();
Transformer transformer = PipelineFactory.newJaxbTransformer( unmarshaller );
- transformer.addReceiver( PipelineFactory.newEntryPointReceiverAdapter() );
+ transformer.setReceiver( PipelineFactory.newEntryPointReceiverAdapter() );
- StatefulKnowledgeSessionDataLoader dataLoader = new StatefulKnowledgeSessionDataLoaderImpl( ksession,
- transformer );
+ WorkingMemoryDataLoader dataLoader = new StatefulKnowledgeSessionDataLoaderImpl( ksession,
+ transformer );
Map<FactHandle, Object> handles = dataLoader.insert( new StreamSource( getClass().getResourceAsStream( "order.xml" ) ) );
ksession.fireAllRules();
@@ -151,12 +151,12 @@
Unmarshaller unmarshaller = jaxbCtx.createUnmarshaller();
Transformer transformer = PipelineFactory.newJaxbTransformer( unmarshaller );
Expression expression = PipelineFactory.newMvelExpression( "this.orderItem" );
- transformer.addReceiver( expression );
+ transformer.setReceiver( expression );
Splitter splitter = PipelineFactory.newIterateSplitter();
- expression.addReceiver( splitter );
- splitter.addReceiver( PipelineFactory.newEntryPointReceiverAdapter() );
- StatefulKnowledgeSessionDataLoader dataLoader = new StatefulKnowledgeSessionDataLoaderImpl( ksession,
- transformer );
+ 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" ) ) );
ksession.fireAllRules();
Modified: labs/jbossrules/trunk/drools-pipeline/drools-transformer-jxls/pom.xml
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/drools-transformer-jxls/pom.xml 2009-01-08 03:18:57 UTC (rev 24595)
+++ labs/jbossrules/trunk/drools-pipeline/drools-transformer-jxls/pom.xml 2009-01-08 04:17:30 UTC (rev 24596)
@@ -10,7 +10,7 @@
<artifactId>drools-transformer-jxls</artifactId>
<packaging>jar</packaging>
- <name>Drools :: Transformer :: JXLS</name>
+ <name>Drools :: Pipeline:: Transformer :: JXLS</name>
<dependencies>
<dependency>
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-08 03:18:57 UTC (rev 24595)
+++ labs/jbossrules/trunk/drools-pipeline/drools-transformer-jxls/src/test/java/org/drools/runtime/pipeline/impl/JxlsTest.java 2009-01-08 04:17:30 UTC (rev 24596)
@@ -47,8 +47,8 @@
Callable callable = PipelineFactory.newCallable();
Transformer transformer = PipelineFactory.newJxlsTransformer(mainReader, "[ 'departments' : new java.util.ArrayList(), 'company' : new org.drools.runtime.pipeline.impl.Company() ]");
- callable.addReceiver( transformer );
- transformer.addReceiver( callable );
+ callable.setReceiver( transformer );
+ transformer.setReceiver( callable );
BasePipelineContext context = new BasePipelineContext( Thread.currentThread().getContextClassLoader() );
Map<String, Object> beans = ( Map<String, Object> ) callable.call( inputXLS, context );
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-08 03:18:57 UTC (rev 24595)
+++ labs/jbossrules/trunk/drools-pipeline/drools-transformer-smooks/src/test/java/org/drools/runtime/pipeline/impl/DroolsSmookStatefulSessionTest.java 2009-01-08 04:17:30 UTC (rev 24596)
@@ -18,7 +18,7 @@
import org.drools.io.ResourceFactory;
import org.drools.runtime.StatefulKnowledgeSession;
import org.drools.runtime.dataloader.DataLoaderFactory;
-import org.drools.runtime.dataloader.StatefulKnowledgeSessionDataLoader;
+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.Expression;
@@ -55,9 +55,9 @@
Smooks smooks = new Smooks( getClass().getResourceAsStream( "smooks-config.xml" ) );
Transformer transformer = PipelineFactory.newSmooksTransformer( smooks, "orderItem" );
- transformer.addReceiver( PipelineFactory.newEntryPointReceiverAdapter() );
+ transformer.setReceiver( PipelineFactory.newEntryPointReceiverAdapter() );
- StatefulKnowledgeSessionDataLoader dataLoader = DataLoaderFactory.newStatefulKnowledgeSessionDataLoader( ksession,
+ WorkingMemoryDataLoader dataLoader = DataLoaderFactory.newStatefulRuleSessionDataLoader( ksession,
transformer );
Map<FactHandle, Object> handles = dataLoader.insert( new StreamSource( getClass().getResourceAsStream( "SmooksDirectRoot.xml" ) ) );
ksession.fireAllRules();
@@ -93,12 +93,12 @@
Transformer transformer = PipelineFactory.newSmooksTransformer( smooks, "root" );
Expression expression = PipelineFactory.newMvelExpression( "children" );
- transformer.addReceiver( expression );
+ transformer.setReceiver( expression );
Splitter splitter = PipelineFactory.newIterateSplitter();
- expression.addReceiver( splitter );
- splitter.addReceiver( PipelineFactory.newEntryPointReceiverAdapter() );
+ expression.setReceiver( splitter );
+ splitter.setReceiver( PipelineFactory.newEntryPointReceiverAdapter() );
- StatefulKnowledgeSessionDataLoader dataLoader = DataLoaderFactory.newStatefulKnowledgeSessionDataLoader( ksession,
+ WorkingMemoryDataLoader dataLoader = DataLoaderFactory.newStatefulRuleSessionDataLoader( ksession,
transformer );
Map<FactHandle, Object> handles = dataLoader.insert( new StreamSource( getClass().getResourceAsStream( "SmooksNestedIterable.xml" ) ) );
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-08 03:18:57 UTC (rev 24595)
+++ labs/jbossrules/trunk/drools-pipeline/drools-transformer-smooks/src/test/java/org/drools/runtime/pipeline/impl/DroolsSmookStatelessSessionTest.java 2009-01-08 04:17:30 UTC (rev 24596)
@@ -48,7 +48,7 @@
Smooks smooks = new Smooks( getClass().getResourceAsStream( "smooks-config.xml" ) );
Transformer transformer = PipelineFactory.newSmooksTransformer( smooks, "orderItem" );
- transformer.addReceiver( PipelineFactory.newStatelessKnowledgeSessionReceiverAdapter() );
+ transformer.setReceiver( PipelineFactory.newStatelessKnowledgeSessionReceiverAdapter() );
StatelessKnowledgeSessionDataLoader dataLoader = new StatelessKnowledgeSessionDataLoaderImpl( ksession,
transformer );
@@ -83,10 +83,10 @@
Transformer transformer = PipelineFactory.newSmooksTransformer( smooks, "root" );
Expression expression = PipelineFactory.newMvelExpression( "children" );
- transformer.addReceiver( expression );
+ transformer.setReceiver( expression );
Splitter splitter = PipelineFactory.newIterateSplitter();
- expression.addReceiver( splitter );
- splitter.addReceiver( PipelineFactory.newStatelessKnowledgeSessionReceiverAdapter() );
+ expression.setReceiver( splitter );
+ splitter.setReceiver( PipelineFactory.newStatelessKnowledgeSessionReceiverAdapter() );
StatelessKnowledgeSessionDataLoader dataLoader = new StatelessKnowledgeSessionDataLoaderImpl( ksession,
transformer );
Property changes on: labs/jbossrules/trunk/drools-pipeline/drools-transformer-xstream
___________________________________________________________________
Name: svn:ignore
- target
+ target
.settings
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-08 03:18:57 UTC (rev 24595)
+++ labs/jbossrules/trunk/drools-pipeline/drools-transformer-xstream/src/test/java/org/drools/runtime/pipeline/impl/DroolsXStreamStatefulSessionTest.java 2009-01-08 04:17:30 UTC (rev 24596)
@@ -21,7 +21,7 @@
import org.drools.io.ResourceFactory;
import org.drools.runtime.StatefulKnowledgeSession;
import org.drools.runtime.dataloader.DataLoaderFactory;
-import org.drools.runtime.dataloader.StatefulKnowledgeSessionDataLoader;
+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.Expression;
@@ -55,10 +55,10 @@
XStream xstream = new XStream();
Transformer transformer = PipelineFactory.newXStreamTransformer( xstream );
- transformer.addReceiver( PipelineFactory.newEntryPointReceiverAdapter() );
+ transformer.setReceiver( PipelineFactory.newEntryPointReceiverAdapter() );
- StatefulKnowledgeSessionDataLoader dataLoader = DataLoaderFactory.newStatefulKnowledgeSessionDataLoader( ksession,
- transformer );
+ WorkingMemoryDataLoader dataLoader = DataLoaderFactory.newStatefulRuleSessionDataLoader( ksession,
+ transformer );
Map<FactHandle, Object> handles = dataLoader.insert( getClass().getResourceAsStream( "XStreamDirectRoot.xml" ) );
ksession.fireAllRules();
@@ -91,13 +91,13 @@
XStream xstream = new XStream();
Transformer transformer = PipelineFactory.newXStreamTransformer( xstream );
Expression expression = PipelineFactory.newMvelExpression( "this" );
- transformer.addReceiver( expression );
+ transformer.setReceiver( expression );
Splitter splitter = PipelineFactory.newIterateSplitter();
- expression.addReceiver( splitter );
- splitter.addReceiver( PipelineFactory.newEntryPointReceiverAdapter() );
+ expression.setReceiver( splitter );
+ splitter.setReceiver( PipelineFactory.newEntryPointReceiverAdapter() );
- StatefulKnowledgeSessionDataLoader dataLoader = DataLoaderFactory.newStatefulKnowledgeSessionDataLoader( ksession,
- transformer );
+ WorkingMemoryDataLoader dataLoader = DataLoaderFactory.newStatefulRuleSessionDataLoader( ksession,
+ transformer );
Map<FactHandle, Object> handles = dataLoader.insert( getClass().getResourceAsStream( "XStreamNestedIterable.xml" ) );
ksession.fireAllRules();
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-08 03:18:57 UTC (rev 24595)
+++ labs/jbossrules/trunk/drools-pipeline/drools-transformer-xstream/src/test/java/org/drools/runtime/pipeline/impl/DroolsXStreamStatelessSessionTest.java 2009-01-08 04:17:30 UTC (rev 24596)
@@ -25,7 +25,7 @@
public class DroolsXStreamStatelessSessionTest extends TestCase {
- public void testSmooksDirectRoot() throws Exception {
+ public void testXstreamDirectRoot() throws Exception {
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
kbuilder.add( ResourceFactory.newClassPathResource( "test_XStreamDirectRoot.drl",
@@ -44,7 +44,7 @@
XStream xstream = new XStream();
Transformer transformer = PipelineFactory.newXStreamTransformer( xstream );
- transformer.addReceiver( PipelineFactory.newStatelessKnowledgeSessionReceiverAdapter() );
+ transformer.setReceiver( PipelineFactory.newStatelessKnowledgeSessionReceiverAdapter() );
StatelessKnowledgeSessionDataLoader dataLoader = new StatelessKnowledgeSessionDataLoaderImpl( ksession,
transformer );
@@ -57,7 +57,7 @@
list.get( 0 ).getClass().getName() );
}
- public void testSmooksNestedIterable() throws Exception {
+ public void testXstreamNestedIterable() throws Exception {
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
kbuilder.add( ResourceFactory.newClassPathResource( "test_XStreamNestedIterable.drl",
@@ -77,10 +77,10 @@
XStream xstream = new XStream();
Transformer transformer = PipelineFactory.newXStreamTransformer( xstream );
Expression expression = PipelineFactory.newMvelExpression( "this" );
- transformer.addReceiver( expression );
+ transformer.setReceiver( expression );
Splitter splitter = PipelineFactory.newIterateSplitter();
- expression.addReceiver( splitter );
- splitter.addReceiver( PipelineFactory.newStatelessKnowledgeSessionReceiverAdapter() );
+ expression.setReceiver( splitter );
+ splitter.setReceiver( PipelineFactory.newStatelessKnowledgeSessionReceiverAdapter() );
StatelessKnowledgeSessionDataLoader dataLoader = new StatelessKnowledgeSessionDataLoaderImpl( ksession,
transformer );
More information about the jboss-svn-commits
mailing list