[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("<", "<"); //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
+ }
+ 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><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>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><imported></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>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><imported></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