[jboss-svn-commits] JBL Code SVN: r12805 - in labs/jbossrules/trunk/drools-core/src: main/java/org/drools/reteoo and 2 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sun Jun 24 13:15:18 EDT 2007
Author: mark.proctor at jboss.com
Date: 2007-06-24 13:15:18 -0400 (Sun, 24 Jun 2007)
New Revision: 12805
Modified:
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/RuleBaseConfiguration.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/AlphaNode.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ObjectTypeNode.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/builder/PatternBuilder.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/AddRemoveTest.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/CompositeObjectSinkAdapterTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/LogicalAssertionTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/ObjectTypeNodeTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/PropertyChangeListenerTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/QueryTerminalNodeTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/ReteTest.java
Log:
-updated the system to use the alpha node memory configuration
-removed the optional constructor, so it must be set explicitely.
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/RuleBaseConfiguration.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/RuleBaseConfiguration.java 2007-06-24 14:43:43 UTC (rev 12804)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/RuleBaseConfiguration.java 2007-06-24 17:15:18 UTC (rev 12805)
@@ -76,6 +76,7 @@
private boolean removeIdentities;
private boolean shareAlphaNodes;
private boolean shareBetaNodes;
+ private boolean objectTypeMemory;
private boolean alphaMemory;
private int alphaNodeHashingThreshold;
private int compositeKeyDepth;
@@ -113,6 +114,9 @@
setRemoveIdentities( Boolean.valueOf( this.chainedProperties.getProperty( "drools.removeIdentities",
"false" ) ).booleanValue() );
+ setObjectTypeMemory( Boolean.valueOf( this.chainedProperties.getProperty( "drools.objectTypeMemory",
+ "true" ) ).booleanValue() );
+
setAlphaMemory( Boolean.valueOf( this.chainedProperties.getProperty( "drools.alphaMemory",
"false" ) ).booleanValue() );
@@ -189,6 +193,15 @@
this.removeIdentities = removeIdentities;
}
+ public boolean isObjectTypeMemory() {
+ return this.objectTypeMemory;
+ }
+
+ public void setObjectTypeMemory(final boolean objectTypeMemory) {
+ checkCanChange(); // throws an exception if a change isn't possible;
+ this.objectTypeMemory = objectTypeMemory;
+ }
+
public boolean isAlphaMemory() {
return this.alphaMemory;
}
@@ -429,11 +442,11 @@
if ( excludes == null || "".equals( excludes.trim() ) ) {
return;
}
-
+
if ( this.shadowProxyExcludes == null ) {
this.shadowProxyExcludes = new HashMap();
}
-
+
String[] items = excludes.split( " " );
for ( int i = 0; i < items.length; i++ ) {
String qualifiedNamespace = items[i].substring( 0,
@@ -449,7 +462,7 @@
List list = new ArrayList();
list.add( name );
this.shadowProxyExcludes.put( qualifiedNamespace,
- list );
+ list );
}
} else if ( name.equals( STAR ) ) {
// if its a STAR now add it anyway, we don't care if it was a STAR or a List before
@@ -464,12 +477,12 @@
}
}
}
-
+
public boolean isShadowed(String className) {
if ( this.shadowProxyExcludes == null ) {
return true;
}
-
+
String qualifiedNamespace = className.substring( 0,
className.lastIndexOf( '.' ) ).trim();
String name = className.substring( className.lastIndexOf( '.' ) + 1 ).trim();
@@ -479,12 +492,10 @@
} else if ( STAR.equals( object ) ) {
return false;
} else {
- List list = ( List ) object;
+ List list = (List) object;
return !list.contains( name );
}
-
-
-
+
}
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/AlphaNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/AlphaNode.java 2007-06-24 14:43:43 UTC (rev 12804)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/AlphaNode.java 2007-06-24 17:15:18 UTC (rev 12805)
@@ -58,25 +58,6 @@
/**
* Construct an <code>AlphaNode</code> with a unique id using the provided
* <code>FieldConstraint</code> and the given <code>ObjectSource</code>.
- * Nodes created in this way will have a local memory by default.
- *
- * @param id
- * @param constraint
- * @param objectSource
- */
- public AlphaNode(final int id,
- final AlphaNodeFieldConstraint constraint,
- final ObjectSource objectSource) {
- this( id,
- constraint,
- objectSource,
- true,
- 3 );
- }
-
- /**
- * Construct an <code>AlphaNode</code> with a unique id using the provided
- * <code>FieldConstraint</code> and the given <code>ObjectSource</code>.
* Set the boolean flag to true if the node is supposed to have local
* memory, or false otherwise. Memory is optional for <code>AlphaNode</code>s
* and is only of benefic when adding additional <code>Rule</code>s at runtime.
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ObjectTypeNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ObjectTypeNode.java 2007-06-24 14:43:43 UTC (rev 12804)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ObjectTypeNode.java 2007-06-24 17:15:18 UTC (rev 12805)
@@ -93,13 +93,14 @@
public ObjectTypeNode(final int id,
final ObjectType objectType,
final Rete rete,
+ final boolean hasMemory,
final int alphaNodeHashingThreshold) {
super( id,
null,
alphaNodeHashingThreshold );
this.rete = rete;
this.objectType = objectType;
- setHasMemory( true );
+ setHasMemory( hasMemory );
}
// ------------------------------------------------------------
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/builder/PatternBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/builder/PatternBuilder.java 2007-06-24 14:43:43 UTC (rev 12804)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/builder/PatternBuilder.java 2007-06-24 17:15:18 UTC (rev 12805)
@@ -88,6 +88,7 @@
new ObjectTypeNode( context.getNextId(),
pattern.getObjectType(),
context.getRuleBase().getRete(),
+ context.getRuleBase().getConfiguration().isObjectTypeMemory(),
context.getRuleBase().getConfiguration().getAlphaNodeHashingThreshold() ) ) );
final List betaConstraints = new ArrayList();
@@ -114,11 +115,15 @@
isAlphaConstraint = false;
}
}
+
+
if ( isAlphaConstraint ) {
context.setObjectSource( (ObjectSource) utils.attachNode( context,
new AlphaNode( context.getNextId(),
(AlphaNodeFieldConstraint) constraint,
- context.getObjectSource() ) ) );
+ context.getObjectSource(),
+ context.getRuleBase().getConfiguration().isAlphaMemory(),
+ context.getRuleBase().getConfiguration().getAlphaNodeHashingThreshold() ) ) );
} else {
utils.checkUnboundDeclarations( context,
constraint.getRequiredDeclarations() );
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/AddRemoveTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/AddRemoveTest.java 2007-06-24 14:43:43 UTC (rev 12804)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/AddRemoveTest.java 2007-06-24 17:15:18 UTC (rev 12805)
@@ -33,6 +33,7 @@
final ObjectTypeNode objectTypeNode = new ObjectTypeNode( 0,
new ClassObjectType( Object.class ),
rete,
+ true,
1 );
objectTypeNode.attach();
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-24 14:43:43 UTC (rev 12804)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/AlphaNodeTest.java 2007-06-24 17:15:18 UTC (rev 12805)
@@ -45,7 +45,9 @@
final AlphaNode alphaNode = new AlphaNode( 2,
null,
- null );
+ null,
+ true,
+ 3);
final FactHashTable memory = (FactHashTable) workingMemory.getNodeMemory( alphaNode );
@@ -245,7 +247,9 @@
final AlphaNode alphaNode = new AlphaNode( 2,
constraint,
- source );
+ source,
+ true,
+ 3 );
final MockObjectSink sink = new MockObjectSink();
alphaNode.addObjectSink( sink );
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/CompositeObjectSinkAdapterTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/CompositeObjectSinkAdapterTest.java 2007-06-24 14:43:43 UTC (rev 12804)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/CompositeObjectSinkAdapterTest.java 2007-06-24 17:15:18 UTC (rev 12805)
@@ -52,7 +52,9 @@
final AlphaNode al = new AlphaNode( 0,
new PredicateConstraint( null,
null ),
- null );
+ null,
+ true,
+ 3 );
ad.addObjectSink( al );
assertEquals( 1,
@@ -77,7 +79,9 @@
new ObjectFieldImpl( "stilton" ) );
final AlphaNode al = new AlphaNode( 0,
lit,
- new MockObjectSource( 0 ) );
+ new MockObjectSource( 0 ),
+ true,
+ 3 );
ad.addObjectSink( al );
@@ -102,7 +106,9 @@
new ObjectFieldImpl( "stilton" ) );
final AlphaNode al = new AlphaNode( 0,
lit,
- new MockObjectSource( 0 ) );
+ new MockObjectSource( 0 ),
+ true,
+ 3 );
ad.addObjectSink( al );
@@ -118,7 +124,9 @@
new ObjectFieldImpl( "cheddar" ) );
final AlphaNode al2 = new AlphaNode( 1,
lit2,
- new MockObjectSource( 0 ) );
+ new MockObjectSource( 0 ),
+ true,
+ 3 );
ad.addObjectSink( al2 );
@@ -158,7 +166,9 @@
new ObjectFieldImpl( "stilton" ) );
final AlphaNode al = new AlphaNode( 0,
lit,
- new MockObjectSource( 0 ) );
+ new MockObjectSource( 0 ),
+ true,
+ 3 );
ad.addObjectSink( al );
@@ -174,7 +184,9 @@
new ObjectFieldImpl( "cheddar" ) );
final AlphaNode al2 = new AlphaNode( 1,
lit2,
- new MockObjectSource( 1 ) );
+ new MockObjectSource( 1 ),
+ true,
+ 3 );
ad.addObjectSink( al2 );
@@ -187,7 +199,9 @@
new ObjectFieldImpl( "stinky" ) );
final AlphaNode al3 = new AlphaNode( 1,
lit3,
- new MockObjectSource( 2 ) );
+ new MockObjectSource( 2 ),
+ true,
+ 3 );
ad.addObjectSink( al3 );
//this should now be nicely hashed.
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/LogicalAssertionTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/LogicalAssertionTest.java 2007-06-24 14:43:43 UTC (rev 12804)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/LogicalAssertionTest.java 2007-06-24 17:15:18 UTC (rev 12805)
@@ -47,6 +47,7 @@
final ObjectTypeNode objectTypeNode = new ObjectTypeNode( 1,
new ClassObjectType( String.class ),
rete,
+ true,
3 );
objectTypeNode.attach();
final MockObjectSink sink = new MockObjectSink();
@@ -148,6 +149,7 @@
final ObjectTypeNode objectTypeNode = new ObjectTypeNode( 0,
new ClassObjectType( String.class ),
rete,
+ true,
3 );
objectTypeNode.attach();
final MockObjectSink sink = new MockObjectSink();
@@ -238,6 +240,7 @@
final ObjectTypeNode objectTypeNode = new ObjectTypeNode( 0,
new ClassObjectType( String.class ),
rete,
+ true,
3 );
objectTypeNode.attach();
final MockObjectSink sink = new MockObjectSink();
@@ -375,6 +378,7 @@
final ObjectTypeNode objectTypeNode = new ObjectTypeNode( 0,
new ClassObjectType( String.class ),
rete,
+ true,
3 );
objectTypeNode.attach();
final MockObjectSink sink = new MockObjectSink();
@@ -462,6 +466,7 @@
final ObjectTypeNode objectTypeNode = new ObjectTypeNode( 0,
new ClassObjectType( String.class ),
rete,
+ true,
3 );
objectTypeNode.attach();
final MockObjectSink sink = new MockObjectSink();
@@ -560,6 +565,7 @@
final ObjectTypeNode objectTypeNode = new ObjectTypeNode( 1,
new ClassObjectType( String.class ),
rete,
+ true,
3 );
objectTypeNode.attach();
final MockObjectSink sink = new MockObjectSink();
@@ -688,6 +694,7 @@
final ObjectTypeNode objectTypeNode = new ObjectTypeNode( 0,
new ClassObjectType( String.class ),
rete,
+ true,
3 );
objectTypeNode.attach();
final MockObjectSink sink = new MockObjectSink();
@@ -788,6 +795,7 @@
final ObjectTypeNode objectTypeNode = new ObjectTypeNode( 0,
new ClassObjectType( String.class ),
rete,
+ true,
3 );
objectTypeNode.attach();
final MockObjectSink sink = new MockObjectSink();
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/ObjectTypeNodeTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/ObjectTypeNodeTest.java 2007-06-24 14:43:43 UTC (rev 12804)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/ObjectTypeNodeTest.java 2007-06-24 17:15:18 UTC (rev 12805)
@@ -48,6 +48,7 @@
final ObjectTypeNode objectTypeNode = new ObjectTypeNode( 1,
objectType,
source,
+ true,
3 );
assertEquals( 1,
@@ -84,6 +85,7 @@
final ObjectTypeNode objectTypeNode = new ObjectTypeNode( 1,
new ClassObjectType( String.class ),
source,
+ true,
3 );
final MockObjectSink sink = new MockObjectSink();
@@ -121,6 +123,7 @@
final ObjectTypeNode objectTypeNode = new ObjectTypeNode( 1,
new ClassObjectType( String.class ),
new Rete( (InternalRuleBase) ruleBase),
+ true,
3 );
final FactHashTable memory = (FactHashTable) workingMemory.getNodeMemory( objectTypeNode );
@@ -135,6 +138,7 @@
ObjectTypeNode objectTypeNode = new ObjectTypeNode( 1,
new ClassObjectType( String.class ),
source,
+ true,
3 );
assertFalse( objectTypeNode.matches( new Object() ) );
@@ -144,6 +148,7 @@
objectTypeNode = new ObjectTypeNode( 1,
new ClassObjectType( Object.class ),
source,
+ true,
3 );
assertTrue( objectTypeNode.matches( new Object() ) );
@@ -167,6 +172,7 @@
final ObjectTypeNode objectTypeNode = new ObjectTypeNode( 1,
new ClassObjectType( String.class ),
source,
+ true,
3 );
final MockObjectSink sink = new MockObjectSink();
@@ -219,6 +225,7 @@
final ObjectTypeNode objectTypeNode = new ObjectTypeNode( 1,
new ClassObjectType( String.class ),
source,
+ true,
3 );
final MockObjectSink sink1 = new MockObjectSink();
@@ -290,6 +297,7 @@
final ObjectTypeNode objectTypeNode = new ObjectTypeNode( 1,
new ClassObjectType( Cheese.class ),
source,
+ true,
3 );
final MockObjectSink sink = new MockObjectSink();
@@ -336,6 +344,7 @@
final ObjectTypeNode objectTypeNode = new ObjectTypeNode( 1,
new ClassObjectType( Person.class ),
source,
+ true,
3 );
final MockObjectSink sink = new MockObjectSink();
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/PropertyChangeListenerTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/PropertyChangeListenerTest.java 2007-06-24 14:43:43 UTC (rev 12804)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/PropertyChangeListenerTest.java 2007-06-24 17:15:18 UTC (rev 12805)
@@ -19,6 +19,7 @@
final ObjectTypeNode objectTypeNode = new ObjectTypeNode( 1,
new ClassObjectType( State.class ),
rete,
+ true,
3 );
objectTypeNode.attach();
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-24 14:43:43 UTC (rev 12804)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/QueryTerminalNodeTest.java 2007-06-24 17:15:18 UTC (rev 12805)
@@ -50,6 +50,7 @@
final ObjectTypeNode queryObjectTypeNode = new ObjectTypeNode( 1,
queryObjectType,
rete,
+ true,
3 );
queryObjectTypeNode.attach();
@@ -66,7 +67,9 @@
AlphaNode alphaNode = new AlphaNode( 2,
constraint,
- queryObjectTypeNode );
+ queryObjectTypeNode,
+ true,
+ 3 );
alphaNode.attach();
final LeftInputAdapterNode liaNode = new LeftInputAdapterNode( 3,
@@ -77,6 +80,7 @@
final ObjectTypeNode cheeseObjectTypeNode = new ObjectTypeNode( 4,
cheeseObjectType,
rete,
+ true,
3 );
cheeseObjectTypeNode.attach();
@@ -92,7 +96,9 @@
alphaNode = new AlphaNode( 5,
constraint,
- cheeseObjectTypeNode );
+ cheeseObjectTypeNode,
+ true,
+ 3 );
alphaNode.attach();
final JoinNode joinNode = new JoinNode( 6,
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/ReteTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/ReteTest.java 2007-06-24 14:43:43 UTC (rev 12804)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/ReteTest.java 2007-06-24 17:15:18 UTC (rev 12805)
@@ -55,12 +55,14 @@
final ObjectTypeNode objectTypeNode = new ObjectTypeNode( 1,
new ClassObjectType( Object.class ),
rete,
+ true,
3 );
objectTypeNode.attach();
final ObjectTypeNode stringTypeNode = new ObjectTypeNode( 2,
new ClassObjectType( String.class ),
rete,
+ true,
3 );
stringTypeNode.attach();
@@ -91,6 +93,7 @@
ObjectTypeNode objectTypeNode = new ObjectTypeNode( 1,
new ClassObjectType( List.class ),
rete,
+ true,
3 );
objectTypeNode.attach();
MockObjectSink sink = new MockObjectSink();
@@ -99,6 +102,7 @@
objectTypeNode = new ObjectTypeNode( 1,
new ClassObjectType( Collection.class ),
rete,
+ true,
3 );
objectTypeNode.attach();
sink = new MockObjectSink();
@@ -107,6 +111,7 @@
objectTypeNode = new ObjectTypeNode( 1,
new ClassObjectType( ArrayList.class ),
rete,
+ true,
3 );
objectTypeNode.attach();
sink = new MockObjectSink();
@@ -157,6 +162,7 @@
final ObjectTypeNode objectTypeNode = new ObjectTypeNode( 1,
new ClassObjectType( List.class ),
rete,
+ true,
3 );
objectTypeNode.attach();
final MockObjectSink sink1 = new MockObjectSink();
@@ -210,6 +216,7 @@
final ObjectTypeNode objectTypeNode = new ObjectTypeNode( 1,
new ClassObjectType( List.class ),
rete,
+ true,
3 );
objectTypeNode.attach();
final MockObjectSink sink1 = new MockObjectSink();
@@ -267,6 +274,7 @@
final ObjectTypeNode objectTypeNode = new ObjectTypeNode( 1,
new ClassObjectType( Cheese.class ),
rete,
+ true,
3 );
objectTypeNode.attach();
final MockObjectSink sink1 = new MockObjectSink();
@@ -305,6 +313,7 @@
final ObjectTypeNode objectTypeNode = new ObjectTypeNode( 1,
new ClassObjectType( Cheese.class ),
rete,
+ true,
3 );
objectTypeNode.attach();
final MockObjectSink sink1 = new MockObjectSink();
More information about the jboss-svn-commits
mailing list