[jboss-svn-commits] JBL Code SVN: r16506 - in labs/jbossrules/trunk/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
Sun Nov 11 00:19:06 EST 2007


Author: mark.proctor at jboss.com
Date: 2007-11-11 00:19:06 -0500 (Sun, 11 Nov 2007)
New Revision: 16506

Modified:
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalRuleBase.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/Rete.java
Log:
JBRULES-1323 Add caching to the Objenesis instance and move instance to the RuleBase level

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java	2007-11-11 05:15:21 UTC (rev 16505)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java	2007-11-11 05:19:06 UTC (rev 16506)
@@ -45,6 +45,8 @@
 import org.drools.event.RuleBaseEventListener;
 import org.drools.event.RuleBaseEventSupport;
 import org.drools.reteoo.ReteooStatefulSession;
+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;
@@ -88,7 +90,9 @@
 
     protected transient MapBackedClassLoader        classLoader;
 
-    /** The fact handle factory. */
+	private transient Objenesis                     objenesis;
+
+	/** The fact handle factory. */
     protected FactHandleFactory                     factHandleFactory;
 
     protected Map                                   globals;
@@ -156,7 +160,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() );
         }
 
@@ -236,7 +242,15 @@
         this.statefulSessions = new ObjectHashSet();
     }
 
-    /**
+	/**
+	 * 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() {
@@ -662,7 +676,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 );
     }
 

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalRuleBase.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalRuleBase.java	2007-11-11 05:15:21 UTC (rev 16505)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalRuleBase.java	2007-11-11 05:19:06 UTC (rev 16506)
@@ -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/trunk/drools-core/src/main/java/org/drools/reteoo/Rete.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/Rete.java	2007-11-11 05:15:21 UTC (rev 16505)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/Rete.java	2007-11-11 05:19:06 UTC (rev 16506)
@@ -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