[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