[jboss-svn-commits] JBL Code SVN: r15141 - in labs/jbossrules/trunk/experimental/drools-analytics/src: main/java/org/drools/analytics/components and 5 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sat Sep 15 11:39:39 EDT 2007


Author: Rikkola
Date: 2007-09-15 11:39:39 -0400 (Sat, 15 Sep 2007)
New Revision: 15141

Added:
   labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/components/RulePackage.java
   labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/result/ComponentsReportVisitor.java
   labs/jbossrules/trunk/experimental/drools-analytics/src/main/resources/org/drools/analytics/result/field.htm
   labs/jbossrules/trunk/experimental/drools-analytics/src/main/resources/org/drools/analytics/result/header.htm
   labs/jbossrules/trunk/experimental/drools-analytics/src/main/resources/org/drools/analytics/result/objectType.htm
   labs/jbossrules/trunk/experimental/drools-analytics/src/main/resources/org/drools/analytics/result/objectTypes.htm
   labs/jbossrules/trunk/experimental/drools-analytics/src/main/resources/org/drools/analytics/result/packages.htm
   labs/jbossrules/trunk/experimental/drools-analytics/src/main/resources/org/drools/analytics/result/relationsDetails.css
   labs/jbossrules/trunk/experimental/drools-analytics/src/main/resources/org/drools/analytics/result/relationsList.css
   labs/jbossrules/trunk/experimental/drools-analytics/src/main/resources/org/drools/analytics/result/rule.htm
Modified:
   labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/Analyzer.java
   labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/PackageDescrFlattener.java
   labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/components/AnalyticsClass.java
   labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/components/AnalyticsComponentType.java
   labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/components/AnalyticsRule.java
   labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/components/Field.java
   labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/dao/AnalyticsData.java
   labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/dao/AnalyticsDataMaps.java
   labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/result/ComponentsReportModeller.java
   labs/jbossrules/trunk/experimental/drools-analytics/src/test/java/org/drools/analytics/AnalyticsTestStandalone.java
   labs/jbossrules/trunk/experimental/drools-analytics/src/test/resources/org/drools/analytics/Misc.drl
Log:
Improved relations html report. It now creates separate files to specified folder.

Modified: labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/Analyzer.java
===================================================================
--- labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/Analyzer.java	2007-09-15 05:20:11 UTC (rev 15140)
+++ labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/Analyzer.java	2007-09-15 15:39:39 UTC (rev 15141)
@@ -1,5 +1,6 @@
 package org.drools.analytics;
 
+import java.io.File;
 import java.util.Collection;
 
 import org.drools.RuleBase;
@@ -81,8 +82,11 @@
 	 * 
 	 * @return Analysis results as HTML
 	 */
-	public String getComponentsHTML() {
-		return new ComponentsReportModeller().writeComponentsHTML();
+	public void writeComponentsHTML(String path) {
+		
+		
+		
+		ComponentsReportModeller.writeHTML(path);
 	}
 
 	/**

Modified: labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/PackageDescrFlattener.java
===================================================================
--- labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/PackageDescrFlattener.java	2007-09-15 05:20:11 UTC (rev 15140)
+++ labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/PackageDescrFlattener.java	2007-09-15 15:39:39 UTC (rev 15141)
@@ -23,6 +23,7 @@
 import org.drools.analytics.components.PatternPossibility;
 import org.drools.analytics.components.QualifiedIdentifierRestriction;
 import org.drools.analytics.components.ReturnValueRestriction;
+import org.drools.analytics.components.RulePackage;
 import org.drools.analytics.components.RulePossibility;
 import org.drools.analytics.components.Variable;
 import org.drools.analytics.components.VariableRestriction;
@@ -65,6 +66,7 @@
 
 	private Solvers solvers = new Solvers();
 
+	private RulePackage currentPackage = null;
 	private AnalyticsRule currentRule = null;
 	private Pattern currentPattern = null;
 	private Constraint currentConstraint = null;
@@ -72,7 +74,21 @@
 	private Field currentField = null;
 
 	public void insert(PackageDescr packageDescr) {
+		AnalyticsData data = AnalyticsDataMaps.getAnalyticsDataMaps();
+		RulePackage rulePackage = data.getRulePackageByName(packageDescr
+				.getName());
+
+		if (rulePackage == null) {
+			rulePackage = new RulePackage();
+
+			rulePackage.setName(packageDescr.getName());
+			data.insert(rulePackage);
+		}
+
+		currentPackage = rulePackage;
+
 		flatten(packageDescr.getRules());
+
 		formPossibilities();
 	}
 
@@ -308,8 +324,11 @@
 		rule.setRuleSalience(descr.getSalience());
 		rule.setConsequence(descr.getConsequence().toString());
 		rule.setLineNumber(descr.getLine());
+		rule.setPackageId(currentPackage.getId());
+
 		data.insert(rule);
 
+		currentPackage.getRules().add(rule);
 		currentRule = rule;
 
 		solvers.startRuleSolver(rule);
@@ -558,6 +577,7 @@
 		field.setName(fieldName);
 		field.setLineNumber(line);
 
+		currentClass.getFields().add(field);
 		return field;
 	}
 

Modified: labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/components/AnalyticsClass.java
===================================================================
--- labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/components/AnalyticsClass.java	2007-09-15 05:20:11 UTC (rev 15140)
+++ labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/components/AnalyticsClass.java	2007-09-15 15:39:39 UTC (rev 15141)
@@ -1,6 +1,8 @@
 package org.drools.analytics.components;
 
 import java.io.Serializable;
+import java.util.HashSet;
+import java.util.Set;
 
 /**
  * @author Toni Rikkola
@@ -14,6 +16,8 @@
 	private int id = index++;
 	private String name;
 
+	private Set<Field> fields = new HashSet<Field>();
+
 	public String getName() {
 		return name;
 	}
@@ -29,4 +33,12 @@
 	public void setId(int id) {
 		this.id = id;
 	}
+
+	public Set<Field> getFields() {
+		return fields;
+	}
+
+	public void setFields(Set<Field> fields) {
+		this.fields = fields;
+	}
 }

Modified: labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/components/AnalyticsComponentType.java
===================================================================
--- labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/components/AnalyticsComponentType.java	2007-09-15 05:20:11 UTC (rev 15140)
+++ labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/components/AnalyticsComponentType.java	2007-09-15 15:39:39 UTC (rev 15141)
@@ -25,5 +25,6 @@
 	METHOD_ACCESSOR, 
 	FIELD_ACCESSOR, 
 	FUNCTION_CALL, 
-	ACCESSOR
+	ACCESSOR, 
+	RULE_PACKAGE
 }

Modified: labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/components/AnalyticsRule.java
===================================================================
--- labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/components/AnalyticsRule.java	2007-09-15 05:20:11 UTC (rev 15140)
+++ labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/components/AnalyticsRule.java	2007-09-15 15:39:39 UTC (rev 15141)
@@ -16,6 +16,8 @@
 	private String consequence;
 	private int lineNumber;
 
+	private int packageId;
+
 	public AnalyticsRule() {
 		super(index++);
 	}
@@ -78,4 +80,12 @@
 	public String toString() {
 		return "Rule '" + ruleName + "'";
 	}
+
+	public int getPackageId() {
+		return packageId;
+	}
+
+	public void setPackageId(int packageId) {
+		this.packageId = packageId;
+	}
 }

Modified: labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/components/Field.java
===================================================================
--- labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/components/Field.java	2007-09-15 05:20:11 UTC (rev 15140)
+++ labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/components/Field.java	2007-09-15 15:39:39 UTC (rev 15141)
@@ -9,7 +9,19 @@
 public class Field extends AnalyticsComponent implements Cause {
 
 	public static enum FieldType {
-		BOOLEAN, STRING, INT, DOUBLE, DATE, VARIABLE, OBJECT
+		BOOLEAN("boolean"), STRING("String"), INT("int"), DOUBLE("double"), DATE(
+				"Date"), VARIABLE("Variable"), OBJECT("Object");
+
+		private String string;
+
+		private FieldType(String string) {
+			this.string = string;
+		}
+
+		@Override
+		public String toString() {
+			return string;
+		}
 	}
 
 	private static int index = 0;

Added: labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/components/RulePackage.java
===================================================================
--- labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/components/RulePackage.java	                        (rev 0)
+++ labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/components/RulePackage.java	2007-09-15 15:39:39 UTC (rev 15141)
@@ -0,0 +1,41 @@
+package org.drools.analytics.components;
+
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * 
+ * @author Toni Rikkola
+ */
+public class RulePackage extends AnalyticsComponent {
+
+	private static int index = 0;
+
+	private String name;
+	private Set<AnalyticsRule> rules = new HashSet<AnalyticsRule>();
+
+	public RulePackage() {
+		super(index++);
+	}
+
+	@Override
+	public AnalyticsComponentType getComponentType() {
+		return AnalyticsComponentType.RULE_PACKAGE;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public Set<AnalyticsRule> getRules() {
+		return rules;
+	}
+
+	public void setRules(Set<AnalyticsRule> rules) {
+		this.rules = rules;
+	}
+}

Modified: labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/dao/AnalyticsData.java
===================================================================
--- labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/dao/AnalyticsData.java	2007-09-15 05:20:11 UTC (rev 15140)
+++ labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/dao/AnalyticsData.java	2007-09-15 15:39:39 UTC (rev 15141)
@@ -10,6 +10,7 @@
 import org.drools.analytics.components.Pattern;
 import org.drools.analytics.components.PatternPossibility;
 import org.drools.analytics.components.Restriction;
+import org.drools.analytics.components.RulePackage;
 import org.drools.analytics.components.RulePossibility;
 import org.drools.analytics.components.Variable;
 
@@ -39,6 +40,8 @@
 
 	public void insert(RulePossibility possibility);
 
+	public void insert(RulePackage rulePackage);
+
 	public AnalyticsClass getClassByName(String name);
 
 	public AnalyticsClass getClassById(int id);
@@ -58,6 +61,8 @@
 
 	public Collection<AnalyticsClass> getAllClasses();
 
+	public Collection<RulePackage> getAllRulePackages();
+
 	public Collection<Field> getFieldsByClassId(int id);
 
 	public Collection<AnalyticsRule> getRulesByClassId(int id);
@@ -65,4 +70,6 @@
 	public Collection<Field> getAllFields();
 
 	public Collection<AnalyticsRule> getRulesByFieldId(int id);
+
+	public RulePackage getRulePackageByName(String name);
 }

Modified: labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/dao/AnalyticsDataMaps.java
===================================================================
--- labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/dao/AnalyticsDataMaps.java	2007-09-15 05:20:11 UTC (rev 15140)
+++ labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/dao/AnalyticsDataMaps.java	2007-09-15 15:39:39 UTC (rev 15141)
@@ -16,6 +16,7 @@
 import org.drools.analytics.components.Pattern;
 import org.drools.analytics.components.PatternPossibility;
 import org.drools.analytics.components.Restriction;
+import org.drools.analytics.components.RulePackage;
 import org.drools.analytics.components.RulePossibility;
 import org.drools.analytics.components.Variable;
 
@@ -25,6 +26,9 @@
  */
 public class AnalyticsDataMaps implements AnalyticsData {
 
+	private Map<Integer, RulePackage> packagesById = new HashMap<Integer, RulePackage>();
+	private Map<String, RulePackage> packagesByName = new HashMap<String, RulePackage>();
+
 	private Map<Integer, AnalyticsClass> classesById = new HashMap<Integer, AnalyticsClass>();
 	private Map<String, AnalyticsClass> classesByName = new HashMap<String, AnalyticsClass>();
 	private Map<String, Field> fieldsByClassAndFieldName = new HashMap<String, Field>();
@@ -188,6 +192,8 @@
 	public Collection<? extends Object> getAll() {
 		List<Object> objects = new ArrayList<Object>();
 
+		objects.addAll(packagesById.values());
+
 		objects.addAll(rulesById.values());
 		objects.addAll(patternsById.values());
 		objects.addAll(constraintsById.values());
@@ -235,4 +241,17 @@
 
 		return rules;
 	}
+
+	public Collection<RulePackage> getAllRulePackages() {
+		return packagesById.values();
+	}
+
+	public void insert(RulePackage rulePackage) {
+		packagesById.put(rulePackage.getId(), rulePackage);
+		packagesByName.put(rulePackage.getName(), rulePackage);
+	}
+
+	public RulePackage getRulePackageByName(String name) {
+		return packagesByName.get(name);
+	}
 }

Modified: labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/result/ComponentsReportModeller.java
===================================================================
--- labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/result/ComponentsReportModeller.java	2007-09-15 05:20:11 UTC (rev 15140)
+++ labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/result/ComponentsReportModeller.java	2007-09-15 15:39:39 UTC (rev 15141)
@@ -1,9 +1,8 @@
 package org.drools.analytics.result;
 
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.util.Collection;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
 
 import org.drools.analytics.components.AnalyticsClass;
 import org.drools.analytics.components.AnalyticsRule;
@@ -13,274 +12,80 @@
 
 public class ComponentsReportModeller {
 
-	private static String cssFile = "basic.css";
-	private StringBuffer str = new StringBuffer("");
-	private AnalyticsData data = AnalyticsDataMaps.getAnalyticsDataMaps();
+	public static void writeHTML(String path) {
+		AnalyticsData data = AnalyticsDataMaps.getAnalyticsDataMaps();
 
-	public String writeComponentsHTML() {
-		Collection<AnalyticsRule> rules = data.getAllRules();
-		Collection<AnalyticsClass> classes = data.getAllClasses();
-		Collection<Field> fields = data.getAllFields();
+		// Source folder
+		File sourceFolder = new File(path
+				+ ComponentsReportVisitor.SOURCE_FOLDER);
+		sourceFolder.mkdir();
 
-		str.append("<html>\n");
-		str.append("<head>\n");
-		str.append("<title>\n");
-		str.append("Rule Relations\n");
-		str.append("</title>\n");
-		// str.append("<link rel=\"stylesheet\" type=\"text/css\"
-		// href=\"basic.css\" title=\"default\">\n");
+		// Base files
+		// index.htm
+		writeToFile(path + ComponentsReportVisitor.SOURCE_FOLDER
+				+ File.separator + ComponentsReportVisitor.HTML_FILE_INDEX,
+				ComponentsReportVisitor.visitObjectTypeCollection(data
+						.getAllClasses()));
+		// packages.htm
+		writeToFile(path + ComponentsReportVisitor.SOURCE_FOLDER
+				+ File.separator + ComponentsReportVisitor.HTML_FILE_PACKAGES,
+				ComponentsReportVisitor.visitRulePackageCollection(data
+						.getAllRulePackages()));
 
-		str.append("<style type=\"text/css\">\n");
-		str.append("<!--\n");
-		try {
-			BufferedReader reader = new BufferedReader(
-					new InputStreamReader(ComponentsReportModeller.class
-							.getResourceAsStream(cssFile)));
-			String cssLine = null;
-			while ((cssLine = reader.readLine()) != null) {
-				str.append(cssLine);
-				str.append("\n");
-			}
-		} catch (IOException e) {
-			e.printStackTrace();
+		// rules
+		String ruleFolder = path + ComponentsReportVisitor.SOURCE_FOLDER
+				+ File.separator + ComponentsReportVisitor.RULE_FOLDER;
+		File rulesFolder = new File(ruleFolder);
+		rulesFolder.mkdir();
+		for (AnalyticsRule rule : data.getAllRules()) {
+			writeToFile(ruleFolder + File.separator + rule.getId() + ".htm",
+					ComponentsReportVisitor.visitRule(rule));
 		}
-		str.append("-->\n");
-		str.append("</style>\n");
 
-		str.append("</head>\n");
-		str.append("<body>\n\n");
-
-		str.append("<br>\n");
-		str.append("<h1>\n");
-		str.append("Rule Relations");
-		str.append("</h1>\n");
-		str.append("<br>\n");
-
-		visitRuleCollection(rules);
-
-		str.append("<br>\n");
-		str.append("<br>\n");
-
-		visitClassCollection(classes);
-
-		str.append("<br>\n");
-		str.append("<br>\n");
-
-		visitFieldCollection(fields);
-
-		str.append("<br>\n");
-		str.append("<br>\n");
-
-		str.append("</body>\n");
-		str.append("</html>");
-
-		return str.toString();
-	}
-
-	public void visitRuleCollection(Collection<AnalyticsRule> rules) {
-
-		str.append("<table class=\"rules\">\n");
-		str.append("<tr>\n");
-		str.append("<th>\n");
-
-		if (rules.size() > 0) {
-			str.append("Rules ( ");
-			str.append(rules.size());
-			str.append(" )\n");
-
-			str.append("</th>\n");
-			str.append("</tr>\n");
-
-			for (AnalyticsRule rule : rules) {
-				str.append("<tr>\n");
-				str.append("<td>\n");
-
-				visitRule(rule);
-
-				str.append("</td>\n");
-				str.append("</tr>\n");
-			}
-		} else {
-			str.append("No rules found\n");
-			str.append("</th>\n");
-			str.append("</tr>\n");
+		// ObjectTypes
+		String objectTypeFolder = path + ComponentsReportVisitor.SOURCE_FOLDER
+				+ File.separator + ComponentsReportVisitor.OBJECT_TYPE_FOLDER;
+		File objectTypesFolder = new File(objectTypeFolder);
+		objectTypesFolder.mkdir();
+		for (AnalyticsClass objectType : data.getAllClasses()) {
+			writeToFile(objectTypeFolder + File.separator + objectType.getId()
+					+ ".htm", ComponentsReportVisitor
+					.visitObjectType(objectType));
 		}
 
-		str.append("</table>\n");
-	}
-
-	public void visitClassCollection(Collection<AnalyticsClass> classes) {
-
-		str.append("<table class=\"patterns\">\n");
-		str.append("<tr>\n");
-		str.append("<th>\n");
-
-		if (classes.size() > 0) {
-			str.append("Patterns ( ");
-			str.append(classes.size());
-			str.append(" )\n");
-
-			str.append("</th>\n");
-			str.append("</tr>\n");
-
-			for (AnalyticsClass clazz : classes) {
-				str.append("<tr>\n");
-				str.append("<td>\n");
-
-				visitClass(clazz);
-
-				str.append("</td>\n");
-				str.append("</tr>\n");
-			}
-		} else {
-			str.append("No patterns found\n");
-			str.append("</th>\n");
-			str.append("</tr>\n");
+		// Fields
+		String fieldFolder = path + ComponentsReportVisitor.SOURCE_FOLDER
+				+ File.separator + ComponentsReportVisitor.FIELD_FOLDER;
+		File fieldsFolder = new File(fieldFolder);
+		fieldsFolder.mkdir();
+		for (Field field : data.getAllFields()) {
+			writeToFile(fieldFolder + File.separator + field.getId() + ".htm",
+					ComponentsReportVisitor.visitField(field));
 		}
 
-		str.append("</table>\n");
+		// css files
+		String cssFolder = path + ComponentsReportVisitor.SOURCE_FOLDER
+				+ File.separator + ComponentsReportVisitor.CSS_FOLDER;
+		File cssesFolder = new File(cssFolder);
+		cssesFolder.mkdir();
+		writeToFile(cssFolder + File.separator
+				+ ComponentsReportVisitor.CSS_FILE_DETAILS,
+				ComponentsReportVisitor
+						.getCss(ComponentsReportVisitor.CSS_FILE_DETAILS));
+		writeToFile(cssFolder + File.separator
+				+ ComponentsReportVisitor.CSS_FILE_LIST,
+				ComponentsReportVisitor
+						.getCss(ComponentsReportVisitor.CSS_FILE_LIST));
 	}
 
-	public void visitFieldCollection(Collection<Field> fields) {
-
-		str.append("<table class=\"fields\">\n");
-		str.append("<tr>\n");
-		str.append("<th>\n");
-
-		if (fields.size() > 0) {
-			str.append("Fields ( ");
-			str.append(fields.size());
-			str.append(" )\n");
-
-			str.append("</th>\n");
-			str.append("</tr>\n");
-
-			for (Field field : fields) {
-				str.append("<tr>\n");
-				str.append("<td>\n");
-
-				visitField(field);
-
-				str.append("</td>\n");
-				str.append("</tr>\n");
-			}
-		} else {
-			str.append("No fields found\n");
-			str.append("</th>\n");
-			str.append("</tr>\n");
+	private static void writeToFile(String fileName, String text) {
+		try {
+			FileWriter fstream = new FileWriter(fileName);
+			BufferedWriter out = new BufferedWriter(fstream);
+			out.write(text);
+			out.close();
+		} catch (Exception e) {
+			System.err.println(e.getMessage());
 		}
-
-		str.append("</table>\n");
 	}
-
-	public void visitRule(AnalyticsRule rule) {
-		Collection<AnalyticsClass> classes = data.getClassesByRuleName(rule
-				.getRuleName());
-
-		str.append("Rule<br />&nbsp;&nbsp;Name:&nbsp;");
-		str.append("<a name=\"Rule_id");
-		str.append(rule.getId());
-		str.append("\">");
-		str.append(rule.getRuleName());
-		str.append("</a>");
-
-		str
-				.append("<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Patterns:&nbsp;<br />\n");
-		processClassCollection(classes);
-	}
-
-	public void visitClass(AnalyticsClass clazz) {
-		Collection<Field> fields = data.getFieldsByClassId(clazz.getId());
-		Collection<AnalyticsRule> rules = data.getRulesByClassId(clazz.getId());
-
-		str.append("Pattern<br />&nbsp;&nbsp;Name:&nbsp;");
-		str.append("<a name=\"Pattern_id");
-		str.append(clazz.getId());
-		str.append("\">");
-		str.append(clazz.getName());
-		str.append("</a>");
-
-		str
-				.append("<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Known fields:&nbsp;<br />\n");
-		processFieldCollection(fields);
-		str
-				.append("<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Rules that use this component:&nbsp;<br />\n");
-		processRuleCollection(rules);
-	}
-
-	public void visitField(Field field) {
-		AnalyticsClass clazz = data.getClassById(field.getClassId());
-		Collection<AnalyticsRule> rules = data.getRulesByFieldId(field.getId());
-
-		str.append("Field<br />&nbsp;&nbsp;Name:&nbsp;");
-		str.append("<a name=\"Field_id");
-		str.append(field.getId());
-		str.append("\">");
-		str.append(field.getName());
-		str.append("</a>");
-
-		str.append("<br />&nbsp;&nbsp;Type:&nbsp;");
-		str.append(field.getFieldType());
-		str.append("<br />&nbsp;&nbsp;Belongs to class:&nbsp;");
-
-		str.append("<a href=\"#Pattern_id");
-		str.append(clazz.getId());
-		str.append("\">");
-		str.append(clazz.getName());
-		str.append("</a><br />");
-
-		str
-				.append("<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Rules that use this component:&nbsp;<br />\n");
-		processRuleCollection(rules);
-	}
-
-	private void processFieldCollection(Collection<Field> fields) {
-		if (fields != null && !fields.isEmpty()) {
-			for (Field field : fields) {
-				str
-						.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;<a href=\"#Field_id");
-				str.append(field.getId());
-				str.append("\">");
-				str.append(field.getName());
-				str.append("</a><br />\n");
-			}
-		} else {
-			str
-					.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;No fields found<br />\n");
-		}
-	}
-
-	private void processRuleCollection(Collection<AnalyticsRule> rules) {
-
-		if (rules != null && !rules.isEmpty()) {
-			for (AnalyticsRule rule : rules) {
-				str
-						.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;<a href=\"#Rule_id");
-				str.append(rule.getId());
-				str.append("\">");
-				str.append(rule.getRuleName());
-				str.append("</a><br />\n");
-			}
-		} else {
-			str
-					.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;No rules found<br />\n");
-		}
-	}
-
-	private void processClassCollection(Collection<AnalyticsClass> classes) {
-		// Patterns
-		if (classes != null && !classes.isEmpty()) {
-			for (AnalyticsClass clazz : classes) {
-				str
-						.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;<a href=\"#Pattern_id");
-				str.append(clazz.getId());
-				str.append("\">");
-				str.append(clazz.getName());
-				str.append("</a><br />\n");
-			}
-		} else {
-			str
-					.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;No patterns found<br />\n");
-		}
-	}
 }

Added: labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/result/ComponentsReportVisitor.java
===================================================================
--- labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/result/ComponentsReportVisitor.java	                        (rev 0)
+++ labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/result/ComponentsReportVisitor.java	2007-09-15 15:39:39 UTC (rev 15141)
@@ -0,0 +1,184 @@
+package org.drools.analytics.result;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.drools.analytics.components.AnalyticsClass;
+import org.drools.analytics.components.AnalyticsRule;
+import org.drools.analytics.components.Field;
+import org.drools.analytics.components.RulePackage;
+import org.drools.analytics.dao.AnalyticsData;
+import org.drools.analytics.dao.AnalyticsDataMaps;
+import org.mvel.TemplateInterpreter;
+
+public class ComponentsReportVisitor {
+
+	public static final String THIS_FOLDER = ".";
+	public static final String PREVIOUS_FOLDER = "..";
+
+	public static final String SOURCE_FOLDER = "report";
+	public static final String OBJECT_TYPE_FOLDER = "objectTypes";
+	public static final String FIELD_FOLDER = "fields";
+	public static final String RULE_FOLDER = "rules";
+	public static final String PACKAGE_FOLDER = "packages";
+	public static final String CSS_FOLDER = "css";
+
+	public static final String CSS_FILE_LIST = "relationsList.css";
+	public static final String CSS_FILE_DETAILS = "relationsDetails.css";
+
+	public static final String HTML_FILE_INDEX = "index.htm";
+	public static final String HTML_FILE_PACKAGES = "packages.htm";
+
+	private static String readFile(String fileName) {
+		StringBuffer str = new StringBuffer("");
+		try {
+			BufferedReader reader = new BufferedReader(
+					new InputStreamReader(ComponentsReportVisitor.class
+							.getResourceAsStream(fileName)));
+			String line = null;
+			while ((line = reader.readLine()) != null) {
+				str.append(line);
+				str.append("\n");
+			}
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+		return str.toString();
+	}
+
+	public static String getCss(String fileName) {
+		return readFile(fileName);
+	}
+
+	private static String createStyleTag(String path) {
+		StringBuffer str = new StringBuffer("");
+
+		str.append("<link rel=\"stylesheet\" type=\"text/css\" href=\"");
+		str.append(path);
+		str.append("\" />");
+
+		return str.toString();
+	}
+
+	public static String visitRulePackageCollection(
+			Collection<RulePackage> packages) {
+		Map<String, Object> map = new HashMap<String, Object>();
+		map.put("header", processHeader(THIS_FOLDER));
+		map.put("sourceFolder", THIS_FOLDER);
+		map.put("ruleFolder", RULE_FOLDER);
+		map.put("packageFolder", PACKAGE_FOLDER);
+		map.put("cssStyle", createStyleTag(CSS_FOLDER + "/" + CSS_FILE_LIST));
+
+		map.put("rulePackages", packages);
+
+		String myTemplate = readFile("packages.htm");
+
+		String result = TemplateInterpreter.evalToString(myTemplate, map);
+
+		return result;
+	}
+
+	public static String visitObjectTypeCollection(
+			Collection<AnalyticsClass> objectTypes) {
+		Map<String, Object> map = new HashMap<String, Object>();
+		map.put("header", processHeader(THIS_FOLDER));
+		map.put("sourceFolder", THIS_FOLDER);
+		map.put("objectTypeFolder", OBJECT_TYPE_FOLDER);
+		map.put("fieldFolder", FIELD_FOLDER);
+		map.put("cssStyle", createStyleTag(CSS_FOLDER + "/" + CSS_FILE_LIST));
+
+		map.put("objectTypes", objectTypes);
+
+		String myTemplate = readFile("objectTypes.htm");
+
+		String result = TemplateInterpreter.evalToString(myTemplate, map);
+
+		return result;
+	}
+
+	public static String visitRule(AnalyticsRule rule) {
+		AnalyticsData data = AnalyticsDataMaps.getAnalyticsDataMaps();
+		Collection<AnalyticsClass> objectTypes = data.getClassesByRuleName(rule
+				.getRuleName());
+
+		Map<String, Object> map = new HashMap<String, Object>();
+		map.put("header", processHeader(PREVIOUS_FOLDER));
+		map.put("sourceFolder", PREVIOUS_FOLDER);
+		map.put("objectTypeFolder", OBJECT_TYPE_FOLDER);
+		map.put("cssStyle", createStyleTag(PREVIOUS_FOLDER + "/" + CSS_FOLDER
+				+ "/" + CSS_FILE_DETAILS));
+
+		map.put("rule", rule);
+		map.put("objectTypes", objectTypes);
+
+		String myTemplate = readFile("rule.htm");
+
+		String result = TemplateInterpreter.evalToString(myTemplate, map);
+
+		return result;
+	}
+
+	public static String visitObjectType(AnalyticsClass objectType) {
+		AnalyticsData data = AnalyticsDataMaps.getAnalyticsDataMaps();
+		Collection<AnalyticsRule> rules = data.getRulesByClassId(objectType
+				.getId());
+
+		Map<String, Object> map = new HashMap<String, Object>();
+		map.put("header", processHeader(PREVIOUS_FOLDER));
+		map.put("sourceFolder", PREVIOUS_FOLDER);
+		map.put("ruleFolder", RULE_FOLDER);
+		map.put("fieldFolder", FIELD_FOLDER);
+		map.put("cssStyle", createStyleTag(PREVIOUS_FOLDER + "/" + CSS_FOLDER
+				+ "/" + CSS_FILE_DETAILS));
+
+		map.put("objectType", objectType);
+		map.put("rules", rules);
+
+		String myTemplate = readFile("objectType.htm");
+
+		String result = TemplateInterpreter.evalToString(myTemplate, map);
+
+		return result;
+	}
+
+	public static String visitField(Field field) {
+		AnalyticsData data = AnalyticsDataMaps.getAnalyticsDataMaps();
+		AnalyticsClass objectType = data.getClassById(field.getClassId());
+		Collection<AnalyticsRule> rules = data.getRulesByFieldId(field.getId());
+
+		Map<String, Object> map = new HashMap<String, Object>();
+		map.put("header", processHeader(PREVIOUS_FOLDER));
+		map.put("sourceFolder", PREVIOUS_FOLDER);
+		map.put("ruleFolder", RULE_FOLDER);
+		map.put("objectTypeFolder", OBJECT_TYPE_FOLDER);
+		map.put("fieldFolder", FIELD_FOLDER);
+		map.put("cssStyle", createStyleTag(PREVIOUS_FOLDER + "/" + CSS_FOLDER
+				+ "/" + CSS_FILE_DETAILS));
+
+		map.put("field", field);
+		map.put("objectType", objectType);
+		map.put("rules", rules);
+
+		String myTemplate = readFile("field.htm");
+
+		String result = TemplateInterpreter.evalToString(myTemplate, map);
+
+		return result;
+	}
+
+	private static String processHeader(String folder) {
+		Map<String, Object> map = new HashMap<String, Object>();
+		map.put("sourceFolder", folder);
+
+		map.put("objectTypesFile", HTML_FILE_INDEX);
+		map.put("packagesFile", HTML_FILE_PACKAGES);
+
+		String myTemplate = readFile("header.htm");
+
+		return TemplateInterpreter.evalToString(myTemplate, map);
+	}
+}

Added: labs/jbossrules/trunk/experimental/drools-analytics/src/main/resources/org/drools/analytics/result/field.htm
===================================================================
--- labs/jbossrules/trunk/experimental/drools-analytics/src/main/resources/org/drools/analytics/result/field.htm	                        (rev 0)
+++ labs/jbossrules/trunk/experimental/drools-analytics/src/main/resources/org/drools/analytics/result/field.htm	2007-09-15 15:39:39 UTC (rev 15141)
@@ -0,0 +1,34 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+"http://www.w3.org/TR/html4/strict.dtd">
+
+<html>
+    <head>
+        <meta name="generator" content="HTML Tidy, see www.w3.org">
+        <meta http-equiv="Content-Type" content=
+        "text/html; charset=iso-8859-1">
+
+        <title>Rule Relations</title>
+		@{cssStyle}
+    </head>
+
+    <body>
+    	<div>@{header}</div>
+    	<div>
+	    	<h2>Field</h2>
+			<div>
+				Name: @{field.name}<br/>
+				Type: @{field.fieldType}<br/>
+				Belongs to class: <a href="@{sourceFolder}/@{objectTypeFolder}/@{objectType.id}.htm">@{objectType.name}</a>
+			</div>
+			<div>
+				Rules that use this component:
+				<ul>
+					@foreach{rules as rule}
+					<li><a href="@{sourceFolder}/@{ruleFolder}/@{rule.id}.htm">@{rule.ruleName}</a></li>
+					@end{}
+				</ul>
+			</div>
+		</div>
+    </body>
+</html>
+

Added: labs/jbossrules/trunk/experimental/drools-analytics/src/main/resources/org/drools/analytics/result/header.htm
===================================================================
--- labs/jbossrules/trunk/experimental/drools-analytics/src/main/resources/org/drools/analytics/result/header.htm	                        (rev 0)
+++ labs/jbossrules/trunk/experimental/drools-analytics/src/main/resources/org/drools/analytics/result/header.htm	2007-09-15 15:39:39 UTC (rev 15141)
@@ -0,0 +1,12 @@
+<table id="header">
+    <tr>
+        <td><a href=
+        "@{sourceFolder}/@{objectTypesFile}">Object
+        Types</a></td>
+
+        <td><a href=
+        "@{sourceFolder}/@{packagesFile}">Rules by
+        Packages</a></td>
+    </tr>
+</table>
+

Added: labs/jbossrules/trunk/experimental/drools-analytics/src/main/resources/org/drools/analytics/result/objectType.htm
===================================================================
--- labs/jbossrules/trunk/experimental/drools-analytics/src/main/resources/org/drools/analytics/result/objectType.htm	                        (rev 0)
+++ labs/jbossrules/trunk/experimental/drools-analytics/src/main/resources/org/drools/analytics/result/objectType.htm	2007-09-15 15:39:39 UTC (rev 15141)
@@ -0,0 +1,46 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+"http://www.w3.org/TR/html4/strict.dtd">
+
+<html>
+    <head>
+        <meta name="generator" content="HTML Tidy, see www.w3.org">
+        <meta http-equiv="Content-Type" content=
+        "text/html; charset=iso-8859-1">
+
+        <title>Rule Relations</title>
+		@{cssStyle}
+    </head>
+
+    <body>
+    	<div>@{header}</div>
+    	<div>
+	    	<h2>Object Type</h2>
+			<div>
+				Name: @{objectType.name}
+			</div>
+			<div>
+				Known fields:
+				@if{objectType.fields != null && !objectType.fields.empty}
+					<ul>
+						@foreach{objectType.fields as field}
+						<li>@{field.fieldType}&nbsp;<a href="@{sourceFolder}/@{fieldFolder}/@{field.id}.htm">@{field.name}</a></li>
+						@end{}
+					</ul>
+				@else{}
+					<p>
+						No known fields.
+					</p>
+				@end{}
+			</div>
+			<div>
+				Rules that use this component:
+				<ul>
+					@foreach{rules as rule}
+					<li><a href="@{sourceFolder}/@{ruleFolder}/@{rule.id}.htm">@{rule.ruleName}</a></li>
+					@end{}
+				</ul>
+			</div>
+		</div>
+    </body>
+</html>
+

Added: labs/jbossrules/trunk/experimental/drools-analytics/src/main/resources/org/drools/analytics/result/objectTypes.htm
===================================================================
--- labs/jbossrules/trunk/experimental/drools-analytics/src/main/resources/org/drools/analytics/result/objectTypes.htm	                        (rev 0)
+++ labs/jbossrules/trunk/experimental/drools-analytics/src/main/resources/org/drools/analytics/result/objectTypes.htm	2007-09-15 15:39:39 UTC (rev 15141)
@@ -0,0 +1,37 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+"http://www.w3.org/TR/html4/strict.dtd">
+
+<html>
+    <head>
+        <meta name="generator" content="HTML Tidy, see www.w3.org">
+        <meta http-equiv="Content-Type" content=
+        "text/html; charset=iso-8859-1">
+
+        <title>Rule Relations</title>
+		@{cssStyle}
+    </head>
+
+    <body>
+    	<div>@{header}</div>
+    	<div>
+        	<h1>Object Types</h1>
+	        <table class="objectTypes">
+	            <tr>
+	                <th>Name</th>
+	
+	                <th>Fields</th>
+	            </tr>
+					@foreach{objectTypes as objectType}
+			    	<tr>
+			                <td><a href="@{sourceFolder}/@{objectTypeFolder}/@{objectType.id}.htm">@{objectType.name}</a></td>
+							<td>
+						@foreach{objectType.fields as field}
+							@{field.fieldType}&nbsp;<a href="@{sourceFolder}/@{fieldFolder}/@{field.id}.htm">@{field.name}</a>@end{","}
+							</td>
+	            	</tr>
+					@end{}
+	        </table>
+		</div>
+    </body>
+</html>
+

Added: labs/jbossrules/trunk/experimental/drools-analytics/src/main/resources/org/drools/analytics/result/packages.htm
===================================================================
--- labs/jbossrules/trunk/experimental/drools-analytics/src/main/resources/org/drools/analytics/result/packages.htm	                        (rev 0)
+++ labs/jbossrules/trunk/experimental/drools-analytics/src/main/resources/org/drools/analytics/result/packages.htm	2007-09-15 15:39:39 UTC (rev 15141)
@@ -0,0 +1,37 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+"http://www.w3.org/TR/html4/strict.dtd">
+
+<html>
+    <head>
+        <meta name="generator" content="HTML Tidy, see www.w3.org">
+        <meta http-equiv="Content-Type" content=
+        "text/html; charset=iso-8859-1">
+
+        <title>Rule Relations</title>
+		@{cssStyle}
+    </head>
+
+    <body>
+    	<div>@{header}</div>
+    	<div>
+        	<h1>Rules by Packages</h1>
+	        <table class="rulePackages">
+					@foreach{rulePackages as rulePackage}	
+			    	<tr>
+		                <th>@{rulePackage.name}</td>
+						<th>
+	            	</tr>
+	            	<tr>
+	            		<td>
+	            			<ul>
+							@foreach{rulePackage.rules as rule}
+								<li><a href="@{sourceFolder}/@{ruleFolder}/@{rule.id}.htm">@{rule.ruleName}</a></li>@end{}
+							</ul>
+						</td>
+	            	</tr>
+					@end{}
+	        </table>
+		</div>
+    </body>
+</html>
+

Added: labs/jbossrules/trunk/experimental/drools-analytics/src/main/resources/org/drools/analytics/result/relationsDetails.css
===================================================================
--- labs/jbossrules/trunk/experimental/drools-analytics/src/main/resources/org/drools/analytics/result/relationsDetails.css	                        (rev 0)
+++ labs/jbossrules/trunk/experimental/drools-analytics/src/main/resources/org/drools/analytics/result/relationsDetails.css	2007-09-15 15:39:39 UTC (rev 15141)
@@ -0,0 +1,36 @@
+/* JBoss Drools Analytics Style Sheet */
+/* Website: http://labs.jboss.com/jbossrules/ */
+
+*
+{
+	border: 0;
+	margin: 0;
+	padding: 0;
+}
+h1
+{
+}
+
+div
+{
+	padding:0px 0px 0px 20px;
+}
+
+ul,p,table
+{
+	padding:0px 0px 0px 20px;
+	width:600px;
+	background-color: #d2d7db;
+	text-align: left;
+	border-spacing: 0px;
+	border: 1px solid #aeb3b6;
+	border-collapse: collapse;
+}
+table
+{
+	width: 200px;
+}
+
+li
+{
+}
\ No newline at end of file

Added: labs/jbossrules/trunk/experimental/drools-analytics/src/main/resources/org/drools/analytics/result/relationsList.css
===================================================================
--- labs/jbossrules/trunk/experimental/drools-analytics/src/main/resources/org/drools/analytics/result/relationsList.css	                        (rev 0)
+++ labs/jbossrules/trunk/experimental/drools-analytics/src/main/resources/org/drools/analytics/result/relationsList.css	2007-09-15 15:39:39 UTC (rev 15141)
@@ -0,0 +1,70 @@
+/* JBoss Drools Analytics Style Sheet */
+/* Website: http://labs.jboss.com/jbossrules/ */
+
+*
+{
+	border: 0;
+	margin: 0;
+	padding: 0;
+}
+
+
+div
+{
+	padding:0px 0px 10px 20px;
+}
+
+table
+{
+	background-color: #d2d7db;
+	text-align: left;
+	border-spacing: 0px;
+	border: 1px solid #aeb3b6;
+	border-collapse: collapse;
+}
+
+table a, table, tbody, tfoot, tr, th, td
+{
+	font-family: georgia, "times new roman", serif;
+	line-height: 1.5em;
+	font-size: 13px;
+	color: #55595c;
+}
+
+table caption
+{
+	border-top: 1px solid #aeb3b6;
+	padding: .5em 0;
+	font-size: 240%;
+	font-style: italic;
+	color: #d2d7db;
+}
+
+table th
+{
+	width: 200px;
+}
+
+tbody th
+{
+	color: #25c1e2;
+	font-style: italic;
+	background-color: #fff;
+	border-bottom: 1px solid #aeb3b6;
+}
+
+td
+{
+	border: 1px dotted #fff;
+	padding: 0 2px;
+}
+
+ul
+{
+	padding:0px 0px 0px 20px;
+	width:600px;
+}
+
+li
+{
+}
\ No newline at end of file

Added: labs/jbossrules/trunk/experimental/drools-analytics/src/main/resources/org/drools/analytics/result/rule.htm
===================================================================
--- labs/jbossrules/trunk/experimental/drools-analytics/src/main/resources/org/drools/analytics/result/rule.htm	                        (rev 0)
+++ labs/jbossrules/trunk/experimental/drools-analytics/src/main/resources/org/drools/analytics/result/rule.htm	2007-09-15 15:39:39 UTC (rev 15141)
@@ -0,0 +1,32 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+"http://www.w3.org/TR/html4/strict.dtd">
+
+<html>
+    <head>
+        <meta name="generator" content="HTML Tidy, see www.w3.org">
+        <meta http-equiv="Content-Type" content=
+        "text/html; charset=iso-8859-1">
+
+        <title>Rule Relations</title>
+		@{cssStyle}
+    </head>
+
+    <body>
+    	<div>@{header}</div>
+    	<div>
+	    	<h2>Rule</h2>
+			<div>
+				Name: @{rule.ruleName}<br/>
+			</div>
+			<div>
+				Patterns:
+				<ul>
+					@foreach{objectTypes as objectType}
+					<li><a href="@{sourceFolder}/@{objectTypeFolder}/@{objectType.id}.htm">@{objectType.name}</a></li>
+					@end{}
+				</ul>
+			</div>
+		</div>
+    </body>
+</html>
+

Modified: labs/jbossrules/trunk/experimental/drools-analytics/src/test/java/org/drools/analytics/AnalyticsTestStandalone.java
===================================================================
--- labs/jbossrules/trunk/experimental/drools-analytics/src/test/java/org/drools/analytics/AnalyticsTestStandalone.java	2007-09-15 05:20:11 UTC (rev 15140)
+++ labs/jbossrules/trunk/experimental/drools-analytics/src/test/java/org/drools/analytics/AnalyticsTestStandalone.java	2007-09-15 15:39:39 UTC (rev 15141)
@@ -41,7 +41,8 @@
 			// System.out.print(a.getResultAsXML());
 			// System.out.print(a.getResultAsHTML());
 			// System.out.print(a.getComponentsHTML());
-			writeToFile("C:\\report.html", a.getComponentsHTML());
+			a.writeComponentsHTML("C:\\");
+			// writeToFile("C:\\report2.html", a.getResultAsHTML());
 		} catch (Throwable t) {
 			t.printStackTrace();
 		}

Modified: labs/jbossrules/trunk/experimental/drools-analytics/src/test/resources/org/drools/analytics/Misc.drl
===================================================================
--- labs/jbossrules/trunk/experimental/drools-analytics/src/test/resources/org/drools/analytics/Misc.drl	2007-09-15 05:20:11 UTC (rev 15140)
+++ labs/jbossrules/trunk/experimental/drools-analytics/src/test/resources/org/drools/analytics/Misc.drl	2007-09-15 15:39:39 UTC (rev 15141)
@@ -1,4 +1,4 @@
-package com.sample
+package com.pat.the.pattern
 
 import com.sample.DroolsTest.Message;
 




More information about the jboss-svn-commits mailing list