[jboss-svn-commits] JBL Code SVN: r17043 - in labs/jbossrules/branches/Branch_4_0_2_SOA_4_2/drools-core/src/main/java/org/drools: reteoo and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Dec 5 13:15:43 EST 2007


Author: fmeyer
Date: 2007-12-05 13:15:43 -0500 (Wed, 05 Dec 2007)
New Revision: 17043

Modified:
   labs/jbossrules/branches/Branch_4_0_2_SOA_4_2/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java
   labs/jbossrules/branches/Branch_4_0_2_SOA_4_2/drools-core/src/main/java/org/drools/common/InternalRuleBase.java
   labs/jbossrules/branches/Branch_4_0_2_SOA_4_2/drools-core/src/main/java/org/drools/reteoo/Rete.java
Log:
SOA-216 Add caching to the Objenesis instance and move instance to the RuleBase level patch related to JBRULES-1348


Modified: labs/jbossrules/branches/Branch_4_0_2_SOA_4_2/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java
===================================================================
--- labs/jbossrules/branches/Branch_4_0_2_SOA_4_2/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java	2007-12-05 18:01:06 UTC (rev 17042)
+++ labs/jbossrules/branches/Branch_4_0_2_SOA_4_2/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java	2007-12-05 18:15:43 UTC (rev 17043)
@@ -42,6 +42,8 @@
 import org.drools.StatefulSession;
 import org.drools.event.RuleBaseEventListener;
 import org.drools.event.RuleBaseEventSupport;
+import org.drools.objenesis.Objenesis;
+import org.drools.objenesis.ObjenesisStd;
 import org.drools.rule.CompositePackageClassLoader;
 import org.drools.rule.InvalidPatternException;
 import org.drools.rule.MapBackedClassLoader;
@@ -84,7 +86,9 @@
 
     protected transient MapBackedClassLoader        classLoader;
 
-    /** The fact handle factory. */
+	private transient Objenesis                     objenesis;
+
+	/** The fact handle factory. */
     protected FactHandleFactory                     factHandleFactory;
 
     protected Map                                   globals;
@@ -152,7 +156,8 @@
         this.processes = new HashMap();
         this.globals = new HashMap();
         this.statefulSessions = new ObjectHashSet();
-    }
+		this.objenesis = createObjenesis();
+	}
 
     // ------------------------------------------------------------
     // Instance methods
@@ -209,8 +214,9 @@
         }
 
         this.packageClassLoader.addClassLoader( this.classLoader );
+		this.objenesis = createObjenesis();
 
-        for ( final Iterator it = this.pkgs.values().iterator(); it.hasNext(); ) {
+		for ( final Iterator it = this.pkgs.values().iterator(); it.hasNext(); ) {
             this.packageClassLoader.addClassLoader( ((Package) it.next()).getPackageCompilationData().getClassLoader() );
         }
 
@@ -240,7 +246,15 @@
         }
     }
 
-    /**
+	/**
+	 * Creates Objenesis instance for the RuleBase. 
+	 * @return a standart Objenesis instanse with caching turned on.
+	 */
+	protected Objenesis createObjenesis() {
+		return new ObjenesisStd(true);
+	}
+
+	/**
      * @return the id
      */
     public String getId() {
@@ -666,7 +680,11 @@
         return process;
     }
 
-    protected synchronized void addStatefulSession(final StatefulSession statefulSession) {
+	public Objenesis getObjenesis() {
+		return objenesis;
+	}
+
+	protected synchronized void addStatefulSession(final StatefulSession statefulSession) {
         this.statefulSessions.add( statefulSession );
     }
 
@@ -702,6 +720,7 @@
 
         final DroolsObjectInputStream streamWithLoader = new DroolsObjectInputStream( stream,
                                                                                       this.packageClassLoader );
+        streamWithLoader.setRuleBase( this );
 
         final AbstractWorkingMemory workingMemory = (AbstractWorkingMemory) streamWithLoader.readObject();
 

Modified: labs/jbossrules/branches/Branch_4_0_2_SOA_4_2/drools-core/src/main/java/org/drools/common/InternalRuleBase.java
===================================================================
--- labs/jbossrules/branches/Branch_4_0_2_SOA_4_2/drools-core/src/main/java/org/drools/common/InternalRuleBase.java	2007-12-05 18:01:06 UTC (rev 17042)
+++ labs/jbossrules/branches/Branch_4_0_2_SOA_4_2/drools-core/src/main/java/org/drools/common/InternalRuleBase.java	2007-12-05 18:15:43 UTC (rev 17043)
@@ -23,6 +23,7 @@
 import org.drools.RuleBase;
 import org.drools.RuleBaseConfiguration;
 import org.drools.StatefulSession;
+import org.drools.objenesis.Objenesis;
 import org.drools.reteoo.Rete;
 import org.drools.reteoo.ReteooWorkingMemory;
 import org.drools.rule.CompositePackageClassLoader;
@@ -104,4 +105,5 @@
     
     public Process getProcess(String id);
 
+	public Objenesis getObjenesis();
 }

Modified: labs/jbossrules/branches/Branch_4_0_2_SOA_4_2/drools-core/src/main/java/org/drools/reteoo/Rete.java
===================================================================
--- labs/jbossrules/branches/Branch_4_0_2_SOA_4_2/drools-core/src/main/java/org/drools/reteoo/Rete.java	2007-12-05 18:01:06 UTC (rev 17042)
+++ labs/jbossrules/branches/Branch_4_0_2_SOA_4_2/drools-core/src/main/java/org/drools/reteoo/Rete.java	2007-12-05 18:15:43 UTC (rev 17043)
@@ -40,8 +40,6 @@
 import org.drools.facttemplates.Fact;
 import org.drools.facttemplates.FactTemplate;
 import org.drools.facttemplates.FactTemplateObjectType;
-import org.drools.objenesis.Objenesis;
-import org.drools.objenesis.ObjenesisStd;
 import org.drools.objenesis.instantiator.ObjectInstantiator;
 import org.drools.reteoo.builder.BuildContext;
 import org.drools.reteoo.builder.PatternBuilder;
@@ -420,8 +418,6 @@
         implements
         ObjectTypeConf,
         Serializable {
-        // Objenesis instance without cache (false)
-        private static final Objenesis         OBJENESIS = new ObjenesisStd( false );
 
         private final Class                    cls;
         private transient InternalRuleBase     ruleBase;
@@ -602,7 +598,7 @@
          *
          */
         private void setInstantiator() {
-            this.instantiator = OBJENESIS.getInstantiatorOf( this.shadowClass );
+            this.instantiator = ruleBase.getObjenesis().getInstantiatorOf(this.shadowClass);
         }
 
         public Object getShadow(final Object fact) throws RuntimeDroolsException {




More information about the jboss-svn-commits mailing list