[jboss-svn-commits] JBL Code SVN: r32093 - in labs/jbossrules/trunk/drools-verifier/src: main/java/org/drools/verifier/report/components and 4 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Mar 15 09:57:52 EDT 2010
Author: Rikkola
Date: 2010-03-15 09:57:51 -0400 (Mon, 15 Mar 2010)
New Revision: 32093
Modified:
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/data/VerifierComponent.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Equivalence.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Subsumption.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/VerifierMessage.java
labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/Consequence.drl
labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/redundancy/Notes.drl
labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/redundancy/Warnings.drl
labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/subsumption/SubRules.drl
labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/report/components/CauseTest.java
Log:
JBRULES-2451 : Better verifier message reporting
Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/data/VerifierComponent.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/data/VerifierComponent.java 2010-03-15 13:37:40 UTC (rev 32092)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/data/VerifierComponent.java 2010-03-15 13:57:51 UTC (rev 32093)
@@ -1,6 +1,7 @@
package org.drools.verifier.data;
import java.util.Collection;
+import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
@@ -47,6 +48,6 @@
}
public Collection<Cause> getCauses() {
- return null;
+ return Collections.emptyList();
}
}
Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Equivalence.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Equivalence.java 2010-03-15 13:37:40 UTC (rev 32092)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Equivalence.java 2010-03-15 13:57:51 UTC (rev 32093)
@@ -25,7 +25,9 @@
VerifierComponent second) {
items.add( first );
items.add( second );
- this.causes = Collections.emptyList();
+ this.causes = new ArrayList<Cause>();
+ causes.add( first );
+ causes.add( second );
}
public Equivalence(VerifierComponent first,
Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Subsumption.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Subsumption.java 2010-03-15 13:37:40 UTC (rev 32092)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Subsumption.java 2010-03-15 13:57:51 UTC (rev 32093)
@@ -2,8 +2,6 @@
import java.util.ArrayList;
import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
import org.drools.verifier.data.VerifierComponent;
@@ -32,7 +30,9 @@
VerifierComponent right) {
this.left = left;
this.right = right;
- this.causes = Collections.emptyList();
+ this.causes = new ArrayList<Cause>();
+ causes.add( left );
+ causes.add( right );
}
public Subsumption(VerifierComponent left,
Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/VerifierMessage.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/VerifierMessage.java 2010-03-15 13:37:40 UTC (rev 32092)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/VerifierMessage.java 2010-03-15 13:57:51 UTC (rev 32093)
@@ -73,22 +73,50 @@
str.append( id );
str.append( ":\n" );
+ if ( !getImpactedRules().isEmpty() ) {
+ str.append( "Impacted rules:\n" );
+ for ( String ruleName : getImpactedRules().values() ) {
+ str.append( " -" + ruleName + "\n" );
+ }
+ }
+
if ( faulty != null ) {
str.append( "faulty : " );
str.append( faulty );
- str.append( ", " );
+ str.append( "\n" );
}
str.append( message );
- str.append( " \n\tCauses are [ \n" );
+ str.append( " \n\tCause trace: \n" );
+ str.append( printCauses( 8,
+ causes ) );
+ return str.toString();
+ }
+
+ private StringBuffer printCauses(int spaces,
+ Collection<Cause> causes) {
+
+ StringBuffer buffer = new StringBuffer();
+
for ( Cause cause : causes ) {
- str.append( "\t\t" );
- str.append( cause );
- str.append( "\n" );
+ for ( int i = 0; i < spaces; i++ ) {
+ buffer.append( " " );
+ }
+ buffer.append( cause.toString() );
+ buffer.append( "\n" );
+
+ Collection<Cause> childCauses = cause.getCauses();
+ if ( childCauses == null ) {
+ System.out.println( cause );
+ }
+ if ( !childCauses.isEmpty() ) {
+ buffer.append( printCauses( spaces * 2,
+ childCauses ) );
+ }
}
- str.append( "\t]" );
- return str.toString();
+ return buffer;
}
+
}
Modified: labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/Consequence.drl
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/Consequence.drl 2010-03-15 13:37:40 UTC (rev 32092)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/Consequence.drl 2010-03-15 13:57:51 UTC (rev 32093)
@@ -31,6 +31,6 @@
impactedRules,
Severity.WARNING,
MessageType.MISSING_COMPONENT,
- $r,
+ null,
$r + " has no RHS." ) );
end
Modified: labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/redundancy/Notes.drl
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/redundancy/Notes.drl 2010-03-15 13:37:40 UTC (rev 32092)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/redundancy/Notes.drl 2010-03-15 13:57:51 UTC (rev 32093)
@@ -51,7 +51,7 @@
impactedRules,
Severity.NOTE,
MessageType.REDUNDANCY,
- $r,
+ null,
"Same restriction exists twice.",
causes ) );
end
@@ -82,7 +82,7 @@
impactedRules,
Severity.NOTE,
MessageType.REDUNDANCY,
- $r,
+ null,
"Two pattern possibilities with redundant restrictions exists twice in the same rule.",
causes ) );
end
Modified: labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/redundancy/Warnings.drl
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/redundancy/Warnings.drl 2010-03-15 13:37:40 UTC (rev 32092)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/redundancy/Warnings.drl 2010-03-15 13:57:51 UTC (rev 32093)
@@ -119,7 +119,7 @@
impactedRules,
Severity.WARNING,
MessageType.EQUIVALANCE,
- $left,
+ null,
"Rule is equivalent to rule " + $right.getRuleName() + ".",
equivalence ) );
end
@@ -186,7 +186,7 @@
impactedRules,
Severity.WARNING,
MessageType.REDUNDANCY,
- $left,
+ null,
"Rules " + $right.getRuleName() + " and.",
redundancy ) );
end
@@ -231,14 +231,13 @@
impactedRules.put( $right.getGuid(), $right.getRuleName());
Collection causes = new ArrayList();
- causes.add( $subsumption.getLeft() );
- causes.add( $subsumption.getRight() );
+ causes.add( $subsumption );
result.add(new VerifierMessage(
impactedRules,
Severity.WARNING,
MessageType.SUBSUMPTION,
- $subsumption,
+ null,
"Rules are subsumptant.",
causes ) );
end
Modified: labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/subsumption/SubRules.drl
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/subsumption/SubRules.drl 2010-03-15 13:37:40 UTC (rev 32092)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/subsumption/SubRules.drl 2010-03-15 13:57:51 UTC (rev 32093)
@@ -36,11 +36,21 @@
right memberOf $subRule2.items
)
)
-# not Subsumption(
-# left memberOf $subRule1.items,
-# right not memberOf $subRule2.items
-# )
+
+ $causes : ArrayList()
+ from collect(
+ Subsumption(
+ left memberOf $subRule1.items,
+ right memberOf $subRule2.items
+ )
+ )
then
- insert( new Subsumption( $subRule1, $subRule2 ) );
+ insert(
+ new Subsumption(
+ $subRule1,
+ $subRule2,
+ $causes
+ )
+ );
end
Modified: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/report/components/CauseTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/report/components/CauseTest.java 2010-03-15 13:37:40 UTC (rev 32092)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/report/components/CauseTest.java 2010-03-15 13:57:51 UTC (rev 32093)
@@ -55,21 +55,38 @@
VerifierMessage message = (VerifierMessage) redundancyWarnings.toArray()[0];
+ // System.out.println( message );
+
assertEquals( 2,
message.getImpactedRules().size() );
assertTrue( message.getImpactedRules().values().contains( "Your First Rule" ) );
assertTrue( message.getImpactedRules().values().contains( "Your Second Rule" ) );
- // TODO: Test causes
Cause[] causes = message.getCauses().toArray( new Cause[message.getCauses().size()] );
assertEquals( 1,
causes.length );
- causes = causes[0].getCauses().toArray( new Cause[message.getCauses().size()] );
+ causes = causes[0].getCauses().toArray( new Cause[causes[0].getCauses().size()] );
+
assertEquals( 2,
causes.length );
+ causes = causes[0].getCauses().toArray( new Cause[causes[0].getCauses().size()] );
+
+ assertEquals( 1,
+ causes.length );
+
+ causes = causes[0].getCauses().toArray( new Cause[causes[0].getCauses().size()] );
+
+ assertEquals( 1,
+ causes.length );
+
+ causes = causes[0].getCauses().toArray( new Cause[causes[0].getCauses().size()] );
+
+ assertEquals( 2,
+ causes.length );
+
assertEquals( 0,
result.getBySeverity( Severity.NOTE ).size() );
More information about the jboss-svn-commits
mailing list