[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