[jboss-svn-commits] JBL Code SVN: r17126 - in labs/jbossrules/trunk/drools-analytics/src: main/java/org/drools/analytics/components and 6 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sun Dec 9 05:11:27 EST 2007
Author: Rikkola
Date: 2007-12-09 05:11:22 -0500 (Sun, 09 Dec 2007)
New Revision: 17126
Added:
labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Consequence.drl
labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/redundancy/RedundantConsequencesTest.java
labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/redundancy/RedundantRulesAndPatternsTest.java
labs/jbossrules/trunk/drools-analytics/src/test/resources/org/drools/analytics/redundancy/ConsequenceRedundancyTest.drl
Removed:
labs/jbossrules/trunk/drools-analytics/src/test/resources/org/drools/analytics/RuleRedundancyTest.drl
Modified:
labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/Analyzer.java
labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/RuleLoader.java
labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/components/Consequence.java
labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/components/TextConsequence.java
labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/report/components/Cause.java
labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Notes.drl
labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Patterns.drl
labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Possibilities.drl
labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Restrictions.drl
labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Rules.drl
labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/AnalyticsTestStandalone.java
labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/redundancy/RedundantRestrictionsTest.java
labs/jbossrules/trunk/drools-analytics/src/test/resources/org/drools/analytics/Misc.drl
labs/jbossrules/trunk/drools-analytics/src/test/resources/org/drools/analytics/Misc3.drl
Log:
More redundancy tests and bug fixes for the old ones.
Modified: labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/Analyzer.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/Analyzer.java 2007-12-09 06:23:26 UTC (rev 17125)
+++ labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/Analyzer.java 2007-12-09 10:11:22 UTC (rev 17126)
@@ -5,9 +5,10 @@
import org.drools.RuleBase;
import org.drools.RuleBaseFactory;
import org.drools.WorkingMemory;
-import org.drools.analytics.dao.AnalyticsResult;
+import org.drools.analytics.components.Pattern;
import org.drools.analytics.dao.AnalyticsData;
import org.drools.analytics.dao.AnalyticsDataFactory;
+import org.drools.analytics.dao.AnalyticsResult;
import org.drools.analytics.report.ReportModeller;
import org.drools.analytics.report.html.ComponentsReportModeller;
import org.drools.lang.descr.PackageDescr;
@@ -44,7 +45,9 @@
WorkingMemory workingMemory = ruleBase.newStatefulSession();
- for (Object o : data.getAll()) {
+ Collection<? extends Object> c = data.getAll();
+
+ for (Object o : c) {
workingMemory.insert(o);
}
Modified: labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/RuleLoader.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/RuleLoader.java 2007-12-09 06:23:26 UTC (rev 17125)
+++ labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/RuleLoader.java 2007-12-09 10:11:22 UTC (rev 17126)
@@ -12,15 +12,44 @@
class RuleLoader {
public static Collection<Package> loadPackages() {
- Collection<Package> packages = new ArrayList<Package>();
- Collection<InputStreamReader> readers = readInputStreamReaders();
+ String[] fileNames = new String[] {
+ // Incoherence
+ "incoherence/Patterns.drl",
+ "incoherence/Restrictions.drl",
+ // Missing equality
+ "missingEquality/MissingEquality.drl",
+ // Optimization
+ "optimisation/RestrictionOrder.drl",
+ "optimisation/PatternOrder.drl",
+ // Range checks
+ "rangeChecks/Dates.drl", "rangeChecks/Doubles.drl",
+ "rangeChecks/Integers.drl",
+ "rangeChecks/Patterns.drl",
+ "rangeChecks/Variables.drl",
+ "rangeChecks/Clean.drl",
+ // Redundancy
+ "redundancy/Restrictions.drl", "redundancy/Notes.drl",
+ "redundancy/Consequence.drl", "redundancy/Patterns.drl",
+ "redundancy/Possibilities.drl", "redundancy/Rules.drl",
+ "reports/RangeCheckReports.drl",
+ // Missing consequence
+ "Consequence.drl", };
- for (InputStreamReader reader : readers) {
+ Collection<Package> packages = new ArrayList<Package>();
+
+ for (int i = 0; i < fileNames.length; i++) {
try {
+ InputStreamReader reader = new InputStreamReader(
+ RuleLoader.class.getResourceAsStream(fileNames[i]));
packages.add(loadPackage(reader));
+ reader.close();
} catch (DroolsParserException e) {
e.printStackTrace();
+ } catch (NullPointerException e) {
+ System.err.println("Error when opening file " + fileNames[i]
+ + ".");
+ e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
@@ -38,44 +67,4 @@
return builder.getPackage();
}
-
- private static Collection<InputStreamReader> readInputStreamReaders() {
- Collection<InputStreamReader> list = new ArrayList<InputStreamReader>();
-
- list.add(new InputStreamReader(RuleLoader.class
- .getResourceAsStream("rangeChecks/Dates.drl")));
- list.add(new InputStreamReader(RuleLoader.class
- .getResourceAsStream("rangeChecks/Doubles.drl")));
- list.add(new InputStreamReader(RuleLoader.class
- .getResourceAsStream("rangeChecks/Integers.drl")));
- list.add(new InputStreamReader(RuleLoader.class
- .getResourceAsStream("rangeChecks/Patterns.drl")));
- list.add(new InputStreamReader(RuleLoader.class
- .getResourceAsStream("rangeChecks/Variables.drl")));
- list.add(new InputStreamReader(RuleLoader.class
- .getResourceAsStream("rangeChecks/Clean.drl")));
-
- list.add(new InputStreamReader(RuleLoader.class
- .getResourceAsStream("Consequence.drl")));
- list.add(new InputStreamReader(RuleLoader.class
- .getResourceAsStream("optimisation/RestrictionOrder.drl")));
- list.add(new InputStreamReader(RuleLoader.class
- .getResourceAsStream("optimisation/PatternOrder.drl")));
-
- // list.add(new InputStreamReader(RuleLoader.class
- // .getResourceAsStream("redundancy/Possibilities.drl")));
- //
- // list.add(new InputStreamReader(RuleLoader.class
- // .getResourceAsStream("redundancy/Patterns.drl")));
- list.add(new InputStreamReader(RuleLoader.class
- .getResourceAsStream("redundancy/Restrictions.drl")));
- list.add(new InputStreamReader(RuleLoader.class
- .getResourceAsStream("redundancy/Notes.drl")));
- // list.add(new InputStreamReader(RuleLoader.class
- // .getResourceAsStream("redundancy/Rules.drl")));
- list.add(new InputStreamReader(RuleLoader.class
- .getResourceAsStream("reports/RangeCheckReports.drl")));
-
- return list;
- }
}
Modified: labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/components/Consequence.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/components/Consequence.java 2007-12-09 06:23:26 UTC (rev 17125)
+++ labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/components/Consequence.java 2007-12-09 10:11:22 UTC (rev 17126)
@@ -1,7 +1,10 @@
package org.drools.analytics.components;
-public interface Consequence {
+import org.drools.analytics.report.components.Cause;
+
+public interface Consequence extends Cause{
+
public static enum ConsequenceType {
TEXT
}
@@ -9,9 +12,9 @@
public int getId();
public ConsequenceType getConsequenceType();
-
+
public int getRuleId();
public String getRuleName();
-
+
}
Modified: labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/components/TextConsequence.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/components/TextConsequence.java 2007-12-09 06:23:26 UTC (rev 17125)
+++ labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/components/TextConsequence.java 2007-12-09 10:11:22 UTC (rev 17126)
@@ -18,6 +18,10 @@
return AnalyticsComponentType.CONSEQUENCE;
}
+ public CauseType getCauseType() {
+ return CauseType.CONSEQUENCE;
+ }
+
public void setText(String text) {
this.text = text;
}
Modified: labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/report/components/Cause.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/report/components/Cause.java 2007-12-09 06:23:26 UTC (rev 17125)
+++ labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/report/components/Cause.java 2007-12-09 10:11:22 UTC (rev 17126)
@@ -17,7 +17,8 @@
REDUNDANCY,
EVAL,
PREDICATE,
- CONSTRAINT
+ CONSTRAINT,
+ CONSEQUENCE
}
public int getId();
Added: labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Consequence.drl
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Consequence.drl (rev 0)
+++ labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Consequence.drl 2007-12-09 10:11:22 UTC (rev 17126)
@@ -0,0 +1,32 @@
+#created on: 29.11.2007
+package org.drools.analytics.redundancy.consequences
+
+#list any import classes here.
+import org.drools.analytics.components.TextConsequence;
+import org.drools.analytics.report.components.Redundancy;
+
+#declare any global variables here
+
+
+
+rule "Find redundant TextConsequences"
+ when
+ # Check that AnalyticsRule $left and $right have redundant fields.
+ $left :TextConsequence()
+ $right :TextConsequence(
+ id != $left.id,
+ text == $left.text
+ )
+
+ # Check that there is not already a pair with these values.
+ not Redundancy(
+ left == $left,
+ right == $right
+ )
+ not Redundancy(
+ left == $right,
+ right == $left
+ )
+ then
+ insert( new Redundancy( Redundancy.RedundancyType.STRONG, $left, $right ) );
+end
Modified: labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Notes.drl
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Notes.drl 2007-12-09 06:23:26 UTC (rev 17125)
+++ labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Notes.drl 2007-12-09 10:11:22 UTC (rev 17126)
@@ -27,7 +27,7 @@
left.causeType == Cause.CauseType.RESTRICTION
)
- PatternPossibility(
+ $pp :PatternPossibility(
items contains $r.left,
items contains $r.right
)
Modified: labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Patterns.drl
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Patterns.drl 2007-12-09 06:23:26 UTC (rev 17125)
+++ labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Patterns.drl 2007-12-09 10:11:22 UTC (rev 17126)
@@ -76,42 +76,3 @@
then
insert( new Redundancy( Redundancy.RedundancyType.STRONG, $left, $right ) );
end
-
-
-/*
-#
-# When two patterns and all theyr possibilities are redundant.
-#
-rule "Find subsumption between patterns"
- when
- # $p1 :Pattern()
- # $p2 :Pattern( id != $p1.id )
-
- $patternRedundancy :Redundancy(
- type == Redundancy.RedundancyType.WEAK,
- causeType == Cause.CauseType.PATTERN
- )
-
- $set1 :HashSet()
- from collect(
- PartialRedundancy( patternId == $p1.id )
- )
-
- # Check that sizes are the same.
- eval( $set1.size() == $set2.size() )
-
- $redundancyList :ArrayList()
- from collect(
- Redundancy(
- eval( $set1.contains( left ) ),
- eval( $set2.contains( right ) )
- )
- )
-
- eval( $set1.size() == $redundancyList.size() )
-
- then
- # Type is set to strong because all the pattern possibilities are redundant.
- insert( new Redundancy( Redundancy.Type.STRONG, $p1, $p2 ) );
-end
-*/
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Possibilities.drl
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Possibilities.drl 2007-12-09 06:23:26 UTC (rev 17125)
+++ labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Possibilities.drl 2007-12-09 10:11:22 UTC (rev 17126)
@@ -26,11 +26,11 @@
# Find two PatternPossibilities.
$pp1 :PatternPossibility(
- eval( id == $ppr.getLeft().getId() )
+ eval( patternId == $ppr.getLeft().getId() )
)
$pp2 :PatternPossibility(
- eval( id == $ppr.getRight().getId() )
+ eval( patternId == $ppr.getRight().getId() )
)
# For every restriction in $pp1 there is a redundancy to $pp2.
@@ -91,11 +91,11 @@
# Find two RulePossibilities.
$rp1 :RulePossibility(
- eval( id == $redundancy.getLeft().getId() )
+ eval( ruleId == $redundancy.getLeft().getId() )
)
$rp2 :RulePossibility(
- eval( id == $redundancy.getRight().getId() )
+ eval( ruleId == $redundancy.getRight().getId() )
)
# For every pattern possibility in $pp1 there is a pattern possibility in $pp2.
Modified: labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Restrictions.drl
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Restrictions.drl 2007-12-09 06:23:26 UTC (rev 17125)
+++ labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Restrictions.drl 2007-12-09 10:11:22 UTC (rev 17126)
@@ -42,7 +42,8 @@
booleanValue == $left.booleanValue
)
or
- $right :LiteralRestriction( id != $left.id,
+ $right :LiteralRestriction(
+ id != $left.id,
operator == $left.operator,
valueType == $left.valueType,
valueType == Field.FieldType.STRING,
@@ -106,66 +107,3 @@
then
insert( new Redundancy( Redundancy.RedundancyType.STRONG, $left, $right ) );
end
-
-# TODO: And from and every object.
-//TODO: Also check that patterns and rules are redundant.
-/*
-rule "Find redundant ReturnValueRestriction"
- when
- # Check that Restrictions $left and $right have redundant fields.
- $left :ReturnValueRestriction()
- $right :ReturnValueRestriction(
- id != $left.id,
- operator == $left.operator,
- classMethodName matches $left.classMethodName,
- compareStringArrays( declarations, $left.declarations )
- )
-
- # Check that PatternPossibilities $pp1 and $pp2 have redundant fields
- # and that they contain $left and $right.
- $pp1 :PatternPossibility( restriction contains $left )
- $pp2 :PatternPossibility(
- id != $pp1.id,
- restriction contains $right,
- exist == $pp1.exist,
- notExist == $pp1.notExist,
- eval( restrictions.size() == $pp1.getRestrictions().size() )
- )
- # Check that there is not allready a pair with these values.
- not RedundantPair( left == $left, right == $right )
- then
- insert( new RedundantPair( $pp1, $pp2, $left, $right ) );
-end
-*/
-/*
-XXX: Not sure if this can be done.
-rule "Find redundant QualifiedIdentifierRestriction"
- when
- # Check that Restrictions $left and $right have redundant fields.
- $left :QualifiedIdentifierRestriction()
- $right :QualifiedIdentifierRestriction(
- id != $left.id,
- operator == $left.operator
- )
-
- # Check that these two variables point to the same object.
- $v :Variable( id == $left.variableId )
- Variable(
- id == $right.variableId,
- objectType == $v.objectType,
- objectId == $v.objectId
- )
-
- # Check that there is not already a pair with these values.
- not Redundancy(
- left == $left,
- right == $right
- )
- not Redundancy(
- left == $right,
- right == $left
- )
- then
- insert( new Redundancy( $left, $right ) );
-end
-*/
Modified: labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Rules.drl
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Rules.drl 2007-12-09 06:23:26 UTC (rev 17125)
+++ labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Rules.drl 2007-12-09 10:11:22 UTC (rev 17126)
@@ -1,68 +1,37 @@
#created on: 7.9.2007
package org.drools.analytics.redundancy.rules
-import org.drools.analytics.components.*;
+import org.drools.analytics.components.AnalyticsRule;
import org.drools.analytics.report.components.Redundancy;
#
# Only checks for redundant rule specifications,
# does not include actual pattern and restriction checks.
#
-rule "Find redundant Rule shells"
+rule "Find redundant Rules, weak redundancy"
when
# Check that AnalyticsRule $left and $right have redundant fields.
$left :AnalyticsRule()
$right :AnalyticsRule(
id != $left.id,
- ruleSalience == $left.ruleSalience,
- ruleAgendaGroup == $left.ruleAgendaGroup,
- consequence == $left.consequence # TODO: Check for redundancy when MVEL is solved.
+ ruleAgendaGroup == $left.ruleAgendaGroup
)
+ exists Redundancy(
+ left == $left.consequence,
+ right == $right.consequence
+ )
+
# Check that there is not already a pair with these values.
not Redundancy(
left == $left,
right == $right
)
+ not Redundancy(
+ left == $right,
+ right == $left
+ )
then
insert( new Redundancy( Redundancy.RedundancyType.WEAK, $left, $right ) );
end
-/*
-#
-# When two rules and all theyr possibilities are redundant.
-#
-rule "Find redundant rule"
- when
- $r1 :AnalyticsRule()
- $r2 :AnalyticsRule( id != $r1.id )
-
- # If all the patterns in rule 1 are strongly redundant to rule 2, and vice versa.
- # Then the redundancy is strong.
- $set1 :HashSet()
- from collect(
- Pattern( ruleId == $r1.id )
- )
-
- $set2 :HashSet()
- from collect(
- Pattern( ruleId == $r2.id )
- )
-
- # Find only strong pattern
- $redundancyList :ArrayList()
- from collect(
- Redundancy(
- type == Redundancy.Type.STRONG,
- eval( $set1.contains( left ) ),
- eval( $set2.contains( right ) )
- )
- )
-
- eval( $set1.size() == $redundancyList.size() )
-
- then
- # Type is set to strong because all the rule possibilities are redundant.
- insert( new Redundancy( Redundancy.Type.STRONG, $r1, $r2 ) );
-end
-*/
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/AnalyticsTestStandalone.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/AnalyticsTestStandalone.java 2007-12-09 06:23:26 UTC (rev 17125)
+++ labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/AnalyticsTestStandalone.java 2007-12-09 10:11:22 UTC (rev 17126)
@@ -3,6 +3,8 @@
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.InputStreamReader;
+import java.util.ArrayList;
+import java.util.Collection;
import org.drools.compiler.DrlParser;
import org.drools.lang.descr.PackageDescr;
@@ -14,48 +16,30 @@
public static final void main(String[] args) {
try {
- PackageDescr descr = new DrlParser().parse(new InputStreamReader(
- Analyzer.class
- .getResourceAsStream("MissingRangesForDates.drl")));
- PackageDescr descr2 = new DrlParser()
- .parse(new InputStreamReader(Analyzer.class
- .getResourceAsStream("MissingRangesForDoubles.drl")));
- PackageDescr descr3 = new DrlParser().parse(new InputStreamReader(
- Analyzer.class
- .getResourceAsStream("MissingRangesForInts.drl")));
- PackageDescr descr4 = new DrlParser()
- .parse(new InputStreamReader(
- Analyzer.class
- .getResourceAsStream("MissingRangesForVariables.drl")));
- PackageDescr descr5 = new DrlParser().parse(new InputStreamReader(
- Analyzer.class.getResourceAsStream("Misc.drl")));
- PackageDescr descr6 = new DrlParser().parse(new InputStreamReader(
- Analyzer.class.getResourceAsStream("Misc2.drl")));
- PackageDescr descr7 = new DrlParser().parse(new InputStreamReader(
- Analyzer.class.getResourceAsStream("Misc3.drl")));
- PackageDescr descr8 = new DrlParser().parse(new InputStreamReader(
- Analyzer.class.getResourceAsStream("ConsequenceTest.drl")));
- PackageDescr descr9 = new DrlParser()
- .parse(new InputStreamReader(
- Analyzer.class
- .getResourceAsStream("optimisation/OptimisationRestrictionOrderTest.drl")));
- PackageDescr descr10 = new DrlParser()
- .parse(new InputStreamReader(
- Analyzer.class
- .getResourceAsStream("optimisation/OptimisationPatternOrderTest.drl")));
+ Collection<String> fileNames = new ArrayList<String>();
+
+ // Test data
+// fileNames.add("MissingRangesForDates.drl");
+// fileNames.add("MissingRangesForDoubles.drl");
+// fileNames.add("MissingRangesForInts.drl");
+// fileNames.add("MissingRangesForVariables.drl");
+// fileNames.add("Misc.drl");
+// fileNames.add("Misc2.drl");
+ fileNames.add("Misc3.drl");
+// fileNames.add("ConsequenceTest.drl");
+// fileNames.add("optimisation/OptimisationRestrictionOrderTest.drl");
+// fileNames.add("optimisation/OptimisationPatternOrderTest.drl");
+
+ DrlParser parser = new DrlParser();
Analyzer a = new Analyzer();
- // a.addPackageDescr(descr);
- // a.addPackageDescr(descr2);
- // a.addPackageDescr(descr3);
- // a.addPackageDescr(descr4);
- a.addPackageDescr(descr5);
- a.addPackageDescr(descr6);
- a.addPackageDescr(descr7);
- a.addPackageDescr(descr8);
- a.addPackageDescr(descr9);
- a.addPackageDescr(descr10);
-
+
+ for (String s : fileNames) {
+ PackageDescr descr = parser.parse(new InputStreamReader(
+ Analyzer.class.getResourceAsStream(s)));
+ a.addPackageDescr(descr);
+ }
+
a.fireAnalysis();
// System.out.print(a.getResultAsPlainText());
// System.out.print(a.getResultAsXML());
Added: labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/redundancy/RedundantConsequencesTest.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/redundancy/RedundantConsequencesTest.java (rev 0)
+++ labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/redundancy/RedundantConsequencesTest.java 2007-12-09 10:11:22 UTC (rev 17126)
@@ -0,0 +1,56 @@
+package org.drools.analytics.redundancy;
+
+import java.util.Collection;
+import java.util.Map;
+import java.util.Set;
+
+import org.drools.StatelessSession;
+import org.drools.StatelessSessionResult;
+import org.drools.analytics.TestBase;
+import org.drools.analytics.dao.AnalyticsDataFactory;
+import org.drools.analytics.dao.AnalyticsResult;
+import org.drools.base.RuleNameMatchesAgendaFilter;
+
+public class RedundantConsequencesTest extends RedundancyTestBase {
+
+ public void testRedundantTextConsequences() throws Exception {
+ StatelessSession session = getStatelessSession(this.getClass()
+ .getResourceAsStream("Consequence.drl"));
+
+ session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
+ "Find redundant TextConsequences"));
+
+ AnalyticsDataFactory.clearAnalyticsData();
+ Collection<? extends Object> data = getTestData(this.getClass()
+ .getResourceAsStream("ConsequenceRedundancyTest.drl"));
+
+ AnalyticsDataFactory.clearAnalyticsResult();
+ AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
+ session.setGlobal("result", result);
+
+ StatelessSessionResult sessionResult = session.executeWithResults(data);
+
+ Map<String, Set<String>> map = createRedundancyMap(sessionResult
+ .iterateObjects());
+
+ assertTrue(TestBase.mapContains(map, "Redundant consiquence 1a",
+ "Redundant consiquence 1b")
+ ^ TestBase.mapContains(map, "Redundant consiquence 1b",
+ "Redundant consiquence 1a"));
+
+ assertTrue(TestBase.mapContains(map, "Redundant consiquence 2a",
+ "Redundant consiquence 2b")
+ ^ TestBase.mapContains(map, "Redundant consiquence 2b",
+ "Redundant consiquence 2a"));
+
+ assertTrue(TestBase.mapContains(map, "Redundant consiquence 3a",
+ "Redundant consiquence 3b")
+ ^ TestBase.mapContains(map, "Redundant consiquence 3b",
+ "Redundant consiquence 3a"));
+
+ if (!map.isEmpty()) {
+ fail("More redundancies than was expected.");
+ }
+ }
+
+}
Modified: labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/redundancy/RedundantRestrictionsTest.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/redundancy/RedundantRestrictionsTest.java 2007-12-09 06:23:26 UTC (rev 17125)
+++ labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/redundancy/RedundantRestrictionsTest.java 2007-12-09 10:11:22 UTC (rev 17126)
@@ -1,207 +1,18 @@
package org.drools.analytics.redundancy;
-import java.util.ArrayList;
import java.util.Collection;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import org.drools.StatelessSession;
import org.drools.StatelessSessionResult;
import org.drools.analytics.TestBase;
-import org.drools.analytics.components.AnalyticsComponent;
-import org.drools.analytics.components.AnalyticsRule;
-import org.drools.analytics.components.PatternPossibility;
-import org.drools.analytics.components.RulePossibility;
import org.drools.analytics.dao.AnalyticsDataFactory;
import org.drools.analytics.dao.AnalyticsResult;
-import org.drools.analytics.report.components.PartialRedundancy;
-import org.drools.analytics.report.components.Redundancy;
import org.drools.base.RuleNameMatchesAgendaFilter;
public class RedundantRestrictionsTest extends RedundancyTestBase {
- public void fixmetestPartOfRulePossibilityRedundancy() throws Exception {
- StatelessSession session = getStatelessSession(this.getClass()
- .getResourceAsStream("Possibilities.drl"));
-
- session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
- "Find part of redundant RulePossibility combination"));
-
- Collection<Object> data = new ArrayList<Object>();
-
- AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
- session.setGlobal("result", result);
-
- String ruleName1 = "Rule 1";
- String ruleName2 = "Rule 2";
-
- AnalyticsRule r1 = new AnalyticsRule();
- r1.setRuleName(ruleName1);
- AnalyticsRule r2 = new AnalyticsRule();
- r2.setRuleName(ruleName2);
-
- PatternPossibility pp1 = new PatternPossibility();
- pp1.setRuleName(ruleName1);
- PatternPossibility pp2 = new PatternPossibility();
- pp2.setRuleName(ruleName2);
-
- RulePossibility rp1 = new RulePossibility();
- rp1.setRuleId(r1.getId());
- rp1.setRuleName(ruleName1);
- rp1.add(pp1);
-
- RulePossibility rp2 = new RulePossibility();
- rp2.setRuleId(r2.getId());
- rp2.setRuleName(ruleName2);
- rp2.add(pp2);
-
- Redundancy redundancy1 = new Redundancy(pp1, pp2);
- Redundancy redundancy2 = new Redundancy(r1, r2);
-
- data.add(r1);
- data.add(r2);
- data.add(rp1);
- data.add(rp2);
- data.add(pp1);
- data.add(pp2);
- data.add(redundancy1);
- data.add(redundancy2);
-
- StatelessSessionResult sessionResult = session.executeWithResults(data);
-
- Map<String, Set<Redundancy>> map = new HashMap<String, Set<Redundancy>>();
-
- Iterator<Object> iter = sessionResult.iterateObjects();
- while (iter.hasNext()) {
- Object o = (Object) iter.next();
- if (o instanceof PartialRedundancy) {
- PartialRedundancy pr = (PartialRedundancy) o;
- AnalyticsComponent left = (AnalyticsComponent) pr.getLeft();
- AnalyticsComponent right = (AnalyticsComponent) pr.getRight();
-
- String key = left.getRuleName() + ":" + right.getRuleName();
- if (map.containsKey(key)) {
- Set<Redundancy> set = map.get(key);
- set.add(pr.getRedundancy());
- } else {
- Set<Redundancy> set = new HashSet<Redundancy>();
- set.add(pr.getRedundancy());
- map.put(key, set);
- }
- }
- }
-
- assertTrue(RedundancyTestBase.mapContains(map, ruleName1 + ":"
- + ruleName2, redundancy1));
-
- if (!map.isEmpty()) {
- fail("More redundancies than was expected.");
- }
- }
-
- public void testPatternRedundancyWithRestrictions() throws Exception {
- StatelessSession session = getStatelessSession(this.getClass()
- .getResourceAsStream("Patterns.drl"));
-
- session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
- "Find redundant Patterns with restrictions"));
-
- AnalyticsDataFactory.clearAnalyticsData();
- Collection<? extends Object> data = getTestData(this.getClass()
- .getResourceAsStream("PatternRedundancyTest.drl"));
-
- AnalyticsDataFactory.clearAnalyticsResult();
- AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
- session.setGlobal("result", result);
-
- StatelessSessionResult sessionResult = session.executeWithResults(data);
-
- Map<String, Set<String>> map = createRedundancyMap(sessionResult
- .iterateObjects());
-
- assertTrue(TestBase.mapContains(map,
- "Pattern redundancy with restrictions 1a",
- "Pattern redundancy with restrictions 1b")
- ^ TestBase.mapContains(map,
- "Pattern redundancy with restrictions 1b",
- "Pattern redundancy with restrictions 1a"));
- assertTrue(TestBase.mapContains(map,
- "Pattern redundancy with restrictions 2a",
- "Pattern redundancy with restrictions 2b")
- ^ TestBase.mapContains(map,
- "Pattern redundancy with restrictions 2b",
- "Pattern redundancy with restrictions 2a"));
- assertTrue(TestBase.mapContains(map,
- "Pattern redundancy with restrictions 3a",
- "Pattern redundancy with restrictions 3b")
- ^ TestBase.mapContains(map,
- "Pattern redundancy with restrictions 3b",
- "Pattern redundancy with restrictions 3a"));
- assertTrue(TestBase.mapContains(map,
- "Pattern redundancy with restrictions 4a",
- "Pattern redundancy with restrictions 4b")
- ^ TestBase.mapContains(map,
- "Pattern redundancy with restrictions 4b",
- "Pattern redundancy with restrictions 4a"));
-
- if (!map.isEmpty()) {
- fail("More redundancies than was expected.");
- }
- }
-
- public void testPatternRedundancyWithoutRestrictions() throws Exception {
- StatelessSession session = getStatelessSession(this.getClass()
- .getResourceAsStream("Patterns.drl"));
-
- session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
- "Find redundant Patterns without restrictions"));
-
- AnalyticsDataFactory.clearAnalyticsData();
- Collection<? extends Object> data = getTestData(this.getClass()
- .getResourceAsStream("PatternRedundancyTest.drl"));
-
- AnalyticsDataFactory.clearAnalyticsResult();
- AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
- session.setGlobal("result", result);
-
- StatelessSessionResult sessionResult = session.executeWithResults(data);
-
- Map<String, Set<String>> map = createRedundancyMap(sessionResult
- .iterateObjects());
-
- assertTrue(TestBase.mapContains(map,
- "Pattern redundancy without restrictions 1a",
- "Pattern redundancy without restrictions 1b")
- ^ TestBase.mapContains(map,
- "Pattern redundancy without restrictions 1b",
- "Pattern redundancy without restrictions 1a"));
- assertTrue(TestBase.mapContains(map,
- "Pattern redundancy without restrictions 2a",
- "Pattern redundancy without restrictions 2b")
- ^ TestBase.mapContains(map,
- "Pattern redundancy without restrictions 2b",
- "Pattern redundancy without restrictions 2a"));
- assertTrue(TestBase.mapContains(map,
- "Pattern redundancy without restrictions 3a",
- "Pattern redundancy without restrictions 3b")
- ^ TestBase.mapContains(map,
- "Pattern redundancy without restrictions 3b",
- "Pattern redundancy without restrictions 3a"));
- assertTrue(TestBase.mapContains(map,
- "Pattern redundancy without restrictions 4a",
- "Pattern redundancy without restrictions 4b")
- ^ TestBase.mapContains(map,
- "Pattern redundancy without restrictions 4b",
- "Pattern redundancy without restrictions 4a"));
-
- if (!map.isEmpty()) {
- fail("More redundancies than was expected.");
- }
- }
-
public void testAnalyticsLiteralRestrictionRedundancy() throws Exception {
StatelessSession session = getStatelessSession(this.getClass()
.getResourceAsStream("Restrictions.drl"));
Added: labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/redundancy/RedundantRulesAndPatternsTest.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/redundancy/RedundantRulesAndPatternsTest.java (rev 0)
+++ labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/redundancy/RedundantRulesAndPatternsTest.java 2007-12-09 10:11:22 UTC (rev 17126)
@@ -0,0 +1,170 @@
+package org.drools.analytics.redundancy;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Map;
+import java.util.Set;
+
+import org.drools.StatelessSession;
+import org.drools.StatelessSessionResult;
+import org.drools.analytics.TestBase;
+import org.drools.analytics.components.AnalyticsRule;
+import org.drools.analytics.components.TextConsequence;
+import org.drools.analytics.dao.AnalyticsDataFactory;
+import org.drools.analytics.dao.AnalyticsResult;
+import org.drools.analytics.report.components.Redundancy;
+import org.drools.base.RuleNameMatchesAgendaFilter;
+
+public class RedundantRulesAndPatternsTest extends RedundancyTestBase {
+
+ public void testRuleRedundancy() throws Exception {
+ StatelessSession session = getStatelessSession(this.getClass()
+ .getResourceAsStream("Rules.drl"));
+
+ session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
+ "Find redundant Rules, weak redundancy"));
+
+ AnalyticsDataFactory.clearAnalyticsData();
+ Collection<Object> data = new ArrayList<Object>();
+
+ String ruleName1 = "Rule 1";
+ String ruleName2 = "Rule 2";
+
+ AnalyticsRule rule1 = new AnalyticsRule();
+ rule1.setRuleName(ruleName1);
+ AnalyticsRule rule2 = new AnalyticsRule();
+ rule2.setRuleName(ruleName2);
+
+ TextConsequence c1 = new TextConsequence();
+ c1.setRuleName(ruleName1);
+ TextConsequence c2 = new TextConsequence();
+ c2.setRuleName(ruleName2);
+
+ Redundancy r1 = new Redundancy(rule1, rule2);
+ Redundancy r2 = new Redundancy(c1, c2);
+
+ data.add(rule1);
+ data.add(rule2);
+ data.add(c1);
+ data.add(c2);
+ data.add(r1);
+ data.add(r2);
+
+ AnalyticsDataFactory.clearAnalyticsResult();
+ AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
+ session.setGlobal("result", result);
+
+ StatelessSessionResult sessionResult = session.executeWithResults(data);
+
+ Map<String, Set<String>> map = createRedundancyMap(sessionResult
+ .iterateObjects());
+
+ assertTrue(TestBase.mapContains(map, ruleName1, ruleName2)
+ ^ TestBase.mapContains(map, ruleName2, ruleName1));
+
+ if (!map.isEmpty()) {
+ fail("More redundancies than was expected.");
+ }
+ }
+
+ public void testPatternRedundancyWithRestrictions() throws Exception {
+ StatelessSession session = getStatelessSession(this.getClass()
+ .getResourceAsStream("Patterns.drl"));
+
+ session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
+ "Find redundant Patterns with restrictions"));
+
+ AnalyticsDataFactory.clearAnalyticsData();
+ Collection<? extends Object> data = getTestData(this.getClass()
+ .getResourceAsStream("PatternRedundancyTest.drl"));
+
+ AnalyticsDataFactory.clearAnalyticsResult();
+ AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
+ session.setGlobal("result", result);
+
+ StatelessSessionResult sessionResult = session.executeWithResults(data);
+
+ Map<String, Set<String>> map = createRedundancyMap(sessionResult
+ .iterateObjects());
+
+ assertTrue(TestBase.mapContains(map,
+ "Pattern redundancy with restrictions 1a",
+ "Pattern redundancy with restrictions 1b")
+ ^ TestBase.mapContains(map,
+ "Pattern redundancy with restrictions 1b",
+ "Pattern redundancy with restrictions 1a"));
+ assertTrue(TestBase.mapContains(map,
+ "Pattern redundancy with restrictions 2a",
+ "Pattern redundancy with restrictions 2b")
+ ^ TestBase.mapContains(map,
+ "Pattern redundancy with restrictions 2b",
+ "Pattern redundancy with restrictions 2a"));
+ assertTrue(TestBase.mapContains(map,
+ "Pattern redundancy with restrictions 3a",
+ "Pattern redundancy with restrictions 3b")
+ ^ TestBase.mapContains(map,
+ "Pattern redundancy with restrictions 3b",
+ "Pattern redundancy with restrictions 3a"));
+ assertTrue(TestBase.mapContains(map,
+ "Pattern redundancy with restrictions 4a",
+ "Pattern redundancy with restrictions 4b")
+ ^ TestBase.mapContains(map,
+ "Pattern redundancy with restrictions 4b",
+ "Pattern redundancy with restrictions 4a"));
+
+ if (!map.isEmpty()) {
+ fail("More redundancies than was expected.");
+ }
+ }
+
+ public void testPatternRedundancyWithoutRestrictions() throws Exception {
+ StatelessSession session = getStatelessSession(this.getClass()
+ .getResourceAsStream("Patterns.drl"));
+
+ session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
+ "Find redundant Patterns without restrictions"));
+
+ AnalyticsDataFactory.clearAnalyticsData();
+ Collection<? extends Object> data = getTestData(this.getClass()
+ .getResourceAsStream("PatternRedundancyTest.drl"));
+
+ AnalyticsDataFactory.clearAnalyticsResult();
+ AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
+ session.setGlobal("result", result);
+
+ StatelessSessionResult sessionResult = session.executeWithResults(data);
+
+ Map<String, Set<String>> map = createRedundancyMap(sessionResult
+ .iterateObjects());
+
+ assertTrue(TestBase.mapContains(map,
+ "Pattern redundancy without restrictions 1a",
+ "Pattern redundancy without restrictions 1b")
+ ^ TestBase.mapContains(map,
+ "Pattern redundancy without restrictions 1b",
+ "Pattern redundancy without restrictions 1a"));
+ assertTrue(TestBase.mapContains(map,
+ "Pattern redundancy without restrictions 2a",
+ "Pattern redundancy without restrictions 2b")
+ ^ TestBase.mapContains(map,
+ "Pattern redundancy without restrictions 2b",
+ "Pattern redundancy without restrictions 2a"));
+ assertTrue(TestBase.mapContains(map,
+ "Pattern redundancy without restrictions 3a",
+ "Pattern redundancy without restrictions 3b")
+ ^ TestBase.mapContains(map,
+ "Pattern redundancy without restrictions 3b",
+ "Pattern redundancy without restrictions 3a"));
+ assertTrue(TestBase.mapContains(map,
+ "Pattern redundancy without restrictions 4a",
+ "Pattern redundancy without restrictions 4b")
+ ^ TestBase.mapContains(map,
+ "Pattern redundancy without restrictions 4b",
+ "Pattern redundancy without restrictions 4a"));
+
+ if (!map.isEmpty()) {
+ fail("More redundancies than was expected.");
+ }
+ }
+
+}
Modified: labs/jbossrules/trunk/drools-analytics/src/test/resources/org/drools/analytics/Misc.drl
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/test/resources/org/drools/analytics/Misc.drl 2007-12-09 06:23:26 UTC (rev 17125)
+++ labs/jbossrules/trunk/drools-analytics/src/test/resources/org/drools/analytics/Misc.drl 2007-12-09 10:11:22 UTC (rev 17126)
@@ -2,6 +2,7 @@
import com.sample.DroolsTest.Message;
+
rule "nro 1."
when
Foo( bar > 10 )
@@ -75,4 +76,4 @@
NumbersInPattern( x == 60 )
then
System.out.println( "Test" );
-end
\ No newline at end of file
+end
Modified: labs/jbossrules/trunk/drools-analytics/src/test/resources/org/drools/analytics/Misc3.drl
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/test/resources/org/drools/analytics/Misc3.drl 2007-12-09 06:23:26 UTC (rev 17125)
+++ labs/jbossrules/trunk/drools-analytics/src/test/resources/org/drools/analytics/Misc3.drl 2007-12-09 10:11:22 UTC (rev 17126)
@@ -8,4 +8,20 @@
RedundancyPattern( a == 1, a == 1 )
then
// Something
-end
\ No newline at end of file
+end
+
+rule "Redundant rule 1, rules"
+ when
+ RedundancyPattern( a == 1 )
+ RedundancyPattern2( a == 1 )
+ then
+ System.println("TEST");
+end
+
+rule "Redundant rule 2, rules"
+ when
+ RedundancyPattern( a == 1 )
+ RedundancyPattern2( a == 1 )
+ then
+ System.println("TEST");
+end
Deleted: labs/jbossrules/trunk/drools-analytics/src/test/resources/org/drools/analytics/RuleRedundancyTest.drl
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/test/resources/org/drools/analytics/RuleRedundancyTest.drl 2007-12-09 06:23:26 UTC (rev 17125)
+++ labs/jbossrules/trunk/drools-analytics/src/test/resources/org/drools/analytics/RuleRedundancyTest.drl 2007-12-09 10:11:22 UTC (rev 17126)
@@ -1,67 +0,0 @@
-package com.sample
-
-import com.sample.DroolsTest.Message;
-
-rule "Rule redundancy 1a"
- when
- Foo1()
- then
- System.out.println( "Test" );
-end
-
-rule "Rule redundancy 1b"
- when
- Foo1()
- then
- System.out.println( "Test" );
-end
-
-rule "Rule redundancy 2a"
- salience 100
- when
- Foo2()
- then
- System.out.println( "Test" );
-end
-
-rule "Rule redundancy 2b"
- salience 100
- when
- Foo2()
- then
- System.out.println( "Test" );
-end
-
-rule "Rule redundancy 3a"
- agenda-group "group 1"
- when
- Foo3()
- then
- System.out.println( "Test" );
-end
-
-rule "Rule redundancy 3b"
- agenda-group "group 1"
- when
- Foo3()
- then
- System.out.println( "Test" );
-end
-
-rule "Rule redundancy 4a"
- salience 200
- agenda-group "group 2"
- when
- Foo4()
- then
- System.out.println( "Test" );
-end
-
-rule "Rule redundancy 4b"
- salience 200
- agenda-group "group 2"
- when
- Foo4()
- then
- System.out.println( "Test" );
-end
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-analytics/src/test/resources/org/drools/analytics/redundancy/ConsequenceRedundancyTest.drl
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/test/resources/org/drools/analytics/redundancy/ConsequenceRedundancyTest.drl (rev 0)
+++ labs/jbossrules/trunk/drools-analytics/src/test/resources/org/drools/analytics/redundancy/ConsequenceRedundancyTest.drl 2007-12-09 10:11:22 UTC (rev 17126)
@@ -0,0 +1,79 @@
+package com.sample
+
+import com.sample.DroolsTest.Message;
+
+rule "Redundant consiquence 1a"
+ when
+ $f :Foo1()
+ then
+ insert( new Test( Test.TestType.TESTING, $f, $f ) );
+end
+
+rule "Redundant consiquence 1b"
+ when
+ $f :Foo1()
+ then
+ insert( new Test( Test.TestType.TESTING, $f, $f ) );
+end
+
+rule "Redundant consiquence 2a"
+ when
+ $f :Foo1()
+ then
+ Collection c = new ArrayList();
+ c.add( "a" );
+ c.add( "b" );
+ c.add( "c" );
+ c.add( "d" );
+ c.add( "e" );
+ insert( new Test( c ) );
+end
+
+rule "Redundant consiquence 2b"
+ when
+ $f :Foo1()
+ then
+ Collection c = new ArrayList();
+ c.add( "a" );
+ c.add( "b" );
+ c.add( "c" );
+ c.add( "d" );
+ c.add( "e" );
+ insert( new Test( c ) );
+end
+
+rule "Redundant consiquence 3a"
+ when
+ $f :Foo1()
+ then
+ Collection c = new ArrayList();
+ c.add( "a" );
+ c.add( "b" );
+
+ c.add( "c" );
+
+ # comment
+
+ c.add( "d" );
+ c.add( "e" );
+ c.add( "f" );
+ insert( new Test( c ) );
+end
+
+rule "Redundant consiquence 3b"
+ when
+ $f :Foo1()
+ then
+ Collection c = new ArrayList();
+ c.add( "a" );
+ c.add( "b" );
+
+ # comment
+
+ c.add( "c" );
+
+ c.add( "d" );
+ c.add( "e" );
+ c.add( "f" );
+ insert( new Test( c ) );
+end
More information about the jboss-svn-commits
mailing list