[jboss-svn-commits] JBL Code SVN: r28480 - in labs/jbossrules/trunk/drools-guvnor: bulk-importer-util and 37 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Jul 27 01:48:31 EDT 2009


Author: michael.neale at jboss.com
Date: 2009-07-27 01:48:28 -0400 (Mon, 27 Jul 2009)
New Revision: 28480

Added:
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/README.txt
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/.classpath
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/.project
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/.settings/
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/.settings/org.eclipse.jdt.core.prefs
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/.settings/org.eclipse.jst.jsp.core.prefs
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/.settings/org.eclipse.ltk.core.refactoring.prefs
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/.settings/org.eclipse.wst.html.core.prefs
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/.settings/org.eclipse.wst.validation.prefs
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/.settings/org.maven.ide.eclipse.prefs
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/my_rules/
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/my_rules/permissions/
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/my_rules/permissions/zone1/
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/my_rules/permissions/zone1/1.0.0-SNAPSHOT/
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/my_rules/permissions/zone1/1.0.0-SNAPSHOT/permissions.drl
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/my_rules/permissions/zone2/
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/my_rules/permissions/zone2/1.0.0-SNAPSHOT/
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/my_rules/permissions/zone2/1.0.0-SNAPSHOT/permissions1.drl
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/my_rules/permissions/zone2/1.0.0-SNAPSHOT/permissions2.drl
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/my_rules/ping/
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/my_rules/ping/1.0.0-SNAPSHOT/
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/my_rules/ping/1.0.0-SNAPSHOT/ping.drl
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/my_rules/thresholds/
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/my_rules/thresholds/amounts/
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/my_rules/thresholds/amounts/1.0.0-SNAPSHOT/
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/my_rules/thresholds/amounts/1.0.0-SNAPSHOT/.~lock.thresholdValues.xls#
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/my_rules/thresholds/amounts/1.0.0-SNAPSHOT/thresholdValues.xls
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/pom.xml
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/CmdArgsParser.java
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/Constants.java
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/GeneratedData.java
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/ImportFileGenerator.java
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/PackageFile.java
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/Rule.java
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/test/
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/test/TestRuleDeployment.java
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/utils/
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/utils/DroolsHelper.java
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/utils/FileIO.java
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/utils/Logger.java
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/xdeleteme/
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/xdeleteme/ClientHttpRequest.java
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/xdeleteme/HTTPUploadImporter1.java
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/xdeleteme/HTTPUploadImporter2.java
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/xdeleteme/TestRuleCompilation.java
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/xdeleteme/TestRuleCompilation2.java
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/xdeleteme/WebDavImporter.java
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/templates/
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/templates/template_change_set_child.xml
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/templates/template_change_set_parent.xml
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/templates/template_package.xml
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/templates/template_parent.xml
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/templates/template_rule_drl.xml
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/templates/template_rule_xls.xml
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/templates/template_snapshot.xml
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/templates/template_snapshot_rule_drl.xml
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/templates/template_snapshot_rule_xls.xml
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/templates/whole.xml
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/.classpath
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/.project
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/.settings/
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/.settings/org.eclipse.jdt.core.prefs
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/.settings/org.maven.ide.eclipse.prefs
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/pom.xml
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/src/
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/src/main/
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/src/main/java/
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/src/main/java/org/
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/src/main/java/org/jboss/
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/src/main/java/org/jboss/drools/
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/src/main/java/org/jboss/drools/guvnor/
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/src/main/java/org/jboss/drools/guvnor/importgenerator/
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/src/main/java/org/jboss/drools/guvnor/importgenerator/example/
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/src/main/java/org/jboss/drools/guvnor/importgenerator/example/domain/
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/src/main/java/org/jboss/drools/guvnor/importgenerator/example/domain/KagentTest.java
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/src/main/java/org/jboss/drools/guvnor/importgenerator/example/domain/PermissionVO.java
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/src/main/java/org/jboss/drools/guvnor/importgenerator/example/domain/RuleFlagVO.java
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/src/main/java/org/jboss/drools/guvnor/importgenerator/example/domain/RuleResultVO.java
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/src/main/java/org/jboss/drools/guvnor/importgenerator/example/domain/UserVO.java
   labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/src/main/java/org/jboss/drools/guvnor/importgenerator/example/domain/ValueVO.java
Log:
bulk importer from Mat Allen

Added: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/README.txt
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/README.txt	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/README.txt	2009-07-27 05:48:28 UTC (rev 28480)
@@ -0,0 +1,39 @@
+Guvnor-importer-v1.0
+---------------------
+
+The Guvnor-Importer is a maven build tool that recurses your rules directory structure and constructs an
+xml import file that can be manually imported into the Drools-Guvnor web interface via the import/export 
+administration feature.
+
+It is designed for larger scale projects where in the development phases it's far easier for each developer 
+to maintain their own set of rule files, however when the project reaches the staging/pre-production phase 
+and the final drools-guvnor solution would be more appropriate to use/test then this tool enables you to 
+make that transition.
+
+How to run it
+-------------
+
+Included example rules ("my_rules" folder) and example domain objects (sample-model project) used by the example rules. 
+
+If you run "mvn clean install" in the guvnor-importer folder then it should build the example showing the compilation (and percentage complete) as it goes (including a sample dependency failure). 
+
+two files are generated : 
+1) kagent-changeset.xml - drools 5 formatted change-set file for the knowledge agent 
+2) guvnor-import.xml - the file that can be imported into the Guvnor interface in the Administration section. 
+
+
+from the guvnor-importer folder:
+[mallen at mallen guvnor-importer]$ mvn clean install
+
+from your super.pom further up in the folder hierarchy (ie where guvnor-importer is a sub directory of project1
+[mallen at mallen project1]$ mvn clean install clean install -f guvnor-importer/pom.xml
+
+What this tool does
+-------------------
+
+This tool: 
+- can be executed from maven using exec-maven-plugin 1.1
+- assumes a directory structure containing your drl/xls files mapping to your intended package structure
+- generates a knowledge agent changeset xml file to work in conjunction with the import package file
+- is template based so you can change the guvnor category, status name etc... reasonably easily
+


Property changes on: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/README.txt
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/.classpath
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/.classpath	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/.classpath	2009-07-27 05:48:28 UTC (rev 28480)
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
+	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
+	<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
+	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>


Property changes on: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/.classpath
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/.project
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/.project	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/.project	2009-07-27 05:48:28 UTC (rev 28480)
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>guvnor-importer</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.maven.ide.eclipse.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.maven.ide.eclipse.maven2Nature</nature>
+	</natures>
+</projectDescription>


Property changes on: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/.project
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/.settings/org.eclipse.jdt.core.prefs
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/.settings/org.eclipse.jdt.core.prefs	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/.settings/org.eclipse.jdt.core.prefs	2009-07-27 05:48:28 UTC (rev 28480)
@@ -0,0 +1,12 @@
+#Fri Jun 05 14:17:36 BST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5


Property changes on: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/.settings/org.eclipse.jdt.core.prefs
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/.settings/org.eclipse.jst.jsp.core.prefs
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/.settings/org.eclipse.jst.jsp.core.prefs	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/.settings/org.eclipse.jst.jsp.core.prefs	2009-07-27 05:48:28 UTC (rev 28480)
@@ -0,0 +1,27 @@
+#Fri Jun 05 14:17:22 BST 2009
+eclipse.preferences.version=1
+validation.actions-missing-required-attribute=1
+validation.actions-non-empty-inline-tag=2
+validation.actions-unknown-attribute=2
+validation.directive-include-fragment-file-not-found=1
+validation.directive-include-fragment-file-not-specified=1
+validation.directive-taglib-duplicate-prefixes-different-uris=1
+validation.directive-taglib-duplicate-prefixes-same-uris=-1
+validation.directive-taglib-missing-prefix=1
+validation.directive-taglib-missing-uri-or-tagdir=1
+validation.directive-taglib-unresolvable-uri-or-tagdir=1
+validation.el-general-syntax=1
+validation.el-lexical-failure=-1
+validation.java-=-1
+validation.java-local-variable-is-never-used=-1
+validation.java-null-local-variable-reference=-1
+validation.java-potential-null-local-variable-reference=-1
+validation.java-unused-import=-1
+validation.translation-tag-class-not-found=2
+validation.translation-tei-class-not-found=2
+validation.translation-tei-class-not-instantiated=2
+validation.translation-tei-class-runtime-exception=2
+validation.translation-tei-message=1
+validation.translation-usebean-ambiguous-type-info=2
+validation.translation-usebean-invalid-id=1
+validation.translation-usebean-missing-type-info=1


Property changes on: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/.settings/org.eclipse.jst.jsp.core.prefs
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/.settings/org.eclipse.ltk.core.refactoring.prefs
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/.settings/org.eclipse.ltk.core.refactoring.prefs	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/.settings/org.eclipse.ltk.core.refactoring.prefs	2009-07-27 05:48:28 UTC (rev 28480)
@@ -0,0 +1,3 @@
+#Fri Jun 05 14:17:22 BST 2009
+eclipse.preferences.version=1
+org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false


Property changes on: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/.settings/org.eclipse.ltk.core.refactoring.prefs
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/.settings/org.eclipse.wst.html.core.prefs
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/.settings/org.eclipse.wst.html.core.prefs	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/.settings/org.eclipse.wst.html.core.prefs	2009-07-27 05:48:28 UTC (rev 28480)
@@ -0,0 +1,36 @@
+#Fri Jun 05 14:17:22 BST 2009
+attrDuplicate=2
+attrInvalidName=2
+attrInvalidValue=2
+attrNameMismatch=2
+attrUndefName=2
+attrUndefValue=2
+attrValueMismatch=1
+attrValueUnclosed=2
+cdataInvalidContent=2
+cdataUnclosed=1
+commentInvalidContent=2
+commentUnclosed=1
+docDoctypeUnclosed=1
+docDuplicateTag=1
+docInvalidChar=2
+docInvalidContent=2
+eclipse.preferences.version=1
+elemCoexistence=2
+elemDuplicate=2
+elemEndInvalidCase=1
+elemInvalidContent=2
+elemInvalidDirective=1
+elemInvalidEmptyTag=2
+elemInvalidName=1
+elemMissingEnd=2
+elemMissingStart=1
+elemStartInvalidCase=2
+elemUnclosedEndTag=1
+elemUnclosedStartTag=1
+elemUnknownName=2
+elemUnnecessaryEnd=2
+piInvalidContent=2
+piUnclosed=1
+piUndefined=2
+refInvalidContent=2


Property changes on: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/.settings/org.eclipse.wst.html.core.prefs
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/.settings/org.eclipse.wst.validation.prefs
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/.settings/org.eclipse.wst.validation.prefs	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/.settings/org.eclipse.wst.validation.prefs	2009-07-27 05:48:28 UTC (rev 28480)
@@ -0,0 +1,9 @@
+#Fri Jun 05 14:17:22 BST 2009
+DELEGATES_PREFERENCE=delegateValidatorList
+USER_BUILD_PREFERENCE=enabledBuildValidatorListorg.eclipse.wst.wsi.ui.internal.WSIMessageValidator;
+USER_MANUAL_PREFERENCE=enabledManualValidatorListorg.eclipse.wst.wsi.ui.internal.WSIMessageValidator;
+USER_PREFERENCE=overrideGlobalPreferencesfalse
+eclipse.preferences.version=1
+override=false
+suspend=false
+vf.version=3


Property changes on: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/.settings/org.eclipse.wst.validation.prefs
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/.settings/org.maven.ide.eclipse.prefs
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/.settings/org.maven.ide.eclipse.prefs	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/.settings/org.maven.ide.eclipse.prefs	2009-07-27 05:48:28 UTC (rev 28480)
@@ -0,0 +1,8 @@
+#Fri Jun 05 13:52:09 BST 2009
+activeProfiles=
+eclipse.preferences.version=1
+fullBuildGoals=process-test-resources
+includeModules=false
+resolveWorkspaceProjects=true
+resourceFilterGoals=process-resources resources\:testResources
+version=1


Property changes on: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/.settings/org.maven.ide.eclipse.prefs
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/my_rules/permissions/zone1/1.0.0-SNAPSHOT/permissions.drl
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/my_rules/permissions/zone1/1.0.0-SNAPSHOT/permissions.drl	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/my_rules/permissions/zone1/1.0.0-SNAPSHOT/permissions.drl	2009-07-27 05:48:28 UTC (rev 28480)
@@ -0,0 +1,14 @@
+package permissions.zone1
+
+import org.jboss.drools.guvnor.importgenerator.example.domain.RuleResultVO;
+import org.jboss.drools.guvnor.importgenerator.example.domain.PermissionVO;
+import org.jboss.drools.guvnor.importgenerator.example.domain.UserVO;
+
+rule "does the user have permission to access zone 1"
+when
+	not RuleResultVO()
+    $user: UserVO($permissions : permissions)
+    eval($permissions.contains(new PermissionVO("ZONE_1")))
+then
+	insert(new RuleResultVO("success"));
+end
\ No newline at end of file


Property changes on: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/my_rules/permissions/zone1/1.0.0-SNAPSHOT/permissions.drl
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/my_rules/permissions/zone2/1.0.0-SNAPSHOT/permissions1.drl
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/my_rules/permissions/zone2/1.0.0-SNAPSHOT/permissions1.drl	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/my_rules/permissions/zone2/1.0.0-SNAPSHOT/permissions1.drl	2009-07-27 05:48:28 UTC (rev 28480)
@@ -0,0 +1,14 @@
+package permissions.zone2
+
+import org.jboss.drools.guvnor.importgenerator.example.domain.RuleResultVO;
+import org.jboss.drools.guvnor.importgenerator.example.domain.PermissionVO;
+import org.jboss.drools.guvnor.importgenerator.example.domain.UserVO;
+
+rule "does the user have permission to access zone 2"
+when
+	!RuleResult()
+    $user: UserVO($permissions : permissions)
+    eval($permissions.contains(new PermissionVO("ZONE_2")))
+then
+	insert(new RuleResultVO("success"));
+end
\ No newline at end of file


Property changes on: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/my_rules/permissions/zone2/1.0.0-SNAPSHOT/permissions1.drl
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/my_rules/permissions/zone2/1.0.0-SNAPSHOT/permissions2.drl
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/my_rules/permissions/zone2/1.0.0-SNAPSHOT/permissions2.drl	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/my_rules/permissions/zone2/1.0.0-SNAPSHOT/permissions2.drl	2009-07-27 05:48:28 UTC (rev 28480)
@@ -0,0 +1,15 @@
+package permissions.zone2
+
+import org.jboss.drools.guvnor.importgenerator.example.domain.RuleResultVO;
+import org.jboss.drools.guvnor.importgenerator.example.domain.PermissionVO;
+import org.jboss.drools.guvnor.importgenerator.example.domain.UserVO;
+import org.jboss.drools.guvnor.importgenerator.example.InvalidClass;
+
+rule "does the user have permission to return from ZONE 2"
+when
+	not RuleResult()
+    $user: UserVO($permissions : permissions)
+    eval($permissions.contains(new PermissionVO("RETURN_ZONE_2")))
+then
+	insert(new RuleResultVO("success"));
+end
\ No newline at end of file


Property changes on: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/my_rules/permissions/zone2/1.0.0-SNAPSHOT/permissions2.drl
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/my_rules/ping/1.0.0-SNAPSHOT/ping.drl
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/my_rules/ping/1.0.0-SNAPSHOT/ping.drl	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/my_rules/ping/1.0.0-SNAPSHOT/ping.drl	2009-07-27 05:48:28 UTC (rev 28480)
@@ -0,0 +1,9 @@
+package ping.test
+
+rule "ping test rule"
+when
+	s: String(toString == "ping")
+then
+	insert("pong");
+	retract(s);
+end
\ No newline at end of file


Property changes on: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/my_rules/ping/1.0.0-SNAPSHOT/ping.drl
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/my_rules/thresholds/amounts/1.0.0-SNAPSHOT/.~lock.thresholdValues.xls#
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/my_rules/thresholds/amounts/1.0.0-SNAPSHOT/.~lock.thresholdValues.xls#	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/my_rules/thresholds/amounts/1.0.0-SNAPSHOT/.~lock.thresholdValues.xls#	2009-07-27 05:48:28 UTC (rev 28480)
@@ -0,0 +1 @@
+Mat Allen,mallen,mallen.redhat,13.07.2009 10:11,file:///home/mallen/.openoffice.org/3;
\ No newline at end of file


Property changes on: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/my_rules/thresholds/amounts/1.0.0-SNAPSHOT/.~lock.thresholdValues.xls#
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/my_rules/thresholds/amounts/1.0.0-SNAPSHOT/thresholdValues.xls
===================================================================
(Binary files differ)


Property changes on: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/my_rules/thresholds/amounts/1.0.0-SNAPSHOT/thresholdValues.xls
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/pom.xml
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/pom.xml	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/pom.xml	2009-07-27 05:48:28 UTC (rev 28480)
@@ -0,0 +1,205 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" 
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.jboss.drools.guvnor.tools</groupId>
+  <artifactId>guvnor-importer</artifactId>
+  <packaging>jar</packaging>
+  <name>guvnor-importer</name>
+  <version>1.0.0-SNAPSHOT</version>
+  <description></description>
+  
+  <properties>
+  	<drools.version>5.0.1</drools.version>
+  	<guvnor.server.url>http://localhost:8080/brms</guvnor.server.url>
+  </properties>
+  
+  <build>
+  	<pluginManagement>
+  		<plugins>
+  			<plugin>
+  				<groupId>org.apache.maven.plugins</groupId>
+  				<artifactId>maven-compiler-plugin</artifactId>
+  				<configuration>
+  					<source>1.5</source>
+  					<target>1.5</target>
+  				</configuration>
+  			</plugin>
+  		</plugins>
+  	</pluginManagement>
+  </build>
+  
+  <profiles>
+	<profile>
+		<id>gen-brms-import</id>
+		<activation>
+			<activeByDefault>true</activeByDefault>
+		</activation>
+		<build>
+			<plugins>
+				<plugin>
+					<groupId>org.codehaus.mojo</groupId>
+					<artifactId>exec-maven-plugin</artifactId>
+					<version>1.1</version>
+	
+					<executions>
+						<execution>
+							<id>gen-brms-import</id>
+							<phase>package</phase> <!-- after compile since we need the class to be on the cp before executing -->
+							<goals>
+								<goal>java</goal>
+							</goals>
+						</execution>
+					</executions>
+	
+					<configuration>
+						<mainClass>org.jboss.drools.guvnor.importgenerator.ImportFileGenerator</mainClass>
+							<arguments>
+								<argument>-classpath</argument> <!-- bring in the project classpath dependencies below -->
+								
+								<argument>-p</argument>
+								<argument>${basedir}/my_rules</argument> <!-- directory to start importing from -->
+								
+								<argument>-s</argument>
+								<argument>my_rules</argument> <!-- directory to start importing from -->
+								
+								<argument>-e</argument>
+								<argument>[0-9|.]*[.|-]+[SNAPSHOT]+[.|-]*[09|.]*</argument> <!-- matches the version directory if it exists -->
+								
+								<argument>-r</argument>
+								<argument>true</argument> <!-- recurse sub-directories when looking for rules files -->
+								
+								<argument>-u</argument>
+								<argument>admin</argument> <!-- user account name to import the rules files as -->
+								
+								<argument>-f</argument>
+								<argument>drl,xls</argument> <!-- rule file extension to import -->
+								
+								<argument>-o</argument>
+								<argument>guvnor-import.xml</argument> <!-- import file generated -->
+								
+								<argument>-c</argument>
+								<argument>functions.drl</argument> <!-- functions file to look for -->
+								
+								<argument>-n</argument>
+								<argument>1.0.0-SNAPSHOT</argument> <!-- default snapshot name -->
+								
+								<argument>-k</argument>
+								<argument>${guvnor.server.url}/org.drools.guvnor.Guvnor/package/</argument> <!-- kagent brms server -->
+
+								<argument>-b</argument>
+								<argument>${basedir}</argument>
+								
+								<!-- remove this argument if you don't want to generate a kagent change-set file -->
+								<argument>-w</argument>
+								<argument>kagent-changeset.xml</argument> <!-- kagent changeset file output -->
+								
+								<argument>-V</argument> <!-- verbose output (v=verbose, V=very verbose -->
+							</arguments>
+					</configuration>
+	
+				</plugin>
+			</plugins>
+		</build>
+	</profile>
+  </profiles>
+  
+  <repositories>
+	<repository>
+		<id>jboss-std</id>
+		<url>http://repository.jboss.com/maven2</url>
+	</repository>
+  </repositories>
+  
+  <dependencies>
+  	<dependency>
+      <groupId>commons-httpclient</groupId>
+      <artifactId>commons-httpclient</artifactId>
+      <version>3.1</version>
+  	</dependency>
+  	<dependency>
+      <groupId>javax.servlet</groupId>
+      <artifactId>servlet-api</artifactId>
+      <version>2.4</version>
+  	</dependency>
+    <dependency>
+      <groupId>org.drools</groupId>
+      <artifactId>drools-repository</artifactId>
+      <version>${drools.version}</version>
+    </dependency>
+    
+    <!-- for RuleAgent testing -->
+    <dependency>
+      <groupId>org.drools</groupId>
+      <artifactId>drools-core</artifactId>
+      <version>${drools.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.drools</groupId>
+      <artifactId>drools-compiler</artifactId>
+      <version>${drools.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.drools</groupId>
+      <artifactId>drools-decisiontables</artifactId>
+      <version>${drools.version}</version>
+    </dependency>
+	<!-- end RuleAgent testing dependencies -->
+	
+	<dependency>
+		<groupId>commons-beanutils</groupId>
+		<artifactId>commons-beanutils</artifactId>
+		<version>1.7.0</version>
+	</dependency>
+	
+	<!-- domain dependencies for compiling rules Rules-->
+	<dependency>
+		<groupId>org.jboss.drools.guvnor.tools.example</groupId>
+		<artifactId>example-domain</artifactId>
+		<version>1.0.0-SNAPSHOT</version>
+	</dependency>
+	
+	
+	<!--dependency>
+		<groupId>org.dyui</groupId>
+		<artifactId>dyui-domain</artifactId>
+		<version>${dyui.framework.version}</version>
+	</dependency>
+	<dependency>
+		<groupId>gov.tfl.ors.portal.domain</groupId>
+		<artifactId>portal-domain</artifactId>
+		<version>1.0.0-SNAPSHOT</version>
+	</dependency>
+	<dependency>
+		<groupId>gov.tfl.ors.portal.fields</groupId>
+		<artifactId>fields</artifactId>
+		<version>1.0.0-SNAPSHOT</version>
+	</dependency>
+	<dependency>
+		<groupId>gov.tfl.ors.portal.rules</groupId>
+		<artifactId>rules</artifactId>
+		<version>1.0.0-SNAPSHOT</version>
+	</dependency>
+	<dependency>
+		<groupId>gov.tfl.ors.portal.services</groupId>
+		<artifactId>refundcase-service</artifactId>
+		<version>1.0.0-SNAPSHOT</version>
+	</dependency>
+	<dependency>
+		<groupId>org.ostermiller</groupId>
+		<artifactId>utils</artifactId>
+		<version>1.07.00</version>
+	</dependency>
+	<dependency>
+		<groupId>gov.tfl.ors.portal.services</groupId>
+		<artifactId>reference-service</artifactId>
+		<version>1.0.0-SNAPSHOT</version>
+	</dependency>
+	<dependency>
+		<groupId>gov.tfl.ors.portal.services</groupId>
+		<artifactId>mail-service</artifactId>
+		<version>1.0.0-SNAPSHOT</version>
+	</dependency-->
+
+  </dependencies>
+</project>


Property changes on: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/pom.xml
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/CmdArgsParser.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/CmdArgsParser.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/CmdArgsParser.java	2009-07-27 05:48:28 UTC (rev 28480)
@@ -0,0 +1,90 @@
+package org.jboss.drools.guvnor.importgenerator;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Command line argument parser
+ * 
+ * @author <a href="mailto:mallen at redhat.com">Mat Allen</a>
+ */
+public class CmdArgsParser{
+  private static Map<Parameters, String> options=new HashMap<Parameters, String>();
+  private static Map<String, Parameters> map=new HashMap<String, Parameters>();
+  public enum Parameters{
+    OPTIONS_PATH,
+    OPTIONS_PACKAGE_START,
+    OPTIONS_PACKAGE_EXCLUDE,
+    OPTIONS_RECURSIVE,
+    OPTIONS_CREATOR,
+    OPTIONS_EXTENSIONS,
+    OPTIONS_OUTPUT_FILE,
+    OPTIONS_SNAPSHOT_NAME,
+    OPTIONS_FUNCTIONS_FILE,
+    OPTIONS_KAGENT_CHANGE_SET_SERVER,
+    OPTIONS_KAGENT_CHANGE_SET_FILE,
+    OPTIONS_BASE_DIR,
+    OPTIONS_VERBOSE,
+    OPTIONS_VERY_VERBOSE
+  }
+  
+  public CmdArgsParser(){
+    map.put("-p", Parameters.OPTIONS_PATH);
+    map.put("-e", Parameters.OPTIONS_PACKAGE_EXCLUDE);
+    map.put("-s", Parameters.OPTIONS_PACKAGE_START);
+    map.put("-r", Parameters.OPTIONS_RECURSIVE);
+    map.put("-u", Parameters.OPTIONS_CREATOR);
+    map.put("-f", Parameters.OPTIONS_EXTENSIONS);
+    map.put("-o", Parameters.OPTIONS_OUTPUT_FILE);
+    map.put("-n", Parameters.OPTIONS_SNAPSHOT_NAME);
+    map.put("-c", Parameters.OPTIONS_FUNCTIONS_FILE);
+    map.put("-k", Parameters.OPTIONS_KAGENT_CHANGE_SET_SERVER);
+    map.put("-w", Parameters.OPTIONS_KAGENT_CHANGE_SET_FILE);
+    map.put("-b", Parameters.OPTIONS_BASE_DIR);
+    map.put("-v", Parameters.OPTIONS_VERBOSE);
+    map.put("-vv", Parameters.OPTIONS_VERY_VERBOSE);
+  }
+  
+  public String getOption(Parameters parameterName){
+    return options.get(parameterName);
+  }
+  
+  public Map<Parameters, String> parse(String[] args){
+    if (args.length==0){
+      args=new String[]{ //default arguments
+          "-classpath",
+          "-p", "/home/mallen/workspace/guvnor-importer/my_rules",
+          "-s", "rules",
+          "-e", "[0-9|.]*[.|-]+[SNAPSHOT]+[.|-]*[09|.]*",
+          "-r", "true",
+          "-u","admin",
+          "-f","drl,xls",
+          "-o","generated.xml",
+          "-n","1.0.0-SNAPSHOT",
+          "-c","functions.drl",
+          "-k", "http://localhost:8080/brms/org.drools.guvnor.Guvnor/package/",
+          "-b", "/home/mallen/workspace/guvnor-importer",
+          "-w", "kagentChangeSet.xml",
+          "-V"};
+    }
+    for (int i=0;i<args.length;i++) {
+      String arg = args[i];
+      if (arg.equalsIgnoreCase("-classpath"))
+        continue;
+      if (arg.equalsIgnoreCase("-v")){
+        if (arg.equals("-V")) //if its uppercase then set the very verbose flag
+          options.put(Parameters.OPTIONS_VERY_VERBOSE, "true");
+        options.put(Parameters.OPTIONS_VERBOSE, "true");
+        continue;
+      }
+      if (arg.startsWith("-") && map.get(arg)!=null){ //it is a - param and is mapped
+        options.put(map.get(arg), args[++i]);
+      }
+    }
+    //display them so the user knows what the options values are
+    for (Parameters key : options.keySet()) {
+      System.out.println("   "+key.name()+"="+options.get(key));
+    }
+    return options;
+  }
+}
\ No newline at end of file


Property changes on: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/CmdArgsParser.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/Constants.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/Constants.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/Constants.java	2009-07-27 05:48:28 UTC (rev 28480)
@@ -0,0 +1,21 @@
+package org.jboss.drools.guvnor.importgenerator;
+
+/**
+ * Constants specifying the template files for generating the output
+ * 
+ * @author <a href="mailto:mallen at redhat.com">Mat Allen</a>
+ *
+ */
+public interface Constants {
+	static final String TEMPLATES_FOLDER = "templates";
+	static final String TEMPLATES_PARENT = "template_parent.xml";
+	static final String TEMPLATES_PACKAGE = "template_package.xml";
+	static final String TEMPLATES_SNAPSHOT = "template_snapshot.xml";
+	static final String TEMPLATES_RULE = "template_rule_{0}.xml";
+	static final String TEMPLATES_SNAPSHOT_RULE = "template_snapshot_rule_{0}.xml";
+	static final String DEFAULT_CREATOR="generated";
+	
+  static final String TEMPLATES_KAGENT_PARENT_INIT="template_change_set_parent.xml";
+  static final String TEMPLATES_KAGENT_CHILD_INIT="template_change_set_child.xml";
+
+}


Property changes on: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/Constants.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/GeneratedData.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/GeneratedData.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/GeneratedData.java	2009-07-27 05:48:28 UTC (rev 28480)
@@ -0,0 +1,31 @@
+package org.jboss.drools.guvnor.importgenerator;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Locale;
+import java.util.UUID;
+
+/**
+ * Provides any generated input to inject into the output templates
+ * 
+ * @author <a href="mailto:mallen at redhat.com">Mat Allen</a>
+ *
+ */
+public class GeneratedData {
+  /** formatter for the drools-guvnor xml timestamp */
+	public static SimpleDateFormat XMLDATEFORMAT  = new SimpleDateFormat("yyyy'-'MM'-'dd'T'HH:mm:ss.SSSZ", Locale.UK);
+	
+	/** generated uuid for new objects within the drools-guvnor jcr repository */
+  public static String generateUUID(){
+		return UUID.randomUUID().toString();
+	}
+  
+  /** @returns the current time in timestamp format. ie ie. 2009-06-09T19:06:44.783+01:00 */
+	public static String getTimestamp(){
+		Date now=new Date();
+		//ie. 2009-06-09T19:06:44.783+01:00
+		StringBuffer sb=new StringBuffer(XMLDATEFORMAT.format(now));
+		sb.insert(sb.length()-2, ":");
+		return sb.toString();
+	}
+}


Property changes on: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/GeneratedData.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/ImportFileGenerator.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/ImportFileGenerator.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/ImportFileGenerator.java	2009-07-27 05:48:28 UTC (rev 28480)
@@ -0,0 +1,298 @@
+package org.jboss.drools.guvnor.importgenerator;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.text.DecimalFormat;
+import java.text.MessageFormat;
+import java.text.NumberFormat;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+import org.drools.compiler.DroolsParserException;
+import org.jboss.drools.guvnor.importgenerator.CmdArgsParser.Parameters;
+import org.jboss.drools.guvnor.importgenerator.utils.FileIO;
+import org.jboss.drools.guvnor.importgenerator.utils.Logger;
+import org.joda.time.DateTime;
+import org.joda.time.Minutes;
+import org.joda.time.Seconds;
+
+/**
+ * a BRMS import file generator for drl and xml decision table files
+ * 
+ * @author <a href="mailto:mallen at redhat.com">Mat Allen</a>
+ */
+public class ImportFileGenerator implements Constants{
+  private Logger logger=null;
+	private CmdArgsParser options=null;
+	private String BASE_DIR=System.getProperty("user.dir");
+	public enum PackageObjectType{ PACKAGE, PACKAGE_SNAPSHOT }
+  public enum RuleObjectType{ RULE, SNAPSHOT_RULE }
+  
+	/**
+	 * The main action method
+	 * @param packages
+	 * @return
+	 * @throws Exception
+	 */
+	public String generateImportFile(Map<String, PackageFile> packages) throws Exception {
+		// go thru each replacer definition creating drl template replacements
+		//TODO: what is the org.drools.io.RuleSetReader ??? is this what Guvnor uses this to read the .drl file parts?
+		String draftStateReferenceUUID=GeneratedData.generateUUID();
+		String categoryReferenceUUID=GeneratedData.generateUUID();
+		
+		//reporting only
+		int cok=0, cerror=0, derror=0, terror=0, total=0;
+		
+		StringBuffer packageContents = new StringBuffer();
+		StringBuffer snapshotContents = new StringBuffer();
+		double i=0,pct=0;
+		for (Iterator<String> it = packages.keySet().iterator(); it.hasNext();) {
+		  double newPct=(int)(++i/(double)packages.size()*100);
+		  pct=newPct;
+			String packageName = (String) it.next();
+			logger.debug(new DecimalFormat("##0").format(pct)+"% - "+packageName);
+      PackageFile packageFile=packages.get(packageName);
+			
+			Map<String, Object> context=new HashMap<String, Object>();
+			context.put("file", packageFile.getFile());
+			context.put("draftStateReferenceUUID", draftStateReferenceUUID);
+			context.put("categoryReferenceUUID", categoryReferenceUUID);
+			context.put("packageFile", packageFile);
+			
+			//extract the rule contents
+			StringBuffer ruleContents = new StringBuffer();
+			StringBuffer snapshotRuleContents = new StringBuffer();
+			Map<String, Rule> rules=packageFile.getRules();
+			packageFile.buildPackage();
+			
+			for (Iterator<String> it2 = rules.keySet().iterator(); it2.hasNext();) {
+				String ruleName=(String)it2.next();
+				Rule rule=(Rule)rules.get(ruleName);
+				context.put("rule", rule);
+				//inject the rule values into the rule template
+				ruleContents.append(MessageFormat.format(readTemplate(MessageFormat.format(TEMPLATES_RULE, packageFile.getFormat())), getRuleObjects(context/*, RuleObjectType.RULE*/)));
+				
+				//inject the snapshot rule values in the the snapshot rule template
+				snapshotRuleContents.append(MessageFormat.format(readTemplate(MessageFormat.format(TEMPLATES_SNAPSHOT_RULE, packageFile.getFormat())), getRuleObjects(context/*, RuleObjectType.SNAPSHOT_RULE*/)));
+			}
+			
+			//inject the rule(s) into the package into the package contents
+			String packageTemplate = readTemplate(TEMPLATES_PACKAGE);// FileIO.readAll(new FileInputStream(new File(TEMPLATES_FOLDER, TEMPLATES_PACKAGE)));
+			packageContents.append(MessageFormat.format(packageTemplate, getPackageObjects(context, ruleContents, PackageObjectType.PACKAGE)));
+			
+			//inject the snapshot values into the snapshot contents
+			if (options.getOption(Parameters.OPTIONS_SNAPSHOT_NAME)!=null){
+			  snapshotContents.append(MessageFormat.format(readTemplate(TEMPLATES_SNAPSHOT), getPackageObjects(context, snapshotRuleContents, PackageObjectType.PACKAGE_SNAPSHOT)));
+			}
+			
+			//display status of each packageFile
+			total++;
+      if (packageFile.hasErrors()) {
+        terror++;
+        if (packageFile.hasCompilationErrors()){
+          cerror++;
+          logger.debugln(" - [COMPILATION/DEPENDENCY ERRORS]");
+          if ("true".equals(options.getOption(Parameters.OPTIONS_VERY_VERBOSE))){
+            logger.debugln(packageFile.getCompilationErrors().trim());
+            logger.debugln(packageFile.getDependencyErrors().trim());
+          }
+        } else if (packageFile.hasDependencyErrors()) {
+          derror++;
+          logger.debugln(" - [DEPENDENCY ERRORS]");
+          if ("true".equals(options.getOption(Parameters.OPTIONS_VERY_VERBOSE))){
+            logger.debugln(packageFile.getDependencyErrors().trim());
+          }
+        }
+      } else{
+        cok++; //increment the "total rules compiled successfully"
+        logger.debugln(" - [OK]");
+      }
+    }
+		
+		//replace the placemarkers with the package data
+		String parentContents = MessageFormat.format(readTemplate(TEMPLATES_PARENT), new Object[]{ 
+				packageContents
+				,categoryReferenceUUID
+				,draftStateReferenceUUID
+				,GeneratedData.getTimestamp()
+				,getSnapshotContents(snapshotContents)
+				});
+		
+		//write a summary report
+		logger.debugln("==========================");
+		logger.debugln("===  PACKAGE SUMMARY   ===");
+		logger.debugln("==========================");
+		logger.debugln(" Rules compiled OK:   "+ NumberFormat.getInstance().format(cok));
+		logger.debugln(" Errors:              "+ NumberFormat.getInstance().format(terror));
+		//comp or dep errors can no longer be detected accurately since many drl file can be in a single package
+//    logger.logln(" Compilation errors:  "+ NumberFormat.getInstance().format(cerror));
+//    logger.logln(" Dependency errors:   "+ NumberFormat.getInstance().format(derror));
+		logger.debugln("                      ____");
+		logger.debugln(" Total:               "+ NumberFormat.getInstance().format(total));
+		logger.debugln("==========================");
+		
+		return parentContents;
+	}
+	
+  /**
+   * returns a drools-5.0 formatted xml file for use with a drools 5.0 knowledge agent
+   * @param packages
+   * @return
+   * @throws Exception
+   */
+  public String generateKnowledgeAgentInitFile(Map<String, PackageFile> packages) throws Exception {
+      StringBuffer kagentInitContents = new StringBuffer();
+      String kagentChildTemplate = readTemplate(TEMPLATES_KAGENT_CHILD_INIT);
+      StringBuffer kagentChildContents=new StringBuffer();
+      for (Iterator<String> it = packages.keySet().iterator(); it.hasNext();) {
+          String packageName = (String) it.next();
+          PackageFile packageFile=packages.get(packageName);
+          kagentChildContents.append(MessageFormat.format(kagentChildTemplate, new Object[]{options.getOption(Parameters.OPTIONS_KAGENT_CHANGE_SET_SERVER), packageFile.getName()+"/"+options.getOption(Parameters.OPTIONS_SNAPSHOT_NAME), "PKG"}));
+      }
+      String kagentParentTemplate = readTemplate(TEMPLATES_KAGENT_PARENT_INIT);
+      kagentInitContents.append(MessageFormat.format(kagentParentTemplate, new Object[]{kagentChildContents.toString()}));
+      return kagentInitContents.toString();
+  }
+	
+	
+	private StringBuffer getSnapshotContents(StringBuffer snapshotContents){
+	  if (options.getOption(Parameters.OPTIONS_SNAPSHOT_NAME)!=null){
+	    return snapshotContents;
+	  }
+	  return new StringBuffer("");
+	}
+	
+	private String readTemplate(String templateConst) throws FileNotFoundException{
+		return FileIO.readAll(new FileInputStream(new File(new File(BASE_DIR, TEMPLATES_FOLDER), templateConst)));
+	}
+
+	private Object[] getPackageObjects(Map<String, Object> context, StringBuffer ruleContents, PackageObjectType type) throws UnsupportedEncodingException, DroolsParserException, IOException{
+		List<String> objects=new LinkedList<String>();
+		PackageFile packageFile=(PackageFile)context.get("packageFile");
+		switch (type){
+		case PACKAGE:
+		  objects.add(packageFile.getName());
+		  objects.add(getCreator());
+		  objects.add(packageFile.getImports());
+		  objects.add(ruleContents.toString());
+		  objects.add(GeneratedData.generateUUID());
+		  objects.add(GeneratedData.generateUUID());
+		  objects.add(GeneratedData.generateUUID());
+		  objects.add((String)context.get("draftStateReferenceUUID"));
+		  objects.add(GeneratedData.getTimestamp());
+		break;
+		case PACKAGE_SNAPSHOT:
+	    objects.add(packageFile.getName());
+      objects.add(packageFile.getName().substring(packageFile.getName().lastIndexOf(".")+1));// //aka the title
+      objects.add(options.getOption(Parameters.OPTIONS_SNAPSHOT_NAME));
+      objects.add(getCreator()); //3
+      objects.add(packageFile.getImports()); //4
+      objects.add(ruleContents.toString()); //5
+      objects.add((String)context.get("draftStateReferenceUUID"));
+      objects.add(GeneratedData.getTimestamp()); //7
+      //objects.add(FileIO.toBase64(DroolsHelper.compileRuletoPKG(packageFile))); //8
+      objects.add(FileIO.toBase64(packageFile.toByteArray()));
+      objects.add(GeneratedData.generateUUID()); //snapshot uuid
+      objects.add(GeneratedData.generateUUID()); //snapshot base+predecessor uuid
+      objects.add(GeneratedData.generateUUID()); //assets uuid
+      objects.add(GeneratedData.generateUUID()); //assets base+predecessor uuid
+      objects.add(GeneratedData.generateUUID()); //drools uuid
+      objects.add(GeneratedData.generateUUID()); //drools base+predecessor uuid
+
+		  break;
+		}
+		return objects.toArray(new Object[objects.size()]);
+	}
+
+
+	private Object[] getRuleObjects(Map<String, Object> context/*, RuleObjectType type*/){
+		List<String> objects=new LinkedList<String>();
+		PackageFile packageFile=(PackageFile)context.get("packageFile");
+		Rule rule=(Rule)context.get("rule");
+		
+		objects.add(rule.getRuleName());
+		objects.add(packageFile.getName());
+		objects.add(rule.getContent());
+		objects.add(GeneratedData.generateUUID()); //rule uuid
+		objects.add((String)context.get("draftStateReferenceUUID"));
+		objects.add((String)context.get("categoryReferenceUUID"));
+		objects.add(getCreator());
+		objects.add(GeneratedData.getTimestamp());
+		objects.add(packageFile.getFormat());
+		objects.add(GeneratedData.generateUUID()); //base version + predecessor (currently only used in snapshot)
+		if (packageFile.getFormat().equals("xls")){
+			objects.add(((File)context.get("file")).getName());
+		}
+		return objects.toArray(new Object[]{});
+	}
+	
+	
+	/**
+	 * get command line arguments
+	 * @return
+	 */
+	private String getCreator(){
+		if (options.getOption(Parameters.OPTIONS_CREATOR)!=null)
+			return options.getOption(Parameters.OPTIONS_CREATOR);
+		return DEFAULT_CREATOR;
+	}
+	
+	public void run(CmdArgsParser options) throws Exception{
+    SimpleDateFormat fmt=new SimpleDateFormat("yyyy/MM/dd hh:mm:ss");
+    Date startd=new Date();
+    DateTime start=new DateTime(startd);
+    this.options=options;
+    BASE_DIR=options.getOption(Parameters.OPTIONS_BASE_DIR);
+    logger=Logger.getLogger(ImportFileGenerator.class, options);
+    logger.debugln("Running BRMS Import Generator (started "+ fmt.format(startd) +"):");
+    
+		logger.debugln("Scanning directories...");
+		Map<String, PackageFile> details=PackageFile.buildPackages(options);
+		
+		logger.debugln("Generating 'Guvnor import data'...");
+		String guvnorImport=generateImportFile(details);
+		File guvnorImportFile=getFile(options.getOption(Parameters.OPTIONS_OUTPUT_FILE));
+		logger.debugln("Writing 'Guvnor import data to disk' ("+ guvnorImportFile.getAbsolutePath() +")");
+		FileIO.write(guvnorImport, guvnorImportFile);
+
+		if (options.getOption(Parameters.OPTIONS_KAGENT_CHANGE_SET_FILE)!=null){
+		  logger.debugln("Generating 'Knowledge agent changeset' data...");
+      String kagentChangeSet=generateKnowledgeAgentInitFile(details);
+      File kagentChangeSetFile=getFile(options.getOption(Parameters.OPTIONS_KAGENT_CHANGE_SET_FILE));
+      logger.debugln("Writing 'Knowledge agent changeset' to disk ("+ kagentChangeSetFile.getAbsolutePath() +")");
+      FileIO.write(kagentChangeSet, kagentChangeSetFile);
+		}
+		
+    DateTime end=new DateTime(System.currentTimeMillis());
+    int m=Minutes.minutesBetween(start, end).getMinutes();
+    int s=Seconds.secondsBetween(start, end).getSeconds()-(m*60);
+    logger.debugln("Finished in ("+m+"m"+s+"s)");
+	}
+	
+	private File getFile(String fileLoc){
+	  if (fileLoc.startsWith("/") || fileLoc.startsWith("~")){
+	    return new File(fileLoc);
+	  }else
+	    return new File(BASE_DIR, fileLoc);
+	}
+
+	public static void main(String[] args) {
+		ImportFileGenerator i = new ImportFileGenerator();
+		try {
+		  CmdArgsParser cmd=new CmdArgsParser();
+		  cmd.parse(args);
+			i.run(cmd);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+}


Property changes on: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/ImportFileGenerator.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/PackageFile.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/PackageFile.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/PackageFile.java	2009-07-27 05:48:28 UTC (rev 28480)
@@ -0,0 +1,519 @@
+package org.jboss.drools.guvnor.importgenerator;
+
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.FilenameFilter;
+import java.io.IOException;
+import java.io.StringReader;
+import java.io.UnsupportedEncodingException;
+import java.text.MessageFormat;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.drools.common.DroolsObjectOutputStream;
+import org.drools.compiler.DroolsError;
+import org.drools.compiler.DroolsParserException;
+import org.drools.compiler.PackageBuilder;
+import org.drools.decisiontable.InputType;
+import org.drools.rule.Package;
+import org.jboss.drools.guvnor.importgenerator.CmdArgsParser.Parameters;
+import org.jboss.drools.guvnor.importgenerator.utils.DroolsHelper;
+import org.jboss.drools.guvnor.importgenerator.utils.FileIO;
+
+/**
+ * Represents a drl package file found in the file system
+ * 
+ * @author <a href="mailto:mallen at redhat.com">Mat Allen</a>
+ */
+public class PackageFile {
+  private static final String PH_RULE_START="rule ";
+  private static final String PH_PACKAGE_START="package ";
+  private static final String PH_NEWLINE="\n";
+  private static final String[] RULE_START_MATCHERS=new String[]{"rule \"", "rule\""};
+  private static final String[] RULE_END_MATCHERS=new String[] { "end\n", "\nend" };
+  private static final String PACKAGE_DELIMETER = ".";
+  private static String FUNCTIONS_FILE=null;
+  private Package pkg;
+	private File file;
+	private String imports=""; //default to no imports
+  private String dependencyErrors="";
+  private String compilationErrors="";
+  private Map<String, Rule> rules=new HashMap<String, Rule>();
+  private List<File> ruleFiles=new ArrayList<File>();
+  private String name;
+  
+  private enum Format{
+    DRL(".drl"),
+    XLS(".xls");
+    String value;
+    Format(String value){
+      this.value=value;
+    }
+  }
+  
+  	/**
+	 * goes through the file system calling extract to build a list of PackageFile objects
+	 * @param options
+	 * @return
+	 * @throws Exception
+	 */
+	public static Map<String, PackageFile> buildPackages(CmdArgsParser options) throws Exception{
+		String path=options.getOption(Parameters.OPTIONS_PATH);
+		FUNCTIONS_FILE=options.getOption(Parameters.OPTIONS_FUNCTIONS_FILE);
+		Map<String, PackageFile> result = new HashMap<String, PackageFile>();
+		File location=new File(path);
+		if (!location.isDirectory())
+			throw new Exception("path must be a directory");
+		
+		buildPackageForDirectory(result, location, options);
+		return result;
+	}
+	
+	/**
+	 * Populates the <param>packages</param> parameter with PackageFile objects representing files within the specified <param>directory</param>
+	 * @param packages
+	 * @param directory
+	 * @param options
+	 * @throws FileNotFoundException
+	 * @throws UnsupportedEncodingException
+	 */
+	private static void buildPackageForDirectory(Map<String, PackageFile> packages, File directory, CmdArgsParser options) throws FileNotFoundException, UnsupportedEncodingException, DroolsParserException, IOException{
+		boolean recurse="true".equals(options.getOption(Parameters.OPTIONS_RECURSIVE));
+
+		File[] files=directory.listFiles(
+				new FilenameFilter(){
+						public boolean accept(File dir, String name){
+							return !name.startsWith(".");
+						}}
+				);
+		for (int i = 0; i < files.length; i++) {
+		  //if it's a directory with files then build a package
+		  if (files[i].isDirectory()){
+		    File[] ruleFiles=getRuleFiles(files[i], options);
+		    if (ruleFiles.length>0){
+		      PackageFile packageFile=parseRuleFiles(ruleFiles, options);
+		      packageFile.setName(getPackageName(files[i], options));
+		      packages.put(packageFile.getName(), packageFile);
+		    }else{
+		      if (recurse)
+		        buildPackageForDirectory(packages, files[i], options);
+		    }
+		  }
+		}
+	}
+	
+
+  private static File[] getRuleFiles(File directory, CmdArgsParser options){
+	  if (directory.isDirectory()){
+	    final String extensionList = options.getOption(Parameters.OPTIONS_EXTENSIONS);
+	    File[] files=directory.listFiles(
+        new FilenameFilter(){
+            public boolean accept(File dir, String name){
+              return !name.startsWith(".") && name.matches(buildRE(extensionList));
+            }}
+        );
+	    List<File> result=new ArrayList<File>();
+	    for (int i = 0; i < files.length; i++) {
+        File f = files[i];
+        if (f.isFile())
+          result.add(f);
+      }
+	    return result.toArray(new File[result.size()]);
+	  }
+	  return new File[]{};
+	}
+	
+	private static PackageFile parseRuleFiles(File[] ruleFiles, CmdArgsParser options) throws IOException, DroolsParserException {
+    PackageFile result=new PackageFile();
+    for (int i = 0; i < ruleFiles.length; i++) {
+      File file = ruleFiles[i];
+      if (file.getName().endsWith(".drl")) {
+        parseDrlFile(file, result, options);
+        result.addRuleFile(file);
+      } else if (file.getName().endsWith(".xls")) {
+        if (result.getRuleFiles().size()>1){
+          //this is because the binary data needs a filename associated in the xml, and if there's multiple files when which one do you use?
+          throw new DroolsParserException("Can't parse more than one .xls decision table file in a single directory ["+ file.getParentFile().getPath() +"]");
+        }
+        parseXlsFile(file, result, options);
+        result.addRuleFile(file);
+      }
+    }
+    return result;
+  }
+	
+	private static void parseXlsFile(File file, PackageFile packageFile, CmdArgsParser options) throws FileNotFoundException, UnsupportedEncodingException{
+	  String content=FileIO.readAllAsBase64(file);
+	  packageFile.setName(getPackageName(file, options));
+	  packageFile.setFile(file);
+	  packageFile.getRules().put(file.getName(), new Rule(file.getName(), content));
+	}
+	
+  private static void parseDrlFile(File file, PackageFile packageFile, CmdArgsParser options) throws FileNotFoundException{
+    String content = FileIO.readAll(new FileInputStream(file));
+    int packageLoc = content.indexOf(PH_PACKAGE_START); // usually 0
+    int ruleLoc = getRuleStart(content, 0);// variable
+    //packageFile.setPackageName(getPackageName(file, options));
+    if (ruleLoc < 0)
+      return; // there are no rule's in this file (perhaps functions or other?)
+    String imports = content.substring(packageLoc, ruleLoc);
+    packageFile.addImports(imports);
+
+    try {
+      boolean moreRules = true;
+      while (moreRules) {
+        int endLoc = getLoc(content, ruleLoc, RULE_END_MATCHERS) + 4;
+        String ruleContents = content.substring(ruleLoc, endLoc);
+        ruleLoc = getRuleStart(content, endLoc);
+        moreRules = ruleLoc >= 0;
+        Rule rule = new Rule(findRuleName(ruleContents, options), ruleContents);
+        packageFile.getRules().put(rule.getRuleName(), rule);
+      }
+    } catch (StringIndexOutOfBoundsException e) {
+      System.err.print("Error with file: " + file.getName() + "\n");
+    }
+  }
+	
+  /**
+   * compiles the rule files into a package and generates any error details
+   * @throws IOException
+   * @throws DroolsParserException
+   */
+	public void buildPackage() throws IOException, DroolsParserException{
+	  PackageBuilder pb = new PackageBuilder();
+	  for (File file : getRuleFiles()) {
+	    if (FUNCTIONS_FILE!=null){
+        File functionsFile=new File(file.getParentFile().getPath(), FUNCTIONS_FILE);
+        if (functionsFile.exists()){
+          pb.addPackageFromDrl(new FileReader(functionsFile));
+        }
+	    }
+	    if (isFormat(Format.DRL)){
+	      pb.addPackageFromDrl(new FileReader(file));
+	    }else if (isFormat(Format.DRL)){
+	      pb.addPackageFromDrl(new StringReader(DroolsHelper.compileDTabletoDRL(file, InputType.XLS)));
+	    }
+	  }
+    this.pkg=pb.getPackage();
+    if (pkg==null) { // compilation error - the rule is syntactically incorrect
+      for (int i = 0; i < pb.getErrors().getErrors().length; i++) {
+        DroolsError msg = pb.getErrors().getErrors()[i];
+        addCompilationError(msg.getMessage());
+      }
+    } else if (pkg!=null && !pkg.isValid()) {
+      addDependencyError(pkg.getErrorSummary());
+    }
+	}
+	/** impl that determines whether you have dependency errors 
+	 * - this is not completed - unsure how to display/count error packages if you get one comp error and one dep error in a simple package
+	 */
+  public void buildPackageWithAccurateDependencyErrorDetection() throws IOException, DroolsParserException {
+    PackageBuilder resBuilder = new PackageBuilder();
+    for (File file : getRuleFiles()) {
+      PackageBuilder pb = new PackageBuilder();
+      if (FUNCTIONS_FILE != null) {
+        File functionsFile = new File(file.getParentFile().getPath(), FUNCTIONS_FILE);
+        if (functionsFile.exists()) {
+          pb.addPackageFromDrl(new FileReader(functionsFile));
+        }
+      }
+      if (isFormat(Format.DRL)){
+        pb.addPackageFromDrl(new FileReader(file));
+      }else if (isFormat(Format.DRL)){
+        pb.addPackageFromDrl(new StringReader(DroolsHelper.compileDTabletoDRL(file, InputType.XLS)));
+      }
+      Package check=pb.getPackage();
+      if (check == null) { // compilation error - the rule is syntactically incorrect
+        for (int i = 0; i < pb.getErrors().getErrors().length; i++) {
+          DroolsError msg = pb.getErrors().getErrors()[i];
+          addCompilationError(msg.getMessage());
+        }
+      } else if (check != null && !check.isValid()) {
+        addDependencyError(check.getErrorSummary());
+        resBuilder.addPackage(pb.getPackage());
+      }
+      resBuilder.addPackage(check);
+    }
+    this.pkg=resBuilder.getPackage();
+  }	
+	/**
+	 * 
+	 * @return
+	 * @throws IOException
+	 */
+	public byte[] toByteArray() throws IOException{
+	  if (pkg!=null){
+      ByteArrayOutputStream baos = new ByteArrayOutputStream();
+      DroolsObjectOutputStream doos = new DroolsObjectOutputStream(baos);
+      doos.writeObject(pkg);
+      return baos.toByteArray();
+	  }else{
+	    return new byte[]{};
+//	    throw new IOException("Package not built yet");
+	  }
+	}
+	
+	public void addRuleFile(File ruleFile){
+	  ruleFiles.add(ruleFile);
+	}
+	
+	public List<File> getRuleFiles() {
+    return ruleFiles;
+  }
+
+//  public String getCompiledPackage() throws UnsupportedEncodingException, DroolsParserException, IOException{
+//	  return FileIO.toBase64(DroolsHelper.compileRuletoPKG(this));
+//	}
+  
+
+	
+	/**
+	 * Given a comma separated list of file extensions, this method returns a regular expression to match them
+	 * @param extensions
+	 * @return
+	 */
+	private static String buildRE(String extensions){
+		//String RE="[a-zA-Z0-9-_]+\\.({0})$";
+	  String RE=".+\\.({0})$";
+		String[] xtns=extensions.split(",");
+		for (int i = 0; i < xtns.length; i++) {
+			String xtn = "("+xtns[i]+")";
+			if (i<xtns.length-1)
+				xtn+="|{0}";
+			RE=MessageFormat.format(RE, xtn);
+		}
+		return RE;
+	}
+	
+	/**
+	 * Reads the contents of a single file into a useful internal object structure 
+	 * @param file
+	 * @return
+	 * @throws FileNotFoundException
+	 */
+//	public static PackageFile extract(File file, CmdArgsParser options) throws FileNotFoundException, UnsupportedEncodingException{
+//		PackageFile result=new PackageFile();
+//		result.setFormat(FileIO.getExtension(file));
+//		result.setBinary(!result.getFormat().endsWith(DRL_FILE_EXTENSION));
+//		if (!result.isBinary()){
+//			String content=FileIO.readAll(new FileInputStream(file));
+//			int packageLoc=content.indexOf(PH_PACKAGE_START); //usually 0
+//			int ruleLoc=getRuleStart(content, 0);// variable
+//      result.setPackageName(getPackageName(file, options)); //get package name from directory structure
+//			if (ruleLoc<0) return result; // there are no rule's in this file (perhaps functions or other?)
+//			String imports=content.substring(packageLoc, ruleLoc);
+//			result.setImports(imports);
+//			
+//			try {
+//				boolean moreRules = true;
+//				while (moreRules) {
+//					int endLoc = getLoc(content, ruleLoc, RULE_END_MATCHERS)+4;
+//					String ruleContents = content.substring(ruleLoc, endLoc);
+//					ruleLoc = getRuleStart(content, endLoc);
+//					moreRules = ruleLoc >= 0;
+//					Rule rule = new Rule(findRuleName(ruleContents, options), ruleContents);
+//					result.getRules().put(rule.getRuleName(), rule);
+//				}
+//			} catch (StringIndexOutOfBoundsException e) {
+//				System.err.print("Error with file: " + file.getName() + "\n");
+//			}
+//		}else{
+//			//binary format (ie. xls)
+//			String content=FileIO.readAllAsBase64(file);
+//			result.setPackageName(getPackageName(file, options));
+//			result.getRules().put(file.getName(), new Rule(file.getName(), content));
+//		}
+//		
+//		return result;
+//	}
+	
+	 /**
+   * returns "approval.determine" where path is /home/mallen/workspace/rules/approval/determine/1.0.0.SNAPSHOT/file.xls
+   * and options "start" is "rules" and end is "[0-9|.]*[SNAPSHOT]+[0-9|.]*" ie. any number, dot and word SNAPSHOT
+   * @param file
+   * @param options
+   * @return
+   */
+	 private static String getPackageName(File directory, CmdArgsParser options) {
+    String startPath = directory.getPath();
+    Matcher m = Pattern.compile("([^/]+)").matcher(startPath);
+    List<String> lpath = new ArrayList<String>();
+    while (m.find())
+      lpath.add(m.group());
+    String[] path = lpath.toArray(new String[lpath.size()]);
+    StringBuffer sb = new StringBuffer();
+    for (int i = path.length - 1; i >= 0; i--) {
+      String dir = path[i];
+      if ((dir.matches(options.getOption(Parameters.OPTIONS_PACKAGE_EXCLUDE))))
+        continue;
+      if ((dir.equals(options.getOption(Parameters.OPTIONS_PACKAGE_START))))
+        break; //since we are working in reverse, it's time to exit
+      sb.insert(0, PACKAGE_DELIMETER).insert(0, dir);
+    }
+    if (sb.substring(sb.length() - 1).equals(PACKAGE_DELIMETER))
+      sb.delete(sb.length() - 1, sb.length());
+
+    return sb.toString();
+  }
+	
+	/**
+	 * Gets the start position of the next rule in the package (<param>contents</param>)
+	 * @param contents
+	 * @param startLoc
+	 * @return
+	 */
+	private static int getRuleStart(String contents, int startLoc){
+		return getLoc(contents, startLoc, RULE_START_MATCHERS);
+	}
+	
+	private static int getLoc(String contents, int startLoc, String[] markers){
+		int[] a=new int[markers.length];
+		for (int i = 0; i < markers.length; i++) {
+			String marker = markers[i];
+			a[i]=contents.indexOf(marker, startLoc);
+		}
+		
+		//sort
+		int i,j,tmp;
+		for (int x=0;x<a.length;x++){
+			i = x;
+			for (j=x+1;j<a.length;j++){ 
+				if (a[j] < a[i]) 
+					i =j; 
+			}
+			tmp = a[x]; 
+			a[x]=a[i]; 
+			a[i]=tmp; 
+		}
+		for (int k = 0; k < a.length; k++) {
+			if (a[k]>=0)
+			  return a[k]; //return the lowest non-negative number
+		}
+		return -1;
+	}
+	
+	/**
+	 * returns the rule name given the entire rule content
+	 * @param ruleContents
+	 * @return
+	 */
+	private static String findRuleName(String ruleContents, CmdArgsParser options){
+		//TODO: this is incorrect - what if a rule starts 'rule"rule1"'??? use the getRuleStart method to find the beginning
+	  String name=ruleContents.substring(ruleContents.indexOf(PH_RULE_START)+PH_RULE_START.length(), ruleContents.indexOf(PH_NEWLINE)).replaceAll("\"", "").trim();
+		if (!name.matches("[^'^/^<^>.]+")){ //Guvnor seems to not like some characters
+		  if ("true".equals(options.getOption(Parameters.OPTIONS_VERBOSE)))
+			  System.out.println("WARNING: fixing invalid rule name [old name="+name+"]");
+			name=name.replaceAll("'", ""); //remove all ' chars since they are not valid in rule names
+			name=name.replaceAll("/", "-"); //remove all / chars since they are not valid in rule names
+			name=name.replaceAll("<", "&lt;"); //remove all < chars since they are not valid in rule names
+			name=name.replaceAll(">", "&gt;"); //remove all > chars since they are not valid in rule names
+		}
+		return name;
+	}
+	
+	// GETTERS/SETTERS for PackageFile object
+	
+	public boolean isFormat(Format isFormat){
+    if (ruleFiles!=null && ruleFiles.size()>0){
+      String name=ruleFiles.get(0).getName().toLowerCase();
+	    return name.endsWith(isFormat.value);
+    }
+    return false;
+	}
+	public String getFormat() {
+	  if (ruleFiles!=null && ruleFiles.size()>0){
+	    String name=ruleFiles.get(0).getName().toLowerCase();
+	    if (name.endsWith("drl")){
+	      return "drl";
+	    }else if (name.endsWith("xls")){
+	      return "xls";
+	    }
+	  }
+		return "";
+	}
+//	public void setFormat(String format) {
+//		this.format = format;
+//	}
+	public File getFile() {
+		return file;
+	}
+	public void setFile(File file) {
+		this.file = file;
+	}
+  public String getDependencyErrors() {
+    return dependencyErrors;
+  }
+  public void setDependencyErrors(String dependencyErrors) {
+    this.dependencyErrors = dependencyErrors;
+  }
+  public boolean hasDependencyErrors() {
+    return dependencyErrors.length()>0;
+  }
+  public void addDependencyError(String dependencyError) {
+    this.dependencyErrors+=dependencyError+"\n";
+  }
+  public String getCompilationErrors() {
+    return compilationErrors;
+  }
+  public void setCompilationErrors(String compilationErrors) {
+    this.compilationErrors = compilationErrors;
+  }
+  public boolean hasCompilationErrors() {
+    return compilationErrors.length()>0;
+  }
+  public void addCompilationError(String compilationError) {
+    this.compilationErrors+=compilationError+"\n";
+  }
+  public boolean hasErrors(){
+    return hasCompilationErrors() || hasDependencyErrors();
+  }
+
+  public Package getPkg() {
+    return pkg;
+  }
+
+  public void setPkg(Package pkg) {
+    this.pkg = pkg;
+  }
+
+  public String getImports() {
+    return imports;
+  }
+
+  public void addImports(String imports) {
+    //strip out any "package " lines from additional imports
+    StringBuffer sb=new StringBuffer(imports);
+    if (imports.length()>0){
+      int posPackage=imports.indexOf("package ");
+      sb.delete(posPackage, imports.indexOf("\n", posPackage));
+    }
+    this.imports=new StringBuffer().append(imports).append("\n").append(sb).toString();
+  }
+
+  public Map<String, Rule> getRules() {
+    return rules;
+  }
+
+  public void setRules(Map<String, Rule> rules) {
+    this.rules = rules;
+  }
+ 
+  public String getName() {
+    return name;
+  }
+
+  public void setName(String name) {
+    this.name = name;
+  }
+ 
+  public String toString(){
+    return "PackageFile[name="+name+",format="+getFormat()+"]";
+  }
+}
\ No newline at end of file


Property changes on: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/PackageFile.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/Rule.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/Rule.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/Rule.java	2009-07-27 05:48:28 UTC (rev 28480)
@@ -0,0 +1,35 @@
+package org.jboss.drools.guvnor.importgenerator;
+
+
+/**
+ * Represents an individual rule within a drl package file found in the file system
+ * 
+ * @author <a href="mailto:mallen at redhat.com">Mat Allen</a>
+ */
+public class Rule{
+	private String ruleName;
+	private String content;
+	
+	/**
+	 * Std constructor used within the PackageFile parser
+	 * 
+	 * @param ruleName
+	 * @param content
+	 */
+	public Rule(String ruleName, String content){
+		this.ruleName=ruleName;
+		this.content=content;
+	}
+	public String getRuleName() {
+		return ruleName;
+	}
+	public void setRuleName(String ruleName) {
+		this.ruleName = ruleName;
+	}
+	public String getContent() {
+		return content;
+	}
+	public void setContent(String content) {
+		this.content = content;
+	}
+}
\ No newline at end of file


Property changes on: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/Rule.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/test/TestRuleDeployment.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/test/TestRuleDeployment.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/test/TestRuleDeployment.java	2009-07-27 05:48:28 UTC (rev 28480)
@@ -0,0 +1,133 @@
+package org.jboss.drools.guvnor.importgenerator.test;
+
+import java.io.ByteArrayInputStream;
+import java.io.InputStreamReader;
+import java.net.URL;
+import java.net.URLConnection;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Properties;
+import org.drools.RuleBase;
+import org.drools.StatelessSession;
+import org.drools.StatelessSessionResult;
+import org.drools.agent.HttpClientImpl;
+import org.drools.agent.RuleAgent;
+import org.drools.common.DroolsObjectInputStream;
+import org.drools.definition.KnowledgePackage;
+import org.drools.definitions.impl.KnowledgePackageImp;
+import org.drools.rule.Package;
+
+/**
+ * Test class to check that rules have been deployed correctly.
+ * 
+ * @author <a href="mailto:mallen at redhat.com">Mat Allen</a>
+ */
+public class TestRuleDeployment {
+  public enum RuleAgentType{ HTTP, FILE_DRL, FILE_PKG }
+	private static final String ruleServer="http://localhost:8080/brms";
+	private static final String packageName="ping";
+	private static final String snapshotName="1.0.0-SNAPSHOT";
+	
+	public void run(){
+	  boolean executeRules=false;
+	  Properties props=getProps(packageName, snapshotName);
+	  String packSnap=packageName +"/"+ snapshotName;
+	  String urlstr=(String)props.get("url");
+	  try{
+	    System.out.println("1: Drools method - looking up ["+packSnap+"]");
+	    HttpClientImpl c=new HttpClientImpl();
+	    Package pa=c.fetchPackage(new URL(urlstr));
+	    System.out.println("1: found ["+ pa.getName() +"; clazz="+ pa.getClass().getName() +"]");
+	    executeRules=true;
+	  }catch(Exception e){
+	    System.out.println("ERROR "+ e.getClass().getName() +" - "+ e.getMessage());
+	  }
+	  
+	  try{
+      System.out.println("2: My method - looking up ["+packSnap+"]");
+      URLConnection cnn = new URL(urlstr).openConnection();
+      InputStreamReader in=new InputStreamReader(cnn.getInputStream());
+      byte[] b=new byte[cnn.getInputStream().available()];
+      cnn.getInputStream().read(b);
+      in.close();
+      ByteArrayInputStream bais=new ByteArrayInputStream(b);
+      //ObjectInputStream oin=new ObjectInputStream(bais); //dont use the ObjectInputSteam because the DroolsObject... does some specific ops
+      DroolsObjectInputStream dois=new DroolsObjectInputStream(bais);
+      
+      Object o=dois.readObject();
+      if (o instanceof List){
+        List<KnowledgePackage> pl=((List<KnowledgePackage>)o);
+        System.out.println("2: Found Package in a List ["+pl.get(0).getName()+"]");
+      }else if (o instanceof KnowledgePackageImp){
+        Package p=((KnowledgePackageImp)o).pkg;
+        System.out.println("2: Found a KnowledgePackageImp ["+p.getName()+"]");
+      }else if (o instanceof Package){
+        Package p=((Package)o);
+        System.out.println("2: Found a Package ["+p.getName()+"]");
+      }
+	  }catch(Exception e){
+      System.err.println("ERROR "+ e.getClass().getName() +" - "+ e.getMessage());
+	  }
+	  
+	  if (!executeRules) return; //exit if we've not found the package in the brms to execute
+	  
+	  RuleAgentFactory factory=new RuleAgentFactory(props);
+		RuleAgent agent=factory.get(RuleAgentType.HTTP);
+		RuleBase rb=agent.getRuleBase();
+		
+		StatelessSession s=rb.newStatelessSession();
+		Collection<Object> facts=new LinkedList<Object>();
+		facts.add(new String("ping"));
+		System.out.print("ping...");
+		StatelessSessionResult result=s.executeWithResults(facts);
+		Iterator it=result.iterateObjects();
+		while(it.hasNext()) {
+			Object o=it.next();
+			if (o instanceof String){
+			  System.out.println(((String)o));
+			}
+		}
+	}
+	
+	private Properties getProps(String packageName, String snapshotName){
+		Properties r=new Properties();
+		r.put("url", ruleServer+"/org.drools.guvnor.Guvnor/package/"+packageName+"/"+snapshotName);
+		r.put("file", "my_rules/permissions/zone1/1.0.0-SNAPSHOT/permissions.");
+		r.put("name", "RuleAgent for "+ packageName); //optional
+		r.put("poll", "30");
+		r.put("localCacheDir", "/tmp");
+		r.put("newInstance", "true");
+		return r;
+	}
+	
+	 public static void main(String[] args){
+	    new TestRuleDeployment().run();
+	  }
+	
+	class RuleAgentFactory{
+    Properties props;
+    public RuleAgentFactory(Properties props) {
+      this.props=props;
+    }
+    public RuleAgent get(RuleAgentType type){
+      Properties p=(Properties)props.clone();
+      switch (type){
+      case HTTP:
+        p.remove("file");
+        break;
+      case FILE_DRL:
+        p.remove("url");
+        p.put("file", p.get("file")+".drl");
+        break;
+      case FILE_PKG:
+        p.remove("url");
+        p.put("file", p.get("file")+".pkg");
+        break;
+      }
+      return RuleAgent.newRuleAgent(p);
+    }
+  }
+}
+


Property changes on: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/test/TestRuleDeployment.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/utils/DroolsHelper.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/utils/DroolsHelper.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/utils/DroolsHelper.java	2009-07-27 05:48:28 UTC (rev 28480)
@@ -0,0 +1,74 @@
+package org.jboss.drools.guvnor.importgenerator.utils;
+
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.StringReader;
+
+import org.drools.common.DroolsObjectOutputStream;
+import org.drools.compiler.DroolsError;
+import org.drools.compiler.DroolsParserException;
+import org.drools.compiler.PackageBuilder;
+import org.drools.decisiontable.InputType;
+import org.drools.decisiontable.SpreadsheetCompiler;
+import org.drools.rule.Package;
+import org.jboss.drools.guvnor.importgenerator.PackageFile;
+
+/**
+ * drools helper class that provides functions to build drl and decision table to objects 
+ * 
+ * @author <a href="mailto:mallen at redhat.com">Mat Allen</a>
+ */
+public class DroolsHelper {
+  private static final String FUNCTIONS_FILE="functions.drl";
+  
+  /**
+   * returns an object byte array of a drl package file
+   * @param drlFile
+   * @return
+   * @throws IOException
+   * @throws DroolsParserException
+   */
+  public static byte[] compileRuletoPKG(PackageFile file) throws IOException, DroolsParserException {
+    PackageBuilder pb = new PackageBuilder();
+    String xtn=FileIO.getExtension(file.getFile()).toLowerCase();
+    if (xtn.equals("drl")){
+      File functionsFile=new File(file.getFile().getParentFile().getPath(), FUNCTIONS_FILE);
+      if (functionsFile.exists()){
+        pb.addPackageFromDrl(new FileReader(functionsFile));
+      }
+      pb.addPackageFromDrl(new FileReader(file.getFile()));
+    }else if (xtn.equals("xls")){
+      pb.addPackageFromDrl(new StringReader(compileDTabletoDRL(file.getFile(), InputType.XLS)));
+    }
+    
+    Package pkg = pb.getPackage();
+    if (pkg == null) { // compilation error - the rule is syntactically incorrect
+      for (int i = 0; i < pb.getErrors().getErrors().length; i++) {
+        DroolsError msg = pb.getErrors().getErrors()[i];
+        file.addCompilationError(msg.getMessage());
+      }
+    } else if (pkg != null && !pkg.isValid()) { // dependency missing
+      file.addDependencyError(pkg.getErrorSummary());
+    }
+    
+    ByteArrayOutputStream baos = new ByteArrayOutputStream();
+    DroolsObjectOutputStream doos = new DroolsObjectOutputStream(baos);
+    doos.writeObject(pkg);
+    return baos.toByteArray();
+  }
+  
+  /**
+   * compiles an xls or csv decision table into a rule (drl) language string
+   * @param file
+   * @return
+   * @throws FileNotFoundException
+   */
+  public static String compileDTabletoDRL(File file, InputType type) throws FileNotFoundException{
+    SpreadsheetCompiler compiler=new SpreadsheetCompiler();
+    return compiler.compile(new FileInputStream(file), type);
+  }
+}


Property changes on: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/utils/DroolsHelper.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/utils/FileIO.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/utils/FileIO.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/utils/FileIO.java	2009-07-27 05:48:28 UTC (rev 28480)
@@ -0,0 +1,91 @@
+package org.jboss.drools.guvnor.importgenerator.utils;
+
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.UnsupportedEncodingException;
+
+import org.apache.commons.codec.binary.Base64;
+/**
+ * File IO helper class for reading/writing files and converting to/from base64 
+ * 
+ * @author <a href="mailto:mallen at redhat.com">Mat Allen</a>
+ */
+
+public class FileIO {
+  public static final String FORMAT="utf-8";
+  
+  public static void write(String data, File destination) throws IOException{
+//    if (!destination.getParentFile().exists()){
+//      Logger.logln("creating folder for: "+ destination.getParentFile().getAbsolutePath());
+//      destination.mkdirs();
+//    }
+    BufferedWriter out = new BufferedWriter(new FileWriter(destination));
+    out.write(data.toString());
+    out.flush();
+    out.close();
+  }
+	public static String getExtension(File file){
+		int dotpos=file.getName().lastIndexOf(".")+1;
+		return file.getName().substring(dotpos);
+	}
+	public static String readAllAsBase64(File f) throws UnsupportedEncodingException{
+		byte[] bytes=FileIO.readAll(f);
+		byte[] base64bytes=Base64.encodeBase64(bytes);
+		String base64String=new String(base64bytes, "utf-8");
+		return base64String;
+	}
+	public static String toBase64(byte[] b) throws UnsupportedEncodingException{
+    byte[] b64=Base64.encodeBase64(b);
+    return new String(b64, "utf-8");
+	}
+	public static String fromBase64(byte[] b64) throws UnsupportedEncodingException{
+	  byte[] b=Base64.decodeBase64(b64);
+	  return new String(b, "utf-8");
+	}
+	public static byte[] readAll(File f) {
+		FileInputStream in=null;
+		byte[] buf=null;
+		try {
+			in = new FileInputStream(f);
+			buf = new byte[new Long(f.length()).intValue()+1]; //and hope the file is not too large!
+			in.read(buf);
+		} catch (FileNotFoundException e) {
+			e.printStackTrace();
+		} catch (IOException e) {
+			e.printStackTrace();
+		} finally {
+			try {
+				in.close();
+			} catch (IOException e) {
+				e.printStackTrace();
+			}
+		}
+		return buf;
+	}
+	public static String readAll(InputStream is) {
+		BufferedReader reader = new BufferedReader(new InputStreamReader(is));
+		StringBuilder sb = new StringBuilder();
+		String line = null;
+		try {
+			while ((line = reader.readLine()) != null) {
+				sb.append(line + "\n");
+			}
+		} catch (IOException e) {
+			e.printStackTrace();
+		} finally {
+			try {
+				is.close();
+			} catch (IOException e) {
+				e.printStackTrace();
+			}
+		}
+		return sb.toString();
+	}
+}


Property changes on: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/utils/FileIO.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/utils/Logger.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/utils/Logger.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/utils/Logger.java	2009-07-27 05:48:28 UTC (rev 28480)
@@ -0,0 +1,30 @@
+package org.jboss.drools.guvnor.importgenerator.utils;
+
+import org.jboss.drools.guvnor.importgenerator.CmdArgsParser;
+import org.jboss.drools.guvnor.importgenerator.CmdArgsParser.Parameters;
+
+/**
+ * Simple std io logger
+ * 
+ * @author <a href="mailto:mallen at redhat.com">Mat Allen</a>
+ */
+public class Logger {
+  public boolean debugEnabled=true;
+  
+  public static Logger getLogger(Class c, CmdArgsParser options){
+    Logger l=new Logger();
+    l.debugEnabled="true".equals(options.getOption(Parameters.OPTIONS_VERBOSE));
+    return l;
+  }
+  public void debugln(String msg){
+    if (debugEnabled){
+      System.out.println(msg);
+    }
+  }
+  public void debug(String msg){
+    if (debugEnabled){
+      System.out.print(msg);
+    }
+  }
+
+}


Property changes on: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/utils/Logger.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/xdeleteme/ClientHttpRequest.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/xdeleteme/ClientHttpRequest.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/xdeleteme/ClientHttpRequest.java	2009-07-27 05:48:28 UTC (rev 28480)
@@ -0,0 +1,505 @@
+package org.jboss.drools.guvnor.importgenerator.xdeleteme;
+
+import java.net.URLConnection;
+import java.net.URL;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+import java.io.File;
+import java.io.InputStream;
+import java.util.Random;
+import java.io.OutputStream;
+import java.io.FileInputStream;
+import java.util.Iterator;
+
+/**
+ * <p>Title: Client HTTP Request class</p>
+ * <p>Description: this class helps to send POST HTTP requests with various form data,
+ * including files. Cookies can be added to be included in the request.</p>
+ *
+ * @author Vlad Patryshev
+ * @version 1.0
+ */
+public class ClientHttpRequest {
+  URLConnection connection;
+  OutputStream os = null;
+  Map cookies = new HashMap();
+
+  protected void connect() throws IOException {
+    if (os == null) os = connection.getOutputStream();
+  }
+
+  protected void write(char c) throws IOException {
+    connect();
+    os.write(c);
+  }
+
+  protected void write(String s) throws IOException {
+    connect();
+    os.write(s.getBytes());
+  }
+
+  protected void newline() throws IOException {
+    connect();
+    write("\r\n");
+  }
+
+  protected void writeln(String s) throws IOException {
+    connect();
+    write(s);
+    newline();
+  }
+
+  private static Random random = new Random();
+
+  protected static String randomString() {
+    return Long.toString(random.nextLong(), 36);
+  }
+
+  public static String boundary = "---------------------------" + randomString() + randomString() + randomString();
+
+  private void boundary() throws IOException {
+    write("--");
+    write(boundary);
+  }
+
+  /**
+   * Creates a new multipart POST HTTP request on a freshly opened URLConnection
+   *
+   * @param connection an already open URL connection
+   * @throws IOException
+   */
+  public ClientHttpRequest(URLConnection connection) throws IOException {
+    this.connection = connection;
+    connection.setDoOutput(true);
+    connection.setRequestProperty("Content-Type",
+                                  "multipart/form-data; boundary=" + boundary);
+  }
+
+  public enum ContentType{
+	  MULTIPART_FORM_DATA("multipart/form-data; boundary=" + ClientHttpRequest.boundary),
+	  TEXT_X_GWT_RPC("text/x-gwt-rpc; charset=utf-8");
+	  public String value;
+	  private ContentType(String value){
+		  this.value=value;
+	  }
+  }
+  public ClientHttpRequest(URLConnection connection, ContentType contentType) throws IOException {
+	    this.connection = connection;
+	    connection.setDoOutput(true);
+	    connection.setRequestProperty("Content-Type", contentType.value);
+	  }
+  /**
+   * Creates a new multipart POST HTTP request for a specified URL
+   *
+   * @param url the URL to send request to
+   * @throws IOException
+   */
+  public ClientHttpRequest(URL url) throws IOException {
+    this(url.openConnection());
+  }
+
+  /**
+   * Creates a new multipart POST HTTP request for a specified URL string
+   *
+   * @param urlString the string representation of the URL to send request to
+   * @throws IOException
+   */
+  public ClientHttpRequest(String urlString) throws IOException {
+    this(new URL(urlString));
+  }
+
+
+//  private void postCookies() {
+//    StringBuffer cookieList = new StringBuffer();
+//
+//    for (Iterator i = cookies.entrySet().iterator(); i.hasNext();) {
+//      Map.Entry entry = (Map.Entry)(i.next());
+//      cookieList.append(entry.getKey().toString() + "=" + entry.getValue());
+//
+//      if (i.hasNext()) {
+//        cookieList.append("; ");
+//      }
+//    }
+//    if (cookieList.length() > 0) {
+//      connection.setRequestProperty("Cookie", cookieList.toString());
+//    }
+//  }
+//
+//  /**
+//   * adds a cookie to the requst
+//   * @param name cookie name
+//   * @param value cookie value
+//   * @throws IOException
+//   */
+//  public void setCookie(String name, String value) throws IOException {
+//    cookies.put(name, value);
+//  }
+//
+//  /**
+//   * adds cookies to the request
+//   * @param cookies the cookie "name-to-value" map
+//   * @throws IOException
+//   */
+//  public void setCookies(Map cookies) throws IOException {
+//    if (cookies == null) return;
+//    this.cookies.putAll(cookies);
+//  }
+//
+//  /**
+//   * adds cookies to the request
+//   * @param cookies array of cookie names and values (cookies[2*i] is a name, cookies[2*i + 1] is a value)
+//   * @throws IOException
+//   */
+//  public void setCookies(String[] cookies) throws IOException {
+//    if (cookies == null) return;
+//    for (int i = 0; i < cookies.length - 1; i+=2) {
+//      setCookie(cookies[i], cookies[i+1]);
+//    }
+//  }
+
+  private void writeName(String name) throws IOException {
+    newline();
+    write("Content-Disposition: form-data; name=\"");
+    write(name);
+    write('"');
+  }
+
+  /**
+   * adds a string parameter to the request
+   * @param name parameter name
+   * @param value parameter value
+   * @throws IOException
+   */
+  public void setParameter(String name, String value) throws IOException {
+    boundary();
+    writeName(name);
+    newline(); newline();
+    writeln(value);
+  }
+
+  private static void pipe(InputStream in, OutputStream out) throws IOException {
+    byte[] buf = new byte[500000];
+    int nread;
+    int navailable;
+    int total = 0;
+    synchronized (in) {
+      while((nread = in.read(buf, 0, buf.length)) >= 0) {
+        out.write(buf, 0, nread);
+        total += nread;
+      }
+    }
+    out.flush();
+    buf = null;
+  }
+
+  /**
+   * adds a file parameter to the request
+   * @param name parameter name
+   * @param filename the name of the file
+   * @param is input stream to read the contents of the file from
+   * @throws IOException
+   */
+  public void setParameter(String name, String filename, InputStream is) throws IOException {
+    boundary();
+    writeName(name);
+    write("; filename=\"");
+    write(filename);
+    write('"');
+    newline();
+    write("Content-Type: ");
+    String type = connection.guessContentTypeFromName(filename);
+    if (type == null) type = "application/octet-stream";
+    writeln(type);
+    newline();
+    pipe(is, os);
+    newline();
+  }
+
+  /**
+   * adds a file parameter to the request
+   * @param name parameter name
+   * @param file the file to upload
+   * @throws IOException
+   */
+  public void setParameter(String name, File file) throws IOException {
+    setParameter(name, file.getPath(), new FileInputStream(file));
+  }
+
+  /**
+   * adds a parameter to the request; if the parameter is a File, the file is uploaded, otherwise the string value of the parameter is passed in the request
+   * @param name parameter name
+   * @param object parameter value, a File or anything else that can be stringified
+   * @throws IOException
+   */
+  public void setParameter(String name, Object object) throws IOException {
+    if (object instanceof File) {
+      setParameter(name, (File) object);
+    } else {
+      setParameter(name, object.toString());
+    }
+  }
+
+  /**
+   * adds parameters to the request
+   * @param parameters "name-to-value" map of parameters; if a value is a file, the file is uploaded, otherwise it is stringified and sent in the request
+   * @throws IOException
+   */
+  public void setParameters(Map parameters) throws IOException {
+    if (parameters == null) return;
+    for (Iterator i = parameters.entrySet().iterator(); i.hasNext();) {
+      Map.Entry entry = (Map.Entry)i.next();
+      setParameter(entry.getKey().toString(), entry.getValue());
+    }
+  }
+
+  /**
+   * adds parameters to the request
+   * @param parameters array of parameter names and values (parameters[2*i] is a name, parameters[2*i + 1] is a value); if a value is a file, the file is uploaded, otherwise it is stringified and sent in the request
+   * @throws IOException
+   */
+  public void setParameters(Object[] parameters) throws IOException {
+    if (parameters == null) return;
+    for (int i = 0; i < parameters.length - 1; i+=2) {
+      setParameter(parameters[i].toString(), parameters[i+1]);
+    }
+  }
+
+  /**
+   * posts the requests to the server, with all the cookies and parameters that were added
+   * @return input stream with the server response
+   * @throws IOException
+   */
+  public InputStream post() throws IOException {
+    boundary();
+    writeln("--");
+    os.close();
+    return connection.getInputStream();
+  }
+
+  /**
+   * posts the requests to the server, with all the cookies and parameters that were added before (if any), and with parameters that are passed in the argument
+   * @param parameters request parameters
+   * @return input stream with the server response
+   * @throws IOException
+   * @see setParameters
+   */
+  public InputStream post(Map parameters) throws IOException {
+    setParameters(parameters);
+    return post();
+  }
+
+  /**
+   * posts the requests to the server, with all the cookies and parameters that were added before (if any), and with parameters that are passed in the argument
+   * @param parameters request parameters
+   * @return input stream with the server response
+   * @throws IOException
+   * @see setParameters
+   */
+  public InputStream post(Object[] parameters) throws IOException {
+    setParameters(parameters);
+    return post();
+  }
+
+  /**
+   * posts the requests to the server, with all the cookies and parameters that were added before (if any), and with cookies and parameters that are passed in the arguments
+   * @param cookies request cookies
+   * @param parameters request parameters
+   * @return input stream with the server response
+   * @throws IOException
+   * @see setParameters
+   * @see setCookies
+   */
+  public InputStream post(Map cookies, Map parameters) throws IOException {
+//    setCookies(cookies);
+    setParameters(parameters);
+    return post();
+  }
+
+  /**
+   * posts the requests to the server, with all the cookies and parameters that were added before (if any), and with cookies and parameters that are passed in the arguments
+   * @param cookies request cookies
+   * @param parameters request parameters
+   * @return input stream with the server response
+   * @throws IOException
+   * @see setParameters
+   * @see setCookies
+   */
+  public InputStream post(String[] cookies, Object[] parameters) throws IOException {
+//    setCookies(cookies);
+    setParameters(parameters);
+    return post();
+  }
+
+  /**
+   * post the POST request to the server, with the specified parameter
+   * @param name parameter name
+   * @param value parameter value
+   * @return input stream with the server response
+   * @throws IOException
+   * @see setParameter
+   */
+  public InputStream post(String name, Object value) throws IOException {
+    setParameter(name, value);
+    return post();
+  }
+
+  /**
+   * post the POST request to the server, with the specified parameters
+   * @param name1 first parameter name
+   * @param value1 first parameter value
+   * @param name2 second parameter name
+   * @param value2 second parameter value
+   * @return input stream with the server response
+   * @throws IOException
+   * @see setParameter
+   */
+  public InputStream post(String name1, Object value1, String name2, Object value2) throws IOException {
+    setParameter(name1, value1);
+    return post(name2, value2);
+  }
+
+  /**
+   * post the POST request to the server, with the specified parameters
+   * @param name1 first parameter name
+   * @param value1 first parameter value
+   * @param name2 second parameter name
+   * @param value2 second parameter value
+   * @param name3 third parameter name
+   * @param value3 third parameter value
+   * @return input stream with the server response
+   * @throws IOException
+   * @see setParameter
+   */
+  public InputStream post(String name1, Object value1, String name2, Object value2, String name3, Object value3) throws IOException {
+    setParameter(name1, value1);
+    return post(name2, value2, name3, value3);
+  }
+
+  /**
+   * post the POST request to the server, with the specified parameters
+   * @param name1 first parameter name
+   * @param value1 first parameter value
+   * @param name2 second parameter name
+   * @param value2 second parameter value
+   * @param name3 third parameter name
+   * @param value3 third parameter value
+   * @param name4 fourth parameter name
+   * @param value4 fourth parameter value
+   * @return input stream with the server response
+   * @throws IOException
+   * @see setParameter
+   */
+  public InputStream post(String name1, Object value1, String name2, Object value2, String name3, Object value3, String name4, Object value4) throws IOException {
+    setParameter(name1, value1);
+    return post(name2, value2, name3, value3, name4, value4);
+  }
+
+  /**
+   * posts a new request to specified URL, with parameters that are passed in the argument
+   * @param parameters request parameters
+   * @return input stream with the server response
+   * @throws IOException
+   * @see setParameters
+   */
+  public static InputStream post(URL url, Map parameters) throws IOException {
+    return new ClientHttpRequest(url).post(parameters);
+  }
+
+  /**
+   * posts a new request to specified URL, with parameters that are passed in the argument
+   * @param parameters request parameters
+   * @return input stream with the server response
+   * @throws IOException
+   * @see setParameters
+   */
+  public static InputStream post(URL url, Object[] parameters) throws IOException {
+    return new ClientHttpRequest(url).post(parameters);
+  }
+
+  /**
+   * posts a new request to specified URL, with cookies and parameters that are passed in the argument
+   * @param cookies request cookies
+   * @param parameters request parameters
+   * @return input stream with the server response
+   * @throws IOException
+   * @see setCookies
+   * @see setParameters
+   */
+  public static InputStream post(URL url, Map cookies, Map parameters) throws IOException {
+    return new ClientHttpRequest(url).post(cookies, parameters);
+  }
+
+  /**
+   * posts a new request to specified URL, with cookies and parameters that are passed in the argument
+   * @param cookies request cookies
+   * @param parameters request parameters
+   * @return input stream with the server response
+   * @throws IOException
+   * @see setCookies
+   * @see setParameters
+   */
+  public static InputStream post(URL url, String[] cookies, Object[] parameters) throws IOException {
+    return new ClientHttpRequest(url).post(cookies, parameters);
+  }
+
+  /**
+   * post the POST request specified URL, with the specified parameter
+   * @param name parameter name
+   * @param value parameter value
+   * @return input stream with the server response
+   * @throws IOException
+   * @see setParameter
+   */
+  public static InputStream post(URL url, String name1, Object value1) throws IOException {
+    return new ClientHttpRequest(url).post(name1, value1);
+  }
+
+  /**
+   * post the POST request to specified URL, with the specified parameters
+   * @param name1 first parameter name
+   * @param value1 first parameter value
+   * @param name2 second parameter name
+   * @param value2 second parameter value
+   * @return input stream with the server response
+   * @throws IOException
+   * @see setParameter
+   */
+  public static InputStream post(URL url, String name1, Object value1, String name2, Object value2) throws IOException {
+    return new ClientHttpRequest(url).post(name1, value1, name2, value2);
+  }
+
+  /**
+   * post the POST request to specified URL, with the specified parameters
+   * @param name1 first parameter name
+   * @param value1 first parameter value
+   * @param name2 second parameter name
+   * @param value2 second parameter value
+   * @param name3 third parameter name
+   * @param value3 third parameter value
+   * @return input stream with the server response
+   * @throws IOException
+   * @see setParameter
+   */
+  public static InputStream post(URL url, String name1, Object value1, String name2, Object value2, String name3, Object value3) throws IOException {
+    return new ClientHttpRequest(url).post(name1, value1, name2, value2, name3, value3);
+  }
+
+  /**
+   * post the POST request to specified URL, with the specified parameters
+   * @param name1 first parameter name
+   * @param value1 first parameter value
+   * @param name2 second parameter name
+   * @param value2 second parameter value
+   * @param name3 third parameter name
+   * @param value3 third parameter value
+   * @param name4 fourth parameter name
+   * @param value4 fourth parameter value
+   * @return input stream with the server response
+   * @throws IOException
+   * @see setParameter
+   */
+  public static InputStream post(URL url, String name1, Object value1, String name2, Object value2, String name3, Object value3, String name4, Object value4) throws IOException {
+    return new ClientHttpRequest(url).post(name1, value1, name2, value2, name3, value3, name4, value4);
+  }
+}


Property changes on: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/xdeleteme/ClientHttpRequest.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/xdeleteme/HTTPUploadImporter1.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/xdeleteme/HTTPUploadImporter1.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/xdeleteme/HTTPUploadImporter1.java	2009-07-27 05:48:28 UTC (rev 28480)
@@ -0,0 +1,171 @@
+package org.jboss.drools.guvnor.importgenerator.xdeleteme;
+
+import java.io.BufferedInputStream;
+import java.io.BufferedReader;
+import java.io.DataOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.net.URL;
+import java.net.URLConnection;
+import java.util.HashMap;
+import java.util.Map;
+
+//import org.apache.commons.vfs.CacheStrategy;
+//import org.apache.commons.vfs.FileObject;
+//import org.apache.commons.vfs.FileSelector;
+//import org.apache.commons.vfs.FileSystemManager;
+//import org.apache.commons.vfs.FileSystemOptions;
+//import org.apache.commons.vfs.VFS;
+//import org.apache.commons.vfs.impl.StandardFileSystemManager;
+//import org.apache.commons.vfs.impl.VirtualFileSystem;
+//import org.apache.commons.vfs.util.FileObjectUtils;
+
+//import sun.misc.BASE64Encoder;
+
+/**
+ * my own HTTP POST impl
+ * @author mallen
+ *
+ */
+public class HTTPUploadImporter1 {
+	// "http://localhost:8080/drools-guvnor/org.drools.guvnor.Guvnor/package"
+	String protocol = "http";
+	String server = "localhost";
+	String port = "8080";
+	String path = "drools-guvnor/org.drools.guvnor.Guvnor";
+	String page = "package";
+	String fullPath = protocol + "://" + server + ":" + port + "/" + path + "/" + page;
+	String INPUT_FILE_LOCATION = "/home/mallen/workspace/drools-importer/rules/approval/route/refundcasestatus/1.0.0.SNAPSHOT/refundCaseStatus.drl";
+
+	private byte[] getFileData() throws FileNotFoundException, IOException {
+		File f = new File(INPUT_FILE_LOCATION);
+		byte[] contents = new byte[(int) f.length()]; // assuming no file will
+		// break the integer
+		// file size
+		BufferedInputStream is = new BufferedInputStream(new FileInputStream(f));
+		is.read(contents);
+		return contents;
+	}
+	
+	private String getFileContent() throws IOException, FileNotFoundException{
+		File f=new File(INPUT_FILE_LOCATION);
+		BufferedReader br=new BufferedReader(new FileReader(f));
+		StringBuffer sb=new StringBuffer();
+		String line="";
+		while ((line=br.readLine())!=null){
+			sb.append(line).append("\r\n");
+		}
+		return sb.toString();
+	}
+
+	public void run() {
+		try {
+
+			URL url = new URL(fullPath);
+			URLConnection cnn = url.openConnection();
+			//String data = URLEncoder.encode("classicDRLFile", "UTF-8") + "=" + URLEncoder.encode(getFileData().toString(), "UTF-8");
+			String fileContent=getFileContent();
+			String boundary = "---------------------------29772313742742";
+			cnn.setRequestProperty("POST", path+page +" HTTP/1.0");
+			cnn.setRequestProperty("Connection", "keep-alive");
+			cnn.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary);
+			cnn.setRequestProperty("Content-length", String.valueOf(fileContent.length()));
+			
+			cnn.setDoOutput(true);
+			cnn.setUseCaches(false);
+			DataOutputStream out = new DataOutputStream(cnn.getOutputStream());
+			
+			out.writeBytes(boundary);
+			String CRLF="\r\n";
+			out.writeBytes("Content-Disposition: form-data; name=\"classicDRLFile\"; filename=\"classicDRLFile\""+CRLF);
+			out.writeBytes("Content-type: text/plain"+CRLF);
+			out.writeBytes(fileContent+CRLF);
+			out.writeBytes(boundary +"--");
+			out.flush();
+			out.close();
+			
+			BufferedReader rd = new BufferedReader(new InputStreamReader(cnn.getInputStream()));
+			String line;
+			while ((line = rd.readLine()) != null) {
+				// do something with the response line
+				System.out.println(line);
+			}
+			//wr.close();
+			rd.close();
+			System.out.println("Done");
+
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	private class RuleDetails {
+		private String title;
+		private String content;
+
+		public RuleDetails(String title, String content) {
+			this.title = title;
+			this.content = content;
+		}
+
+		public String getTitle() {
+			return title;
+		}
+
+		public String getContent() {
+			return content;
+		}
+
+		public void setContent(String content) {
+			this.content = content;
+		}
+	}
+
+	private class PackageDetails {
+		private String creator;
+		private String description;
+		private String imports;
+		private Map<String, RuleDetails> rules = new HashMap<String, RuleDetails>();
+
+		public PackageDetails(String creator, String imports, String description) {
+			this.creator = creator;
+			this.imports = imports;
+			this.description = description;
+
+		}
+
+		public String getCreator() {
+			return creator;
+		}
+
+		public String getDescription() {
+			return description;
+		}
+
+		public String getImports() {
+			return imports;
+		}
+
+		public Map<String, RuleDetails> getRules() {
+			return rules;
+		}
+
+		public void setRules(Map<String, RuleDetails> rules) {
+			this.rules = rules;
+		}
+	}
+
+	public static void main(String[] args) {
+		HTTPUploadImporter1 i = new HTTPUploadImporter1();
+		try {
+			i.run();
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+
+	}
+}


Property changes on: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/xdeleteme/HTTPUploadImporter1.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/xdeleteme/HTTPUploadImporter2.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/xdeleteme/HTTPUploadImporter2.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/xdeleteme/HTTPUploadImporter2.java	2009-07-27 05:48:28 UTC (rev 28480)
@@ -0,0 +1,153 @@
+package org.jboss.drools.guvnor.importgenerator.xdeleteme;
+
+import java.io.BufferedInputStream;
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.net.URL;
+import java.net.URLConnection;
+import java.util.HashMap;
+import java.util.Map;
+
+
+
+/**
+ * another HTTP POST - this time it works, now hitting gtw security issues
+ * @author mallen
+ *
+ */
+public class HTTPUploadImporter2 {
+	String protocol = "http";
+	String server = "localhost";
+	String port = "8080";
+	String path = "drools-guvnor/org.drools.guvnor.Guvnor";
+	String page = "package";
+	String fullPath = protocol + "://" + server + ":" + port + "/" + path + "/" + page;
+	String XINPUT_FILE_LOCATION = "/home/mallen/workspace/drools-importer/rules/approval/route/firststage/1.0.0.SNAPSHOT/firstStageApproval.drl";
+	String INPUT_FILE_LOCATION = "/home/mallen/workspace/drools-importer/rules/approval/determine/valueapprovallimits/1.0.0.SNAPSHOT/valueApprovalLimits.xls";
+//
+//	private byte[] getFileData() throws FileNotFoundException, IOException {
+//		File f = new File(INPUT_FILE_LOCATION);
+//		byte[] contents = new byte[(int) f.length()]; // assuming no file will
+//		// break the integer
+//		// file size
+//		BufferedInputStream is = new BufferedInputStream(new FileInputStream(f));
+//		is.read(contents);
+//		return contents;
+//	}
+//	
+//	private String getFileContent() throws IOException, FileNotFoundException{
+//		File f=new File(INPUT_FILE_LOCATION);
+//		BufferedReader br=new BufferedReader(new FileReader(f));
+//		StringBuffer sb=new StringBuffer();
+//		String line="";
+//		while ((line=br.readLine())!=null){
+//			sb.append(line).append("\r\n");
+//		}
+//		return sb.toString();
+//	}
+
+	public void run() {
+		try {
+			String fullPath = protocol + "://" + server + ":" + port + "/" + path + "/" + page;
+			//ClientHttpRequest req=new ClientHttpRequest(new URL(fullPath).openConnection());
+			
+//			//login???
+//			String fullPathSec = protocol + "://" + server + ":" + port + "/drools-guvnor/org.drools.guvnor.Guvnor/securityService";
+//			ClientHttpRequest sec=new ClientHttpRequest(new URL(fullPathSec).openConnection(), ContentType.TEXT_X_GWT_RPC);
+//			sec.post(new Object[]{"userName", "admin", "pswd", "admin"});
+			
+			//new com.google.gwt.user.server.rpc.RemoteServiceServlet().
+			
+			URL url = new URL(fullPath);
+			URLConnection cnn = url.openConnection();
+			//upload file
+			ClientHttpRequest http=new ClientHttpRequest(cnn);
+			InputStream in=http.post(new Object[]{"fred.drl", new File(INPUT_FILE_LOCATION)});
+			//in.read();
+			BufferedReader rd = new BufferedReader(new InputStreamReader(in));
+			String line;
+			while ((line = rd.readLine()) != null) {
+				// do something with the response line
+				System.out.println(line);
+			}
+			
+			System.out.println("Done");
+
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+
+	private class RuleDetails {
+		private String title;
+		private String content;
+
+		public RuleDetails(String title, String content) {
+			this.title = title;
+			this.content = content;
+		}
+
+		public String getTitle() {
+			return title;
+		}
+
+		public String getContent() {
+			return content;
+		}
+
+		public void setContent(String content) {
+			this.content = content;
+		}
+	}
+
+	private class PackageDetails {
+		private String creator;
+		private String description;
+		private String imports;
+		private Map<String, RuleDetails> rules = new HashMap<String, RuleDetails>();
+
+		public PackageDetails(String creator, String imports, String description) {
+			this.creator = creator;
+			this.imports = imports;
+			this.description = description;
+
+		}
+
+		public String getCreator() {
+			return creator;
+		}
+
+		public String getDescription() {
+			return description;
+		}
+
+		public String getImports() {
+			return imports;
+		}
+
+		public Map<String, RuleDetails> getRules() {
+			return rules;
+		}
+
+		public void setRules(Map<String, RuleDetails> rules) {
+			this.rules = rules;
+		}
+	}
+
+	public static void main(String[] args) {
+		HTTPUploadImporter2 i = new HTTPUploadImporter2();
+		try {
+			i.run();
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+
+	}
+}


Property changes on: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/xdeleteme/HTTPUploadImporter2.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/xdeleteme/TestRuleCompilation.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/xdeleteme/TestRuleCompilation.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/xdeleteme/TestRuleCompilation.java	2009-07-27 05:48:28 UTC (rev 28480)
@@ -0,0 +1,162 @@
+package org.jboss.drools.guvnor.importgenerator.xdeleteme;
+
+import java.io.BufferedInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.DataOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.FileReader;
+import java.io.InputStreamReader;
+import java.io.ObjectOutput;
+import java.io.ObjectOutputStream;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.Properties;
+
+import org.apache.commons.codec.binary.Base64;
+import org.codehaus.janino.util.resource.FileResource;
+import org.drools.RuleBase;
+import org.drools.RuleBaseFactory;
+import org.drools.StatelessSession;
+import org.drools.StatelessSessionResult;
+import org.drools.agent.RuleAgent;
+import org.drools.commons.jci.compilers.CompilationResult;
+import org.drools.commons.jci.compilers.EclipseJavaCompiler;
+import org.drools.commons.jci.compilers.EclipseJavaCompilerSettings;
+import org.drools.commons.jci.compilers.JaninoCompilationProblem;
+import org.drools.commons.jci.compilers.JaninoJavaCompiler;
+import org.drools.commons.jci.compilers.JaninoJavaCompilerSettings;
+import org.drools.commons.jci.compilers.JavaCompiler;
+import org.drools.commons.jci.compilers.JavaCompilerFactory;
+import org.drools.commons.jci.problems.CompilationProblem;
+import org.drools.commons.jci.readers.MemoryResourceReader;
+import org.drools.commons.jci.readers.ResourceReader;
+import org.drools.commons.jci.stores.ResourceStore;
+import org.drools.compiler.PackageBuilder;
+//import org.drools.guvnor.server.builder.BRMSPackageBuilder;
+//import org.drools.guvnor.server.contenthandler.ContentHandler;
+//import org.drools.guvnor.server.contenthandler.ContentManager;
+//import org.drools.guvnor.server.contenthandler.DRLFileContentHandler;
+import org.drools.repository.AssetItem;
+import org.drools.template.model.DRLOutput;
+import org.jboss.drools.guvnor.importgenerator.utils.FileIO;
+
+public class TestRuleCompilation {
+	public static void main(String[] args){
+		new TestRuleCompilation().run();
+	}
+	
+	public void run(){
+		try {
+			String fileLocation = "rules/approval/determine/initialize/1.0.0.SNAPSHOT/resetCaseApproval.drl";
+			PackageBuilder builder = new PackageBuilder();
+			builder.addPackageFromDrl(new InputStreamReader(new FileInputStream(new File(fileLocation))));
+			org.drools.rule.Package pkg = builder.getPackage();
+			RuleBase ruleBase = RuleBaseFactory.newRuleBase();
+			ruleBase.addPackage(pkg);
+			ByteArrayOutputStream baout=new ByteArrayOutputStream();
+			ObjectOutputStream out=new ObjectOutputStream(baout);
+			ruleBase.writeExternal(out);
+			byte[] bytes=baout.toByteArray();
+		  byte[] base64bytes=Base64.encodeBase64(bytes);
+		  String base64String=new String(base64bytes, "utf-8");
+			System.out.println(base64String.substring(0, 100));
+			
+			new BufferedInputStream(new FileInputStream(fileLocation)).read(bytes);
+      System.out.println(FileIO.toBase64(bytes).substring(0, 100));
+      
+      byte[] compfile=FileIO.readAll(new File("binaryfile.bin"));
+      System.out.println(new String(compfile, "utf-8").substring(0, 100));
+			
+      System.out.println(FileIO.fromBase64(compfile).substring(0, 800));
+      
+      JaninoJavaCompiler compiler=new JaninoJavaCompiler();
+      MemoryResourceReader rr=new MemoryResourceReader();
+      
+      rr.add("fred", FileIO.readAll(new File(fileLocation)));
+      ResourceStore arg2=new ResourceStore(){
+        public void remove(String x){
+          System.out.println(x);
+        }
+        public void write(String x, byte[] b){
+          System.out.println(x);
+        }
+        public byte[] read(String arg0) {
+          return null;
+        }
+      };
+      CompilationResult r=compiler.compile(new String[]{"fred"}, rr, arg2, this.getClass().getClassLoader(), new JaninoJavaCompilerSettings());
+      CompilationProblem[] errors=r.getErrors();
+      for (CompilationProblem e : errors) {
+        System.out.println(e);
+      }
+      
+//      DRLFileContentHandler h=new DRLFileContentHandler();
+//      BRMSPackageBuilder b=new BRMSPackageBuilder();
+//      AssetItem a=new AssetItem();
+//      a.getRulesRepository().importRulesRepositoryFromStream(new FileInputStream(new File(fileLocation)));
+//      h.compile(b, a, null);
+      
+      //from guvnor code
+//      Properties ps = new Properties();
+//      AssetItemIterator iter = pkg.listAssetsByFormat(new String[] {"properties", "conf"});
+//      while(iter.hasNext()) {
+//          AssetItem conf = iter.next();
+//          conf.getContent();
+//          Properties p = new Properties();
+//          p.load(conf.getBinaryContentAttachment());
+//          ps.putAll(p);
+//      }
+//      
+//      ps.setProperty( DefaultPackageNameOption.PROPERTY_NAME, this.pkg.getName() );
+//      builder = BRMSPackageBuilder.getInstance(BRMSPackageBuilder.getJars(pkg), ps);
+//
+//      if (compile && preparePackage()) {
+//        ContentHandler h = ContentManager.getHandler(asset.getFormat());
+//        IRuleAsset
+//        
+//        buildPackage();
+//      }
+      
+      
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		
+		if (true) return;
+		RuleAgent agent=RuleAgent.newRuleAgent(getProps("package1"));
+		StatelessSession s=agent.getRuleBase().newStatelessSession();
+		Collection<Object> facts=new LinkedList<Object>();
+		facts.add("ping");
+		StatelessSessionResult result=s.executeWithResults(facts);
+		
+		Iterator it=result.iterateObjects();
+		boolean worked=false;
+		while(it.hasNext()) {
+			Object o=it.next();
+			if (o instanceof String){
+				if (((String)o).equals("pong")){
+					worked=true;
+				}
+			}
+		}
+		if (worked){
+			System.out.println("SUCCESS!!!!");
+		}else
+			System.out.println("FAILED :-(");
+	}
+	
+	private Properties getProps(String packageName){
+		Properties r=new Properties();
+		//r.put("url", System.getProperty("drools.package.url") + packageName);
+		//r.put("dir", System.getProperty("drools.package.dir") + packageName);
+		r.put("url", "http://");
+		r.put("name", "ORS");
+		r.put("poll", "30");
+		r.put("localCacheDir", "/tmp");
+		r.put("newInstance", "true");
+		return r;
+	}
+}


Property changes on: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/xdeleteme/TestRuleCompilation.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/xdeleteme/TestRuleCompilation2.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/xdeleteme/TestRuleCompilation2.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/xdeleteme/TestRuleCompilation2.java	2009-07-27 05:48:28 UTC (rev 28480)
@@ -0,0 +1,235 @@
+package org.jboss.drools.guvnor.importgenerator.xdeleteme;
+
+import java.io.BufferedInputStream;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.OutputStream;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.Properties;
+
+import org.apache.commons.codec.binary.Base64;
+import org.drools.KnowledgeBase;
+import org.drools.KnowledgeBaseFactory;
+import org.drools.RuleBase;
+import org.drools.RuleBaseFactory;
+import org.drools.StatefulSession;
+import org.drools.StatelessSession;
+import org.drools.StatelessSessionResult;
+import org.drools.agent.RuleAgent;
+import org.drools.builder.KnowledgeBuilder;
+import org.drools.builder.KnowledgeBuilderError;
+import org.drools.builder.KnowledgeBuilderFactory;
+import org.drools.builder.ResourceType;
+import org.drools.common.InternalRuleBase;
+import org.drools.common.WorkingMemoryAction;
+import org.drools.commons.jci.compilers.CompilationResult;
+import org.drools.commons.jci.compilers.JaninoJavaCompiler;
+import org.drools.commons.jci.compilers.JaninoJavaCompilerSettings;
+import org.drools.commons.jci.problems.CompilationProblem;
+import org.drools.commons.jci.readers.MemoryResourceReader;
+import org.drools.commons.jci.stores.ResourceStore;
+import org.drools.compiler.DroolsParserException;
+import org.drools.compiler.PackageBuilder;
+import org.drools.compiler.PackageBuilderConfiguration;
+import org.drools.compiler.RuleBaseLoader;
+import org.drools.io.Resource;
+import org.drools.io.ResourceFactory;
+import org.drools.io.impl.ClassPathResource;
+import org.drools.repository.AssetItem;
+import org.drools.reteoo.ReteooStatefulSession;
+import org.drools.reteoo.ReteooWorkingMemory;
+import org.drools.reteoo.ReteooWorkingMemory.WorkingMemoryReteAssertAction;
+import org.drools.rule.Package;
+import org.drools.rule.builder.RuleBuildContext;
+import org.drools.rule.builder.RuleBuilder;
+import org.drools.rule.builder.dialect.java.JavaDialectConfiguration;
+import org.drools.runtime.rule.FactHandle;
+import org.drools.runtime.rule.WorkingMemory;
+import org.jboss.drools.guvnor.importgenerator.utils.FileIO;
+
+public class TestRuleCompilation2 {
+  public static void main(String[] args) {
+    new TestRuleCompilation2().run();
+  }
+  
+  private void writeExternal(String name, java.io.Externalizable o) throws IOException{
+    ByteArrayOutputStream baout = new ByteArrayOutputStream();
+    ObjectOutputStream out = new ObjectOutputStream(baout);
+    o.writeExternal(out);
+    byte[] base64bytes = Base64.encodeBase64(baout.toByteArray());
+    String base64String = new String(base64bytes, "utf-8");
+    System.out.println(base64String.substring(0, 75)+" - "+name);
+    System.out.println(FileIO.fromBase64(base64bytes).substring(0, 500));
+  }
+  
+  private void buildDRLtoPKG(String path, String outputPackageFile){
+    try {
+      KnowledgeBase kBase = KnowledgeBaseFactory.newKnowledgeBase();
+      KnowledgeBuilder kBuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
+      Resource resource=ResourceFactory.newFileResource(path);
+      kBuilder.add(resource, ResourceType.DRL);
+      if (kBuilder.hasErrors()) {
+        for (KnowledgeBuilderError err : kBuilder.getErrors()) {
+          System.out.println(err.toString());
+        }
+        throw new IllegalStateException("DRL errors");
+      }
+      OutputStream os = new FileOutputStream(outputPackageFile);
+      ObjectOutputStream oos = new ObjectOutputStream(os);
+
+      oos.writeObject(kBuilder.getKnowledgePackages());
+    } catch (IOException e) {
+      e.printStackTrace();
+    }
+  }
+
+  public void run() {
+    try {
+      String fileLocation = "rules/approval/determine/initialize/1.0.0.SNAPSHOT/resetCaseApproval.drl";
+      String pkgFileLocation = "rules/approval/determine/initialize/1.0.0.SNAPSHOT/resetCaseApproval.pkg";
+      String originalFileLocation = "binaryfile.bin";
+      PackageBuilder builder = new PackageBuilder();
+      
+      buildDRLtoPKG(fileLocation, pkgFileLocation);
+      if (true) return;
+//      byte[] b=FileIO.readAll(new File(originalFileLocation));
+//      ObjectInputStream in=new ObjectInputStream(new ByteArrayInputStream(Base64.decodeBase64(b)));
+//      int x=in.available();
+//      Object o=in.readObject();
+//      System.out.println(o);
+      
+      //builder.addPackageFromDrl(new InputStreamReader(new FileInputStream(new File(fileLocation))));
+      
+      //Package
+      writeExternal("package object", builder.getPackage());
+      
+//      //RuleBase
+//      RuleBase rb=RuleBaseFactory.newRuleBase();
+//      rb.addPackage(builder.getPackage());
+//      writeExternal("ruleBase object", rb);
+      
+      //original file
+      byte[] compfile=FileIO.readAll(new File("binaryfile.bin"));
+      System.out.println(new String(compfile, "utf-8").substring(0, 75) +" - original base64 file");
+      
+      System.out.println(FileIO.fromBase64(compfile).substring(0, 500) + " - original raw file");
+      
+      //ruleBase.writeExternal(out);
+      
+      //RuleBase ruleBase = RuleBaseFactory.newRuleBase();
+//      ReteooStatefulSession m=(ReteooStatefulSession)ruleBase.newStatefulSession();
+//      m.insert(new String("say "));
+      //ruleBase.addPackage(pkg);
+      
+//      JavaDialectConfiguration javaDialectConf = new JavaDialectConfiguration();
+//      javaDialectConf.setCompiler(JavaDialectConfiguration.JANINO);
+//      javaDialectConf.setJavaLanguageLevel("1.5");
+//      PackageBuilderConfiguration conf = javaDialectConf.getPackageBuilderConfiguration();
+//      PackageBuilder builder = new PackageBuilder(conf);
+      
+//      try {
+//        builder.addPackageFromDrl(new InputStreamReader(new FileInputStream(new File(fileLocation))));
+//        builder.compileAll();
+//        if (builder.hasErrors()) {
+//          System.out.println(builder.getErrors().toString());
+//          throw new RuntimeException("Unable to compile \""+new File(fileLocation).getName()+"\".");
+//        }
+//
+//        // get the compiled package (which is serializable)
+//        org.drools.rule.Package pkg = builder.getPackage();
+//
+//        // add the package to a rulebase (deploy the rule package).
+//        RuleBase ruleBase = RuleBaseFactory.newRuleBase();
+//        ruleBase.addPackage(pkg);
+//
+//        StatefulSession session = ruleBase.newStatefulSession();
+//
+//        session.insert(new String("say "));
+//
+//        session.fireAllRules();
+//      } catch (Exception e) {
+//        e.printStackTrace();
+//      }
+
+      // ruleBase.addPackage(pkg);
+      // ByteArrayOutputStream baout = new ByteArrayOutputStream();
+      // ObjectOutputStream out = new ObjectOutputStream(baout);
+      // ruleBase.writeExternal(out);
+      // byte[] bytes = baout.toByteArray();
+      // byte[] base64bytes = Base64.encodeBase64(bytes);
+      // String base64String = new String(base64bytes, "utf-8");
+      // System.out.println(base64String.substring(0, 100));
+
+    } catch (Exception e) {
+      e.printStackTrace();
+    }
+
+  }
+//
+//  public void testCompile() throws Exception {
+//    WorkingMemory localWorkingMemory = loadDrlRulesFromFile("myDrlFile.drl").newWorkingMemory();
+//    new WorkingMemoryReteAssertAction().
+//
+//    // Place the Java Bean in the working memory , keep a handle to it
+//    FactHandle currentHandle = localWorkingMemory.assertObject(new SearchModel());
+//
+//    // use Drools *without* any Java intervention
+//    localWorkingMemory.fireAllRules();
+//    localWorkingMemory.retract(currentHandle);
+//    System.out.println("SUCCESS");
+//  }
+//
+//  private RuleBase loadDrlRulesFromFile(String drlFileName) {
+//    RuleBase returnRuleBase = null;
+//    InputStream iStreamRules = getFileIfExists(drlFileName);
+//
+//    // Convert the Stream into a reader that Drools uses to parse files
+//    InputStreamReader drl = new InputStreamReader(iStreamRules);
+//
+//    System.out.println("Reading Rules from drl:" + drlFileName);
+//    PackageBuilder builder = new PackageBuilder();
+//    builder.addPackageFromDrl(drl);
+//    Package pkg = builder.getPackage();
+//
+//    if (pkg != null) {
+//      returnRuleBase = RuleBaseFactory.newRuleBase();
+//      returnRuleBase.addPackage(pkg);
+//    }
+//    return returnRuleBase;
+//  }
+//
+//  private InputStream getFileIfExists(String fileName) throws Exception {
+//    InputStream rIStream = null;
+//    System.out.println("Searching for File name:" + fileName);
+//    try {
+//      rIStream = new FileInputStream(fileName);
+//    } catch (FileNotFoundException fnfe1) {
+//      // log.debug("Could not find resource as file - attempting the classpath");
+//      try {
+//        ClassPathResource myClassPathReader = new ClassPathResource(fileName);
+//        rIStream = myClassPathReader.getInputStream();
+//        // log.debug("Found File via Classpath at path:" +
+//        // myClassPathReader.getPath() + " file:" +
+//        // myClassPathReader.getFile());
+//      } catch (Exception fnfe2) {
+//        fnfe2.printStackTrace();
+//
+//      }
+//    }
+//
+//    return rIStream;
+//
+//  }
+
+}


Property changes on: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/xdeleteme/TestRuleCompilation2.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/xdeleteme/WebDavImporter.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/xdeleteme/WebDavImporter.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/xdeleteme/WebDavImporter.java	2009-07-27 05:48:28 UTC (rev 28480)
@@ -0,0 +1,133 @@
+package org.jboss.drools.guvnor.importgenerator.xdeleteme;
+
+
+import java.util.HashMap;
+import java.util.Map;
+
+//import org.apache.commons.vfs.CacheStrategy;
+//import org.apache.commons.vfs.FileObject;
+//import org.apache.commons.vfs.FileSelector;
+//import org.apache.commons.vfs.FileSystemManager;
+//import org.apache.commons.vfs.FileSystemOptions;
+//import org.apache.commons.vfs.VFS;
+//import org.apache.commons.vfs.impl.StandardFileSystemManager;
+//import org.apache.commons.vfs.impl.VirtualFileSystem;
+//import org.apache.commons.vfs.util.FileObjectUtils;
+
+/**
+ * attempts at using apache webdav library
+ * @author mallen
+ *
+ */
+public class WebDavImporter {
+	String protocol = "webdav";
+	String server = "admin:admin at localhost";
+	String port = "8080";
+	String path = "drools-guvnor/org.drools.guvnor.Guvnor/webdav";
+	String fullPath = protocol + "://" + server + ":" + port + "/" + path;
+	
+	public void run() {
+		try {
+//			StandardFileSystemManager fs = new StandardFileSystemManager();
+//
+//			fs.setCacheStrategy(CacheStrategy.ON_RESOLVE);
+//			fs.init();
+//
+//			FileSystemOptions fileoptions = new FileSystemOptions();
+//			FileObject root = fs.resolveFile(fullPath, fileoptions);
+//			FileObject packages = fs.resolveFile(fullPath + "/packages", fileoptions);
+//			FileObject packages2=root.getChildren()[0];
+//			
+//			File packageName = new File(packages.getName() + "/gov.tfl.rules");
+//			packageName.createNewFile();
+//			
+//			File drl = new File(packageName.getName() +"/mjatest.drl");
+//			FileObject drlFO=fs.toFileObject(drl);
+//			drlFO.createFile();
+//
+//			Writer w = new FileWriter(drl);
+//			w.write("import java.util.Date");
+//			w.flush();
+//			w.close();
+//
+//			long size = drl.length();
+//			System.out.println(size);
+//			drlFO.close();
+//			
+//			System.out.println("Done.");
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+
+	}
+	
+
+
+
+
+	private class RuleDetails {
+		private String title;
+		private String content;
+
+		public RuleDetails(String title, String content) {
+			this.title = title;
+			this.content = content;
+		}
+
+		public String getTitle() {
+			return title;
+		}
+
+		public String getContent() {
+			return content;
+		}
+
+		public void setContent(String content) {
+			this.content = content;
+		}
+	}
+
+	private class PackageDetails {
+		private String creator;
+		private String description;
+		private String imports;
+		private Map<String, RuleDetails> rules = new HashMap<String, RuleDetails>();
+
+		public PackageDetails(String creator, String imports, String description) {
+			this.creator = creator;
+			this.imports = imports;
+			this.description = description;
+
+		}
+
+		public String getCreator() {
+			return creator;
+		}
+
+		public String getDescription() {
+			return description;
+		}
+
+		public String getImports() {
+			return imports;
+		}
+
+		public Map<String, RuleDetails> getRules() {
+			return rules;
+		}
+
+		public void setRules(Map<String, RuleDetails> rules) {
+			this.rules = rules;
+		}
+	}
+
+	public static void main(String[] args) {
+		WebDavImporter i = new WebDavImporter();
+		try {
+			i.run();
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+
+	}
+}


Property changes on: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/src/main/java/org/jboss/drools/guvnor/importgenerator/xdeleteme/WebDavImporter.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/templates/template_change_set_child.xml
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/templates/template_change_set_child.xml	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/templates/template_change_set_child.xml	2009-07-27 05:48:28 UTC (rev 28480)
@@ -0,0 +1 @@
+		<resource source="{0}/{1}" type="{2}"/>


Property changes on: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/templates/template_change_set_child.xml
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/templates/template_change_set_parent.xml
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/templates/template_change_set_parent.xml	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/templates/template_change_set_parent.xml	2009-07-27 05:48:28 UTC (rev 28480)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<change-set xmlns="http://drools.org/drools-5.0/change-set"
+			xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
+			xs:schemaLocation="http://drools.org/drools-5.0/change-set drools-change-set-5.0.xsd">
+	<add>
+		{0}
+	</add>
+</change-set>


Property changes on: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/templates/template_change_set_parent.xml
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/templates/template_package.xml
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/templates/template_package.xml	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/templates/template_package.xml	2009-07-27 05:48:28 UTC (rev 28480)
@@ -0,0 +1,50 @@
+		<!-- GENERATED_PACKAGE -->
+		<sv:node sv:name="{0}">
+			<sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>drools:packageNodeType</sv:value></sv:property>
+			<sv:property sv:name="jcr:uuid" sv:type="String"><sv:value><!--GEN_UUID-->{4}</sv:value></sv:property>
+			<sv:property sv:name="drools:archive" sv:type="Boolean"><sv:value>false</sv:value></sv:property>
+			<sv:property sv:name="drools:checkinComment" sv:type="String"><sv:value>Initial</sv:value></sv:property>
+			<sv:property sv:name="drools:creator" sv:type="String"><sv:value>{1}</sv:value></sv:property>
+			<sv:property sv:name="drools:description" sv:type="String"><sv:value>-imported-</sv:value></sv:property>
+			<sv:property sv:name="drools:format" sv:type="String"><sv:value>package</sv:value></sv:property>
+			<sv:property sv:name="drools:lastContributor" sv:type="String"><sv:value>{1}</sv:value></sv:property>
+			<sv:property sv:name="drools:lastModified" sv:type="Date"><sv:value>{8}</sv:value></sv:property>
+			<sv:property sv:name="drools:title" sv:type="String"><sv:value>{0}</sv:value></sv:property>
+			<sv:property sv:name="drools:versionNumber" sv:type="Long"><sv:value>1</sv:value></sv:property>
+			<!--sv:property sv:name="jcr:baseVersion" sv:type="Reference"><sv:value>f77dfd5d-3748-43c5-9214-885fd1a17fc4</sv:value></sv:property-->
+			<sv:property sv:name="jcr:created" sv:type="Date"><sv:value>{8}</sv:value></sv:property>
+			<sv:property sv:name="jcr:isCheckedOut" sv:type="Boolean"><sv:value>true</sv:value></sv:property>
+			<!--sv:property sv:name="jcr:predecessors" sv:type="Reference"><sv:value>f77dfd5d-3748-43c5-9214-885fd1a17fc4</sv:value></sv:property-->
+			<!--sv:property sv:name="jcr:versionHistory" sv:type="Reference"><sv:value>40a6c5eb-1889-4c55-a3b3-26b9358dc038</sv:value></sv:property-->
+			<sv:node sv:name="assets">
+				<sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>drools:versionableAssetFolder</sv:value></sv:property>
+				<sv:property sv:name="jcr:uuid" sv:type="String"><sv:value><!--GEN_UUID-->{5}</sv:value></sv:property>
+				<!--sv:property sv:name="jcr:baseVersion" sv:type="Reference"><sv:value>1752ad99-ba94-4fb0-9b38-ab70e1c48fea</sv:value></sv:property-->
+				<sv:property sv:name="jcr:created" sv:type="Date"><sv:value>{8}</sv:value></sv:property>
+				<sv:property sv:name="jcr:isCheckedOut" sv:type="Boolean"><sv:value>true</sv:value></sv:property>
+				<!--sv:property sv:name="jcr:predecessors" sv:type="Reference"><sv:value>1752ad99-ba94-4fb0-9b38-ab70e1c48fea</sv:value></sv:property-->
+				<!--sv:property sv:name="jcr:versionHistory" sv:type="Reference"><sv:value>61923e3f-bc6f-4778-bfe0-5d36414bcf9d</sv:value></sv:property-->
+				<sv:node sv:name="drools">
+					<sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>drools:assetNodeType</sv:value></sv:property>
+					<sv:property sv:name="jcr:uuid" sv:type="String"><sv:value><!--GEN_UUID-->{6}</sv:value></sv:property>
+					<sv:property sv:name="drools:archive" sv:type="Boolean"><sv:value>false</sv:value></sv:property>
+					<sv:property sv:name="drools:checkinComment" sv:type="String"><sv:value/></sv:property>
+					<sv:property sv:name="drools:content" sv:type="String"><sv:value><![CDATA[{2}]]></sv:value></sv:property>
+					<sv:property sv:name="drools:creator" sv:type="String"><sv:value>{1}</sv:value></sv:property>
+					<sv:property sv:name="drools:description" sv:type="String"><sv:value/></sv:property>
+					<sv:property sv:name="drools:format" sv:type="String"><sv:value>package</sv:value></sv:property>
+					<sv:property sv:name="drools:lastContributor" sv:type="String"><sv:value>{1}</sv:value></sv:property>
+					<sv:property sv:name="drools:lastModified" sv:type="Date"><sv:value>{8}</sv:value></sv:property>
+					<sv:property sv:name="drools:packageName" sv:type="String"><sv:value>{0}</sv:value></sv:property>
+					<sv:property sv:name="drools:stateReference" sv:type="Reference"><sv:value>{7}</sv:value></sv:property>
+					<sv:property sv:name="drools:title" sv:type="String"><sv:value>rule imports</sv:value></sv:property>
+					<sv:property sv:name="drools:versionNumber" sv:type="Long"><sv:value>1</sv:value></sv:property>
+					<!--sv:property sv:name="jcr:baseVersion" sv:type="Reference"><sv:value>ee8ecf03-6e5a-4112-9b03-140245919a71</sv:value></sv:property-->
+					<sv:property sv:name="jcr:created" sv:type="Date"><sv:value>{8}</sv:value></sv:property>
+					<sv:property sv:name="jcr:isCheckedOut" sv:type="Boolean"><sv:value>false</sv:value></sv:property>
+					<sv:property sv:name="jcr:predecessors" sv:type="Reference"/>
+					<!--sv:property sv:name="jcr:versionHistory" sv:type="Reference"><sv:value>953c2b94-0731-4fdc-a5af-db2dd8149719</sv:value></sv:property-->
+				</sv:node>
+{3}
+			</sv:node>
+		</sv:node>


Property changes on: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/templates/template_package.xml
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/templates/template_parent.xml
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/templates/template_parent.xml	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/templates/template_parent.xml	2009-07-27 05:48:28 UTC (rev 28480)
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- GENERATED_GUVNOR_IMPORT -->
+<sv:node xmlns:nt="http://www.jcp.org/jcr/nt/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
+	xmlns:rep="internal" xmlns:fn_old="http://www.w3.org/2004/10/xpath-functions"
+	xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:drools="http://www.jboss.org/drools-repository/1.0"
+	xmlns:sv="http://www.jcp.org/jcr/sv/1.0" xmlns:mix="http://www.jcp.org/jcr/mix/1.0"
+	xmlns:fn="http://www.w3.org/2005/xpath-functions" sv:name="drools:repository">
+	<sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>nt:folder</sv:value></sv:property>
+	<sv:property sv:name="jcr:created" sv:type="Date"><sv:value>{3}</sv:value></sv:property>
+	<sv:node sv:name="drools:package_area">
+		<sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>nt:folder</sv:value></sv:property>
+		<sv:property sv:name="jcr:created" sv:type="Date"><sv:value>{3}</sv:value></sv:property>
+<!-- GENERATED PACKAGE_AREA -->
+{0}
+	</sv:node>
+	<sv:node sv:name="drools:packagesnapshot_area">
+		<sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>nt:folder</sv:value></sv:property>
+		<sv:property sv:name="jcr:created" sv:type="Date"><sv:value>{3}</sv:value></sv:property>
+<!-- GENERATED SNAPSHOT_AREA -->
+{4}
+	</sv:node>
+	<sv:node sv:name="drools:tag_area">
+		<sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>nt:folder</sv:value></sv:property>
+		<sv:property sv:name="jcr:created" sv:type="Date"><sv:value>{3}</sv:value></sv:property>
+		<sv:node sv:name="importedCategory">
+			<sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>drools:categoryNodeType</sv:value></sv:property>
+			<sv:property sv:name="jcr:uuid" sv:type="String"><sv:value><!--GEN_UUID-->{1}</sv:value></sv:property>
+			<sv:property sv:name="jcr:created" sv:type="Date"><sv:value>{3}</sv:value></sv:property>
+		</sv:node>
+	</sv:node>
+	<sv:node sv:name="drools:state_area">
+		<sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>nt:folder</sv:value></sv:property>
+		<sv:property sv:name="jcr:created" sv:type="Date"><sv:value>{3}</sv:value></sv:property>
+		<sv:node sv:name="Draft">
+			<sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>drools:stateNodeType</sv:value></sv:property>
+			<sv:property sv:name="jcr:uuid" sv:type="String"><sv:value><!--GEN_UUID-->{2}</sv:value></sv:property>
+			<sv:property sv:name="jcr:created" sv:type="Date"><sv:value>{3}</sv:value></sv:property>
+		</sv:node>
+	</sv:node>
+	<sv:node sv:name="drools.package.migrated">
+		<sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>nt:folder</sv:value></sv:property>
+		<sv:property sv:name="jcr:created" sv:type="Date"><sv:value>{3}</sv:value></sv:property>
+	</sv:node>
+</sv:node>
\ No newline at end of file


Property changes on: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/templates/template_parent.xml
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/templates/template_rule_drl.xml
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/templates/template_rule_drl.xml	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/templates/template_rule_drl.xml	2009-07-27 05:48:28 UTC (rev 28480)
@@ -0,0 +1,28 @@
+				<!-- GENERATED_RULE -->
+				<sv:node sv:name="{0}">
+					<sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>drools:assetNodeType</sv:value></sv:property>
+					<sv:property sv:name="jcr:uuid" sv:type="String"><sv:value><!--GEN_UUID-->{3}</sv:value></sv:property>
+					<sv:property sv:name="drools:archive" sv:type="Boolean"><sv:value>false</sv:value></sv:property>
+					<sv:property sv:name="drools:checkinComment" sv:type="String"><sv:value>Imported from external DRL</sv:value></sv:property>
+					<sv:property sv:name="drools:content" sv:type="String"><sv:value><![CDATA[{2}]]></sv:value></sv:property>
+					<sv:property sv:name="drools:creator" sv:type="String"><sv:value>{6}</sv:value></sv:property>
+					<sv:property sv:name="drools:description" sv:type="String"><sv:value></sv:value></sv:property>
+					<sv:property sv:name="drools:format" sv:type="String"><sv:value>{8}</sv:value></sv:property>
+					<sv:property sv:name="drools:lastContributor" sv:type="String"><sv:value>{6}</sv:value></sv:property>
+					<sv:property sv:name="drools:lastModified" sv:type="Date"><sv:value>{7}</sv:value></sv:property>
+					<sv:property sv:name="drools:packageName" sv:type="String"><sv:value>{1}</sv:value></sv:property>
+					<sv:property sv:name="drools:source" sv:type="String"><sv:value>Imported from external DRL</sv:value></sv:property>
+					<sv:property sv:name="drools:stateReference" sv:type="Reference"><sv:value>{4}</sv:value></sv:property>
+					<sv:property sv:name="drools:title" sv:type="String"><sv:value><![CDATA[{0}]]></sv:value></sv:property>
+					<sv:property sv:name="drools:versionNumber" sv:type="Long"><sv:value>1</sv:value></sv:property>
+					<!--sv:property sv:name="jcr:baseVersion" sv:type="Reference">
+						<sv:value>7dddaa3e-b141-4ae2-b6dc-74c00e4b99c0</sv:value>
+					</sv:property-->
+					<sv:property sv:name="jcr:created" sv:type="Date"><sv:value>{7}</sv:value></sv:property>
+					<sv:property sv:name="jcr:isCheckedOut" sv:type="Boolean"><sv:value>false</sv:value></sv:property>
+					<sv:property sv:name="jcr:predecessors" sv:type="Reference"/>
+					<!--sv:property sv:name="jcr:versionHistory" sv:type="Reference">
+						<sv:value>1efaf00e-01d3-4009-9176-b414f270c9ea</sv:value>
+					</sv:property-->
+					<sv:property sv:name="drools:categoryReference" sv:type="Reference"><sv:value>{5}</sv:value></sv:property>
+				</sv:node>
\ No newline at end of file


Property changes on: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/templates/template_rule_drl.xml
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/templates/template_rule_xls.xml
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/templates/template_rule_xls.xml	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/templates/template_rule_xls.xml	2009-07-27 05:48:28 UTC (rev 28480)
@@ -0,0 +1,25 @@
+				<!-- GENERATED_RULE -->
+				<sv:node sv:name="{0}">
+					<sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>drools:assetNodeType</sv:value></sv:property>
+					<sv:property sv:name="jcr:uuid" sv:type="String"><sv:value><!--GEN_UUID-->{3}</sv:value></sv:property>
+					<sv:property sv:name="drools:archive" sv:type="Boolean"><sv:value>false</sv:value></sv:property>
+					<sv:property sv:name="drools:checkinComment" sv:type="String"><sv:value>Imported from external DRL</sv:value></sv:property>
+					<sv:property sv:name="drools:creator" sv:type="String"><sv:value>{6}</sv:value></sv:property>
+					<sv:property sv:name="drools:description" sv:type="String"><sv:value></sv:value></sv:property>
+					
+					<sv:property sv:name="drools:attachmentFileName" sv:type="String"><sv:value>{10}</sv:value></sv:property>
+					<sv:property sv:name="drools:binaryContent" sv:type="Binary"><sv:value>{2}</sv:value></sv:property>
+					
+					<sv:property sv:name="drools:format" sv:type="String"><sv:value>{8}</sv:value></sv:property>
+					<sv:property sv:name="drools:lastContributor" sv:type="String"><sv:value>{6}</sv:value></sv:property>
+					<sv:property sv:name="drools:lastModified" sv:type="Date"><sv:value>{7}</sv:value></sv:property>
+					<sv:property sv:name="drools:packageName" sv:type="String"><sv:value>{1}</sv:value></sv:property>
+					<sv:property sv:name="drools:source" sv:type="String"><sv:value>Imported from external DRL</sv:value></sv:property>
+					<sv:property sv:name="drools:stateReference" sv:type="Reference"><sv:value>{4}</sv:value></sv:property>
+					<sv:property sv:name="drools:title" sv:type="String"><sv:value><![CDATA[{0}]]></sv:value></sv:property>
+					<sv:property sv:name="drools:versionNumber" sv:type="Long"><sv:value>1</sv:value></sv:property>
+					<sv:property sv:name="jcr:created" sv:type="Date"><sv:value>{7}</sv:value></sv:property>
+					<sv:property sv:name="jcr:isCheckedOut" sv:type="Boolean"><sv:value>false</sv:value></sv:property>
+					<sv:property sv:name="jcr:predecessors" sv:type="Reference"/>
+					<sv:property sv:name="drools:categoryReference" sv:type="Reference"><sv:value>{5}</sv:value></sv:property>
+				</sv:node>
\ No newline at end of file


Property changes on: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/templates/template_rule_xls.xml
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/templates/template_snapshot.xml
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/templates/template_snapshot.xml	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/templates/template_snapshot.xml	2009-07-27 05:48:28 UTC (rev 28480)
@@ -0,0 +1,157 @@
+		<sv:node sv:name="{0}"> <!-- short package name -->
+			<sv:property sv:name="jcr:primaryType" sv:type="Name">
+				<sv:value>nt:folder</sv:value>
+			</sv:property>
+			<sv:property sv:name="jcr:created" sv:type="Date">
+				<sv:value>{7}</sv:value>
+			</sv:property>
+			<sv:node sv:name="{2}"> <!-- ie. SNAPSHOT-X.X.X -->
+				<sv:property sv:name="jcr:primaryType" sv:type="Name">
+					<sv:value>drools:packageNodeType</sv:value>
+				</sv:property>
+				<sv:property sv:name="jcr:uuid" sv:type="String">
+					<sv:value>{9}</sv:value>
+				</sv:property>
+				<sv:property sv:name="categoryRuleKeys" sv:type="String">
+					<sv:value/>
+				</sv:property>
+				<sv:property sv:name="categoryRuleValues" sv:type="String">
+					<sv:value/>
+				</sv:property>
+				<sv:property sv:name="drools:archive" sv:type="Boolean">
+					<sv:value>false</sv:value>
+				</sv:property>
+				<sv:property sv:name="drools:binaryUpToDate" sv:type="Boolean">
+					<sv:value>true</sv:value>
+				</sv:property>
+				<sv:property sv:name="drools:checkinComment" sv:type="String">
+					<sv:value/>
+				</sv:property>
+				<sv:property sv:name="drools:compiledPackage" sv:type="Binary">
+					<sv:value>{8}</sv:value>
+				</sv:property>
+				<sv:property sv:name="drools:creator" sv:type="String">
+					<sv:value>{3}</sv:value>
+				</sv:property>
+				<sv:property sv:name="drools:description" sv:type="String">
+					<sv:value>-imported-</sv:value>
+				</sv:property>
+				<sv:property sv:name="drools:externalURI" sv:type="String">
+					<sv:value/>
+				</sv:property>
+				<sv:property sv:name="drools:format" sv:type="String">
+					<sv:value>package</sv:value>
+				</sv:property>
+				<sv:property sv:name="drools:lastContributor" sv:type="String">
+					<sv:value>{3}</sv:value>
+				</sv:property>
+				<sv:property sv:name="drools:lastModified" sv:type="Date">
+					<sv:value>{7}</sv:value>
+				</sv:property>
+				<sv:property sv:name="drools:title" sv:type="String">
+					<sv:value>{2}</sv:value>
+				</sv:property>
+				<sv:property sv:name="drools:versionNumber" sv:type="Long">
+					<sv:value>2</sv:value>
+				</sv:property>
+				<sv:property sv:name="jcr:baseVersion" sv:type="Reference">
+					<sv:value>{10}</sv:value>
+				</sv:property>
+				<sv:property sv:name="jcr:created" sv:type="Date">
+					<sv:value>{7}</sv:value>
+				</sv:property>
+				<sv:property sv:name="jcr:isCheckedOut" sv:type="Boolean">
+					<sv:value>true</sv:value>
+				</sv:property>
+				<sv:property sv:name="jcr:predecessors" sv:type="Reference">
+					<sv:value>{10}</sv:value>
+				</sv:property>
+				<!--sv:property sv:name="jcr:versionHistory" sv:type="Reference">
+					unreferenced
+					<sv:value>60dc6dca-5090-4769-bf4c-2bbcaeece4f3</sv:value>
+				</sv:property-->
+				<sv:node sv:name="assets">
+					<sv:property sv:name="jcr:primaryType" sv:type="Name">
+						<sv:value>drools:versionableAssetFolder</sv:value>
+					</sv:property>
+					<sv:property sv:name="jcr:uuid" sv:type="String">
+						<sv:value>{11}</sv:value>
+					</sv:property>
+					<sv:property sv:name="jcr:baseVersion" sv:type="Reference">
+						<sv:value>{12}</sv:value>
+					</sv:property>
+					<sv:property sv:name="jcr:created" sv:type="Date">
+						<sv:value>{7}</sv:value>
+					</sv:property>
+					<sv:property sv:name="jcr:isCheckedOut" sv:type="Boolean">
+						<sv:value>true</sv:value>
+					</sv:property>
+					<sv:property sv:name="jcr:predecessors" sv:type="Reference">
+						<sv:value>{12}</sv:value>
+					</sv:property>
+					<!--sv:property sv:name="jcr:versionHistory" sv:type="Reference">
+						<sv:value>53a11d74-a89a-45d9-a361-9ac70854902a</sv:value>
+					</sv:property-->
+					<sv:node sv:name="drools">
+						<sv:property sv:name="jcr:primaryType" sv:type="Name">
+							<sv:value>drools:assetNodeType</sv:value>
+						</sv:property>
+						<sv:property sv:name="jcr:uuid" sv:type="String">
+							<sv:value>{13}</sv:value>
+						</sv:property>
+						<sv:property sv:name="drools:archive" sv:type="Boolean">
+							<sv:value>false</sv:value>
+						</sv:property>
+						<sv:property sv:name="drools:checkinComment" sv:type="String">
+							<sv:value/>
+						</sv:property>
+						<sv:property sv:name="drools:content" sv:type="String">
+							<sv:value><![CDATA[{4}]]></sv:value>
+						</sv:property>
+						<sv:property sv:name="drools:creator" sv:type="String">
+							<sv:value>{3}</sv:value>
+						</sv:property>
+						<sv:property sv:name="drools:description" sv:type="String">
+							<sv:value/>
+						</sv:property>
+						<sv:property sv:name="drools:format" sv:type="String">
+							<sv:value>package</sv:value>
+						</sv:property>
+						<sv:property sv:name="drools:lastContributor" sv:type="String">
+							<sv:value>{3}</sv:value>
+						</sv:property>
+						<sv:property sv:name="drools:lastModified" sv:type="Date">
+							<sv:value>{7}</sv:value>
+						</sv:property>
+						<sv:property sv:name="drools:packageName" sv:type="String">
+							<sv:value>{0}</sv:value>
+						</sv:property>
+						<sv:property sv:name="drools:stateReference" sv:type="Reference">
+							<sv:value>{6}</sv:value>
+						</sv:property>
+						<sv:property sv:name="drools:title" sv:type="String">
+							<sv:value>rule imports</sv:value>
+						</sv:property>
+						<sv:property sv:name="drools:versionNumber" sv:type="Long">
+							<sv:value>2</sv:value>
+						</sv:property>
+						<sv:property sv:name="jcr:baseVersion" sv:type="Reference">
+							<sv:value>{14}</sv:value>
+						</sv:property>
+						<sv:property sv:name="jcr:created" sv:type="Date">
+							<sv:value>{7}</sv:value>
+						</sv:property>
+						<sv:property sv:name="jcr:isCheckedOut" sv:type="Boolean">
+							<sv:value>true</sv:value>
+						</sv:property>
+						<sv:property sv:name="jcr:predecessors" sv:type="Reference">
+							<sv:value>{14}</sv:value>
+						</sv:property>
+						<!--sv:property sv:name="jcr:versionHistory" sv:type="Reference">
+							<sv:value>af60574b-1b12-47df-ba71-eb0b724ca140</sv:value>
+						</sv:property-->
+					</sv:node>
+{5}
+				</sv:node>
+			</sv:node>
+		</sv:node>
\ No newline at end of file


Property changes on: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/templates/template_snapshot.xml
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/templates/template_snapshot_rule_drl.xml
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/templates/template_snapshot_rule_drl.xml	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/templates/template_snapshot_rule_drl.xml	2009-07-27 05:48:28 UTC (rev 28480)
@@ -0,0 +1,66 @@
+				<sv:node sv:name="{0}">
+					<sv:property sv:name="jcr:primaryType" sv:type="Name">
+						<sv:value>drools:assetNodeType</sv:value>
+					</sv:property>
+					<sv:property sv:name="jcr:uuid" sv:type="String">
+						<sv:value>{3}</sv:value>
+					</sv:property>
+					<sv:property sv:name="drools:archive" sv:type="Boolean">
+						<sv:value>false</sv:value>
+					</sv:property>
+					<sv:property sv:name="drools:categoryReference" sv:type="Reference">
+						<sv:value>{5}</sv:value>
+					</sv:property>
+					<sv:property sv:name="drools:checkinComment" sv:type="String">
+						<sv:value>Imported from external DRL</sv:value>
+					</sv:property>
+					<sv:property sv:name="drools:content" sv:type="String">
+						<sv:value><![CDATA[{2}]]></sv:value>
+					</sv:property>
+					<sv:property sv:name="drools:creator" sv:type="String">
+						<sv:value>{6}</sv:value>
+					</sv:property>
+					<sv:property sv:name="drools:description" sv:type="String">
+						<sv:value></sv:value>
+					</sv:property>
+					<sv:property sv:name="drools:format" sv:type="String">
+						<sv:value>{8}</sv:value>
+					</sv:property>
+					<sv:property sv:name="drools:lastContributor" sv:type="String">
+						<sv:value>{6}</sv:value>
+					</sv:property>
+					<sv:property sv:name="drools:lastModified" sv:type="Date">
+						<sv:value>{7}</sv:value>
+					</sv:property>
+					<sv:property sv:name="drools:packageName" sv:type="String">
+						<sv:value>{1}</sv:value>
+					</sv:property>
+					<sv:property sv:name="drools:source" sv:type="String">
+						<sv:value>Imported from external DRL</sv:value>
+					</sv:property>
+					<sv:property sv:name="drools:stateReference" sv:type="Reference">
+						<sv:value>{4}</sv:value>
+					</sv:property>
+					<sv:property sv:name="drools:title" sv:type="String">
+						<sv:value>{0}</sv:value>
+					</sv:property>
+					<sv:property sv:name="drools:versionNumber" sv:type="Long">
+						<sv:value>1</sv:value>
+					</sv:property>
+					<sv:property sv:name="jcr:baseVersion" sv:type="Reference">
+						<sv:value>{9}</sv:value>
+					</sv:property>
+					<sv:property sv:name="jcr:created" sv:type="Date">
+						<sv:value>{7}</sv:value>
+					</sv:property>
+					<sv:property sv:name="jcr:isCheckedOut" sv:type="Boolean">
+						<sv:value>true</sv:value>
+					</sv:property>
+					<sv:property sv:name="jcr:predecessors" sv:type="Reference">
+						<sv:value>{9}</sv:value>
+					</sv:property>
+					<!--sv:property sv:name="jcr:versionHistory" sv:type="Reference">
+						unreferenced
+						<sv:value>e25e63d9-db11-4520-9308-b737611dfad4</sv:value>
+					</sv:property-->
+				</sv:node>
\ No newline at end of file


Property changes on: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/templates/template_snapshot_rule_drl.xml
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/templates/template_snapshot_rule_xls.xml
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/templates/template_snapshot_rule_xls.xml	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/templates/template_snapshot_rule_xls.xml	2009-07-27 05:48:28 UTC (rev 28480)
@@ -0,0 +1,71 @@
+				<sv:node sv:name="{0}">
+					<sv:property sv:name="jcr:primaryType" sv:type="Name">
+						<sv:value>drools:assetNodeType</sv:value>
+					</sv:property>
+					<sv:property sv:name="jcr:uuid" sv:type="String">
+						<sv:value>{3}</sv:value>
+					</sv:property>
+					<sv:property sv:name="drools:archive" sv:type="Boolean">
+						<sv:value>false</sv:value>
+					</sv:property>
+					<sv:property sv:name="drools:categoryReference" sv:type="Reference">
+						<sv:value>{5}</sv:value>
+					</sv:property>
+					<sv:property sv:name="drools:checkinComment" sv:type="String">
+						<sv:value>Imported from external DRL</sv:value>
+					</sv:property>
+					
+					<sv:property sv:name="drools:attachmentFileName" sv:type="String">
+						<sv:value>{10}</sv:value>
+					</sv:property>
+					<sv:property sv:name="drools:binaryContent" sv:type="Binary">
+						<sv:value>{2}</sv:value>
+					</sv:property>
+
+					<sv:property sv:name="drools:creator" sv:type="String">
+						<sv:value>{6}</sv:value>
+					</sv:property>
+					<sv:property sv:name="drools:description" sv:type="String">
+						<sv:value></sv:value>
+					</sv:property>
+					<sv:property sv:name="drools:format" sv:type="String">
+						<sv:value>{8}</sv:value>
+					</sv:property>
+					<sv:property sv:name="drools:lastContributor" sv:type="String">
+						<sv:value>{6}</sv:value>
+					</sv:property>
+					<sv:property sv:name="drools:lastModified" sv:type="Date">
+						<sv:value>{7}</sv:value>
+					</sv:property>
+					<sv:property sv:name="drools:packageName" sv:type="String">
+						<sv:value>{1}</sv:value>
+					</sv:property>
+					<sv:property sv:name="drools:source" sv:type="String">
+						<sv:value>Imported from external DRL</sv:value>
+					</sv:property>
+					<sv:property sv:name="drools:stateReference" sv:type="Reference">
+						<sv:value>{4}</sv:value>
+					</sv:property>
+					<sv:property sv:name="drools:title" sv:type="String">
+						<sv:value>{0}</sv:value>
+					</sv:property>
+					<sv:property sv:name="drools:versionNumber" sv:type="Long">
+						<sv:value>1</sv:value>
+					</sv:property>
+					<sv:property sv:name="jcr:baseVersion" sv:type="Reference">
+						<sv:value>{9}</sv:value>
+					</sv:property>
+					<sv:property sv:name="jcr:created" sv:type="Date">
+						<sv:value>{7}</sv:value>
+					</sv:property>
+					<sv:property sv:name="jcr:isCheckedOut" sv:type="Boolean">
+						<sv:value>true</sv:value>
+					</sv:property>
+					<sv:property sv:name="jcr:predecessors" sv:type="Reference">
+						<sv:value>{9}</sv:value>
+					</sv:property>
+					<!--sv:property sv:name="jcr:versionHistory" sv:type="Reference">
+						unreferenced
+						<sv:value>e25e63d9-db11-4520-9308-b737611dfad4</sv:value>
+					</sv:property-->
+				</sv:node>
\ No newline at end of file


Property changes on: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/templates/template_snapshot_rule_xls.xml
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/templates/whole.xml
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/templates/whole.xml	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/templates/whole.xml	2009-07-27 05:48:28 UTC (rev 28480)
@@ -0,0 +1,397 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sv:node xmlns:nt="http://www.jcp.org/jcr/nt/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
+	xmlns:rep="internal" xmlns:fn_old="http://www.w3.org/2004/10/xpath-functions"
+	xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:drools="http://www.jboss.org/drools-repository/1.0"
+	xmlns:sv="http://www.jcp.org/jcr/sv/1.0" xmlns:mix="http://www.jcp.org/jcr/mix/1.0"
+	xmlns:fn="http://www.w3.org/2005/xpath-functions" sv:name="drools:repository">
+	<sv:property sv:name="jcr:primaryType" sv:type="Name">
+		<sv:value>nt:folder</sv:value>
+	</sv:property>
+	<sv:property sv:name="jcr:created" sv:type="Date">
+		<sv:value>2009-06-05T10:26:47.194+01:00
+		</sv:value>
+	</sv:property>
+	<sv:node sv:name="drools:package_area">
+		<sv:property sv:name="jcr:primaryType" sv:type="Name">
+			<sv:value>nt:folder</sv:value>
+		</sv:property>
+		<sv:property sv:name="jcr:created" sv:type="Date">
+			<sv:value>2009-06-05T10:26:47.198+01:00
+			</sv:value>
+		</sv:property>
+		<sv:node sv:name="defaultPackage">
+			<sv:property sv:name="jcr:primaryType" sv:type="Name">
+				<sv:value>drools:packageNodeType</sv:value>
+			</sv:property>
+			<sv:property sv:name="jcr:uuid" sv:type="String">
+				<sv:value>
+					256adc71-efaf-4559-b036-905bdbb14c32
+				</sv:value>
+			</sv:property>
+			<sv:property sv:name="drools:archive" sv:type="Boolean">
+				<sv:value>false</sv:value>
+			</sv:property>
+			<sv:property sv:name="drools:checkinComment" sv:type="String">
+				<sv:value>Initial</sv:value>
+			</sv:property>
+			<sv:property sv:name="drools:creator" sv:type="String">
+				<sv:value>admin</sv:value>
+			</sv:property>
+			<sv:property sv:name="drools:description" sv:type="String">
+				<sv:value>The default rule package</sv:value>
+			</sv:property>
+			<sv:property sv:name="drools:format" sv:type="String">
+				<sv:value>package</sv:value>
+			</sv:property>
+			<sv:property sv:name="drools:lastContributor" sv:type="String">
+				<sv:value>admin</sv:value>
+			</sv:property>
+			<sv:property sv:name="drools:lastModified" sv:type="Date">
+				<sv:value>2009-06-05T10:26:47.453+01:00
+				</sv:value>
+			</sv:property>
+			<sv:property sv:name="drools:title" sv:type="String">
+				<sv:value>defaultPackage</sv:value>
+			</sv:property>
+			<sv:property sv:name="drools:versionNumber" sv:type="Long">
+				<sv:value>1</sv:value>
+			</sv:property>
+			<sv:property sv:name="jcr:baseVersion" sv:type="Reference">
+				<sv:value>677d062d-e51c-451e-a2f7-b5b6828f6b69
+				</sv:value>
+			</sv:property>
+			<sv:property sv:name="jcr:created" sv:type="Date">
+				<sv:value>2009-06-05T10:26:47.432+01:00
+				</sv:value>
+			</sv:property>
+			<sv:property sv:name="jcr:isCheckedOut" sv:type="Boolean">
+				<sv:value>false</sv:value>
+			</sv:property>
+			<sv:property sv:name="jcr:predecessors" sv:type="Reference" />
+			<sv:property sv:name="jcr:versionHistory" sv:type="Reference">
+				<sv:value>3a52d821-39e6-4b7e-b73b-6396b92e4e36
+				</sv:value>
+			</sv:property>
+			<sv:node sv:name="assets">
+				<sv:property sv:name="jcr:primaryType" sv:type="Name">
+					<sv:value>drools:versionableAssetFolder
+					</sv:value>
+				</sv:property>
+				<sv:property sv:name="jcr:uuid" sv:type="String">
+					<sv:value>fe94ff55-43f3-4450-a0e1-81c5713aec64
+					</sv:value>
+				</sv:property>
+				<sv:property sv:name="jcr:baseVersion" sv:type="Reference">
+					<sv:value>7b9d039f-ac26-438b-b49d-4658ca7d6545
+					</sv:value>
+				</sv:property>
+				<sv:property sv:name="jcr:created" sv:type="Date">
+					<sv:value>2009-06-05T10:26:47.433+01:00
+					</sv:value>
+				</sv:property>
+				<sv:property sv:name="jcr:isCheckedOut" sv:type="Boolean">
+					<sv:value>true</sv:value>
+				</sv:property>
+				<sv:property sv:name="jcr:predecessors" sv:type="Reference">
+					<sv:value>7b9d039f-ac26-438b-b49d-4658ca7d6545
+					</sv:value>
+				</sv:property>
+				<sv:property sv:name="jcr:versionHistory" sv:type="Reference">
+					<sv:value>7eb842a0-f924-40fd-b237-699e7c8eddbd
+					</sv:value>
+				</sv:property>
+				<sv:node sv:name="drools">
+					<sv:property sv:name="jcr:primaryType" sv:type="Name">
+						<sv:value>drools:assetNodeType</sv:value>
+					</sv:property>
+					<sv:property sv:name="jcr:uuid" sv:type="String">
+						<sv:value>30d1dbc1-c8c7-429d-889a-d9224db11aaa
+						</sv:value>
+					</sv:property>
+					<sv:property sv:name="drools:archive" sv:type="Boolean">
+						<sv:value>false</sv:value>
+					</sv:property>
+					<sv:property sv:name="drools:checkinComment" sv:type="String">
+						<sv:value />
+					</sv:property>
+					<sv:property sv:name="drools:content" sv:type="String">
+						<sv:value />
+					</sv:property>
+					<sv:property sv:name="drools:creator" sv:type="String">
+						<sv:value>admin</sv:value>
+					</sv:property>
+					<sv:property sv:name="drools:description" sv:type="String">
+						<sv:value />
+					</sv:property>
+					<sv:property sv:name="drools:format" sv:type="String">
+						<sv:value>package</sv:value>
+					</sv:property>
+					<sv:property sv:name="drools:lastContributor" sv:type="String">
+						<sv:value>admin</sv:value>
+					</sv:property>
+					<sv:property sv:name="drools:lastModified" sv:type="Date">
+						<sv:value>2009-06-05T10:26:48.196+01:00
+						</sv:value>
+					</sv:property>
+					<sv:property sv:name="drools:packageName" sv:type="String">
+						<sv:value>defaultPackage</sv:value>
+					</sv:property>
+					<sv:property sv:name="drools:stateReference" sv:type="Reference">
+						<sv:value>828115ca-fd7d-4739-8260-c682fa329db8
+						</sv:value>
+					</sv:property>
+					<sv:property sv:name="drools:title" sv:type="String">
+						<sv:value>drools</sv:value>
+					</sv:property>
+					<sv:property sv:name="drools:versionNumber" sv:type="Long">
+						<sv:value>1</sv:value>
+					</sv:property>
+					<sv:property sv:name="jcr:baseVersion" sv:type="Reference">
+						<sv:value>099cfd1b-9c07-41be-afe7-d94f7839e603
+						</sv:value>
+					</sv:property>
+					<sv:property sv:name="jcr:created" sv:type="Date">
+						<sv:value>2009-06-05T10:26:48.165+01:00
+						</sv:value>
+					</sv:property>
+					<sv:property sv:name="jcr:isCheckedOut" sv:type="Boolean">
+						<sv:value>false</sv:value>
+					</sv:property>
+					<sv:property sv:name="jcr:predecessors" sv:type="Reference" />
+					<sv:property sv:name="jcr:versionHistory" sv:type="Reference">
+						<sv:value>4d0d1558-e092-4890-a637-0f0dd5fa0ea9
+						</sv:value>
+					</sv:property>
+				</sv:node>
+			</sv:node>
+		</sv:node>
+		<sv:node sv:name="gov.tfl.ors.rules">
+			<sv:property sv:name="jcr:primaryType" sv:type="Name">
+				<sv:value>drools:packageNodeType</sv:value>
+			</sv:property>
+			<sv:property sv:name="jcr:uuid" sv:type="String">
+				<sv:value>458eafd2-2c7b-46c5-bff2-0c23cfe5dc7d
+				</sv:value>
+			</sv:property>
+			<sv:property sv:name="drools:archive" sv:type="Boolean">
+				<sv:value>false</sv:value>
+			</sv:property>
+			<sv:property sv:name="drools:checkinComment" sv:type="String">
+				<sv:value>Initial</sv:value>
+			</sv:property>
+			<sv:property sv:name="drools:creator" sv:type="String">
+				<sv:value>admin</sv:value>
+			</sv:property>
+			<sv:property sv:name="drools:description" sv:type="String">
+				<sv:value>this is a rules package for TFL</sv:value>
+			</sv:property>
+			<sv:property sv:name="drools:format" sv:type="String">
+				<sv:value>package</sv:value>
+			</sv:property>
+			<sv:property sv:name="drools:lastContributor" sv:type="String">
+				<sv:value>admin</sv:value>
+			</sv:property>
+			<sv:property sv:name="drools:lastModified" sv:type="Date">
+				<sv:value>2009-06-05T10:32:19.572+01:00
+				</sv:value>
+			</sv:property>
+			<sv:property sv:name="drools:title" sv:type="String">
+				<sv:value>gov.tfl.ors.rules</sv:value>
+			</sv:property>
+			<sv:property sv:name="drools:versionNumber" sv:type="Long">
+				<sv:value>1</sv:value>
+			</sv:property>
+			<sv:property sv:name="jcr:baseVersion" sv:type="Reference">
+				<sv:value>9fdea156-45c1-4c83-876d-665f3550c4ee
+				</sv:value>
+			</sv:property>
+			<sv:property sv:name="jcr:created" sv:type="Date">
+				<sv:value>2009-06-05T10:32:19.570+01:00
+				</sv:value>
+			</sv:property>
+			<sv:property sv:name="jcr:isCheckedOut" sv:type="Boolean">
+				<sv:value>false</sv:value>
+			</sv:property>
+			<sv:property sv:name="jcr:predecessors" sv:type="Reference" />
+			<sv:property sv:name="jcr:versionHistory" sv:type="Reference">
+				<sv:value>b83faed5-3618-48d1-8e5c-3e46a65752b5
+				</sv:value>
+			</sv:property>
+			<sv:node sv:name="assets">
+				<sv:property sv:name="jcr:primaryType" sv:type="Name">
+					<sv:value>drools:versionableAssetFolder
+					</sv:value>
+				</sv:property>
+				<sv:property sv:name="jcr:uuid" sv:type="String">
+					<sv:value>07d0e394-a5eb-4ac4-b024-e25d1e1581dd
+					</sv:value>
+				</sv:property>
+				<sv:property sv:name="jcr:baseVersion" sv:type="Reference">
+					<sv:value>fec17716-01de-4cd6-95ed-829f73605e71
+					</sv:value>
+				</sv:property>
+				<sv:property sv:name="jcr:created" sv:type="Date">
+					<sv:value>2009-06-05T10:32:19.571+01:00
+					</sv:value>
+				</sv:property>
+				<sv:property sv:name="jcr:isCheckedOut" sv:type="Boolean">
+					<sv:value>true</sv:value>
+				</sv:property>
+				<sv:property sv:name="jcr:predecessors" sv:type="Reference">
+					<sv:value>fec17716-01de-4cd6-95ed-829f73605e71
+					</sv:value>
+				</sv:property>
+				<sv:property sv:name="jcr:versionHistory" sv:type="Reference">
+					<sv:value>584704c6-eeb4-490b-b25a-8e870d5eb794
+					</sv:value>
+				</sv:property>
+			</sv:node>
+		</sv:node>
+		<sv:node sv:name="approval.determine.businessapproval.agentfraud">
+			<sv:property sv:name="jcr:primaryType" sv:type="Name">
+				<sv:value>drools:packageNodeType</sv:value>
+			</sv:property>
+			<sv:property sv:name="jcr:uuid" sv:type="String">
+				<sv:value>d175fcb6-e75f-4fb1-9fc3-c6a9c0262ad8
+				</sv:value>
+			</sv:property>
+			<sv:property sv:name="drools:archive" sv:type="Boolean">
+				<sv:value>false</sv:value>
+			</sv:property>
+			<sv:property sv:name="drools:checkinComment" sv:type="String">
+				<sv:value>Initial</sv:value>
+			</sv:property>
+			<sv:property sv:name="drools:creator" sv:type="String">
+				<sv:value>admin</sv:value>
+			</sv:property>
+			<sv:property sv:name="drools:description" sv:type="String">
+				<sv:value>&lt;imported&gt;</sv:value></sv:property>
+			<sv:property sv:name="drools:format" sv:type="String"><sv:value>package</sv:value></sv:property>
+			<sv:property sv:name="drools:lastContributor" sv:type="String"><sv:value>admin</sv:value></sv:property>
+			<sv:property sv:name="drools:lastModified" sv:type="Date"><sv:value>2009-06-05T10:35:59.203+01:00</sv:value></sv:property>
+			<sv:property sv:name="drools:title" sv:type="String"><sv:value>approval.determine.businessapproval.agentfraud</sv:value></sv:property>
+			<sv:property sv:name="drools:versionNumber" sv:type="Long"><sv:value>1</sv:value></sv:property>
+			<sv:property sv:name="jcr:baseVersion" sv:type="Reference"><sv:value>f77dfd5d-3748-43c5-9214-885fd1a17fc4</sv:value></sv:property>
+			<sv:property sv:name="jcr:created" sv:type="Date"><sv:value>2009-06-05T10:35:59.201+01:00</sv:value></sv:property>
+			<sv:property sv:name="jcr:isCheckedOut" sv:type="Boolean"><sv:value>true</sv:value></sv:property>
+			<sv:property sv:name="jcr:predecessors" sv:type="Reference"><sv:value>f77dfd5d-3748-43c5-9214-885fd1a17fc4</sv:value></sv:property>
+			<sv:property sv:name="jcr:versionHistory" sv:type="Reference"><sv:value>40a6c5eb-1889-4c55-a3b3-26b9358dc038</sv:value></sv:property>
+			<sv:node sv:name="assets">
+				<sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>drools:versionableAssetFolder</sv:value></sv:property>
+				<sv:property sv:name="jcr:uuid" sv:type="String"><sv:value>6cb9fe8f-3de2-4a28-9183-2d86ba25aefd</sv:value></sv:property>
+				<sv:property sv:name="jcr:baseVersion" sv:type="Reference"><sv:value>1752ad99-ba94-4fb0-9b38-ab70e1c48fea</sv:value></sv:property>
+				<sv:property sv:name="jcr:created" sv:type="Date"><sv:value>2009-06-05T10:35:59.202+01:00</sv:value></sv:property>
+				<sv:property sv:name="jcr:isCheckedOut" sv:type="Boolean"><sv:value>true</sv:value></sv:property>
+				<sv:property sv:name="jcr:predecessors" sv:type="Reference"><sv:value>1752ad99-ba94-4fb0-9b38-ab70e1c48fea</sv:value></sv:property>
+				<sv:property sv:name="jcr:versionHistory" sv:type="Reference"><sv:value>61923e3f-bc6f-4778-bfe0-5d36414bcf9d</sv:value></sv:property>
+				<sv:node sv:name="drools">
+					<sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>drools:assetNodeType</sv:value></sv:property>
+					<sv:property sv:name="jcr:uuid" sv:type="String"><sv:value>1dc38502-fb96-489e-aa40-f0fa59916526</sv:value></sv:property>
+					<sv:property sv:name="drools:archive" sv:type="Boolean"><sv:value>false</sv:value></sv:property>
+					<sv:property sv:name="drools:checkinComment" sv:type="String"><sv:value/></sv:property>
+					<sv:property sv:name="drools:content" sv:type="String"><sv:value>
+import org.dyui.domain.core.ResultVO
+import gov.tfl.ors.portal.domain.refund.approval.ApprovalReasonVO
+import gov.tfl.ors.portal.domain.refund.RefundCaseVO
+import org.dyui.domain.log.RuleLogger
+import gov.tfl.ors.portal.field.refund.approval.GetNumberRefundCasesBusinessUserFieldVO
+import gov.tfl.ors.portal.domain.refund.approval.RefundLimitVO
+import gov.tfl.ors.portal.domain.refund.approval.RefundLimitTypeEnum
+import java.util.Calendar
+import java.util.Date
+import java.util.Locale
+#############################################
+# Fires if an agent has had more than X
+# refunds of a type in the past Y hours
+#
+# See #723
+#############################################
+</sv:value></sv:property>
+<sv:property sv:name="drools:creator" sv:type="String"><sv:value>admin</sv:value></sv:property>
+<sv:property sv:name="drools:description" sv:type="String"><sv:value/></sv:property>
+<sv:property sv:name="drools:format" sv:type="String"><sv:value>package</sv:value></sv:property>
+<sv:property sv:name="drools:lastContributor" sv:type="String"><sv:value>admin</sv:value></sv:property>
+<sv:property sv:name="drools:lastModified" sv:type="Date"><sv:value>2009-06-05T10:35:59.466+01:00</sv:value></sv:property>
+<sv:property sv:name="drools:packageName" sv:type="String"><sv:value>approval.determine.businessapproval.agentfraud</sv:value></sv:property>
+<sv:property sv:name="drools:stateReference" sv:type="Reference"><sv:value>828115ca-fd7d-4739-8260-c682fa329db8</sv:value></sv:property>
+<sv:property sv:name="drools:title" sv:type="String"><sv:value>drools</sv:value></sv:property>
+<sv:property sv:name="drools:versionNumber" sv:type="Long"><sv:value>1</sv:value></sv:property>
+<sv:property sv:name="jcr:baseVersion" sv:type="Reference"><sv:value>ee8ecf03-6e5a-4112-9b03-140245919a71</sv:value></sv:property>
+<sv:property sv:name="jcr:created" sv:type="Date"><sv:value>2009-06-05T10:35:59.462+01:00</sv:value></sv:property>
+<sv:property sv:name="jcr:isCheckedOut" sv:type="Boolean"><sv:value>false</sv:value></sv:property>
+<sv:property sv:name="jcr:predecessors" sv:type="Reference"/>
+<sv:property sv:name="jcr:versionHistory" sv:type="Reference"><sv:value>953c2b94-0731-4fdc-a5af-db2dd8149719</sv:value></sv:property>
+</sv:node>
+
+<sv:node sv:name="Get number refund cases">
+<sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>drools:assetNodeType</sv:value></sv:property>
+<sv:property sv:name="jcr:uuid" sv:type="String"><sv:value>b84c7dc1-a4cb-4309-9260-38ba95cecbce</sv:value></sv:property>
+<sv:property sv:name="drools:archive" sv:type="Boolean"><sv:value>false</sv:value></sv:property>
+<sv:property sv:name="drools:checkinComment" sv:type="String"><sv:value>Imported change form external DRL</sv:value></sv:property>
+<sv:property sv:name="drools:content" sv:type="String"><sv:value>
+when 
+    refundCase: RefundCaseVO()  
+    result : ResultVO() 
+    
+    //guard self
+    not RefundLimitVO(type == RefundLimitTypeEnum.BUSINESS_USER_FRAUD)
+then
+	######################################
+	# Threshold for rule is 24 hours.
+	#
+	# NOTE the minus sign in front of the
+	# number!
+	######################################
+	Calendar cal = Calendar.getInstance(Locale.UK);
+	cal.setTime(refundCase.getCreateDate());
+	cal.add(Calendar.HOUR, -24);
+	
+	# Invoke command
+	GetNumberRefundCasesBusinessUserFieldVO field = new GetNumberRefundCasesBusinessUserFieldVO(refundCase, cal.getTime());
+	result.addCommand(field);
+</sv:value></sv:property>
+<sv:property sv:name="drools:creator" sv:type="String"><sv:value>admin</sv:value></sv:property>
+<sv:property sv:name="drools:description" sv:type="String"><sv:value>&lt;imported&gt;</sv:value></sv:property>
+<sv:property sv:name="drools:format" sv:type="String"><sv:value>drl</sv:value></sv:property>
+<sv:property sv:name="drools:lastContributor" sv:type="String"><sv:value>admin</sv:value></sv:property>
+<sv:property sv:name="drools:lastModified" sv:type="Date"><sv:value>2009-06-05T10:35:59.636+01:00</sv:value></sv:property>
+<sv:property sv:name="drools:packageName" sv:type="String"><sv:value>approval.determine.businessapproval.agentfraud</sv:value></sv:property>
+<sv:property sv:name="drools:source" sv:type="String"><sv:value>Imported from external DRL</sv:value></sv:property>
+<sv:property sv:name="drools:stateReference" sv:type="Reference"><sv:value>828115ca-fd7d-4739-8260-c682fa329db8</sv:value></sv:property>
+<sv:property sv:name="drools:title" sv:type="String"><sv:value>Get number refund cases</sv:value></sv:property>
+<sv:property sv:name="drools:versionNumber" sv:type="Long"><sv:value>1</sv:value></sv:property>
+<sv:property sv:name="jcr:baseVersion" sv:type="Reference"><sv:value>8c47a339-d325-4642-a512-48338d83ff2b</sv:value></sv:property>
+<sv:property sv:name="jcr:created" sv:type="Date"><sv:value>2009-06-05T10:35:59.634+01:00</sv:value></sv:property>
+<sv:property sv:name="jcr:isCheckedOut" sv:type="Boolean"><sv:value>false</sv:value></sv:property>
+<sv:property sv:name="jcr:predecessors" sv:type="Reference"/>
+<sv:property sv:name="jcr:versionHistory" sv:type="Reference"><sv:value>483e935b-d637-4b8a-b02d-c9fd0c47c2e6</sv:value></sv:property>
+
+</sv:node>
+
+<sv:node sv:name="Agent fraud"><sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>drools:assetNodeType</sv:value></sv:property><sv:property sv:name="jcr:uuid" sv:type="String"><sv:value>0c3f8680-9d25-4bc5-a277-24572f70d967</sv:value></sv:property><sv:property sv:name="drools:archive" sv:type="Boolean"><sv:value>false</sv:value></sv:property>
+<sv:property sv:name="drools:checkinComment" sv:type="String"><sv:value>Imported change form external DRL</sv:value></sv:property>
+<sv:property sv:name="drools:content" sv:type="String"><sv:value>	when
+		refundCase : RefundCaseVO()
+		#############################
+		# X=9 in this case (example)
+		#############################
+		refundLimit : RefundLimitVO(type == RefundLimitTypeEnum.BUSINESS_USER_FRAUD,
+									count&gt;9)
+		//guard self
+		not ApprovalReasonVO(category == "bar", key == "agent.fraud")
+		logger : RuleLogger()
+	then
+		logger.info("Added agent fraud suspected approval reason");
+		
+		ApprovalReasonVO approvalReason = new ApprovalReasonVO();
+		approvalReason.init();
+		approvalReason.setCategory("bar");
+		approvalReason.setKey("agent.fraud");
+		approvalReason.setCount(refundLimit.getCount());
+		approvalReason.setText("Agent Fraud Suspected");
+		
+		//first stage approval
+		approvalReason.setLevel(1);
+		
+		insert(approvalReason);
+</sv:value></sv:property><sv:property sv:name="drools:creator" sv:type="String"><sv:value>admin</sv:value></sv:property><sv:property sv:name="drools:description" sv:type="String"><sv:value>&lt;imported&gt;</sv:value></sv:property><sv:property sv:name="drools:format" sv:type="String"><sv:value>drl</sv:value></sv:property><sv:property sv:name="drools:lastContributor" sv:type="String"><sv:value>admin</sv:value></sv:property><sv:property sv:name="drools:lastModified" sv:type="Date"><sv:value>2009-06-05T10:35:59.800+01:00</sv:value></sv:property><sv:property sv:name="drools:packageName" sv:type="String"><sv:value>approval.determine.businessapproval.agentfraud</sv:value></sv:property><sv:property sv:name="drools:source" sv:type="String"><sv:value>Imported from external DRL</sv:value></sv:property><sv:property sv:name="drools:stateReference" sv:type="Reference"><sv:value>828115ca-fd7d-4739-8260-c682fa329db8</sv:value></sv:property><sv:property sv:name="drools:title" sv:type="Strin!
 g"><sv:value>Agent fraud</sv:value></sv:property><sv:property sv:name="drools:versionNumber" sv:type="Long"><sv:value>1</sv:value></sv:property><sv:property sv:name="jcr:baseVersion" sv:type="Reference"><sv:value>7dd429ce-5c09-4c60-88bd-21b5e470913c</sv:value></sv:property><sv:property sv:name="jcr:created" sv:type="Date"><sv:value>2009-06-05T10:35:59.798+01:00</sv:value></sv:property><sv:property sv:name="jcr:isCheckedOut" sv:type="Boolean"><sv:value>false</sv:value></sv:property><sv:property sv:name="jcr:predecessors" sv:type="Reference"/><sv:property sv:name="jcr:versionHistory" sv:type="Reference"><sv:value>35cc0b24-5ede-44e0-bfdc-7c5a3e5e746d</sv:value></sv:property></sv:node></sv:node></sv:node></sv:node><sv:node sv:name="drools:packagesnapshot_area"><sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>nt:folder</sv:value></sv:property><sv:property sv:name="jcr:created" sv:type="Date"><sv:value>2009-06-05T10:26:47.202+01:00</sv:value></sv:property></sv:node!
 ><sv:node sv:name="drools:tag_area"><sv:property sv:name="jcr:!
 primaryT
ype" sv:type="Name"><sv:value>nt:folder</sv:value></sv:property><sv:property sv:name="jcr:created" sv:type="Date"><sv:value>2009-06-05T10:26:47.205+01:00</sv:value></sv:property><sv:node sv:name="tfl.ors.rules"><sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>drools:categoryNodeType</sv:value></sv:property><sv:property sv:name="jcr:uuid" sv:type="String"><sv:value>2ac4b8c9-160c-46ac-862c-457c8a4ef933</sv:value></sv:property><sv:property sv:name="jcr:created" sv:type="Date"><sv:value>2009-06-05T10:30:19.998+01:00</sv:value></sv:property></sv:node></sv:node><sv:node sv:name="drools:state_area"><sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>nt:folder</sv:value></sv:property><sv:property sv:name="jcr:created" sv:type="Date"><sv:value>2009-06-05T10:26:47.208+01:00</sv:value></sv:property><sv:node sv:name="Draft"><sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>drools:stateNodeType</sv:value></sv:property><sv:property sv:name="jcr:uui!
 d" sv:type="String"><sv:value>828115ca-fd7d-4739-8260-c682fa329db8</sv:value></sv:property><sv:property sv:name="jcr:created" sv:type="Date"><sv:value>2009-06-05T10:26:47.222+01:00</sv:value></sv:property></sv:node></sv:node><sv:node sv:name="drools.package.migrated"><sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>nt:folder</sv:value></sv:property><sv:property sv:name="jcr:created" sv:type="Date"><sv:value>2009-06-05T10:26:48.520+01:00</sv:value></sv:property></sv:node></sv:node>
\ No newline at end of file


Property changes on: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/guvnor-importer/templates/whole.xml
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/.classpath
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/.classpath	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/.classpath	2009-07-27 05:48:28 UTC (rev 28480)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src/main/java"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>


Property changes on: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/.classpath
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/.project
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/.project	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/.project	2009-07-27 05:48:28 UTC (rev 28480)
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>guvnor-importer-example</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.maven.ide.eclipse.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.maven.ide.eclipse.maven2Nature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>


Property changes on: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/.project
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/.settings/org.eclipse.jdt.core.prefs
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/.settings/org.eclipse.jdt.core.prefs	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/.settings/org.eclipse.jdt.core.prefs	2009-07-27 05:48:28 UTC (rev 28480)
@@ -0,0 +1,5 @@
+#Thu Jun 25 08:25:35 BST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.source=1.5


Property changes on: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/.settings/org.eclipse.jdt.core.prefs
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/.settings/org.maven.ide.eclipse.prefs
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/.settings/org.maven.ide.eclipse.prefs	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/.settings/org.maven.ide.eclipse.prefs	2009-07-27 05:48:28 UTC (rev 28480)
@@ -0,0 +1,8 @@
+#Thu Jun 25 08:25:25 BST 2009
+activeProfiles=
+eclipse.preferences.version=1
+fullBuildGoals=process-test-resources
+includeModules=false
+resolveWorkspaceProjects=true
+resourceFilterGoals=process-resources resources\:testResources
+version=1


Property changes on: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/.settings/org.maven.ide.eclipse.prefs
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/pom.xml
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/pom.xml	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/pom.xml	2009-07-27 05:48:28 UTC (rev 28480)
@@ -0,0 +1,91 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" 
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.jboss.drools.guvnor.tools.example</groupId>
+  <artifactId>example-domain</artifactId>
+  <packaging>jar</packaging>
+  <name>guvnor-importer-example-domain</name>
+  <version>1.0.0-SNAPSHOT</version>
+  <description></description>
+  
+  <properties>
+  	<drools.version>5.0.1</drools.version>
+  </properties>
+  
+  <build>
+  	<pluginManagement>
+  		<plugins>
+  			<plugin>
+  				<groupId>org.apache.maven.plugins</groupId>
+  				<artifactId>maven-compiler-plugin</artifactId>
+  				<configuration>
+  					<source>1.5</source>
+  					<target>1.5</target>
+  				</configuration>
+  			</plugin>
+  		</plugins>
+  	</pluginManagement>
+  </build>
+  
+  
+  <repositories>
+	<repository>
+		<id>jboss-std</id>
+		<url>http://repository.jboss.com/maven2</url>
+	</repository>
+	<!--repository>
+		<id>gwt-ext</id>
+		<url>http://gwt-maven.googlecode.com/svn/trunk/mavenrepo/</url>
+	</repository-->
+  </repositories>
+  
+  <dependencies>
+  	<dependency>
+      <groupId>commons-httpclient</groupId>
+      <artifactId>commons-httpclient</artifactId>
+      <version>3.1</version>
+  	</dependency>
+  	<dependency>
+      <groupId>javax.servlet</groupId>
+      <artifactId>servlet-api</artifactId>
+      <version>2.4</version>
+  	</dependency>
+    
+    <dependency>
+      <groupId>org.drools</groupId>
+      <artifactId>drools-repository</artifactId>
+      <version>${drools.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.drools</groupId>
+      <artifactId>drools-core</artifactId>
+      <version>${drools.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.drools</groupId>
+      <artifactId>drools-compiler</artifactId>
+      <version>${drools.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.drools</groupId>
+      <artifactId>drools-decisiontables</artifactId>
+      <version>${drools.version}</version>
+    </dependency>
+	<!-- end RuleAgent testing dependencies -->
+	
+	<!--dependency>
+      <groupId>org.drools</groupId>
+      <artifactId>drools-guvnor</artifactId>
+	  <version>${drools.version}</version>
+      <type>war</type>
+	</dependency-->
+	
+	<dependency>
+		<groupId>commons-beanutils</groupId>
+		<artifactId>commons-beanutils</artifactId>
+		<version>1.7.0</version>
+	</dependency>
+
+  </dependencies>
+</project>


Property changes on: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/pom.xml
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/src/main/java/org/jboss/drools/guvnor/importgenerator/example/domain/KagentTest.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/src/main/java/org/jboss/drools/guvnor/importgenerator/example/domain/KagentTest.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/src/main/java/org/jboss/drools/guvnor/importgenerator/example/domain/KagentTest.java	2009-07-27 05:48:28 UTC (rev 28480)
@@ -0,0 +1,151 @@
+package org.jboss.drools.guvnor.importgenerator.example.domain;
+
+import java.io.StringReader;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.drools.FactHandle;
+import org.drools.KnowledgeBase;
+import org.drools.KnowledgeBaseFactory;
+import org.drools.agent.KnowledgeAgent;
+import org.drools.agent.KnowledgeAgentConfiguration;
+import org.drools.agent.KnowledgeAgentFactory;
+import org.drools.command.Command;
+import org.drools.command.CommandFactory;
+import org.drools.definition.KnowledgePackage;
+import org.drools.io.ResourceChangeScannerConfiguration;
+import org.drools.io.ResourceFactory;
+import org.drools.io.impl.ResourceChangeScannerImpl;
+import org.drools.runtime.ExecutionResults;
+import org.drools.runtime.StatefulKnowledgeSession;
+import org.drools.runtime.StatelessKnowledgeSession;
+
+public class KagentTest {
+  private boolean changeScannerInitialised = false;
+  private Map<String, KnowledgeAgent> cache = new HashMap<String, KnowledgeAgent>();
+
+  public enum KnowledgeResourceType {
+    DRL, PKG
+  }
+
+  public static void main(String[] args) {
+    new KagentTest().run();
+  }
+
+  public void run() {
+    initChangeScanner();
+    Set<String> packageNames = new HashSet<String>();
+    packageNames.add("ping.test/1.0.0-SNAPSHOT");
+    if (true){
+      KnowledgeAgent kagent=getKnowledgeAgent("ping.test/1.0.0-SNAPSHOT");
+      StatelessKnowledgeSession s=kagent.newStatelessKnowledgeSession();
+//      List facts=new ArrayList();
+//      facts.add("ping");
+      s.execute(Arrays.asList(CommandFactory.newGetObjects(), CommandFactory.newFireAllRules()));
+//      for (Object x : facts) {
+//        System.out.println("fact-"+x);
+//      }
+    }
+    if (false) {
+      StatefulKnowledgeSession s = createStatefulSession(packageNames);
+//      List facts=new ArrayList();
+//      facts.add("ping");
+      org.drools.runtime.rule.FactHandle fact1=s.insert("ping");
+      s.fireAllRules();
+      System.out.println(fact1.toString());
+//      for (Object x : facts) {
+//        System.out.println(x);
+//      }
+      s.dispose();
+    }
+    ResourceFactory.getResourceChangeNotifierService().stop();
+    ResourceFactory.getResourceChangeScannerService().stop();
+  }
+
+  public void initChangeScanner() {
+//    if (!changeScannerInitialised) {
+//      ResourceChangeScannerConfiguration c = ResourceFactory.getResourceChangeScannerService().newResourceChangeScannerConfiguration();
+//      c.setProperty("drools.resource.scanner.interval", "10");
+//      ((ResourceChangeScannerImpl) ResourceFactory.getResourceChangeScannerService()).reset();
+//      ResourceFactory.getResourceChangeNotifierService().start();
+//      ResourceFactory.getResourceChangeScannerService().start();
+//      ResourceFactory.getResourceChangeScannerService().configure(c);
+//    }
+//    changeScannerInitialised = true;
+  }
+
+  public KnowledgeAgentConfiguration getConfig() {
+    KnowledgeAgentConfiguration c = KnowledgeAgentFactory.newKnowledgeAgentConfiguration();
+    c.setProperty("drools.agent.scanDirectories", "true");
+    c.setProperty("drools.agent.scanResources", "true");
+    c.setProperty("drools.agent.newInstance", "true");
+    return c;
+  }
+
+  public StatelessKnowledgeSession createSession(Set<String> packageNames) {
+    return getKnowledgeBase(packageNames).newStatelessKnowledgeSession();
+  }
+
+  public StatefulKnowledgeSession createStatefulSession(Set<String> packageNames) {
+    return getKnowledgeBase(packageNames).newStatefulKnowledgeSession();
+  }
+
+  private KnowledgeBase getKnowledgeBase(Set<String> packageNames, boolean ignorMissing) {
+    KnowledgeBase kb = KnowledgeBaseFactory.newKnowledgeBase();
+    Collection<KnowledgePackage> kpl = new ArrayList<KnowledgePackage>();
+    for (String packageName : packageNames) {
+      try {
+        KnowledgeAgent kagent = getKnowledgeAgent(packageName);
+        kb.addKnowledgePackages(kagent.getKnowledgeBase().getKnowledgePackages());
+      } catch (java.lang.IllegalArgumentException e) {
+        // boolean packageDoesntExist=e.getMessage().startsWith("The directory")
+        // && e.getMessage().endsWith("is not valid");
+        if (ignorMissing) {
+          continue;
+        } else
+          throw new RuntimeException(e.getMessage(), e);
+      }
+    }
+    return kb;
+  }
+
+  private KnowledgeBase getKnowledgeBase(Set<String> packageNames) {
+    return getKnowledgeBase(packageNames, false);
+  }
+
+  private KnowledgeAgent getKnowledgeAgent(String packageName) {
+    if (cache.get(packageName) == null) {
+      cache.put(packageName, createKnowledgeAgent(packageName));
+    }
+    return cache.get(packageName);
+  }
+
+  private KnowledgeAgent createKnowledgeAgent(String packageName) {
+    initChangeScanner();
+    KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
+    KnowledgeAgent kagent = KnowledgeAgentFactory.newKnowledgeAgent("KAgent for " + packageName, kbase, getConfig());
+    kagent.applyChangeSet(ResourceFactory.newReaderResource(new StringReader(getChangeSet(packageName))));
+    return kagent;
+  }
+
+  private String getChangeSet(String packageName) {
+    // packageName=toCustomPackage(packageName, ".");
+    String url = "http://localhost:8080/brms/org.drools.guvnor.Guvnor/package/";
+    KnowledgeResourceType type = KnowledgeResourceType.PKG;// valueOf(System.getProperty("PKG"));
+    StringBuffer xml = new StringBuffer();
+    xml.append("<change-set xmlns='http://drools.org/drools-5.0/change-set'");
+    xml.append("    xmlns:xs='http://www.w3.org/2001/XMLSchema-instance'");
+    xml.append("    xs:schemaLocation='http://drools.org/drools-5.0/change-set drools-change-set-5.0.xsd' >");
+    xml.append("    <add> ");
+    xml.append("        <resource source='" + url + packageName + "' type='" + type.name() + "' />");
+    xml.append("    </add> ");
+    xml.append("</change-set>");
+    return xml.toString();
+  }
+}


Property changes on: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/src/main/java/org/jboss/drools/guvnor/importgenerator/example/domain/KagentTest.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/src/main/java/org/jboss/drools/guvnor/importgenerator/example/domain/PermissionVO.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/src/main/java/org/jboss/drools/guvnor/importgenerator/example/domain/PermissionVO.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/src/main/java/org/jboss/drools/guvnor/importgenerator/example/domain/PermissionVO.java	2009-07-27 05:48:28 UTC (rev 28480)
@@ -0,0 +1,19 @@
+package org.jboss.drools.guvnor.importgenerator.example.domain;
+
+import java.io.Serializable;
+
+public class PermissionVO implements Serializable {
+  String name;
+
+  public PermissionVO(String name){
+    this.name=name;
+  }
+  public String getName() {
+    return name;
+  }
+
+  public void setName(String name) {
+    this.name = name;
+  }
+
+}


Property changes on: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/src/main/java/org/jboss/drools/guvnor/importgenerator/example/domain/PermissionVO.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/src/main/java/org/jboss/drools/guvnor/importgenerator/example/domain/RuleFlagVO.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/src/main/java/org/jboss/drools/guvnor/importgenerator/example/domain/RuleFlagVO.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/src/main/java/org/jboss/drools/guvnor/importgenerator/example/domain/RuleFlagVO.java	2009-07-27 05:48:28 UTC (rev 28480)
@@ -0,0 +1,26 @@
+package org.jboss.drools.guvnor.importgenerator.example.domain;
+
+import java.io.Serializable;
+
+public class RuleFlagVO implements Serializable {
+  private String name;
+  private String value;
+  public RuleFlagVO(String name, String value){
+    this.name=name;
+    this.value=value;
+  }
+  
+  public String getName() {
+    return name;
+  }
+  public void setName(String name) {
+    this.name = name;
+  }
+  public String getValue() {
+    return value;
+  }
+  public void setValue(String value) {
+    this.value = value;
+  }
+
+}


Property changes on: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/src/main/java/org/jboss/drools/guvnor/importgenerator/example/domain/RuleFlagVO.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/src/main/java/org/jboss/drools/guvnor/importgenerator/example/domain/RuleResultVO.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/src/main/java/org/jboss/drools/guvnor/importgenerator/example/domain/RuleResultVO.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/src/main/java/org/jboss/drools/guvnor/importgenerator/example/domain/RuleResultVO.java	2009-07-27 05:48:28 UTC (rev 28480)
@@ -0,0 +1,18 @@
+package org.jboss.drools.guvnor.importgenerator.example.domain;
+
+import java.io.Serializable;
+
+public class RuleResultVO implements Serializable {
+  private String value;
+  
+  public RuleResultVO(String value){
+    this.value=value;
+  }
+  public String getValue() {
+    return value;
+  }
+  public void setValue(String value) {
+    this.value = value;
+  }
+
+}


Property changes on: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/src/main/java/org/jboss/drools/guvnor/importgenerator/example/domain/RuleResultVO.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/src/main/java/org/jboss/drools/guvnor/importgenerator/example/domain/UserVO.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/src/main/java/org/jboss/drools/guvnor/importgenerator/example/domain/UserVO.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/src/main/java/org/jboss/drools/guvnor/importgenerator/example/domain/UserVO.java	2009-07-27 05:48:28 UTC (rev 28480)
@@ -0,0 +1,31 @@
+package org.jboss.drools.guvnor.importgenerator.example.domain;
+
+import java.io.Serializable;
+import java.util.HashSet;
+import java.util.Set;
+
+public class UserVO implements Serializable/* Principal */{
+  private String name;
+  private Set<PermissionVO> permissions = new HashSet<PermissionVO>();
+
+  public UserVO(String name) {
+    this.name = name;
+  }
+
+  public String getName() {
+    return name;
+  }
+
+  public Set<PermissionVO> getPermissions() {
+    return permissions;
+  }
+
+  public void setPermissions(Set<PermissionVO> permissions) {
+    this.permissions = permissions;
+  }
+
+  public void setName(String name) {
+    this.name = name;
+  }
+
+}


Property changes on: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/src/main/java/org/jboss/drools/guvnor/importgenerator/example/domain/UserVO.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/src/main/java/org/jboss/drools/guvnor/importgenerator/example/domain/ValueVO.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/src/main/java/org/jboss/drools/guvnor/importgenerator/example/domain/ValueVO.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/src/main/java/org/jboss/drools/guvnor/importgenerator/example/domain/ValueVO.java	2009-07-27 05:48:28 UTC (rev 28480)
@@ -0,0 +1,21 @@
+package org.jboss.drools.guvnor.importgenerator.example.domain;
+
+import java.math.BigDecimal;
+
+public class ValueVO {
+  private BigDecimal value;
+  private String text;
+  public BigDecimal getValue() {
+    return value;
+  }
+  public void setValue(BigDecimal value) {
+    this.value = value;
+  }
+  public String getText() {
+    return text;
+  }
+  public void setText(String text) {
+    this.text = text;
+  }
+  
+}


Property changes on: labs/jbossrules/trunk/drools-guvnor/bulk-importer-util/sample-model/src/main/java/org/jboss/drools/guvnor/importgenerator/example/domain/ValueVO.java
___________________________________________________________________
Name: svn:eol-style
   + native



More information about the jboss-svn-commits mailing list