[jboss-svn-commits] JBL Code SVN: r25371 - in labs/jbossrules/trunk: drools-compiler/src/test/java/org/drools/integrationtests and 4 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Feb 20 20:28:45 EST 2009
Author: mark.proctor at jboss.com
Date: 2009-02-20 20:28:44 -0500 (Fri, 20 Feb 2009)
New Revision: 25371
Added:
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/Globals.java
Removed:
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/GlobalResolver.java
Modified:
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/Environment.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/KnowledgeRuntime.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/StatefulKnowledgeSession.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/StatelessKnowledgeSession.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/MapGlobalResolver.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/impl/EnvironmentImpl.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/impl/StatefulKnowledgeSessionImpl.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/impl/StatelessKnowledgeSessionImpl.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/impl/CommandBasedStatefulKnowledgeSession.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/GlobalResolver.java
Log:
JBRULES-1976 Globals and Environment should be able to take a delegate
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/Environment.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/Environment.java 2009-02-21 00:51:40 UTC (rev 25370)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/Environment.java 2009-02-21 01:28:44 UTC (rev 25371)
@@ -2,9 +2,11 @@
public interface Environment {
- Object get(String name);
+ Object get(String identifier);
- void set(String name,
+ void set(String identifier,
Object object);
+
+ void setDelegate(Environment delegate);
}
Deleted: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/GlobalResolver.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/GlobalResolver.java 2009-02-21 00:51:40 UTC (rev 25370)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/GlobalResolver.java 2009-02-21 01:28:44 UTC (rev 25371)
@@ -1,8 +0,0 @@
-package org.drools.runtime;
-
-public interface GlobalResolver {
- public Object resolveGlobal(String identifier);
-
- public void setGlobal(String identifier,
- Object value);
-}
Copied: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/Globals.java (from rev 25357, labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/GlobalResolver.java)
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/Globals.java (rev 0)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/Globals.java 2009-02-21 01:28:44 UTC (rev 25371)
@@ -0,0 +1,10 @@
+package org.drools.runtime;
+
+public interface Globals {
+ Object get(String identifier);
+
+ void set(String identifier,
+ Object value);
+
+ void setDelegate(Globals delegate);
+}
Property changes on: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/Globals.java
___________________________________________________________________
Name: svn:mergeinfo
+
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-02-21 00:51:40 UTC (rev 25370)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/KnowledgeRuntime.java 2009-02-21 01:28:44 UTC (rev 25371)
@@ -20,14 +20,10 @@
Object object);
Object getGlobal(String identifier);
+
+ Globals getGlobals();
/**
- * Delegate used to resolve any global names not found in the global map.
- * @param globalResolver
- */
- void setGlobalResolver(GlobalResolver globalResolver);
-
- /**
* Returns the KnowledgeBase reference from which this stateful session was created.
*
* @return
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/StatefulKnowledgeSession.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/StatefulKnowledgeSession.java 2009-02-21 00:51:40 UTC (rev 25370)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/StatefulKnowledgeSession.java 2009-02-21 01:28:44 UTC (rev 25371)
@@ -55,7 +55,7 @@
* ksession.dispose();
* </pre>
*
- * @see org.drools.runtime.GlobalResolver
+ * @see org.drools.runtime.Globals
*/
public interface StatefulKnowledgeSession
extends
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/StatelessKnowledgeSession.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/StatelessKnowledgeSession.java 2009-02-21 00:51:40 UTC (rev 25370)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/StatelessKnowledgeSession.java 2009-02-21 01:28:44 UTC (rev 25371)
@@ -86,7 +86,7 @@
* </pre>
*
* @see org.drools.runtime.Parameters
- * @see org.drools.runtime.GlobalResolver
+ * @see org.drools.runtime.Globals
*/
public interface StatelessKnowledgeSession
extends
@@ -98,7 +98,7 @@
* Delegate used to resolve any global names not found in the internally collection.
* @param globalResolver
*/
- void setGlobalResolver(GlobalResolver globalResolver);
+ void setGlobalResolver(Globals globalResolver);
/**
* Sets a global value on the internal collection
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java 2009-02-21 00:51:40 UTC (rev 25370)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java 2009-02-21 01:28:44 UTC (rev 25371)
@@ -125,6 +125,7 @@
import org.drools.rule.InvalidRulePackage;
import org.drools.rule.Package;
import org.drools.rule.builder.dialect.java.JavaDialectConfiguration;
+import org.drools.runtime.Globals;
import org.drools.runtime.StatefulKnowledgeSession;
import org.drools.spi.ConsequenceExceptionHandler;
import org.drools.spi.GlobalResolver;
@@ -596,6 +597,18 @@
value );
}
+ public Object get(String identifier) {
+ return resolveGlobal( identifier );
+ }
+
+ public void set(String identifier,
+ Object value) {
+ setGlobal( identifier, value );
+ }
+
+ public void setDelegate(Globals delegate) {
+ }
+
} );
workingMemory.fireAllRules();
@@ -646,6 +659,18 @@
public void writeExternal(ObjectOutput out) throws IOException {
}
+
+ public Object get(String identifier) {
+ return resolveGlobal( identifier );
+ }
+
+ public void set(String identifier,
+ Object value) {
+ setGlobal( identifier, value );
+ }
+
+ public void setDelegate(Globals delegate) {
+ }
} );
Cheese bree = new Cheese();
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/MapGlobalResolver.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/MapGlobalResolver.java 2009-02-21 00:51:40 UTC (rev 25370)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/MapGlobalResolver.java 2009-02-21 01:28:44 UTC (rev 25371)
@@ -8,6 +8,7 @@
import java.util.Map;
import java.util.Map.Entry;
+import org.drools.runtime.Globals;
import org.drools.spi.GlobalResolver;
public class MapGlobalResolver
@@ -18,6 +19,8 @@
private static final long serialVersionUID = 400L;
private Map map;
+
+ private Globals delegate;
public MapGlobalResolver() {
this.map = new HashMap();
@@ -29,15 +32,33 @@
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
map = (Map)in.readObject();
+ delegate = ( Globals ) in.readObject();
}
public void writeExternal(ObjectOutput out) throws IOException {
- out.writeObject(map);
+ out.writeObject( map );
+ out.writeObject( delegate );
}
+
+ public void setDelegate(Globals delegate) {
+ this.delegate = delegate;
+ }
+
+ public Object get(String identifier) {
+ return resolveGlobal( identifier );
+ }
public Object resolveGlobal(String identifier) {
- return this.map.get( identifier );
+ Object object = this.map.get( identifier );
+ if ( object == null && this.delegate != null ) {
+ object = this.delegate.get( identifier );
+ }
+ return object;
}
+
+ public void set(String identifier, Object value) {
+ setGlobal( identifier, value );
+ }
public void setGlobal(String identifier, Object value) {
this.map.put( identifier,
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/impl/EnvironmentImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/impl/EnvironmentImpl.java 2009-02-21 00:51:40 UTC (rev 25370)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/impl/EnvironmentImpl.java 2009-02-21 01:28:44 UTC (rev 25371)
@@ -4,13 +4,24 @@
import java.util.Map;
import org.drools.runtime.Environment;
+import org.drools.runtime.Globals;
public class EnvironmentImpl implements Environment {
private Map<String, Object> environment = new HashMap<String, Object>();
- public Object get(String name) {
- return environment.get(name);
+ private Environment delegate;
+
+ public void setDelegate(Environment delegate) {
+ this.delegate = delegate;
+ }
+
+ public Object get(String identifier) {
+ Object object = environment.get(identifier);
+ if ( object == null && delegate != null ) {
+ object = this.delegate.get( identifier );
+ }
+ return object;
}
public void set(String name, Object object) {
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-02-21 00:51:40 UTC (rev 25370)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/impl/StatefulKnowledgeSessionImpl.java 2009-02-21 01:28:44 UTC (rev 25371)
@@ -50,7 +50,7 @@
import org.drools.event.rule.impl.ObjectUpdatedEventImpl;
import org.drools.reteoo.ReteooWorkingMemory;
import org.drools.runtime.ExitPoint;
-import org.drools.runtime.GlobalResolver;
+import org.drools.runtime.Globals;
import org.drools.runtime.StatefulKnowledgeSession;
import org.drools.runtime.process.ProcessInstance;
import org.drools.runtime.process.WorkItemManager;
@@ -247,8 +247,8 @@
return this.session.getGlobal( identifier );
}
- public void setGlobalResolver(GlobalResolver globalResolver) {
- this.session.setGlobalResolver( (org.drools.spi.GlobalResolver) globalResolver );
+ public Globals getGlobals() {
+ return this.session.getGlobalResolver();
}
// public Future<Object> asyncInsert(Object object) {
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/impl/StatelessKnowledgeSessionImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/impl/StatelessKnowledgeSessionImpl.java 2009-02-21 00:51:40 UTC (rev 25370)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/impl/StatelessKnowledgeSessionImpl.java 2009-02-21 01:28:44 UTC (rev 25371)
@@ -29,6 +29,7 @@
import org.drools.reteoo.ReteooWorkingMemory.WorkingMemoryReteAssertAction;
import org.drools.rule.EntryPoint;
import org.drools.runtime.Environment;
+import org.drools.runtime.Globals;
import org.drools.runtime.KnowledgeSessionConfiguration;
import org.drools.runtime.Parameters;
import org.drools.runtime.StatelessKnowledgeSession;
@@ -77,10 +78,8 @@
(SessionConfiguration) this.conf,
this.environment );
- DelegatingGlobalResolver resolver = new DelegatingGlobalResolver();
- resolver.setDelegate( this.sessionGlobals );
-
- wm.setGlobalResolver( resolver );
+ wm.getGlobalResolver().setDelegate( this.sessionGlobals );
+
wm.setWorkingMemoryEventSupport( this.workingMemoryEventSupport );
wm.setAgendaEventSupport( this.agendaEventSupport );
wm.setRuleFlowEventSupport( this.ruleFlowEventSupport );
@@ -154,7 +153,7 @@
value );
}
- public void setGlobalResolver(org.drools.runtime.GlobalResolver globalResolver) {
+ public void setGlobalResolver(org.drools.runtime.Globals globalResolver) {
this.sessionGlobals = (GlobalResolver) globalResolver;
}
@@ -291,45 +290,5 @@
return new ParametersImpl();
}
- public static class DelegatingGlobalResolver
- implements
- GlobalResolver {
- MapGlobalResolver resolver;
- GlobalResolver delegate;
- public DelegatingGlobalResolver() {
- this.resolver = new MapGlobalResolver();
- }
-
- public void setDelegate(GlobalResolver delegate) {
- this.delegate = delegate;
- }
-
- public Object resolveGlobal(String identifier) {
- Object object = this.resolver.resolveGlobal( identifier );
- if ( object == null ) {
- return this.delegate.resolveGlobal( identifier );
- } else {
- return object;
- }
- }
-
- public void setGlobal(String identifier,
- Object value) {
- resolver.setGlobal( identifier,
- value );
- }
-
- public void writeExternal(ObjectOutput out) throws IOException {
- out.writeObject( this.resolver );
- out.writeObject( this.delegate );
- }
-
- public void readExternal(ObjectInput in) throws IOException,
- ClassNotFoundException {
- this.resolver = (MapGlobalResolver) in.readObject();
- this.delegate = (GlobalResolver) in.readObject();
- }
- }
-
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/impl/CommandBasedStatefulKnowledgeSession.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/impl/CommandBasedStatefulKnowledgeSession.java 2009-02-21 00:51:40 UTC (rev 25370)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/impl/CommandBasedStatefulKnowledgeSession.java 2009-02-21 01:28:44 UTC (rev 25371)
@@ -22,7 +22,7 @@
import org.drools.process.command.StartProcessCommand;
import org.drools.runtime.Environment;
import org.drools.runtime.ExitPoint;
-import org.drools.runtime.GlobalResolver;
+import org.drools.runtime.Globals;
import org.drools.runtime.ObjectFilter;
import org.drools.runtime.StatefulKnowledgeSession;
import org.drools.runtime.process.ProcessInstance;
@@ -133,14 +133,6 @@
throw new UnsupportedOperationException();
}
- public void setGlobal(String identifier, Object object) {
- this.commandService.execute( new SetGlobalCommand(identifier, object) );
- }
-
- public void setGlobalResolver(GlobalResolver globalResolver) {
- throw new UnsupportedOperationException();
- }
-
public void unregisterExitPoint(String name) {
throw new UnsupportedOperationException();
}
@@ -239,7 +231,15 @@
public Object getGlobal(String identifier) {
throw new UnsupportedOperationException();
}
+
+ public void setGlobal(String identifier, Object object) {
+ this.commandService.execute( new SetGlobalCommand(identifier, object) );
+ }
+ public Globals getGlobals() {
+ throw new UnsupportedOperationException();
+ }
+
public Object getObject(FactHandle factHandle) {
throw new UnsupportedOperationException();
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/GlobalResolver.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/GlobalResolver.java 2009-02-21 00:51:40 UTC (rev 25370)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/GlobalResolver.java 2009-02-21 01:28:44 UTC (rev 25371)
@@ -2,6 +2,9 @@
import java.io.Externalizable;
-public interface GlobalResolver extends org.drools.runtime.GlobalResolver {
+public interface GlobalResolver extends org.drools.runtime.Globals {
+ public Object resolveGlobal(String identifier);
+ public void setGlobal(String identifier,
+ Object value);
}
More information about the jboss-svn-commits
mailing list