[jboss-svn-commits] JBL Code SVN: r12700 - in labs/jbossrules/trunk/drools-core: src/main/java/org/drools and 19 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Jun 19 23:30:07 EDT 2007
Author: mark.proctor at jboss.com
Date: 2007-06-19 23:30:07 -0400 (Tue, 19 Jun 2007)
New Revision: 12700
Added:
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/DroolsObjectInputStream.java
Removed:
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/ObjectInputStreamWithLoader.java
Modified:
labs/jbossrules/trunk/drools-core/.classpath
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/WorkingMemory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/agent/FileScanner.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldExtractor.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldExtractorCache.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldExtractorFactory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassTypeResolver.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/DefaultKnowledgeHelper.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/MVELClassFieldExtractor.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalRuleBase.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalWorkingMemoryActions.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/Rete.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooBuilder.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooRuleBase.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/builder/BuildContext.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/builder/ReteooRuleBuilder.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/MapBackedClassLoader.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Package.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/PackageCompilationData.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/KnowledgeHelper.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/BinaryRuleBaseLoader.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/ChainedProperties.java
labs/jbossrules/trunk/drools-core/src/test/java/org/codehaus/jfdi/interpreter/ClassTypeResolverTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/agent/RuleBaseAssemblerTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/BaseClassFieldExtractorFactoryTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/ClassFieldExtractorTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/extractors/BooleanClassFieldExtractorTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/extractors/ByteClassFieldExtractorTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/extractors/CharClassFieldExtractorTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/extractors/DoubleClassFieldExtractorTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/extractors/FloatClassFieldExtractorTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/extractors/IntClassFieldExtractorTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/extractors/LongClassFieldExtractorTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/extractors/MVELClassFieldExtractorTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/extractors/ObjectClassFieldExtractorTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/extractors/ShortClassFieldExtractorTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/common/QuadroupleBetaConstraintsTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/event/AgendaEventSupportTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/BaseMannersTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/AlphaNodeTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/FromNodeTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/QueryTerminalNodeTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/rule/DeclarationTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/rule/FieldConstraintTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/util/FieldIndexEntryTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/util/FieldIndexHashTableTest.java
Log:
-refactor for more robust classloading
Modified: labs/jbossrules/trunk/drools-core/.classpath
===================================================================
--- labs/jbossrules/trunk/drools-core/.classpath 2007-06-20 03:29:36 UTC (rev 12699)
+++ labs/jbossrules/trunk/drools-core/.classpath 2007-06-20 03:30:07 UTC (rev 12700)
@@ -6,7 +6,7 @@
<classpathentry kind="output" path="target/classes"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="var" path="M2_REPO/xstream/xstream/1.1.3/xstream-1.1.3.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/mvel/mvel14/1.2beta25/mvel14-1.2beta25.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/mvel/mvel14/1.2beta26/mvel14-1.2beta26.jar"/>
<classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
<classpathentry kind="var" path="M2_REPO/xpp3/xpp3/1.1.3.4.O/xpp3-1.1.3.4.O.jar"/>
</classpath>
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/WorkingMemory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/WorkingMemory.java 2007-06-20 03:29:36 UTC (rev 12699)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/WorkingMemory.java 2007-06-20 03:30:07 UTC (rev 12700)
@@ -283,14 +283,10 @@
void update(FactHandle handle,
Object object) throws FactException;
- public void modifyRetract(final FactHandle factHandle,
- final Rule rule,
- final Activation activation);
+ public void modifyRetract(final FactHandle factHandle);
public void modifyInsert(final FactHandle factHandle,
- final Object object,
- final Rule rule,
- final Activation activation);
+ final Object object);
/**
* Sets the AsyncExceptionHandler to handle exceptions thrown by the Agenda
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/agent/FileScanner.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/agent/FileScanner.java 2007-06-20 03:29:36 UTC (rev 12699)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/agent/FileScanner.java 2007-06-20 03:30:07 UTC (rev 12700)
@@ -12,6 +12,7 @@
import org.drools.RuleBase;
import org.drools.RuntimeDroolsException;
+import org.drools.common.DroolsObjectInputStream;
import org.drools.rule.Package;
/**
@@ -96,7 +97,7 @@
public static Package readPackage(File pkgFile) throws IOException,
FileNotFoundException,
ClassNotFoundException {
- ObjectInputStream in = new ObjectInputStream( new FileInputStream( pkgFile ) );
+ ObjectInputStream in = new DroolsObjectInputStream( new FileInputStream( pkgFile ) );
Package p1_ = (Package) in.readObject();
in.close();
return p1_;
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldExtractor.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldExtractor.java 2007-06-20 03:29:36 UTC (rev 12699)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldExtractor.java 2007-06-20 03:30:07 UTC (rev 12700)
@@ -21,6 +21,7 @@
import java.lang.reflect.Method;
import org.drools.RuntimeDroolsException;
+import org.drools.common.DroolsObjectInputStream;
import org.drools.spi.FieldExtractor;
/**
@@ -68,7 +69,7 @@
private Object readResolve() {
// always return the value from the cache
- return ClassFieldExtractorCache.getExtractor( this.clazz, this.fieldName );
+ return ClassFieldExtractorCache.getExtractor( this.clazz, this.fieldName, this.clazz.getClassLoader() );
}
public void init(final ClassLoader classLoader) {
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldExtractorCache.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldExtractorCache.java 2007-06-20 03:29:36 UTC (rev 12699)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldExtractorCache.java 2007-06-20 03:30:07 UTC (rev 12700)
@@ -20,18 +20,7 @@
return instance;
}
- private ClassFieldExtractorCache() {
-
- }
-
public static ClassFieldExtractor getExtractor(final Class clazz,
- final String fieldName) {
- return getExtractor( clazz,
- fieldName,
- null );
- }
-
- public static ClassFieldExtractor getExtractor(final Class clazz,
final String fieldName,
ClassLoader classLoader) {
if ( cache == null ) {
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldExtractorFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldExtractorFactory.java 2007-06-20 03:29:36 UTC (rev 12699)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldExtractorFactory.java 2007-06-20 03:30:07 UTC (rev 12700)
@@ -72,17 +72,13 @@
}
public static BaseClassFieldExtractor getClassFieldExtractor(final Class clazz,
- final String fieldName) {
- return getClassFieldExtractor( clazz,
- fieldName,
- null );
- }
-
- public static BaseClassFieldExtractor getClassFieldExtractor(final Class clazz,
final String fieldName,
final ClassLoader classLoader) {
if ( byteArrayClassLoader == null ) {
- byteArrayClassLoader = new ByteArrayClassLoader( (classLoader != null) ? classLoader : Thread.currentThread().getContextClassLoader() );
+ if (classLoader == null ) {
+ throw new RuntimeDroolsException("ClassFieldExtractorFactory cannot have a null parent ClassLoader" );
+ }
+ byteArrayClassLoader = new ByteArrayClassLoader( classLoader );
}
try {
// if it is a self reference
@@ -93,7 +89,8 @@
} else if( fieldName.indexOf( '.' ) > -1 || fieldName.indexOf( '[' ) > -1 ) {
// we need MVEL extractor for expressions
return new MVELClassFieldExtractor( clazz,
- fieldName );
+ fieldName,
+ classLoader );
} else {
// otherwise, bytecode generate a specific extractor
ClassFieldInspector inspector = (ClassFieldInspector) inspectors.get( clazz );
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassTypeResolver.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassTypeResolver.java 2007-06-20 03:29:36 UTC (rev 12699)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassTypeResolver.java 2007-06-20 03:30:07 UTC (rev 12700)
@@ -25,6 +25,8 @@
import java.util.Map;
import java.util.Set;
+import org.drools.RuntimeDroolsException;
+
public class ClassTypeResolver
implements
TypeResolver {
@@ -54,27 +56,14 @@
"C" );
}
- public ClassTypeResolver() {
- this( Collections.EMPTY_LIST );
- }
-
- public ClassTypeResolver(final List imports) {
- this( imports,
- null );
- }
-
public ClassTypeResolver(final List imports,
ClassLoader classLoader) {
this.imports = imports;
if ( classLoader == null ) {
- classLoader = Thread.currentThread().getContextClassLoader();
+ throw new RuntimeDroolsException( "ClassTypeResolver cannot have a null parent ClassLoader" );
}
-
- if ( classLoader == null ) {
- classLoader = getClass().getClassLoader();
- }
-
+
this.classLoader = classLoader;
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/DefaultKnowledgeHelper.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/DefaultKnowledgeHelper.java 2007-06-20 03:29:36 UTC (rev 12699)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/DefaultKnowledgeHelper.java 2007-06-20 03:30:07 UTC (rev 12700)
@@ -47,7 +47,6 @@
this.workingMemory = (InternalWorkingMemoryActions) workingMemory;
}
-
public void setActivation(final Activation agendaItem) {
this.rule = agendaItem.getRule();
this.subrule = agendaItem.getSubRule();
@@ -57,92 +56,111 @@
public void insert(final Object object) throws FactException {
insert( object,
- false );
+ false );
}
public void insert(final Object object,
- final boolean dynamic) throws FactException {
+ final boolean dynamic) throws FactException {
this.workingMemory.insert( object,
- dynamic,
- false,
- this.rule,
- this.activation );
+ dynamic,
+ false,
+ this.rule,
+ this.activation );
}
public void insertLogical(final Object object) throws FactException {
insertLogical( object,
- false );
+ false );
}
public void insertLogical(final Object object,
- final boolean dynamic) throws FactException {
+ final boolean dynamic) throws FactException {
this.workingMemory.insert( object,
- dynamic,
- true,
- this.rule,
- this.activation );
+ dynamic,
+ true,
+ this.rule,
+ this.activation );
}
public void update(final FactHandle handle,
- final Object newObject) throws FactException {
+ final Object newObject) throws FactException {
// only update if this fact exists in the wm
this.workingMemory.update( handle,
- newObject,
- this.rule,
- this.activation );
+ newObject,
+ this.rule,
+ this.activation );
}
- public void update( final Object object ) throws FactException {
+ public void update(final Object object) throws FactException {
FactHandle handle = this.workingMemory.getFactHandle( object );
- if( handle == null ) {
- throw new FactException("Update error: handle not found for object: "+object+". Is it in the working memory?");
+ if ( handle == null ) {
+ throw new FactException( "Update error: handle not found for object: " + object + ". Is it in the working memory?" );
}
// only update if this fact exists in the wm
this.workingMemory.update( handle,
- object,
- this.rule,
- this.activation );
+ object,
+ this.rule,
+ this.activation );
}
public void retract(final FactHandle handle) throws FactException {
this.workingMemory.retract( handle,
- true,
- true,
- this.rule,
- this.activation );
+ true,
+ true,
+ this.rule,
+ this.activation );
}
public void retract(final Object object) throws FactException {
FactHandle handle = this.workingMemory.getFactHandle( object );
- if( handle == null ) {
- throw new FactException("Retract error: handle not found for object: "+object+". Is it in the working memory?");
+ if ( handle == null ) {
+ throw new FactException( "Retract error: handle not found for object: " + object + ". Is it in the working memory?" );
}
this.workingMemory.retract( handle,
- true,
- true,
- this.rule,
- this.activation );
+ true,
+ true,
+ this.rule,
+ this.activation );
}
+ public void modifyRetract(final Object object) {
+ FactHandle handle = this.workingMemory.getFactHandle( object );
+ this.workingMemory.modifyRetract( handle, rule, activation );
+ }
+
+ public void modifyRetract(final FactHandle factHandle) {
+ this.workingMemory.modifyRetract( factHandle, rule, activation );
+ }
+
+ public void modifyInsert(final Object object) {
+ FactHandle handle = this.workingMemory.getFactHandle( object );
+ this.workingMemory.modifyInsert( handle, object, rule, activation );
+ }
+
+ public void modifyInsert(final FactHandle factHandle,
+ final Object object) {
+ this.workingMemory.modifyInsert( factHandle, object, rule, activation );
+ }
+
public Rule getRule() {
return this.rule;
}
-// public List getObjects() {
-// return null; //this.workingMemory.getObjects();
-// }
-//
-// public List getObjects(final Class objectClass) {
-// return null; //this.workingMemory.getObjects( objectClass );
-// }
-//
-// public void clearAgenda() {
-// this.workingMemory.clearAgenda();
-// }
-//
-// public void clearAgendaGroup(final String group) {
-// this.workingMemory.clearAgendaGroup( group );
-// }
+ // public List getObjects() {
+ // return null; //this.workingMemory.getObjects();
+ // }
+ //
+ // public List getObjects(final Class objectClass) {
+ // return null; //this.workingMemory.getObjects( objectClass );
+ // }
+ //
+ // public void clearAgenda() {
+ // this.workingMemory.clearAgenda();
+ // }
+ //
+ // public void clearAgendaGroup(final String group) {
+ // this.workingMemory.clearAgendaGroup( group );
+ // }
public Object get(final Declaration declaration) {
return declaration.getValue( this.tuple.get( declaration ).getObject() );
@@ -160,22 +178,23 @@
return this.activation;
}
-// public QueryResults getQueryResults(final String query) {
-// return this.workingMemory.getQueryResults( query );
-// }
-//
-// public AgendaGroup getFocus() {
-// return this.workingMemory.getFocus();
-// }
-//
+ // public QueryResults getQueryResults(final String query) {
+ // return this.workingMemory.getQueryResults( query );
+ // }
+ //
+ // public AgendaGroup getFocus() {
+ // return this.workingMemory.getFocus();
+ // }
+ //
public void setFocus(final String focus) {
this.workingMemory.setFocus( focus );
}
-//
-// public void setFocus(final AgendaGroup focus) {
-// this.workingMemory.setFocus( focus );
-// }
+ //
+ // public void setFocus(final AgendaGroup focus) {
+ // this.workingMemory.setFocus( focus );
+ // }
+
public Declaration getDeclaration(final String identifier) {
return (Declaration) this.subrule.getOuterDeclarations().get( identifier );
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/MVELClassFieldExtractor.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/MVELClassFieldExtractor.java 2007-06-20 03:29:36 UTC (rev 12699)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/MVELClassFieldExtractor.java 2007-06-20 03:30:07 UTC (rev 12700)
@@ -46,7 +46,8 @@
private Map variables = null;
public MVELClassFieldExtractor(Class clazz,
- String fieldName) {
+ String fieldName,
+ ClassLoader classLoader) {
super( -1, // index
Object.class, // fieldType
ValueType.determineValueType( Object.class ) ); // value type
@@ -59,8 +60,8 @@
Set inputs = compiler.getInputs();
for( Iterator it = inputs.iterator(); it.hasNext(); ) {
String basefield = (String) it.next();
-
- Extractor extr = ClassFieldExtractorCache.getExtractor( clazz, basefield );
+
+ Extractor extr = ClassFieldExtractorCache.getExtractor( clazz, basefield, classLoader );
this.extractors.put( basefield, extr );
}
}
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-06-20 03:29:36 UTC (rev 12699)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java 2007-06-20 03:30:07 UTC (rev 12700)
@@ -75,7 +75,7 @@
protected Map processes;
protected transient CompositePackageClassLoader packageClassLoader;
-
+
protected transient MapBackedClassLoader classLoader;
/** The fact handle factory. */
@@ -87,7 +87,7 @@
* WeakHashMap to keep references of WorkingMemories but allow them to be
* garbage collected
*/
- protected transient ObjectHashSet statefulSessions;
+ protected transient ObjectHashSet statefulSessions;
/**
* Default constructor - for Externalizable. This should never be used by a user, as it
@@ -163,33 +163,36 @@
final Object[] objects) throws IOException,
ClassNotFoundException {
// PackageCompilationData must be restored before Rules as it has the ClassLoader needed to resolve the generated code references in Rules
- this.pkgs = (Map) stream.readObject();
+ DroolsObjectInputStream parentStream = (DroolsObjectInputStream) stream;
+ parentStream.setRuleBase( this );
+ this.pkgs = (Map) parentStream.readObject();
- this.packageClassLoader = new CompositePackageClassLoader( Thread.currentThread().getContextClassLoader() );
+ this.packageClassLoader = new CompositePackageClassLoader( parentStream.getClassLoader() );
for ( final Iterator it = this.pkgs.values().iterator(); it.hasNext(); ) {
this.packageClassLoader.addClassLoader( ((Package) it.next()).getPackageCompilationData().getClassLoader() );
}
-
- this.classLoader = new MapBackedClassLoader( Thread.currentThread().getContextClassLoader() );
- this.packageClassLoader.addClassLoader( this.classLoader );
+ this.classLoader = new MapBackedClassLoader( parentStream.getClassLoader() );
+ this.packageClassLoader.addClassLoader( this.classLoader );
+
// Return the rules stored as a byte[]
- final byte[] bytes = (byte[]) stream.readObject();
+ final byte[] bytes = (byte[]) parentStream.readObject();
// Use a custom ObjectInputStream that can resolve against a given classLoader
- final ObjectInputStreamWithLoader streamWithLoader = new ObjectInputStreamWithLoader( new ByteArrayInputStream( bytes ),
- this.packageClassLoader );
+ final DroolsObjectInputStream childStream = new DroolsObjectInputStream( new ByteArrayInputStream( bytes ),
+ this.packageClassLoader );
+ childStream.setRuleBase( this );
- this.id = (String) streamWithLoader.readObject();
- this.factHandleFactory = (FactHandleFactory) streamWithLoader.readObject();
- this.globals = (Map) streamWithLoader.readObject();
+ this.id = (String) childStream.readObject();
+ this.factHandleFactory = (FactHandleFactory) childStream.readObject();
+ this.globals = (Map) childStream.readObject();
- this.config = (RuleBaseConfiguration) streamWithLoader.readObject();
+ this.config = (RuleBaseConfiguration) childStream.readObject();
this.statefulSessions = new ObjectHashSet();
for ( int i = 0, length = objects.length; i < length; i++ ) {
- objects[i] = streamWithLoader.readObject();
+ objects[i] = childStream.readObject();
}
}
@@ -303,14 +306,15 @@
}
//and now the rule flows
- if (newPkg.getRuleFlows() != Collections.EMPTY_MAP) {
+ if ( newPkg.getRuleFlows() != Collections.EMPTY_MAP ) {
Map flows = newPkg.getRuleFlows();
for ( Iterator iter = flows.entrySet().iterator(); iter.hasNext(); ) {
Entry flow = (Entry) iter.next();
- this.processes.put( flow.getKey(), flow.getValue() );
+ this.processes.put( flow.getKey(),
+ flow.getValue() );
}
}
-
+
this.packageClassLoader.addClassLoader( newPkg.getPackageCompilationData().getClassLoader() );
} finally {
@@ -487,17 +491,17 @@
protected synchronized void addStatefulSession(final StatefulSession statefulSession) {
this.statefulSessions.add( statefulSession );
}
-
+
public Package getPackage(String name) {
- return ( Package ) this.pkgs.get( name );
+ return (Package) this.pkgs.get( name );
}
public StatefulSession[] getStatefulSessions() {
- return (StatefulSession[]) this.statefulSessions.toArray( new StatefulSession[ this.statefulSessions.size() ] );
+ return (StatefulSession[]) this.statefulSessions.toArray( new StatefulSession[this.statefulSessions.size()] );
}
-
+
public InternalWorkingMemory[] getWorkingMemories() {
- return (InternalWorkingMemory[]) this.statefulSessions.toArray( new InternalWorkingMemory[ this.statefulSessions.size() ] );
+ return (InternalWorkingMemory[]) this.statefulSessions.toArray( new InternalWorkingMemory[this.statefulSessions.size()] );
}
public RuleBaseConfiguration getConfiguration() {
@@ -514,23 +518,25 @@
final boolean keepReference) throws IOException,
ClassNotFoundException {
- final ObjectInputStreamWithLoader streamWithLoader = new ObjectInputStreamWithLoader( stream,
- this.packageClassLoader );
+ final DroolsObjectInputStream streamWithLoader = new DroolsObjectInputStream( stream,
+ this.packageClassLoader );
final AbstractWorkingMemory workingMemory = (AbstractWorkingMemory) streamWithLoader.readObject();
workingMemory.setRuleBase( this );
return (StatefulSession) workingMemory;
}
-
- public void addClass(String className, byte[] bytes) {
- this.classLoader.addClass( className, bytes );
+
+ public void addClass(String className,
+ byte[] bytes) {
+ this.classLoader.addClass( className,
+ bytes );
}
-
+
public CompositePackageClassLoader getCompositePackageClassLoader() {
return this.packageClassLoader;
}
-
+
public MapBackedClassLoader getMapBackedClassLoader() {
return this.classLoader;
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java 2007-06-20 03:29:36 UTC (rev 12699)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java 2007-06-20 03:30:07 UTC (rev 12700)
@@ -582,10 +582,10 @@
*/
public FactHandle insert(final Object object) throws FactException {
return insert( object, /* Not-Dynamic */
- false,
- false,
- null,
- null );
+ false,
+ false,
+ null,
+ null );
}
/**
@@ -593,35 +593,35 @@
*/
public FactHandle insertLogical(final Object object) throws FactException {
return insert( object, /* Not-Dynamic */
- false,
- true,
- null,
- null );
+ false,
+ true,
+ null,
+ null );
}
public FactHandle insert(final Object object,
- final boolean dynamic) throws FactException {
+ final boolean dynamic) throws FactException {
return insert( object,
- dynamic,
- false,
- null,
- null );
+ dynamic,
+ false,
+ null,
+ null );
}
public FactHandle insertLogical(final Object object,
- final boolean dynamic) throws FactException {
+ final boolean dynamic) throws FactException {
return insert( object,
- dynamic,
- true,
- null,
- null );
+ dynamic,
+ true,
+ null,
+ null );
}
public FactHandle insert(final Object object,
- final boolean dynamic,
- boolean logical,
- final Rule rule,
- final Activation activation) throws FactException {
+ final boolean dynamic,
+ boolean logical,
+ final Rule rule,
+ final Activation activation) throws FactException {
if ( object == null ) {
// you cannot assert a null object
return null;
@@ -770,8 +770,8 @@
this.agenda.getDormantActivations() );
doInsert( handle,
- object,
- propagationContext );
+ object,
+ propagationContext );
this.workingMemoryEventSupport.fireObjectInserted( propagationContext,
handle,
@@ -810,8 +810,8 @@
}
public abstract void doInsert(InternalFactHandle factHandle,
- Object object,
- PropagationContext propagationContext) throws FactException;
+ Object object,
+ PropagationContext propagationContext) throws FactException;
protected void removePropertyChangeListener(final FactHandle handle) throws NoSuchFactObjectException {
Object object = null;
@@ -846,10 +846,10 @@
public void retract(final FactHandle handle) throws FactException {
retract( handle,
- true,
- true,
- null,
- null );
+ true,
+ true,
+ null,
+ null );
}
public abstract void doRetract(InternalFactHandle factHandle,
@@ -859,10 +859,10 @@
* @see WorkingMemory
*/
public void retract(final FactHandle factHandle,
- final boolean removeLogical,
- final boolean updateEqualsMap,
- final Rule rule,
- final Activation activation) throws FactException {
+ final boolean removeLogical,
+ final boolean updateEqualsMap,
+ final Rule rule,
+ final Activation activation) throws FactException {
try {
this.lock.lock();
final InternalFactHandle handle = (InternalFactHandle) factHandle;
@@ -920,6 +920,12 @@
}
}
+ public void modifyRetract(final FactHandle factHandle) {
+ modifyRetract( factHandle,
+ null,
+ null );
+ }
+
public void modifyRetract(final FactHandle factHandle,
final Rule rule,
final Activation activation) {
@@ -961,6 +967,14 @@
}
public void modifyInsert(final FactHandle factHandle,
+ final Object object) {
+ modifyInsert( factHandle,
+ object,
+ null,
+ null );
+ }
+
+ public void modifyInsert(final FactHandle factHandle,
final Object object,
final Rule rule,
final Activation activation) {
@@ -995,13 +1009,13 @@
this.agenda.getDormantActivations() );
doInsert( handle,
- object,
- propagationContext );
+ object,
+ propagationContext );
this.workingMemoryEventSupport.fireObjectUpdated( propagationContext,
- factHandle,
- originalObject,
- object );
+ factHandle,
+ originalObject,
+ object );
propagationContext.clearRetractedTuples();
@@ -1014,11 +1028,11 @@
}
public void update(final FactHandle handle,
- final Object object) throws FactException {
+ final Object object) throws FactException {
update( handle,
- object,
- null,
- null );
+ object,
+ null,
+ null );
}
/**
@@ -1028,9 +1042,9 @@
* @see WorkingMemory
*/
public void update(final FactHandle factHandle,
- final Object object,
- final Rule rule,
- final Activation activation) throws FactException {
+ final Object object,
+ final Rule rule,
+ final Activation activation) throws FactException {
try {
this.lock.lock();
// only needed if we maintain tms, but either way we must get it before we do the retract
@@ -1096,13 +1110,13 @@
this.handleFactory.increaseFactHandleRecency( handle );
doInsert( handle,
- object,
- propagationContext );
+ object,
+ propagationContext );
this.workingMemoryEventSupport.fireObjectUpdated( propagationContext,
- factHandle,
- originalObject,
- object );
+ factHandle,
+ originalObject,
+ object );
propagationContext.clearRetractedTuples();
@@ -1200,7 +1214,7 @@
try {
update( getFactHandle( object ),
- object );
+ object );
} catch ( final NoSuchFactHandleException e ) {
// Not a fact so unable to process the chnage event
} catch ( final FactException e ) {
Copied: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/DroolsObjectInputStream.java (from rev 12646, labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/ObjectInputStreamWithLoader.java)
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/DroolsObjectInputStream.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/DroolsObjectInputStream.java 2007-06-20 03:30:07 UTC (rev 12700)
@@ -0,0 +1,97 @@
+/**
+ *
+ */
+package org.drools.common;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectStreamClass;
+import java.util.HashMap;
+
+public class DroolsObjectInputStream extends ObjectInputStream {
+ private final ClassLoader classLoader;
+ private InternalRuleBase ruleBase;
+ private InternalWorkingMemory workingMemory;
+
+ /** table mapping primitive type names to corresponding class objects */
+ private static final HashMap primClasses = new HashMap( 8,
+ 1.0F );
+ static {
+ primClasses.put( "boolean",
+ boolean.class );
+ primClasses.put( "byte",
+ byte.class );
+ primClasses.put( "char",
+ char.class );
+ primClasses.put( "short",
+ short.class );
+ primClasses.put( "int",
+ int.class );
+ primClasses.put( "long",
+ long.class );
+ primClasses.put( "float",
+ float.class );
+ primClasses.put( "double",
+ double.class );
+ primClasses.put( "void",
+ void.class );
+ }
+
+ public DroolsObjectInputStream(final InputStream in) throws IOException {
+ this( in, null );
+ }
+
+ public DroolsObjectInputStream(final InputStream in,
+ ClassLoader classLoader) throws IOException {
+ super( in );
+ if ( classLoader == null ) {
+ classLoader = Thread.currentThread().getContextClassLoader();
+ if ( classLoader == null ) {
+ classLoader = this.getClass().getClassLoader();
+ }
+ }
+
+ this.classLoader = classLoader;
+ enableResolveObject( true );
+ }
+
+ public ClassLoader getClassLoader() {
+ return this.classLoader;
+ }
+
+ protected Class resolveClass(final ObjectStreamClass desc) throws IOException,
+ ClassNotFoundException {
+ if ( this.classLoader == null ) {
+ return super.resolveClass( desc );
+ } else {
+ final String name = desc.getName();
+ Class clazz = (Class) primClasses.get( name );
+ if ( clazz == null ) {
+ try {
+ clazz = this.classLoader.loadClass( name );
+ } catch ( final ClassNotFoundException cnf ) {
+ clazz = super.resolveClass( desc );
+ }
+ }
+ return clazz;
+ }
+ }
+
+ public InternalRuleBase getRuleBase() {
+ return ruleBase;
+ }
+
+ public void setRuleBase(InternalRuleBase ruleBase) {
+ this.ruleBase = ruleBase;
+ }
+
+ public void setWorkingMemory(InternalWorkingMemory workingMemory) {
+ this.workingMemory = workingMemory;
+ }
+
+ public InternalWorkingMemory getWorkingMemory() {
+ return workingMemory;
+ }
+
+}
\ No newline at end of file
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-06-20 03:29:36 UTC (rev 12699)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalRuleBase.java 2007-06-20 03:30:07 UTC (rev 12700)
@@ -23,6 +23,7 @@
import org.drools.RuleBase;
import org.drools.RuleBaseConfiguration;
import org.drools.StatefulSession;
+import org.drools.WorkingMemory;
import org.drools.reteoo.Rete;
import org.drools.reteoo.ReteooWorkingMemory;
import org.drools.rule.CompositePackageClassLoader;
@@ -90,4 +91,6 @@
public MapBackedClassLoader getMapBackedClassLoader();
public Rete getRete();
+
+ public InternalWorkingMemory[] getWorkingMemories();
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalWorkingMemoryActions.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalWorkingMemoryActions.java 2007-06-20 03:29:36 UTC (rev 12699)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalWorkingMemoryActions.java 2007-06-20 03:30:07 UTC (rev 12700)
@@ -25,22 +25,31 @@
extends
InternalWorkingMemory {
public void update(FactHandle handle,
- Object object,
- Rule rule,
- Activation activation) throws FactException;
+ Object object,
+ Rule rule,
+ Activation activation) throws FactException;
public void retract(FactHandle handle,
- boolean removeLogical,
- boolean updateEqualsMap,
- Rule rule,
- Activation activation) throws FactException;
+ boolean removeLogical,
+ boolean updateEqualsMap,
+ Rule rule,
+ Activation activation) throws FactException;
FactHandle insert(Object object,
- boolean dynamic,
- boolean logical,
- Rule rule,
- Activation activation) throws FactException;
+ boolean dynamic,
+ boolean logical,
+ Rule rule,
+ Activation activation) throws FactException;
public FactHandle insertLogical(Object object,
- boolean dynamic) throws FactException;
+ boolean dynamic) throws FactException;
+
+ public void modifyRetract(final FactHandle factHandle,
+ final Rule rule,
+ final Activation activation);
+
+ public void modifyInsert(final FactHandle factHandle,
+ final Object object,
+ final Rule rule,
+ final Activation activation);
}
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/ObjectInputStreamWithLoader.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/ObjectInputStreamWithLoader.java 2007-06-20 03:29:36 UTC (rev 12699)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/ObjectInputStreamWithLoader.java 2007-06-20 03:30:07 UTC (rev 12700)
@@ -1,67 +0,0 @@
-/**
- *
- */
-package org.drools.common;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.ObjectInputStream;
-import java.io.ObjectStreamClass;
-import java.util.HashMap;
-
-public class ObjectInputStreamWithLoader extends ObjectInputStream {
- private final ClassLoader classLoader;
-
- /** table mapping primitive type names to corresponding class objects */
- private static final HashMap primClasses = new HashMap( 8,
- 1.0F );
- static {
- primClasses.put( "boolean",
- boolean.class );
- primClasses.put( "byte",
- byte.class );
- primClasses.put( "char",
- char.class );
- primClasses.put( "short",
- short.class );
- primClasses.put( "int",
- int.class );
- primClasses.put( "long",
- long.class );
- primClasses.put( "float",
- float.class );
- primClasses.put( "double",
- double.class );
- primClasses.put( "void",
- void.class );
- }
-
- public ObjectInputStreamWithLoader(final InputStream in,
- final ClassLoader classLoader) throws IOException {
- super( in );
- this.classLoader = classLoader;
- enableResolveObject( true );
- }
-
- public ClassLoader getClassLoader() {
- return this.classLoader;
- }
-
- protected Class resolveClass(final ObjectStreamClass desc) throws IOException,
- ClassNotFoundException {
- if ( this.classLoader == null ) {
- return super.resolveClass( desc );
- } else {
- final String name = desc.getName();
- Class clazz = (Class) primClasses.get( name );
- if ( clazz == null ) {
- try {
- clazz = this.classLoader.loadClass( name );
- } catch ( final ClassNotFoundException cnf ) {
- clazz = super.resolveClass( desc );
- }
- }
- return clazz;
- }
- }
-}
\ No newline at end of file
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-06-20 03:29:36 UTC (rev 12699)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/Rete.java 2007-06-20 03:30:07 UTC (rev 12700)
@@ -16,6 +16,11 @@
* limitations under the License.
*/
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutput;
+import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.lang.reflect.Field;
import java.util.ArrayList;
@@ -28,6 +33,7 @@
import org.drools.base.ShadowProxyFactory;
import org.drools.base.ShadowProxyHelper;
import org.drools.common.BaseNode;
+import org.drools.common.DroolsObjectInputStream;
import org.drools.common.InternalFactHandle;
import org.drools.common.InternalRuleBase;
import org.drools.common.InternalWorkingMemory;
@@ -75,10 +81,10 @@
/**
*
*/
- private static final long serialVersionUID = 320L;
+ private static final long serialVersionUID = 320L;
/** The <code>Map</code> of <code>ObjectTypeNodes</code>. */
- private final ObjectHashMap objectTypeNodes;
-
+ private final ObjectHashMap objectTypeNodes;
+
private transient InternalRuleBase ruleBase;
// ------------------------------------------------------------
@@ -90,11 +96,17 @@
this.objectTypeNodes = new ObjectHashMap();
this.ruleBase = ruleBase;
}
-
+
public void setRuleBase(InternalRuleBase ruleBase) {
this.ruleBase = ruleBase;
}
+ private void readObject(ObjectInputStream stream) throws IOException,
+ ClassNotFoundException {
+ stream.defaultReadObject();
+ this.ruleBase = ((DroolsObjectInputStream) stream).getRuleBase();
+ }
+
// ------------------------------------------------------------
// Instance methods
// ------------------------------------------------------------
@@ -123,25 +135,27 @@
String key = ((Fact) object).getFactTemplate().getName();
ojectTypeConf = (ObjectTypeConf) memory.get( key );
if ( ojectTypeConf == null ) {
- ojectTypeConf = new ObjectTypeConf( null, this.ruleBase);
+ ojectTypeConf = new ObjectTypeConf( null,
+ this.ruleBase );
memory.put( key,
ojectTypeConf,
false );
- }
+ }
} else {
Class cls = object.getClass();
if ( object instanceof ShadowProxy ) {
- cls = cls.getSuperclass();
+ cls = cls.getSuperclass();
}
-
+
ojectTypeConf = (ObjectTypeConf) memory.get( cls );
if ( ojectTypeConf == null ) {
- ojectTypeConf = new ObjectTypeConf( cls, this.ruleBase);
+ ojectTypeConf = new ObjectTypeConf( cls,
+ this.ruleBase );
memory.put( cls,
ojectTypeConf,
false );
- }
-
+ }
+
// checks if shadow is enabled
if ( ojectTypeConf.isShadowEnabled() ) {
// need to improve this
@@ -152,11 +166,11 @@
} else {
((ShadowProxy) handle.getObject()).updateProxy();
}
- }
+ }
}
-
- ObjectTypeNode[] cachedNodes = ojectTypeConf.getObjectTypeNodes( object );
+ ObjectTypeNode[] cachedNodes = ojectTypeConf.getObjectTypeNodes( object );
+
for ( int i = 0, length = cachedNodes.length; i < length; i++ ) {
cachedNodes[i].assertObject( handle,
context,
@@ -186,24 +200,9 @@
} else {
objectTypeConf = (ObjectTypeConf) memory.get( object.getClass() );
}
-
+
ObjectTypeNode[] cachedNodes = objectTypeConf.getObjectTypeNodes( object );
-// // cached might have been cleared, so recalculate matching nodes
-// if ( cachedNodes == null ) {
-// cachedNodes = getMatchingNodes( object );
-// Object key = null;
-//
-// if ( object instanceof FactImpl ) {
-// key = ((Fact) object).getFactTemplate().getName();
-// } else {
-// key = object.getClass();
-// }
-// memory.put( key,
-// cachedNodes,
-// false );
-// }
-
if ( cachedNodes == null ) {
// it is possible that there are no ObjectTypeNodes for an object being retracted
return;
@@ -216,8 +215,6 @@
}
}
-
-
/**
* Adds the <code>TupleSink</code> so that it may receive
* <code>Tuples</code> propagated from this <code>TupleSource</code>.
@@ -249,7 +246,10 @@
final InternalWorkingMemory[] workingMemories) {
final ObjectTypeNode objectTypeNode = (ObjectTypeNode) node;
removeObjectSink( objectTypeNode );
- //@todo: we really should attempt to clear the memory cache for this ObjectTypeNode
+ for ( int i = 0; i < workingMemories.length; i++ ) {
+ // clear the node memory for each working memory.
+ workingMemories[i].clearNodeMemory( (NodeMemory) node );
+ }
}
public ObjectHashMap getObjectTypeNodes() {
@@ -263,7 +263,7 @@
public InternalRuleBase getRuleBase() {
return this.ruleBase;
}
-
+
public int hashCode() {
return this.objectTypeNodes.hashCode();
}
@@ -288,7 +288,7 @@
final ObjectHashMap memory = (ObjectHashMap) workingMemory.getNodeMemory( this );
Iterator it = memory.iterator();
for ( ObjectEntry entry = (ObjectEntry) it.next(); entry != null; entry = (ObjectEntry) it.next() ) {
- (( ObjectTypeConf) entry.getValue() ).resetCache();
+ ((ObjectTypeConf) entry.getValue()).resetCache();
}
final ObjectTypeNode node = (ObjectTypeNode) sink;
@@ -302,65 +302,75 @@
}
}
}
-
- public static class ObjectTypeConf implements Serializable {
+
+ public static class ObjectTypeConf
+ implements
+ Serializable {
// Objenesis instance without cache (false)
- private static final Objenesis OBJENESIS = new ObjenesisStd( false );
-
- private final Class cls;
- private final InternalRuleBase ruleBase;
- private ObjectTypeNode[] objectTypeNodes;
-
+ private static final Objenesis OBJENESIS = new ObjenesisStd( false );
+
+ private final Class cls;
+ private transient InternalRuleBase ruleBase;
+ private ObjectTypeNode[] objectTypeNodes;
+
protected boolean shadowEnabled;
protected Class shadowClass;
protected transient ObjectInstantiator instantiator;
- protected transient Field delegate;
+ protected transient Field delegate;
+
//private final InternalRuleBase ruleBase;
-
- public ObjectTypeConf(Class cls, InternalRuleBase ruleBase) {
+
+ public ObjectTypeConf(Class cls,
+ InternalRuleBase ruleBase) {
this.cls = cls;
this.ruleBase = ruleBase;
- Rete rete = ruleBase.getRete();
-
+ Rete rete = ruleBase.getRete();
+
if ( cls == null || !ruleBase.getConfiguration().isShadowed( cls.getName() ) ) {
return;
}
-
- String pkgName = cls.getPackage().getName();
- if ( "org.drools.reteoo".equals( pkgName ) || "org.drools.base".equals( pkgName )) {
+
+ String pkgName = cls.getPackage().getName();
+ if ( "org.drools.reteoo".equals( pkgName ) || "org.drools.base".equals( pkgName ) ) {
// We don't shadow internal classes
this.shadowEnabled = false;
return;
}
-
+
Class shadowClass = null;
final String shadowProxyName = ShadowProxyFactory.getProxyClassNameForClass( this.cls );
try {
// if already loaded
- shadowClass = rete.getRuleBase().getMapBackedClassLoader().loadClass( shadowProxyName );
+ shadowClass = rete.getRuleBase().getMapBackedClassLoader().loadClass( shadowProxyName );
} catch ( final ClassNotFoundException cnfe ) {
// otherwise, create and load
final byte[] proxyBytes = ShadowProxyFactory.getProxyBytes( cls );
if ( proxyBytes != null ) {
rete.getRuleBase().getMapBackedClassLoader().addClass( shadowProxyName,
- proxyBytes );
+ proxyBytes );
try {
- shadowClass = rete.getRuleBase().getMapBackedClassLoader().loadClass( shadowProxyName );
+ shadowClass = rete.getRuleBase().getMapBackedClassLoader().loadClass( shadowProxyName );
} catch ( ClassNotFoundException e ) {
throw new RuntimeException( "Unable to find or generate the ShadowProxy implementation for '" + this.cls.getName() + "'" );
}
}
- }
-
+ }
+
if ( shadowClass != null ) {
this.shadowClass = shadowClass;
this.shadowEnabled = true;
setInstantiator();
setDelegateFieldObject();
- }
+ }
}
-
+
+ private void readObject(ObjectInputStream stream) throws IOException,
+ ClassNotFoundException {
+ stream.defaultReadObject();
+ this.ruleBase = ((DroolsObjectInputStream) stream).getRuleBase();
+ }
+
/**
*
*/
@@ -379,8 +389,8 @@
throw new RuntimeDroolsException( "Error retriving delegate field for shadow proxy class: " + this.shadowClass.getName(),
e );
}
- }
-
+ }
+
public Object getShadow(final Object fact) throws RuntimeDroolsException {
ShadowProxy proxy = null;
if ( isShadowEnabled() ) {
@@ -393,30 +403,30 @@
}
proxy = (ShadowProxy) this.instantiator.newInstance();
this.delegate.set( proxy,
- fact );
+ fact );
} catch ( final Exception e ) {
throw new RuntimeDroolsException( "Error creating shadow fact for object: " + fact,
e );
}
}
return proxy;
- }
-
+ }
+
public boolean isShadowEnabled() {
return this.shadowEnabled;
- }
-
+ }
+
public void resetCache() {
this.objectTypeNodes = null;
}
-
+
public ObjectTypeNode[] getObjectTypeNodes(final Object object) {
if ( this.objectTypeNodes == null ) {
buildCache( object );
}
return this.objectTypeNodes;
}
-
+
private void buildCache(final Object object) throws FactException {
final List cache = new ArrayList();
@@ -428,8 +438,8 @@
}
}
- this.objectTypeNodes = ( ObjectTypeNode[] ) cache.toArray( new ObjectTypeNode[cache.size()] );
- }
+ this.objectTypeNodes = (ObjectTypeNode[]) cache.toArray( new ObjectTypeNode[cache.size()] );
+ }
}
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooBuilder.java 2007-06-20 03:29:36 UTC (rev 12699)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooBuilder.java 2007-06-20 03:30:07 UTC (rev 12700)
@@ -16,6 +16,8 @@
* limitations under the License.
*/
+import java.io.IOException;
+import java.io.ObjectInputStream;
import java.io.Serializable;
import java.util.HashMap;
import java.util.List;
@@ -23,6 +25,8 @@
import org.drools.RuleIntegrationException;
import org.drools.common.BaseNode;
+import org.drools.common.DroolsObjectInputStream;
+import org.drools.common.InternalRuleBase;
import org.drools.common.InternalWorkingMemory;
import org.drools.reteoo.builder.ReteooRuleBuilder;
import org.drools.rule.InvalidPatternException;
@@ -47,18 +51,18 @@
/**
*
*/
- private static final long serialVersionUID = 1737643968218792944L;
+ private static final long serialVersionUID = 1737643968218792944L;
/** The RuleBase */
- private transient ReteooRuleBase ruleBase;
+ private transient InternalRuleBase ruleBase;
private transient InternalWorkingMemory[] workingMemories;
- private Map rules;
+ private Map rules;
- private transient ReteooRuleBuilder ruleBuilder;
+ private transient ReteooRuleBuilder ruleBuilder;
- private IdGenerator idGenerator;
+ private IdGenerator idGenerator;
// ------------------------------------------------------------
// Constructors
@@ -68,7 +72,7 @@
* Construct a <code>Builder</code> against an existing <code>Rete</code>
* network.
*/
- ReteooBuilder(final ReteooRuleBase ruleBase) {
+ ReteooBuilder(final InternalRuleBase ruleBase) {
this.ruleBase = ruleBase;
this.rules = new HashMap();
@@ -77,12 +81,10 @@
this.ruleBuilder = new ReteooRuleBuilder();
}
- /**
- * Allow this to be settable, otherwise we get infinite recursion on serialisation
- * @param ruleBase
- */
- void setRuleBase(final ReteooRuleBase ruleBase) {
- this.ruleBase = ruleBase;
+ private void readObject(ObjectInputStream stream) throws IOException,
+ ClassNotFoundException {
+ stream.defaultReadObject();
+ this.ruleBase = ((DroolsObjectInputStream) stream).getRuleBase();
}
/**
@@ -110,8 +112,8 @@
*/
void addRule(final Rule rule) throws InvalidPatternException {
final List terminals = this.ruleBuilder.addRule( rule,
- this.ruleBase,
- this.idGenerator );
+ this.ruleBase,
+ this.idGenerator );
this.rules.put( rule,
terminals.toArray( new BaseNode[terminals.size()] ) );
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooRuleBase.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooRuleBase.java 2007-06-20 03:29:36 UTC (rev 12699)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooRuleBase.java 2007-06-20 03:30:07 UTC (rev 12700)
@@ -124,16 +124,6 @@
super( id,
config,
factHandleFactory );
- this.config = (config != null) ? config : new RuleBaseConfiguration();
- this.config.makeImmutable();
-
- this.factHandleFactory = factHandleFactory;
-
- this.packageClassLoader = new CompositePackageClassLoader( Thread.currentThread().getContextClassLoader() );
- this.pkgs = new HashMap();
- this.globals = new HashMap();
- this.statefulSessions = new ObjectHashSet();
-
this.rete = new Rete(this);
this.reteooBuilder = new ReteooBuilder( this );
}
@@ -162,10 +152,8 @@
objects );
this.rete = (Rete) objects[0];
- this.rete.setRuleBase( this );
this.reteooBuilder = (ReteooBuilder) objects[1];
- this.reteooBuilder.setRuleBase( this );
this.reteooBuilder.setRete( this.rete );
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/builder/BuildContext.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/builder/BuildContext.java 2007-06-20 03:29:36 UTC (rev 12699)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/builder/BuildContext.java 2007-06-20 03:30:07 UTC (rev 12700)
@@ -20,6 +20,7 @@
import java.util.ListIterator;
import org.drools.common.BetaConstraints;
+import org.drools.common.InternalRuleBase;
import org.drools.common.InternalWorkingMemory;
import org.drools.reteoo.ObjectSource;
import org.drools.reteoo.ReteooBuilder;
@@ -47,7 +48,7 @@
private int currentPatternOffset;
// rule base to add rules to
- private ReteooRuleBase rulebase;
+ private InternalRuleBase rulebase;
// working memories attached to the given rulebase
private InternalWorkingMemory[] workingMemories;
@@ -61,7 +62,7 @@
// beta constraints from the last pattern attached
BetaConstraints betaconstraints;
- public BuildContext(final ReteooRuleBase rulebase,
+ public BuildContext(final InternalRuleBase rulebase,
final ReteooBuilder.IdGenerator idGenerator) {
this.rulebase = rulebase;
this.workingMemories = (InternalWorkingMemory[]) this.rulebase.getWorkingMemories();
@@ -152,7 +153,7 @@
* Returns context rulebase
* @return
*/
- public ReteooRuleBase getRuleBase() {
+ public InternalRuleBase getRuleBase() {
return this.rulebase;
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/builder/ReteooRuleBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/builder/ReteooRuleBuilder.java 2007-06-20 03:29:36 UTC (rev 12699)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/builder/ReteooRuleBuilder.java 2007-06-20 03:30:07 UTC (rev 12700)
@@ -29,6 +29,7 @@
import org.drools.base.ValueType;
import org.drools.base.evaluators.Operator;
import org.drools.common.BaseNode;
+import org.drools.common.InternalRuleBase;
import org.drools.reteoo.QueryTerminalNode;
import org.drools.reteoo.ReteooBuilder;
import org.drools.reteoo.ReteooRuleBase;
@@ -91,7 +92,7 @@
* @throws InvalidPatternException
*/
public List addRule(final Rule rule,
- final ReteooRuleBase rulebase,
+ final InternalRuleBase rulebase,
final ReteooBuilder.IdGenerator idGenerator) throws InvalidPatternException {
// the list of terminal nodes
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/MapBackedClassLoader.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/MapBackedClassLoader.java 2007-06-20 03:29:36 UTC (rev 12699)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/MapBackedClassLoader.java 2007-06-20 03:30:07 UTC (rev 12700)
@@ -12,7 +12,7 @@
import java.util.HashMap;
import java.util.Map;
-import org.drools.common.ObjectInputStreamWithLoader;
+import org.drools.common.DroolsObjectInputStream;
public class MapBackedClassLoader extends ClassLoader
implements
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Package.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Package.java 2007-06-20 03:29:36 UTC (rev 12699)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Package.java 2007-06-20 03:30:07 UTC (rev 12700)
@@ -31,7 +31,7 @@
import java.util.List;
import java.util.Map;
-import org.drools.common.ObjectInputStreamWithLoader;
+import org.drools.common.DroolsObjectInputStream;
import org.drools.facttemplates.FactTemplate;
import org.drools.ruleflow.common.core.Process;
import org.drools.util.StringUtils;
@@ -117,7 +117,7 @@
* The name of this <code>Package</code>.
*/
public Package(final String name,
- final ClassLoader parentClassLoader) {
+ ClassLoader parentClassLoader) {
this.name = name;
this.imports = new ArrayList( 1 );
this.staticImports = Collections.EMPTY_LIST;
@@ -126,6 +126,14 @@
this.globals = Collections.EMPTY_MAP;
this.factTemplates = Collections.EMPTY_MAP;
this.functions = Collections.EMPTY_LIST;
+
+ // This classloader test should only be here for unit testing, too much legacy api to want to change by hand at the moment
+ if ( parentClassLoader == null ) {
+ parentClassLoader = Thread.currentThread().getContextClassLoader();
+ if ( parentClassLoader == null ) {
+ parentClassLoader = getClass().getClassLoader();
+ }
+ }
this.packageCompilationData = new PackageCompilationData( parentClassLoader );
}
@@ -170,7 +178,7 @@
final byte[] bytes = (byte[]) stream.readObject();
// Use a custom ObjectInputStream that can resolve against a given classLoader
- final ObjectInputStreamWithLoader streamWithLoader = new ObjectInputStreamWithLoader( new ByteArrayInputStream( bytes ),
+ final DroolsObjectInputStream streamWithLoader = new DroolsObjectInputStream( new ByteArrayInputStream( bytes ),
this.packageCompilationData.getClassLoader() );
this.rules = (Map) streamWithLoader.readObject();
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/PackageCompilationData.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/PackageCompilationData.java 2007-06-20 03:29:36 UTC (rev 12699)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/PackageCompilationData.java 2007-06-20 03:30:07 UTC (rev 12700)
@@ -33,7 +33,7 @@
import org.drools.CheckedDroolsException;
import org.drools.RuntimeDroolsException;
-import org.drools.common.ObjectInputStreamWithLoader;
+import org.drools.common.DroolsObjectInputStream;
import org.drools.spi.Accumulator;
import org.drools.spi.Consequence;
import org.drools.spi.EvalExpression;
@@ -77,14 +77,9 @@
}
private void initClassLoader(ClassLoader parentClassLoader) {
- if ( parentClassLoader == null ) {
- parentClassLoader = Thread.currentThread().getContextClassLoader();
-
- if ( parentClassLoader == null ) {
- parentClassLoader = getClass().getClassLoader();
- }
+ if (parentClassLoader == null ) {
+ throw new RuntimeDroolsException("PackageCompilationData cannot have a null parentClassLoader" );
}
-
this.parentClassLoader = parentClassLoader;
this.classLoader = new PackageClassLoader( this.parentClassLoader );
}
@@ -114,7 +109,8 @@
*/
public void readExternal(final ObjectInput stream) throws IOException,
ClassNotFoundException {
- initClassLoader( null );
+ DroolsObjectInputStream droolsStream = ( DroolsObjectInputStream ) stream;
+ initClassLoader( droolsStream.getClassLoader() );
this.store = (Map) stream.readObject();
this.AST = stream.readObject();
@@ -123,8 +119,8 @@
final byte[] bytes = (byte[]) stream.readObject();
// Use a custom ObjectInputStream that can resolve against a given classLoader
- final ObjectInputStreamWithLoader streamWithLoader = new ObjectInputStreamWithLoader( new ByteArrayInputStream( bytes ),
- this.classLoader );
+ final DroolsObjectInputStream streamWithLoader = new DroolsObjectInputStream( new ByteArrayInputStream( bytes ),
+ this.classLoader );
this.invokerLookups = (Map) streamWithLoader.readObject();
}
@@ -286,7 +282,9 @@
* @author mproctor
*
*/
- public class PackageClassLoader extends ClassLoader implements DroolsClassLoader {
+ public class PackageClassLoader extends ClassLoader
+ implements
+ DroolsClassLoader {
public PackageClassLoader(final ClassLoader parentClassLoader) {
super( parentClassLoader );
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/KnowledgeHelper.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/KnowledgeHelper.java 2007-06-20 03:29:36 UTC (rev 12699)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/KnowledgeHelper.java 2007-06-20 03:30:07 UTC (rev 12700)
@@ -82,6 +82,15 @@
void retract(Object object) throws FactException;
+ public void modifyRetract(final Object object);
+
+ public void modifyRetract(final FactHandle factHandle);
+
+ public void modifyInsert(final Object object);
+
+ public void modifyInsert(final FactHandle factHandle,
+ final Object object);
+
public Object get(Declaration declaration);
/**
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/BinaryRuleBaseLoader.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/BinaryRuleBaseLoader.java 2007-06-20 03:29:36 UTC (rev 12699)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/BinaryRuleBaseLoader.java 2007-06-20 03:30:07 UTC (rev 12700)
@@ -7,6 +7,7 @@
import org.drools.RuleBase;
import org.drools.RuleBaseFactory;
import org.drools.RuntimeDroolsException;
+import org.drools.common.DroolsObjectInputStream;
import org.drools.rule.Package;
/**
@@ -18,38 +19,72 @@
*/
public class BinaryRuleBaseLoader {
- private RuleBase ruleBase;
+ private RuleBase ruleBase;
+ private ClassLoader classLoader;
/**
* This will create a new default rulebase (which is initially empty).
- *
+ * Optional parent classLoader for the Package's internal ClassLoader
+ * is Thread.currentThread.getContextClassLoader()
*/
public BinaryRuleBaseLoader() {
- this( RuleBaseFactory.newRuleBase() );
+ this( RuleBaseFactory.newRuleBase(), null );
+ }
+
+ /**
+ * This will add any binary packages to the rulebase.
+ * Optional parent classLoader for the Package's internal ClassLoader
+ * is Thread.currentThread.getContextClassLoader()
+ */
+ public BinaryRuleBaseLoader(RuleBase rb) {
+ this( rb, null);
}
/**
* This will add any binary packages to the rulebase.
+ * Optional classLoader to be used as the parent ClassLoader
+ * for the Package's internal ClassLoader, is Thread.currentThread.getContextClassLoader()
+ * if not user specified.
*/
- public BinaryRuleBaseLoader(
- RuleBase rb) {
+ public BinaryRuleBaseLoader(RuleBase rb, ClassLoader classLoader) {
+ if ( classLoader == null ) {
+ classLoader = Thread.currentThread().getContextClassLoader();
+ if ( classLoader == null ) {
+ classLoader = this.getClass().getClassLoader();
+ }
+ }
this.ruleBase = rb;
+ this.classLoader = classLoader;
}
-
+
/**
* This will add the BINARY package to the rulebase.
+ * Uses the member ClassLoader as the Package's internal parent classLoader
+ * which is Thread.currentThread.getContextClassLoader if not user specified
* @param in An input stream to the serialized package.
- */
+ */
public void addPackage(InputStream in) {
+ addPackage(in, this.classLoader);
+ }
+ /**
+ * This will add the BINARY package to the rulebase.
+ * @param in An input stream to the serialized package.
+ * @param optional classLoader used as the parent ClassLoader for the Package's internal ClassLaoder
+ */
+ public void addPackage(InputStream in, ClassLoader classLoader) {
+ if ( classLoader == null ) {
+ classLoader = this.classLoader;
+ }
+
try {
- ObjectInputStream oin = new ObjectInputStream( in );
+ ObjectInputStream oin = new DroolsObjectInputStream( in );
Object opkg = oin.readObject();
- if (! (opkg instanceof Package)) {
- throw new IllegalArgumentException("Can only add instances of org.drools.rule.Package to a rulebase instance.");
+ if ( !(opkg instanceof Package) ) {
+ throw new IllegalArgumentException( "Can only add instances of org.drools.rule.Package to a rulebase instance." );
}
Package binPkg = (Package) opkg;
-
+
if ( !binPkg.isValid() ) {
throw new IllegalArgumentException( "Can't add a non valid package to a rulebase." );
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/ChainedProperties.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/ChainedProperties.java 2007-06-20 03:29:36 UTC (rev 12699)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/ChainedProperties.java 2007-06-20 03:30:07 UTC (rev 12700)
@@ -20,11 +20,18 @@
private final List defaultProps;
public ChainedProperties(String confFileName) {
- this( Thread.currentThread().getContextClassLoader(),
+ this( null,
confFileName );
}
public ChainedProperties(ClassLoader classLoader, String confFileName) {
+ if ( classLoader == null ) {
+ classLoader = Thread.currentThread().getContextClassLoader();
+ if ( classLoader == null ) {
+ classLoader = this.getClass().getClassLoader();
+ }
+ }
+
this.props = new ArrayList();
this.defaultProps = new ArrayList();
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/codehaus/jfdi/interpreter/ClassTypeResolverTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/codehaus/jfdi/interpreter/ClassTypeResolverTest.java 2007-06-20 03:29:36 UTC (rev 12699)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/codehaus/jfdi/interpreter/ClassTypeResolverTest.java 2007-06-20 03:30:07 UTC (rev 12700)
@@ -17,7 +17,7 @@
public class ClassTypeResolverTest extends TestCase {
public void testResolvePrimtiveTypes() throws Exception {
- final ClassTypeResolver resolver = new ClassTypeResolver();
+ final ClassTypeResolver resolver = new ClassTypeResolver(new ArrayList(), Thread.currentThread().getContextClassLoader());
assertEquals( boolean.class,
resolver.resolveType( "boolean" ) );
assertEquals( double.class,
@@ -37,7 +37,7 @@
}
public void testResolveArrayOfPrimitiveTypes() throws Exception {
- final ClassTypeResolver resolver = new ClassTypeResolver();
+ final ClassTypeResolver resolver = new ClassTypeResolver(new ArrayList(), Thread.currentThread().getContextClassLoader());
assertEquals( boolean[].class,
resolver.resolveType( "boolean[]" ) );
assertEquals( double[].class,
@@ -57,7 +57,7 @@
}
public void testResolveMultidimensionnalArrayOfPrimitiveTypes() throws Exception {
- final ClassTypeResolver resolver = new ClassTypeResolver();
+ final ClassTypeResolver resolver = new ClassTypeResolver(new ArrayList(), Thread.currentThread().getContextClassLoader());
assertEquals( int[][].class,
resolver.resolveType( "int[][]" ) );
assertEquals( int[][][].class,
@@ -67,7 +67,7 @@
}
public void testResolveObjectNotFromImport() throws Exception {
- final ClassTypeResolver resolver = new ClassTypeResolver();
+ final ClassTypeResolver resolver = new ClassTypeResolver(new ArrayList(), Thread.currentThread().getContextClassLoader());
assertEquals( String.class,
resolver.resolveType( "String" ) );
assertEquals( String.class,
@@ -84,7 +84,7 @@
}
public void testResolveObjectFromImport() throws Exception {
- final ClassTypeResolver resolver = new ClassTypeResolver( new ArrayList() );
+ final ClassTypeResolver resolver = new ClassTypeResolver( new ArrayList(), Thread.currentThread().getContextClassLoader() );
resolver.addImport( "org.drools.Cheese" );
assertEquals( String.class,
resolver.resolveType( "String" ) );
@@ -97,7 +97,7 @@
}
public void testResolveArrayOfObjectsNotFromImport() throws Exception {
- final ClassTypeResolver resolver = new ClassTypeResolver();
+ final ClassTypeResolver resolver = new ClassTypeResolver(new ArrayList(), Thread.currentThread().getContextClassLoader());
assertEquals( String[].class,
resolver.resolveType( "String[]" ) );
assertEquals( String[].class,
@@ -114,7 +114,7 @@
}
public void testResolveArrayOfObjectsFromImport() throws Exception {
- final ClassTypeResolver resolver = new ClassTypeResolver( new ArrayList() );
+ final ClassTypeResolver resolver = new ClassTypeResolver( new ArrayList(), Thread.currentThread().getContextClassLoader() );
resolver.addImport( "org.drools.Cheese" );
assertEquals( String[].class,
resolver.resolveType( "String[]" ) );
@@ -127,7 +127,7 @@
}
public void testResolveMultidimensionnalArrayOfObjectsNotFromImport() throws Exception {
- final ClassTypeResolver resolver = new ClassTypeResolver();
+ final ClassTypeResolver resolver = new ClassTypeResolver(new ArrayList(), Thread.currentThread().getContextClassLoader());
assertEquals( String[][].class,
resolver.resolveType( "String[][]" ) );
assertEquals( String[][].class,
@@ -144,7 +144,7 @@
}
public void testResolveMultidimensionnalArrayOfObjectsFromImport() throws Exception {
- final ClassTypeResolver resolver = new ClassTypeResolver( new ArrayList() );
+ final ClassTypeResolver resolver = new ClassTypeResolver( new ArrayList(), Thread.currentThread().getContextClassLoader() );
resolver.addImport( "org.drools.Cheese" );
assertEquals( String[][].class,
resolver.resolveType( "String[][]" ) );
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/agent/RuleBaseAssemblerTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/agent/RuleBaseAssemblerTest.java 2007-06-20 03:29:36 UTC (rev 12699)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/agent/RuleBaseAssemblerTest.java 2007-06-20 03:30:07 UTC (rev 12700)
@@ -10,6 +10,7 @@
import org.drools.RuleBase;
import org.drools.RuleBaseFactory;
+import org.drools.common.DroolsObjectInputStream;
import org.drools.rule.Package;
import junit.framework.TestCase;
@@ -40,7 +41,7 @@
public static Package readPackage(File p1file) throws IOException,
FileNotFoundException,
ClassNotFoundException {
- ObjectInputStream in = new ObjectInputStream(new FileInputStream(p1file));
+ ObjectInputStream in = new DroolsObjectInputStream(new FileInputStream(p1file));
Package p1_ = (Package) in.readObject();
in.close();
return p1_;
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/BaseClassFieldExtractorFactoryTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/BaseClassFieldExtractorFactoryTest.java 2007-06-20 03:29:36 UTC (rev 12699)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/BaseClassFieldExtractorFactoryTest.java 2007-06-20 03:30:07 UTC (rev 12700)
@@ -29,13 +29,15 @@
public void testIt() throws Exception {
FieldExtractor ex = ClassFieldExtractorFactory.getClassFieldExtractor( TestBean.class,
- "name" );
+ "name",
+ Thread.currentThread().getContextClassLoader() );
assertEquals( 0,
ex.getIndex() );
assertEquals( "michael",
ex.getValue( new TestBean() ) );
ex = ClassFieldExtractorFactory.getClassFieldExtractor( TestBean.class,
- "age" );
+ "age",
+ Thread.currentThread().getContextClassLoader() );
assertEquals( 1,
ex.getIndex() );
assertEquals( 42,
@@ -45,7 +47,8 @@
public void testInterface() throws Exception {
final FieldExtractor ex = ClassFieldExtractorCache.getExtractor( TestInterface.class,
- "something" );
+ "something",
+ getClass().getClassLoader() );
assertEquals( 0,
ex.getIndex() );
assertEquals( "foo",
@@ -54,7 +57,8 @@
public void testAbstract() throws Exception {
final FieldExtractor ex = ClassFieldExtractorCache.getExtractor( TestAbstract.class,
- "something" );
+ "something",
+ getClass().getClassLoader() );
assertEquals( 0,
ex.getIndex() );
assertEquals( "foo",
@@ -63,14 +67,16 @@
public void testInherited() throws Exception {
final FieldExtractor ex = ClassFieldExtractorCache.getExtractor( BeanInherit.class,
- "text" );
+ "text",
+ getClass().getClassLoader() );
assertEquals( "hola",
ex.getValue( new BeanInherit() ) );
}
public void testSelfReference() throws Exception {
final FieldExtractor ex = ClassFieldExtractorCache.getExtractor( BeanInherit.class,
- "this" );
+ "this",
+ getClass().getClassLoader() );
final TestBean bean = new TestBean();
assertEquals( bean,
ex.getValue( bean ) );
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/ClassFieldExtractorTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/ClassFieldExtractorTest.java 2007-06-20 03:29:36 UTC (rev 12699)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/ClassFieldExtractorTest.java 2007-06-20 03:30:07 UTC (rev 12700)
@@ -37,17 +37,20 @@
obj.setObjArray( objArray );
final ClassFieldExtractor ext = ClassFieldExtractorCache.getExtractor( TestBean.class,
- "blah" );
+ "blah",
+ getClass().getClassLoader() );
assertEquals( false,
((Boolean) ext.getValue( obj )).booleanValue() );
final ClassFieldExtractor ext2 = ClassFieldExtractorCache.getExtractor( TestBean.class,
- "fooBar" );
+ "fooBar",
+ getClass().getClassLoader() );
assertEquals( "fooBar",
ext2.getValue( obj ) );
final ClassFieldExtractor ext3 = ClassFieldExtractorCache.getExtractor( TestBean.class,
- "objArray" );
+ "objArray",
+ getClass().getClassLoader() );
assertEquals( objArray,
ext3.getValue( obj ) );
@@ -57,7 +60,8 @@
final TestInterface obj = new TestInterfaceImpl();
final ClassFieldExtractor ext = ClassFieldExtractorCache.getExtractor( TestInterface.class,
- "something" );
+ "something",
+ getClass().getClassLoader() );
assertEquals( "foo",
(String) ext.getValue( obj ) );
@@ -67,7 +71,8 @@
public void testAbstract() throws Exception {
final ClassFieldExtractor ext = ClassFieldExtractorCache.getExtractor( TestAbstract.class,
- "something" );
+ "something",
+ getClass().getClassLoader() );
final TestAbstract obj = new TestAbstractImpl();
assertEquals( "foo",
(String) ext.getValue( obj ) );
@@ -76,7 +81,8 @@
public void testInherited() throws Exception {
final ClassFieldExtractor ext = ClassFieldExtractorCache.getExtractor( BeanInherit.class,
- "text" );
+ "text",
+ getClass().getClassLoader() );
final BeanInherit obj = new BeanInherit();
assertEquals( "hola",
(String) ext.getValue( obj ) );
@@ -86,14 +92,16 @@
public void testMultipleInterfaces() throws Exception {
final ConcreteChild obj = new ConcreteChild();
final ClassFieldExtractor ext = ClassFieldExtractorCache.getExtractor( InterfaceChild.class,
- "foo" );
+ "foo",
+ getClass().getClassLoader() );
assertEquals( 42,
((Number) ext.getValue( obj )).intValue() );
}
public void testLong() throws Exception {
final ClassFieldExtractor ext = ClassFieldExtractorCache.getExtractor( TestBean.class,
- "longField" );
+ "longField",
+ getClass().getClassLoader() );
final TestBean bean = new TestBean();
assertEquals( 424242,
((Number) ext.getValue( bean )).longValue() );
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/extractors/BooleanClassFieldExtractorTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/extractors/BooleanClassFieldExtractorTest.java 2007-06-20 03:29:36 UTC (rev 12699)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/extractors/BooleanClassFieldExtractorTest.java 2007-06-20 03:30:07 UTC (rev 12700)
@@ -9,7 +9,8 @@
public class BooleanClassFieldExtractorTest extends BaseClassFieldExtractorsTest {
Extractor extractor = ClassFieldExtractorCache.getExtractor( TestBean.class,
- "booleanAttr" );
+ "booleanAttr",
+ getClass().getClassLoader() );
TestBean bean = new TestBean();
protected void setUp() throws Exception {
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/extractors/ByteClassFieldExtractorTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/extractors/ByteClassFieldExtractorTest.java 2007-06-20 03:29:36 UTC (rev 12699)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/extractors/ByteClassFieldExtractorTest.java 2007-06-20 03:30:07 UTC (rev 12700)
@@ -9,7 +9,8 @@
public class ByteClassFieldExtractorTest extends BaseClassFieldExtractorsTest {
Extractor extractor = ClassFieldExtractorCache.getExtractor( TestBean.class,
- "byteAttr" );
+ "byteAttr",
+ getClass().getClassLoader() );
TestBean bean = new TestBean();
protected void setUp() throws Exception {
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/extractors/CharClassFieldExtractorTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/extractors/CharClassFieldExtractorTest.java 2007-06-20 03:29:36 UTC (rev 12699)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/extractors/CharClassFieldExtractorTest.java 2007-06-20 03:30:07 UTC (rev 12700)
@@ -9,7 +9,8 @@
public class CharClassFieldExtractorTest extends BaseClassFieldExtractorsTest {
Extractor extractor = ClassFieldExtractorCache.getExtractor( TestBean.class,
- "charAttr" );
+ "charAttr",
+ getClass().getClassLoader() );
TestBean bean = new TestBean();
protected void setUp() throws Exception {
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/extractors/DoubleClassFieldExtractorTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/extractors/DoubleClassFieldExtractorTest.java 2007-06-20 03:29:36 UTC (rev 12699)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/extractors/DoubleClassFieldExtractorTest.java 2007-06-20 03:30:07 UTC (rev 12700)
@@ -11,7 +11,8 @@
private static final double VALUE = 7;
Extractor extractor = ClassFieldExtractorCache.getExtractor( TestBean.class,
- "doubleAttr" );
+ "doubleAttr",
+ getClass().getClassLoader() );
TestBean bean = new TestBean();
protected void setUp() throws Exception {
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/extractors/FloatClassFieldExtractorTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/extractors/FloatClassFieldExtractorTest.java 2007-06-20 03:29:36 UTC (rev 12699)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/extractors/FloatClassFieldExtractorTest.java 2007-06-20 03:30:07 UTC (rev 12700)
@@ -11,7 +11,8 @@
private static final float VALUE = 6;
Extractor extractor = ClassFieldExtractorCache.getExtractor( TestBean.class,
- "floatAttr" );
+ "floatAttr",
+ getClass().getClassLoader() );
TestBean bean = new TestBean();
protected void setUp() throws Exception {
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/extractors/IntClassFieldExtractorTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/extractors/IntClassFieldExtractorTest.java 2007-06-20 03:29:36 UTC (rev 12699)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/extractors/IntClassFieldExtractorTest.java 2007-06-20 03:30:07 UTC (rev 12700)
@@ -11,7 +11,8 @@
private static final int VALUE = 4;
Extractor extractor = ClassFieldExtractorCache.getExtractor( TestBean.class,
- "intAttr" );
+ "intAttr",
+ getClass().getClassLoader() );
TestBean bean = new TestBean();
protected void setUp() throws Exception {
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/extractors/LongClassFieldExtractorTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/extractors/LongClassFieldExtractorTest.java 2007-06-20 03:29:36 UTC (rev 12699)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/extractors/LongClassFieldExtractorTest.java 2007-06-20 03:30:07 UTC (rev 12700)
@@ -11,7 +11,8 @@
private static final long VALUE = 5;
Extractor extractor = ClassFieldExtractorCache.getExtractor( TestBean.class,
- "longAttr" );
+ "longAttr",
+ getClass().getClassLoader() );
TestBean bean = new TestBean();
protected void setUp() throws Exception {
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/extractors/MVELClassFieldExtractorTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/extractors/MVELClassFieldExtractorTest.java 2007-06-20 03:29:36 UTC (rev 12699)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/extractors/MVELClassFieldExtractorTest.java 2007-06-20 03:30:07 UTC (rev 12700)
@@ -12,7 +12,8 @@
public class MVELClassFieldExtractorTest extends TestCase {
Extractor extractor = ClassFieldExtractorCache.getExtractor( Person.class,
- "addresses['home'].street" );
+ "addresses['home'].street",
+ getClass().getClassLoader() );
Person person = null;
protected void setUp() throws Exception {
@@ -111,7 +112,8 @@
Assert.assertFalse( this.extractor.isNullValue( this.person ) );
Extractor nullExtractor = ClassFieldExtractorCache.getExtractor( Person.class,
- "addresses['business'].phone" );
+ "addresses['business'].phone",
+ getClass().getClassLoader() );
Assert.assertTrue( nullExtractor.isNullValue( this.person ) );
} catch ( final Exception e ) {
fail( "Should not throw an exception" );
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/extractors/ObjectClassFieldExtractorTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/extractors/ObjectClassFieldExtractorTest.java 2007-06-20 03:29:36 UTC (rev 12699)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/extractors/ObjectClassFieldExtractorTest.java 2007-06-20 03:30:07 UTC (rev 12700)
@@ -13,7 +13,8 @@
public class ObjectClassFieldExtractorTest extends BaseClassFieldExtractorsTest {
Extractor extractor = ClassFieldExtractorCache.getExtractor( TestBean.class,
- "listAttr" );
+ "listAttr",
+ getClass().getClassLoader() );
TestBean bean = new TestBean();
protected void setUp() throws Exception {
@@ -107,7 +108,8 @@
Assert.assertFalse( this.extractor.isNullValue( this.bean ) );
Extractor nullExtractor = ClassFieldExtractorCache.getExtractor( TestBean.class,
- "nullAttr" );
+ "nullAttr",
+ getClass().getClassLoader() );
Assert.assertTrue( nullExtractor.isNullValue( this.bean ) );
} catch ( final Exception e ) {
fail( "Should not throw an exception" );
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/extractors/ShortClassFieldExtractorTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/extractors/ShortClassFieldExtractorTest.java 2007-06-20 03:29:36 UTC (rev 12699)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/extractors/ShortClassFieldExtractorTest.java 2007-06-20 03:30:07 UTC (rev 12700)
@@ -11,7 +11,8 @@
private static final short VALUE = 3;
Extractor extractor = ClassFieldExtractorCache.getExtractor( TestBean.class,
- "shortAttr" );
+ "shortAttr",
+ getClass().getClassLoader() );
TestBean bean = new TestBean();
protected void setUp() throws Exception {
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/common/QuadroupleBetaConstraintsTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/common/QuadroupleBetaConstraintsTest.java 2007-06-20 03:29:36 UTC (rev 12699)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/common/QuadroupleBetaConstraintsTest.java 2007-06-20 03:30:07 UTC (rev 12700)
@@ -50,7 +50,8 @@
private BetaNodeFieldConstraint getConstraint(String fieldName,
Class clazz) {
FieldExtractor extractor = ClassFieldExtractorCache.getExtractor( clazz,
- fieldName );
+ fieldName,
+ getClass().getClassLoader() );
Declaration declaration = new Declaration( fieldName,
extractor,
new Pattern( 0,
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/event/AgendaEventSupportTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/event/AgendaEventSupportTest.java 2007-06-20 03:29:36 UTC (rev 12699)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/event/AgendaEventSupportTest.java 2007-06-20 03:30:07 UTC (rev 12700)
@@ -63,7 +63,8 @@
cheeseObjectType );
final ClassFieldExtractor extractor = ClassFieldExtractorCache.getExtractor( Cheese.class,
- "type" );
+ "type",
+ getClass().getClassLoader() );
final FieldValue field = FieldFactory.getFieldValue( "cheddar" );
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/BaseMannersTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/BaseMannersTest.java 2007-06-20 03:29:36 UTC (rev 12699)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/BaseMannersTest.java 2007-06-20 03:30:07 UTC (rev 12700)
@@ -234,9 +234,10 @@
drools.update( tuple.get( countDeclaration ),
count );
+ drools.modifyRetract( context );;
context.setState( Context.ASSIGN_SEATS );
- drools.update( tuple.get( contextDeclaration ),
- context );
+ drools.modifyInsert( context );
+
System.err.println( "assign first seat : " + seating + " : " + path );
} catch ( Exception e ) {
@@ -745,13 +746,13 @@
Context context = (Context) drools.get( contextDeclaration );
Seating seating = (Seating) drools.get( seatingDeclaration );
+ drools.modifyRetract( seating );
seating.setPathDone( true );
// if ( seating.getId() == 6 ) {
// System.err.println( "pause" );
// }
- drools.update( tuple.get( seatingDeclaration ),
- seating );
+ drools.modifyInsert( seating );
context.setState( Context.CHECK_DONE );
drools.update( tuple.get( contextDeclaration ),
@@ -1109,7 +1110,8 @@
final Class clazz = ((ClassObjectType) pattern.getObjectType()).getClassType();
final FieldExtractor extractor = ClassFieldExtractorCache.getExtractor( clazz,
- fieldName );
+ fieldName,
+ getClass().getClassLoader() );
final FieldValue field = new LongFieldImpl( fieldValue );
@@ -1125,7 +1127,8 @@
final Class clazz = ((ClassObjectType) pattern.getObjectType()).getClassType();
final FieldExtractor extractor = ClassFieldExtractorCache.getExtractor( clazz,
- fieldName );
+ fieldName,
+ getClass().getClassLoader() );
final FieldValue field = new BooleanFieldImpl( fieldValue );
@@ -1140,7 +1143,8 @@
final Class clazz = ((ClassObjectType) pattern.getObjectType()).getClassType();
final FieldExtractor extractor = ClassFieldExtractorCache.getExtractor( clazz,
- fieldName );
+ fieldName,
+ getClass().getClassLoader() );
pattern.addDeclaration( identifier,
extractor );
@@ -1153,7 +1157,8 @@
final Class clazz = ((ClassObjectType) pattern.getObjectType()).getClassType();
final FieldExtractor extractor = ClassFieldExtractorCache.getExtractor( clazz,
- fieldName );
+ fieldName,
+ getClass().getClassLoader() );
return new VariableConstraint( extractor,
declaration,
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/AlphaNodeTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/AlphaNodeTest.java 2007-06-20 03:29:36 UTC (rev 12699)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/AlphaNodeTest.java 2007-06-20 03:30:07 UTC (rev 12700)
@@ -64,7 +64,8 @@
final MockObjectSource source = new MockObjectSource( 15 );
final ClassFieldExtractor extractor = ClassFieldExtractorCache.getExtractor( Cheese.class,
- "type" );
+ "type",
+ getClass().getClassLoader() );
final FieldValue field = FieldFactory.getFieldValue( "cheddar" );
@@ -145,7 +146,8 @@
final MockObjectSource source = new MockObjectSource( 15 );
final ClassFieldExtractor extractor = ClassFieldExtractorCache.getExtractor( Cheese.class,
- "type" );
+ "type",
+ getClass().getClassLoader() );
final FieldValue field = FieldFactory.getFieldValue( "cheddar" );
@@ -231,7 +233,8 @@
final MockObjectSource source = new MockObjectSource( 15 );
final FieldExtractor extractor = ClassFieldExtractorCache.getExtractor( Cheese.class,
- "type" );
+ "type",
+ getClass().getClassLoader() );
final FieldValue field = FieldFactory.getFieldValue( "cheddar" );
@@ -292,7 +295,8 @@
final MockObjectSource source = new MockObjectSource( 15 );
final FieldExtractor extractor = ClassFieldExtractorCache.getExtractor( Cheese.class,
- "type" );
+ "type",
+ getClass().getClassLoader() );
final FieldValue field = FieldFactory.getFieldValue( "cheddar" );
@@ -370,7 +374,8 @@
final MockObjectSource source = new MockObjectSource( 15 );
final FieldExtractor extractor = ClassFieldExtractorCache.getExtractor( Cheese.class,
- "type" );
+ "type",
+ getClass().getClassLoader() );
final FieldValue field = FieldFactory.getFieldValue( "cheddar" );
@@ -453,7 +458,8 @@
final MockObjectSource source = new MockObjectSource( 1 );
final FieldExtractor extractor = ClassFieldExtractorCache.getExtractor( Cheese.class,
- "type" );
+ "type",
+ getClass().getClassLoader() );
final FieldValue field = FieldFactory.getFieldValue( "cheddar" );
@@ -520,7 +526,8 @@
final MockObjectSource source = new MockObjectSource( 1 );
final FieldExtractor extractor = ClassFieldExtractorCache.getExtractor(Cheese.class,
- "type" );
+ "type",
+ getClass().getClassLoader() );
final FieldValue field = FieldFactory.getFieldValue( "cheddar" );
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/FromNodeTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/FromNodeTest.java 2007-06-20 03:29:36 UTC (rev 12699)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/FromNodeTest.java 2007-06-20 03:30:07 UTC (rev 12700)
@@ -45,7 +45,8 @@
final ReteooWorkingMemory workingMemory = new ReteooWorkingMemory( 1,
(ReteooRuleBase) RuleBaseFactory.newRuleBase() );
final ClassFieldExtractor extractor = ClassFieldExtractorCache.getExtractor( Cheese.class,
- "type" );
+ "type",
+ getClass().getClassLoader() );
final FieldValue field = FieldFactory.getFieldValue( "stilton" );
final LiteralConstraint constraint = new LiteralConstraint( extractor,
@@ -136,10 +137,12 @@
(ReteooRuleBase) RuleBaseFactory.newRuleBase() );
final ClassFieldExtractor priceExtractor = ClassFieldExtractorCache.getExtractor( Cheese.class,
- "price" );
+ "price",
+ getClass().getClassLoader() );
final ClassFieldExtractor ageExtractor = ClassFieldExtractorCache.getExtractor( Person.class,
- "age" );
+ "age",
+ getClass().getClassLoader() );
final Pattern pattern = new Pattern( 0,
new ClassObjectType( Person.class ) );
@@ -239,7 +242,8 @@
final ReteooWorkingMemory workingMemory = new ReteooWorkingMemory( 1,
(ReteooRuleBase) RuleBaseFactory.newRuleBase() );
final ClassFieldExtractor extractor = ClassFieldExtractorCache.getExtractor( Cheese.class,
- "type" );
+ "type",
+ getClass().getClassLoader() );
final FieldValue field = FieldFactory.getFieldValue( "stilton" );
final LiteralConstraint constraint = new LiteralConstraint( extractor,
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/QueryTerminalNodeTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/QueryTerminalNodeTest.java 2007-06-20 03:29:36 UTC (rev 12699)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/QueryTerminalNodeTest.java 2007-06-20 03:30:07 UTC (rev 12700)
@@ -54,7 +54,8 @@
queryObjectTypeNode.attach();
ClassFieldExtractor extractor = ClassFieldExtractorCache.getExtractor( DroolsQuery.class,
- "name" );
+ "name",
+ DroolsQuery.class.getClassLoader() );
FieldValue field = FieldFactory.getFieldValue( "query-1" );
@@ -80,7 +81,8 @@
cheeseObjectTypeNode.attach();
extractor = ClassFieldExtractorCache.getExtractor( Cheese.class,
- "type" );
+ "type",
+ getClass().getClassLoader() );
field = FieldFactory.getFieldValue( "stilton" );
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/rule/DeclarationTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/rule/DeclarationTest.java 2007-06-20 03:29:36 UTC (rev 12699)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/rule/DeclarationTest.java 2007-06-20 03:30:07 UTC (rev 12700)
@@ -32,7 +32,8 @@
public void testDeclaration() throws IntrospectionException {
final FieldExtractor extractor = ClassFieldExtractorCache.getExtractor( Cheese.class,
- "type" );
+ "type",
+ getClass().getClassLoader() );
final Pattern pattern = new Pattern( 5,
new ClassObjectType( Cheese.class ) );
@@ -59,7 +60,8 @@
public void testGetFieldValue() throws IntrospectionException {
final FieldExtractor extractor = ClassFieldExtractorCache.getExtractor( Cheese.class,
- "type" );
+ "type",
+ getClass().getClassLoader() );
final Pattern pattern = new Pattern( 5,
new ClassObjectType( Cheese.class ) );
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/rule/FieldConstraintTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/rule/FieldConstraintTest.java 2007-06-20 03:29:36 UTC (rev 12699)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/rule/FieldConstraintTest.java 2007-06-20 03:30:07 UTC (rev 12700)
@@ -68,7 +68,8 @@
final InternalWorkingMemory workingMemory = (InternalWorkingMemory) ruleBase.newStatefulSession();
final ClassFieldExtractor extractor = ClassFieldExtractorCache.getExtractor( Cheese.class,
- "type" );
+ "type",
+ getClass().getClassLoader() );
final FieldValue field = FieldFactory.getFieldValue( "cheddar" );
@@ -113,7 +114,8 @@
final InternalWorkingMemory workingMemory = (InternalWorkingMemory) ruleBase.newStatefulSession();
final ClassFieldExtractor extractor = ClassFieldExtractorCache.getExtractor( Cheese.class,
- "price" );
+ "price",
+ getClass().getClassLoader() );
final FieldValue field = FieldFactory.getFieldValue( 5 );
@@ -159,7 +161,8 @@
final InternalWorkingMemory workingMemory = (InternalWorkingMemory) ruleBase.newStatefulSession();
final FieldExtractor priceExtractor = ClassFieldExtractorCache.getExtractor( Cheese.class,
- "price" );
+ "price",
+ getClass().getClassLoader() );
Pattern pattern = new Pattern( 0,
new ClassObjectType( Cheese.class ) );
@@ -241,7 +244,8 @@
final InternalWorkingMemory workingMemory = (InternalWorkingMemory) ruleBase.newStatefulSession();
final FieldExtractor priceExtractor = ClassFieldExtractorCache.getExtractor( Cheese.class,
- "price" );
+ "price",
+ getClass().getClassLoader() );
final Pattern pattern = new Pattern( 0,
new ClassObjectType( Cheese.class ) );
@@ -341,7 +345,8 @@
final InternalWorkingMemory workingMemory = (InternalWorkingMemory) ruleBase.newStatefulSession();
final ClassFieldExtractor extractor = ClassFieldExtractorCache.getExtractor( Cheese.class,
- "type" );
+ "type",
+ getClass().getClassLoader() );
final FieldValue field = FieldFactory.getFieldValue( "cheddar" );
@@ -352,7 +357,8 @@
field );
final ClassFieldExtractor priceExtractor = ClassFieldExtractorCache.getExtractor( Cheese.class,
- "price" );
+ "price",
+ getClass().getClassLoader() );
final FieldValue priceField = FieldFactory.getFieldValue( 10 );
@@ -409,7 +415,8 @@
final InternalWorkingMemory workingMemory = (InternalWorkingMemory) ruleBase.newStatefulSession();
final ClassFieldExtractor extractor = ClassFieldExtractorCache.getExtractor( Cheese.class,
- "type" );
+ "type",
+ getClass().getClassLoader() );
final FieldValue field = FieldFactory.getFieldValue( "cheddar" );
@@ -420,7 +427,8 @@
field );
final ClassFieldExtractor priceExtractor = ClassFieldExtractorCache.getExtractor( Cheese.class,
- "price" );
+ "price",
+ getClass().getClassLoader() );
final FieldValue priceField = FieldFactory.getFieldValue( 10 );
@@ -477,7 +485,8 @@
final InternalWorkingMemory workingMemory = (InternalWorkingMemory) ruleBase.newStatefulSession();
final ClassFieldExtractor typeExtractor = ClassFieldExtractorCache.getExtractor( Cheese.class,
- "type" );
+ "type",
+ getClass().getClassLoader() );
final FieldValue cheddarField = FieldFactory.getFieldValue( "cheddar" );
@@ -489,7 +498,8 @@
cheddarField );
final ClassFieldExtractor priceExtractor = ClassFieldExtractorCache.getExtractor( Cheese.class,
- "price" );
+ "price",
+ getClass().getClassLoader() );
final FieldValue field10 = FieldFactory.getFieldValue( 10 );
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/util/FieldIndexEntryTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/util/FieldIndexEntryTest.java 2007-06-20 03:29:36 UTC (rev 12699)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/util/FieldIndexEntryTest.java 2007-06-20 03:30:07 UTC (rev 12700)
@@ -18,7 +18,8 @@
public void testSingleEntry() {
final ClassFieldExtractor extractor = ClassFieldExtractorCache.getExtractor( Cheese.class,
- "type" );
+ "type",
+ getClass().getClassLoader() );
final FieldIndex fieldIndex = new FieldIndex( extractor,
null,
@@ -61,7 +62,8 @@
public void testTwoEntries() {
final ClassFieldExtractor extractor = ClassFieldExtractorCache.getExtractor( Cheese.class,
- "type" );
+ "type",
+ getClass().getClassLoader() );
final FieldIndex fieldIndex = new FieldIndex( extractor,
null,
StringFactory.getInstance().getEvaluator( Operator.EQUAL ) );
@@ -112,7 +114,8 @@
public void testThreeEntries() {
final ClassFieldExtractor extractor = ClassFieldExtractorCache.getExtractor( Cheese.class,
- "type" );
+ "type",
+ getClass().getClassLoader() );
final FieldIndex fieldIndex = new FieldIndex( extractor,
null,
StringFactory.getInstance().getEvaluator( Operator.EQUAL ) );
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/util/FieldIndexHashTableTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/util/FieldIndexHashTableTest.java 2007-06-20 03:29:36 UTC (rev 12699)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/util/FieldIndexHashTableTest.java 2007-06-20 03:30:07 UTC (rev 12700)
@@ -28,7 +28,8 @@
public void testSingleEntry() throws Exception {
final FieldExtractor extractor = ClassFieldExtractorCache.getExtractor( Cheese.class,
- "type" );
+ "type",
+ getClass().getClassLoader() );
final Pattern pattern = new Pattern( 0,
new ClassObjectType( Cheese.class ) );
@@ -76,7 +77,8 @@
public void testTwoDifferentEntries() throws Exception {
final FieldExtractor extractor = ClassFieldExtractorCache.getExtractor( Cheese.class,
- "type" );
+ "type",
+ getClass().getClassLoader() );
final Pattern pattern = new Pattern( 0,
new ClassObjectType( Cheese.class ) );
@@ -132,7 +134,8 @@
public void testTwoEqualEntries() throws Exception {
final FieldExtractor extractor = ClassFieldExtractorCache.getExtractor( Cheese.class,
- "type" );
+ "type",
+ getClass().getClassLoader() );
final Pattern pattern = new Pattern( 0,
new ClassObjectType( Cheese.class ) );
@@ -188,7 +191,8 @@
public void testTwoDifferentEntriesSameHashCode() throws Exception {
final FieldExtractor extractor = ClassFieldExtractorCache.getExtractor( TestClass.class,
- "object" );
+ "object",
+ getClass().getClassLoader() );
final Pattern pattern = new Pattern( 0,
new ClassObjectType( TestClass.class ) );
@@ -234,7 +238,8 @@
public void testRemove() throws Exception {
final FieldExtractor extractor = ClassFieldExtractorCache.getExtractor( Cheese.class,
- "type" );
+ "type",
+ getClass().getClassLoader() );
final Pattern pattern = new Pattern( 0,
new ClassObjectType( Cheese.class ) );
@@ -300,7 +305,8 @@
public void testResize() throws Exception {
final FieldExtractor extractor = ClassFieldExtractorCache.getExtractor( Cheese.class,
- "type" );
+ "type",
+ getClass().getClassLoader() );
final Pattern pattern = new Pattern( 0,
new ClassObjectType( Cheese.class ) );
@@ -516,7 +522,8 @@
public void testEmptyIterator() {
final FieldExtractor extractor = ClassFieldExtractorCache.getExtractor( Cheese.class,
- "type" );
+ "type",
+ getClass().getClassLoader() );
final Pattern pattern = new Pattern( 0,
new ClassObjectType( Cheese.class ) );
More information about the jboss-svn-commits
mailing list