[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