[jboss-svn-commits] JBL Code SVN: r24644 - in labs/jbossrules/trunk: drools-api/src/main/java/org/drools/runtime/rule and 3 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sat Jan 10 22:36:09 EST 2009
Author: mark.proctor at jboss.com
Date: 2009-01-10 22:36:09 -0500 (Sat, 10 Jan 2009)
New Revision: 24644
Added:
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/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/pipeline/impl/StatefulKnowledgeSessionGetGlobalStage.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionGetObjectStage.java
Removed:
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/dataloader/
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
Modified:
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/KnowledgeRuntime.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/rule/WorkingMemory.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/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/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/StatefulKnowledgeSessionStartProcessStage.java
Log:
JBRULES-1903 Pipeline support for DataLoaders and Feeders
-Moved DataLoaders out of drools-api, as don't want to support it.
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/KnowledgeRuntime.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/KnowledgeRuntime.java 2009-01-10 04:47:18 UTC (rev 24643)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/KnowledgeRuntime.java 2009-01-11 03:36:09 UTC (rev 24644)
@@ -18,6 +18,8 @@
*/
void setGlobal(String identifier,
Object object);
+
+ Object getGlobal(String identifier);
/**
* Delegate used to resolve any global names not found in the global map.
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/rule/WorkingMemory.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/rule/WorkingMemory.java 2009-01-10 04:47:18 UTC (rev 24643)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/rule/WorkingMemory.java 2009-01-11 03:36:09 UTC (rev 24644)
@@ -48,6 +48,14 @@
* @see KnowledgeBaseConfiguration
*/
FactHandle getFactHandle(Object object);
+
+ /**
+ * Returns the object associated with the given FactHandle.
+ *
+ * @param factHandle
+ * @return
+ */
+ Object getObject(FactHandle factHandle);
/**
* Returns all facts from the current session.
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-10 04:47:18 UTC (rev 24643)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/impl/StatefulKnowledgeSessionImpl.java 2009-01-11 03:36:09 UTC (rev 24644)
@@ -238,6 +238,10 @@
object );
}
+ public Object getGlobal(String identifier) {
+ return this.session.getGlobal( identifier );
+ }
+
public void setGlobalResolver(GlobalResolver globalResolver) {
this.session.setGlobalResolver( (org.drools.spi.GlobalResolver) globalResolver );
}
Copied: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/DataLoaderFactory.java (from rev 24643, labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/dataloader/DataLoaderFactory.java)
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/DataLoaderFactory.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/DataLoaderFactory.java 2009-01-11 03:36:09 UTC (rev 24644)
@@ -0,0 +1,47 @@
+package org.drools.runtime.dataloader;
+
+import org.drools.ProviderInitializationException;
+import org.drools.runtime.StatefulKnowledgeSession;
+import org.drools.runtime.StatelessKnowledgeSession;
+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 );
+ }
+ }
+}
Property changes on: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/DataLoaderFactory.java
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/DataLoaderProvider.java (from rev 24643, labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/dataloader/DataLoaderProvider.java)
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/DataLoaderProvider.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/DataLoaderProvider.java 2009-01-11 03:36:09 UTC (rev 24644)
@@ -0,0 +1,17 @@
+package org.drools.runtime.dataloader;
+
+import org.drools.runtime.StatefulKnowledgeSession;
+import org.drools.runtime.StatelessKnowledgeSession;
+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);
+}
Property changes on: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/DataLoaderProvider.java
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/ProcessRuntimeDataLoader.java (from rev 24643, labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/dataloader/ProcessRuntimeDataLoader.java)
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/ProcessRuntimeDataLoader.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/ProcessRuntimeDataLoader.java 2009-01-11 03:36:09 UTC (rev 24644)
@@ -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
Property changes on: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/ProcessRuntimeDataLoader.java
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/StatelessKnowledgeSessionDataLoader.java (from rev 24643, labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/dataloader/StatelessKnowledgeSessionDataLoader.java)
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/StatelessKnowledgeSessionDataLoader.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/StatelessKnowledgeSessionDataLoader.java 2009-01-11 03:36:09 UTC (rev 24644)
@@ -0,0 +1,18 @@
+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
Property changes on: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/StatelessKnowledgeSessionDataLoader.java
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/WorkingMemoryDataLoader.java (from rev 24643, labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/dataloader/WorkingMemoryDataLoader.java)
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/WorkingMemoryDataLoader.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/dataloader/WorkingMemoryDataLoader.java 2009-01-11 03:36:09 UTC (rev 24644)
@@ -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
Deleted: 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 2009-01-10 04:47:18 UTC (rev 24643)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/EntryPointResultStage.java 2009-01-11 03:36:09 UTC (rev 24644)
@@ -1,20 +0,0 @@
-/**
- *
- */
-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
Deleted: 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 2009-01-10 04:47:18 UTC (rev 24643)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/EntryPointStage.java 2009-01-11 03:36:09 UTC (rev 24644)
@@ -1,25 +0,0 @@
-/**
- *
- */
-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
Added: 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 (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionGetGlobalStage.java 2009-01-11 03:36:09 UTC (rev 24644)
@@ -0,0 +1,30 @@
+package org.drools.runtime.pipeline.impl;
+
+import java.util.Map;
+import java.util.Map.Entry;
+
+import org.drools.runtime.StatefulKnowledgeSession;
+import org.drools.runtime.pipeline.PipelineContext;
+import org.drools.runtime.pipeline.Receiver;
+import org.drools.runtime.pipeline.StatefulKnowledgeSessionPipelineContext;
+
+public class StatefulKnowledgeSessionGetGlobalStage extends BaseEmitter
+ implements
+ Receiver {
+
+ public StatefulKnowledgeSessionGetGlobalStage() {
+ }
+
+ public void receive(Object object,
+ PipelineContext context) {
+ StatefulKnowledgeSessionPipelineContext kContext = (StatefulKnowledgeSessionPipelineContext) context;
+ StatefulKnowledgeSession ksession = kContext.getStatefulKnowledgeSession();
+ Object result = ksession.getGlobal( (String) object );
+
+ context.setResult( result );
+
+ emit( result,
+ kContext );
+ }
+
+}
Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionGetObjectStage.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionGetObjectStage.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionGetObjectStage.java 2009-01-11 03:36:09 UTC (rev 24644)
@@ -0,0 +1,31 @@
+package org.drools.runtime.pipeline.impl;
+
+import java.util.Map;
+import java.util.Map.Entry;
+
+import org.drools.runtime.StatefulKnowledgeSession;
+import org.drools.runtime.pipeline.PipelineContext;
+import org.drools.runtime.pipeline.Receiver;
+import org.drools.runtime.pipeline.StatefulKnowledgeSessionPipelineContext;
+import org.drools.runtime.rule.FactHandle;
+
+public class StatefulKnowledgeSessionGetObjectStage extends BaseEmitter
+ implements
+ Receiver {
+
+ public StatefulKnowledgeSessionGetObjectStage() {
+ }
+
+ public void receive(Object object,
+ PipelineContext context) {
+ StatefulKnowledgeSessionPipelineContext kContext = (StatefulKnowledgeSessionPipelineContext) context;
+ StatefulKnowledgeSession ksession = kContext.getStatefulKnowledgeSession();
+ Object result = ksession.getObject( (FactHandle) object );
+
+ context.setResult( result );
+
+ emit( result,
+ kContext );
+ }
+
+}
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-10 04:47:18 UTC (rev 24643)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionInsertStage.java 2009-01-11 03:36:09 UTC (rev 24644)
@@ -1,5 +1,8 @@
package org.drools.runtime.pipeline.impl;
+import java.util.HashMap;
+import java.util.Map;
+
import org.drools.common.InternalFactHandle;
import org.drools.runtime.pipeline.PipelineContext;
import org.drools.runtime.pipeline.Receiver;
@@ -13,10 +16,15 @@
PipelineContext context) {
StatefulKnowledgeSessionPipelineContextImpl kContext = (StatefulKnowledgeSessionPipelineContextImpl) context;
FactHandle handle = kContext.getEntryPoint().insert( object );
+ Map<FactHandle, Object> handles = (Map<FactHandle, Object>)kContext.getResult();
+ if ( handles == null ) {
+ handles = new HashMap<FactHandle, Object>();
+ kContext.setResult( handles );
+ }
+
+ handles.put( handle,
+ ((InternalFactHandle) handle).getObject() );
- kContext.getHandles().put( handle,
- ((InternalFactHandle) handle).getObject() );
-
emit( object,
kContext );
}
Modified: 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 2009-01-10 04:47:18 UTC (rev 24643)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionPipelineContextImpl.java 2009-01-11 03:36:09 UTC (rev 24644)
@@ -12,7 +12,6 @@
public class StatefulKnowledgeSessionPipelineContextImpl extends BasePipelineContext
implements
StatefulKnowledgeSessionPipelineContext {
- private Map handles;
private StatefulKnowledgeSession ksession;
private WorkingMemoryEntryPoint entryPoint;
@@ -33,12 +32,6 @@
public WorkingMemoryEntryPoint getEntryPoint() {
return entryPoint;
}
-
- public Map getHandles() {
- if ( handles == null ) {
- this.handles = new HashMap();
- }
- return handles;
- }
+
}
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-10 04:47:18 UTC (rev 24643)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionPipelineImpl.java 2009-01-11 03:36:09 UTC (rev 24644)
@@ -12,14 +12,13 @@
private StatefulKnowledgeSession ksession;
private WorkingMemoryEntryPoint entryPoint;
-
public StatefulKnowledgeSessionPipelineImpl(StatefulKnowledgeSession ksession) {
this.ksession = ksession;
this.entryPoint = ksession;
}
-
+
public StatefulKnowledgeSessionPipelineImpl(StatefulKnowledgeSession ksession,
- String entryPointName) {
+ String entryPointName) {
this.ksession = ksession;
this.entryPoint = ksession.getWorkingMemoryEntryPoint( entryPointName );
}
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-10 04:47:18 UTC (rev 24643)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionSetGlobalStage.java 2009-01-11 03:36:09 UTC (rev 24644)
@@ -11,21 +11,36 @@
public class StatefulKnowledgeSessionSetGlobalStage extends BaseEmitter
implements
Receiver {
-
+ private String key;
+
public StatefulKnowledgeSessionSetGlobalStage() {
+
}
+
+ public StatefulKnowledgeSessionSetGlobalStage(String key) {
+ this.key = key;
+ }
public void receive(Object object,
PipelineContext context) {
StatefulKnowledgeSessionPipelineContext kContext = (StatefulKnowledgeSessionPipelineContext) context;
StatefulKnowledgeSession ksession = kContext.getStatefulKnowledgeSession();
- Map<String, Object> vars = ( Map<String, Object> ) object;
- for ( Entry<String, Object> entry : vars.entrySet()) {
- ksession.setGlobal( entry.getKey(), entry.getValue() );
+ if ( key == null ) {
+ if ( !(object instanceof Map) ) {
+ throw new IllegalArgumentException( "SetGlobalStage must either declare a key or be an instanceof a Map");
+ } else {
+ Map<String, Object> vars = ( Map<String, Object> ) object;
+ for ( Entry<String, Object> entry : vars.entrySet()) {
+ ksession.setGlobal( entry.getKey(), entry.getValue() );
+ }
+ }
+ } else {
+ ksession.setGlobal( this.key, object );
}
+
emit( object,
- kContext );
+ kContext );
}
}
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-10 04:47:18 UTC (rev 24643)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionSignalEventStage.java 2009-01-11 03:36:09 UTC (rev 24644)
@@ -10,6 +10,11 @@
private long id;
private String eventType;
+ public StatefulKnowledgeSessionSignalEventStage(String eventType) {
+ this.eventType = eventType;
+ this.id = -1;
+ }
+
public StatefulKnowledgeSessionSignalEventStage(String eventType,
long id) {
this.eventType = eventType;
@@ -19,9 +24,15 @@
public void receive(Object object,
PipelineContext context) {
StatefulKnowledgeSessionPipelineContext kContext = (StatefulKnowledgeSessionPipelineContext) context;
- kContext.getStatefulKnowledgeSession().getProcessInstance( this.id ).signalEvent( this.eventType,
- object );
+ if ( this.id != -1 ) {
+ kContext.getStatefulKnowledgeSession().getProcessInstance( this.id ).signalEvent( this.eventType,
+ object );
+ } else {
+ kContext.getStatefulKnowledgeSession().signalEvent( this.eventType,
+ object );
+ }
+
emit( object,
kContext );
}
Modified: 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 2009-01-10 04:47:18 UTC (rev 24643)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionStartProcessStage.java 2009-01-11 03:36:09 UTC (rev 24644)
@@ -18,8 +18,10 @@
public void receive(Object object,
PipelineContext context) {
StatefulKnowledgeSessionPipelineContext kContext = (StatefulKnowledgeSessionPipelineContext) context;
- kContext.getStatefulKnowledgeSession().startProcess( id,
- (Map<String, Object>) object );
+ long instanceId = kContext.getStatefulKnowledgeSession().startProcess( id,
+ (Map<String, Object>) object ).getId();
+ kContext.setResult( instanceId );
+
emit( object,
kContext );
}
More information about the jboss-svn-commits
mailing list