[jboss-svn-commits] JBL Code SVN: r14206 - labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Aug 14 11:39:18 EDT 2007
Author: mark.proctor at jboss.com
Date: 2007-08-14 11:39:18 -0400 (Tue, 14 Aug 2007)
New Revision: 14206
Modified:
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java
Log:
JBRULES-1056 Performance of RuleBase().addPackage(.) goes down on sub sequent instances of RuleBase with large number of packages.
-Added in an isDirty check when adding new packages.
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java 2007-08-14 14:14:52 UTC (rev 14205)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java 2007-08-14 15:39:18 UTC (rev 14206)
@@ -279,7 +279,7 @@
// iterate and compile
for ( final Iterator it = packageDescr.getFunctions().iterator(); it.hasNext(); ) {
addFunction( (FunctionDescr) it.next() );
- }
+ }
// iterate and compile
for ( final Iterator it = packageDescr.getRules().iterator(); it.hasNext(); ) {
@@ -288,6 +288,11 @@
}
this.configuration.getDialectRegistry().compileAll();
+
+ // some of the rules and functions may have been redefined
+ if ( this.pkg.getPackageCompilationData().isDirty() ) {
+ this.pkg.getPackageCompilationData().reload();
+ }
this.results = this.configuration.getDialectRegistry().addResults( this.results );
}
@@ -446,7 +451,7 @@
* Compiled packages are serializable.
*/
public Package getPackage() {
- if ( this.pkg != null && this.pkg.getPackageCompilationData() != null ) {
+ if ( this.pkg != null && this.pkg.getPackageCompilationData() != null && this.pkg.getPackageCompilationData().isDirty() ) {
this.pkg.getPackageCompilationData().reload();
}
More information about the jboss-svn-commits
mailing list