[jboss-svn-commits] JBL Code SVN: r20389 - in labs/jbossrules/trunk: drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor and 14 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Jun 9 21:02:35 EDT 2008


Author: michael.neale at jboss.com
Date: 2008-06-09 21:02:35 -0400 (Mon, 09 Jun 2008)
New Revision: 20389

Removed:
   labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/PerfServiceTest.java
Modified:
   labs/jbossrules/trunk/drools-jbrms/JBRMS.mac.launch
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/EditorLauncher.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/ServiceImplementation.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/builder/ContentPackageAssembler.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/ContentManager.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/ModelContentHandler.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/files/FileManagerUtils.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/util/BRMSSuggestionCompletionLoader.java
   labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/PopulateDataTest.java
   labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java
   labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/builder/ContentPackageAssemblerTest.java
   labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/contenthandler/ContentHandlerTest.java
   labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/rules/BRMSSuggestionCompletionLoaderTest.java
   labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/util/FileManagerUtilsTest.java
   labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/PackageItem.java
   labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RulesRepository.java
   labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/VersionableItem.java
   labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/remoteapi/RestAPI.java
   labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/PackageItemTest.java
   labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RulesRepositoryTest.java
   labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/remoteapi/RestAPITest.java
Log:
Migrated package configuration from text field on package node to a drools.package file (as it is drools specific)

Modified: labs/jbossrules/trunk/drools-jbrms/JBRMS.mac.launch
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/JBRMS.mac.launch	2008-06-09 22:41:10 UTC (rev 20388)
+++ labs/jbossrules/trunk/drools-jbrms/JBRMS.mac.launch	2008-06-10 01:02:35 UTC (rev 20389)
@@ -11,62 +11,83 @@
 <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/src/main/java&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
 <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/classes&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
 <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-compiler/src/main/java&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry path=&quot;3&quot; projectName=&quot;drools-core&quot; type=&quot;1&quot;/&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry path=&quot;3&quot; projectName=&quot;drools-compiler&quot; type=&quot;1&quot;/&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry path=&quot;3&quot; projectName=&quot;drools-repository&quot; type=&quot;1&quot;/&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry path=&quot;3&quot; projectName=&quot;drools-decisiontables&quot; type=&quot;1&quot;/&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry containerPath=&quot;GWT_DEV&quot; path=&quot;3&quot; type=&quot;3&quot;/&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry containerPath=&quot;GWT_HOME/gwt-servlet.jar&quot; path=&quot;3&quot; type=&quot;3&quot;/&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry containerPath=&quot;GWT_HOME/gwt-user.jar&quot; path=&quot;3&quot; type=&quot;3&quot;/&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry path=&quot;3&quot; projectName=&quot;drools-analytics&quot; type=&quot;1&quot;/&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/acl-spi-2.0.2.CR1.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
 <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/antlr-2.7.6.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
 <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/antlr-runtime-3.0.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
 <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/asm-1.5.3.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
 <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/asm-attrs-1.5.3.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/authorization-spi-2.0.2.CR1.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
 <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/cglib-2.1_3.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
 <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/commons-collections-3.1.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
 <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/commons-fileupload-1.1.1.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/commons-httpclient-2.0.2.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
 <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/commons-io-1.1.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
 <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/concurrent-1.3.4.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
 <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/derby-10.2.1.6.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
 <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/dom4j-1.6.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/drools-analytics-5.0.0.SNAPSHOT.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/drools-compiler-5.0.0.SNAPSHOT.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/drools-core-5.0.0.SNAPSHOT.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/drools-decisiontables-5.0.0.SNAPSHOT.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/drools-repository-5.0.0.SNAPSHOT.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
 <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/el-api-1.2.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
 <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/el-ri-1.2.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/gwtext-2.0.1.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
 <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/gwt-servlet-1.4.60.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
 <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/hibernate-3.2.4.sp1.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
 <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/hibernate-annotations-3.3.0.ga.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
 <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/hibernate-commons-annotations-3.0.0.ga.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
 <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/hibernate-entitymanager-3.3.1.ga.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
 <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/hibernate-validator-3.0.0.GA.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/jackrabbit-api-1.3.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/jackrabbit-core-1.3.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/jackrabbit-jcr-commons-1.3.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/jackrabbit-text-extractors-1.3.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/hsqldb-1.8.0.2.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/identity-impl-2.0.2-20080509.171501-19.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/identity-spi-2.0.2.CR1.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/jackrabbit-api-1.4.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/jackrabbit-core-1.4.1.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/jackrabbit-jcr-commons-1.4.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/jackrabbit-spi-1.4.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/jackrabbit-spi-commons-1.4.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/jackrabbit-text-extractors-1.4.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
 <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/janino-2.5.10.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/javassist-3.3.ga.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
 <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/javassist-3.4.GA.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
 <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/jboss-common-core-2.0.4.GA.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/jboss-el-2.0.0.CR1.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/jboss-seam-2.0.0.CR2.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/jboss-common-core-2.2.1.GA.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/jboss-common-logging-spi-2.0.4.GA.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/jboss-el-2.0.1.GA.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/jboss-logging-log4j-2.0.2.GA.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/jboss-logging-spi-2.0.2.GA.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/jboss-seam-2.0.2.GA.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/jboss-security-acl-2.0.2-20080117.231516-3.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/jboss-security-acl-impl-2.0.2-20080509.171501-19.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
 <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/jcr-1.0.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
 <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/jta-1.0.1B.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
 <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/jxl-2.4.2.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
 <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/log4j-1.2.13.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/lucene-core-2.0.0.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/log4j-1.2.14.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/lucene-core-2.2.0.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/mvel-2.0-SNAPSHOT.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
 <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/persistence-api-1.0.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/slf4j-api-1.3.0.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/slf4j-log4j12-1.3.0.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/slf4j-api-1.4.3.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/slf4j-log4j12-1.4.3.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/webdavlib-2.0.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
 <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/xercesImpl-2.4.0.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
 <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/xml-apis-1.0.b2.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/xml-apis-2.7.1.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
 <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/xpp3_min-1.1.3.4.O.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
 <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/xstream-1.2.2.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry path=&quot;3&quot; projectName=&quot;drools-core&quot; type=&quot;1&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry path=&quot;3&quot; projectName=&quot;drools-compiler&quot; type=&quot;1&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry path=&quot;3&quot; projectName=&quot;drools-repository&quot; type=&quot;1&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry path=&quot;3&quot; projectName=&quot;drools-decisiontables&quot; type=&quot;1&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry containerPath=&quot;GWT_DEV&quot; path=&quot;3&quot; type=&quot;3&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry containerPath=&quot;GWT_HOME/gwt-servlet.jar&quot; path=&quot;3&quot; type=&quot;3&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry containerPath=&quot;GWT_HOME/gwt-user.jar&quot; path=&quot;3&quot; type=&quot;3&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry path=&quot;3&quot; projectName=&quot;drools-analytics&quot; type=&quot;1&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/gwtext-0.9.3.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/mvel-1.2.21.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
 </listAttribute>
 <booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="false"/>
 <stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.launching.macosx.MacOSXType/JVM 1.5"/>
 <stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.google.gwt.dev.GWTShell"/>
 <stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-out www org.drools.brms.JBRMS/JBRMS.html"/>
 <stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="drools-jbrms"/>
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xbootclasspath/p:/stash/xercesImpl.jar -XstartOnFirstThread -Xmx400m -Xms40m"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-XstartOnFirstThread -Xmx400m -Xms40m"/>
 </launchConfiguration>

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/EditorLauncher.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/EditorLauncher.java	2008-06-09 22:41:10 UTC (rev 20388)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/EditorLauncher.java	2008-06-10 01:02:35 UTC (rev 20389)
@@ -21,6 +21,7 @@
 import java.util.Map;
 
 import org.drools.brms.client.common.AssetFormats;
+import org.drools.brms.client.common.DefaultContentUploadEditor;
 import org.drools.brms.client.decisiontable.DecisionTableXLSWidget;
 import org.drools.brms.client.decisiontable.GuidedDecisionTableWidget;
 import org.drools.brms.client.modeldriven.ui.RuleModeller;
@@ -76,7 +77,7 @@
         } else if (asset.metaData.format.equals(AssetFormats.DECISION_TABLE_GUIDED)) {
         	return new RuleValidatorWrapper(new GuidedDecisionTableWidget(asset), asset);
         } else {
-            return new DefaultRuleContentWidget( asset );
+            return new DefaultContentUploadEditor( asset, viewer );
         }
 
     }

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/ServiceImplementation.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/ServiceImplementation.java	2008-06-09 22:41:10 UTC (rev 20388)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/ServiceImplementation.java	2008-06-10 01:02:35 UTC (rev 20389)
@@ -16,7 +16,30 @@
  */
 
 
-import com.google.gwt.user.client.rpc.SerializableException;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.ObjectOutput;
+import java.text.DateFormat;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.jar.JarEntry;
+import java.util.jar.JarInputStream;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import javax.jcr.ItemExistsException;
+import javax.jcr.RepositoryException;
+
 import org.apache.commons.io.IOUtils;
 import org.apache.log4j.Logger;
 import org.drools.FactHandle;
@@ -28,12 +51,35 @@
 import org.drools.brms.client.common.AssetFormats;
 import org.drools.brms.client.modeldriven.SuggestionCompletionEngine;
 import org.drools.brms.client.modeldriven.testing.Scenario;
-import org.drools.brms.client.rpc.*;
+import org.drools.brms.client.rpc.AnalysisReport;
+import org.drools.brms.client.rpc.BuilderResult;
+import org.drools.brms.client.rpc.BulkTestRunResult;
+import org.drools.brms.client.rpc.DetailedSerializableException;
+import org.drools.brms.client.rpc.LogEntry;
+import org.drools.brms.client.rpc.MetaData;
+import org.drools.brms.client.rpc.PackageConfigData;
+import org.drools.brms.client.rpc.RepositoryService;
+import org.drools.brms.client.rpc.RuleAsset;
+import org.drools.brms.client.rpc.ScenarioResultSummary;
+import org.drools.brms.client.rpc.ScenarioRunResult;
+import org.drools.brms.client.rpc.SnapshotInfo;
+import org.drools.brms.client.rpc.TableConfig;
+import org.drools.brms.client.rpc.TableDataResult;
+import org.drools.brms.client.rpc.TableDataRow;
+import org.drools.brms.client.rpc.ValidatedResponse;
 import org.drools.brms.server.builder.BRMSPackageBuilder;
 import org.drools.brms.server.builder.ContentAssemblyError;
 import org.drools.brms.server.builder.ContentPackageAssembler;
-import org.drools.brms.server.contenthandler.*;
-import org.drools.brms.server.util.*;
+import org.drools.brms.server.contenthandler.ContentHandler;
+import org.drools.brms.server.contenthandler.ContentManager;
+import org.drools.brms.server.contenthandler.IRuleAsset;
+import org.drools.brms.server.contenthandler.IValidating;
+import org.drools.brms.server.contenthandler.ModelContentHandler;
+import org.drools.brms.server.util.AnalysisRunner;
+import org.drools.brms.server.util.BRMSSuggestionCompletionLoader;
+import org.drools.brms.server.util.LoggingHelper;
+import org.drools.brms.server.util.MetaDataMapper;
+import org.drools.brms.server.util.TableDisplayHandler;
 import org.drools.common.AbstractRuleBase;
 import org.drools.common.DroolsObjectOutputStream;
 import org.drools.common.InternalWorkingMemory;
@@ -42,7 +88,18 @@
 import org.drools.compiler.PackageBuilderConfiguration;
 import org.drools.lang.descr.PackageDescr;
 import org.drools.lang.descr.RuleDescr;
-import org.drools.repository.*;
+import org.drools.repository.AssetHistoryIterator;
+import org.drools.repository.AssetItem;
+import org.drools.repository.AssetItemIterator;
+import org.drools.repository.AssetPageList;
+import org.drools.repository.CategoryItem;
+import org.drools.repository.PackageItem;
+import org.drools.repository.PackageIterator;
+import org.drools.repository.RulesRepository;
+import org.drools.repository.RulesRepositoryAdministrator;
+import org.drools.repository.RulesRepositoryException;
+import org.drools.repository.StateItem;
+import org.drools.repository.VersionableItem;
 import org.drools.rule.Package;
 import org.drools.testframework.RuleCoverageListener;
 import org.drools.testframework.ScenarioRunner;
@@ -53,18 +110,7 @@
 import org.jboss.seam.annotations.remoting.WebRemote;
 import org.jboss.seam.annotations.security.Restrict;
 
-import javax.jcr.ItemExistsException;
-import javax.jcr.RepositoryException;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.ObjectOutput;
-import java.text.DateFormat;
-import java.util.*;
-import java.util.jar.JarEntry;
-import java.util.jar.JarInputStream;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
+import com.google.gwt.user.client.rpc.SerializableException;
 
 /**
  * This is the implementation of the repository service to drive the GWT based front end.
@@ -545,7 +591,7 @@
 
         PackageConfigData data = new PackageConfigData();
         data.uuid = item.getUUID();
-        data.header = item.getHeader();
+        data.header = getDroolsHeader(item);
         data.externalURI = item.getExternalURI();
         data.description = item.getDescription();
         data.name = item.getName();
@@ -569,7 +615,7 @@
 
         PackageItem item = repository.loadPackage( data.name );
 
-        item.updateHeader( data.header );
+        updateDroolsHeader( data.header, item );
         item.updateExternalURI( data.externalURI );
         item.updateDescription( data.description );
         item.archiveItem( data.archived );
@@ -593,9 +639,6 @@
         }
 
 
-
-
-
         return res;
     }
 
@@ -1331,7 +1374,33 @@
 		repository.renameCategory(fullPathAndName, newName);
 	}
 
+    public static String getDroolsHeader(PackageItem pkg) {
+    	if (pkg.containsAsset("drools")) {
+    		return pkg.loadAsset("drools").getContent();
+    	} else {
+    		return "";
+    	}
+    }
 
+	public static void updateDroolsHeader(String string, PackageItem pkg) {
+		pkg.checkout();
+		AssetItem conf;
+		if (pkg.containsAsset("drools")) {
+			conf = pkg.loadAsset("drools");
+			conf.updateContent(string);
+			conf.checkin("");
+		} else {
+			conf = pkg.addAsset("drools", "");
+			conf.updateFormat("package");
+			conf.updateContent(string);
+			conf.checkin("");
+		}
 
+	}
 
+
+
+
+
+
 }
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/builder/ContentPackageAssembler.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/builder/ContentPackageAssembler.java	2008-06-09 22:41:10 UTC (rev 20388)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/builder/ContentPackageAssembler.java	2008-06-10 01:02:35 UTC (rev 20389)
@@ -17,6 +17,7 @@
 
 
 import org.drools.brms.client.common.AssetFormats;
+import org.drools.brms.server.ServiceImplementation;
 import org.drools.brms.server.contenthandler.ContentHandler;
 import org.drools.brms.server.contenthandler.ContentManager;
 import org.drools.brms.server.contenthandler.IRuleAsset;
@@ -119,6 +120,7 @@
         while (it.hasNext()) {
 
             AssetItem asset = (AssetItem) it.next();
+
             if (!asset.isArchived() && (selector.isAssetAllowed( asset ))) {
                 buildAsset( asset );
             }
@@ -157,7 +159,7 @@
         builder.addPackage( new PackageDescr(pkg.getName()) );
 
         //now we deal with the header (imports, templates, globals).
-        addDrl(pkg.getHeader());
+        addDrl(ServiceImplementation.getDroolsHeader(pkg));
         if (builder.hasErrors()) {
             recordBuilderErrors(pkg);
             //if we have any failures, lets drop out now, no point in going
@@ -260,10 +262,11 @@
     }
 
 
+
     public String getDRL() {
         StringBuffer src = new StringBuffer();
         src.append( "package " + this.pkg.getName() + "\n");
-        src.append( this.pkg.getHeader() + "\n\n");
+        src.append( ServiceImplementation.getDroolsHeader(this.pkg) + "\n\n");
 
 
         //now we load up the DSL files
@@ -288,13 +291,15 @@
         while (iter.hasNext()) {
             AssetItem asset = (AssetItem) iter.next();
             if (!asset.isArchived()) {
-                ContentHandler h = ContentManager.getHandler( asset.getFormat() );
-                if (h instanceof IRuleAsset) {
-                    IRuleAsset ruleAsset = (IRuleAsset) h;
-                    ruleAsset.assembleDRL( builder, asset, src );
-                }
 
-                src.append( "\n\n" );
+	                ContentHandler h = ContentManager.getHandler( asset.getFormat() );
+	                if (h instanceof IRuleAsset) {
+	                    IRuleAsset ruleAsset = (IRuleAsset) h;
+	                    ruleAsset.assembleDRL( builder, asset, src );
+	                }
+
+	                src.append( "\n\n" );
+
             }
         }
 

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/ContentManager.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/ContentManager.java	2008-06-09 22:41:10 UTC (rev 20388)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/ContentManager.java	2008-06-10 01:02:35 UTC (rev 20389)
@@ -98,9 +98,11 @@
 		return INSTANCE;
 	}
 
+
+
     public static ContentHandler getHandler(String format) {
         ContentHandler h = ContentManager.getInstance().getContentHandlers().get( format );
-        if (h == null) throw new IllegalArgumentException("Unable to handle the content type: " + format);
+        if (h == null) h = new DefaultContentHandler();//throw new IllegalArgumentException("Unable to handle the content type: " + format);
         return h;
     }
 }

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/ModelContentHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/ModelContentHandler.java	2008-06-09 22:41:10 UTC (rev 20388)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/ModelContentHandler.java	2008-06-10 01:02:35 UTC (rev 20389)
@@ -22,6 +22,8 @@
 import java.util.jar.JarInputStream;
 
 import org.drools.brms.client.rpc.RuleAsset;
+import org.drools.brms.server.ServiceImplementation;
+import org.drools.brms.server.builder.ContentPackageAssembler;
 import org.drools.repository.AssetItem;
 import org.drools.repository.PackageItem;
 
@@ -51,7 +53,8 @@
 		InputStream in = asset.getBinaryContentAttachment();
 
 		PackageItem pkg = asset.getPackage();
-		if (pkg.getHeader() == null || "".equals(pkg.getHeader().trim())) {
+		String header = ServiceImplementation.getDroolsHeader(pkg);
+		if ( header == null || "".equals(header.trim())) {
 			StringBuilder buf = new StringBuilder();
 
 			JarInputStream jis = new JarInputStream(in);
@@ -65,13 +68,16 @@
 				}
 			}
 
-			pkg.updateHeader(buf.toString());
+			ServiceImplementation.updateDroolsHeader(buf.toString(), pkg);
 
+			//pkg.updateHeader(buf.toString());
+
 			pkg.checkin("Imports setup automatically on model import.");
 
 		}
 	}
 
+
 	public static String convertPathToName(String name) {
 		return name.replace(".class", "").replace("/", ".");
 	}

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/files/FileManagerUtils.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/files/FileManagerUtils.java	2008-06-09 22:41:10 UTC (rev 20388)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/files/FileManagerUtils.java	2008-06-10 01:02:35 UTC (rev 20389)
@@ -22,6 +22,7 @@
 import org.apache.commons.fileupload.disk.DiskFileItemFactory;
 import org.apache.commons.fileupload.servlet.ServletFileUpload;
 import org.drools.brms.client.common.HTMLFileManagerFields;
+import org.drools.brms.server.ServiceImplementation;
 import org.drools.brms.server.builder.ContentPackageAssembler;
 import org.drools.brms.server.contenthandler.ContentHandler;
 import org.drools.brms.server.contenthandler.ContentManager;
@@ -94,7 +95,6 @@
 
 
         //special treatment for model attachments.
-
         ContentHandler handler = ContentManager.getHandler(item.getFormat());
         if (handler instanceof ModelContentHandler) {
         	((ModelContentHandler)handler).modelAttached(item);
@@ -228,11 +228,11 @@
         boolean existing = false;
         if ( repository.containsPackage( imp.getPackageName() ) ) {
             pkg = repository.loadPackage( imp.getPackageName() );
-            pkg.updateHeader(ClassicDRLImporter.mergeLines(pkg.getHeader(), imp.getPackageHeader()));
+            ServiceImplementation.updateDroolsHeader(ClassicDRLImporter.mergeLines(ServiceImplementation.getDroolsHeader(pkg), imp.getPackageHeader()), pkg);
             existing = true;
         } else {
             pkg = repository.createPackage( imp.getPackageName(), "<imported>" );
-            pkg.updateHeader( imp.getPackageHeader() );
+            ServiceImplementation.updateDroolsHeader(imp.getPackageHeader(), pkg );
         }
 
 

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/util/BRMSSuggestionCompletionLoader.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/util/BRMSSuggestionCompletionLoader.java	2008-06-09 22:41:10 UTC (rev 20388)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/util/BRMSSuggestionCompletionLoader.java	2008-06-10 01:02:35 UTC (rev 20389)
@@ -24,6 +24,7 @@
 
 import org.drools.brms.client.common.AssetFormats;
 import org.drools.brms.client.modeldriven.SuggestionCompletionEngine;
+import org.drools.brms.server.ServiceImplementation;
 import org.drools.brms.server.builder.BRMSPackageBuilder;
 import org.drools.brms.server.rules.SuggestionCompletionLoader;
 import org.drools.lang.dsl.DSLMappingFile;
@@ -38,7 +39,7 @@
 public class BRMSSuggestionCompletionLoader extends SuggestionCompletionLoader {
 
     public SuggestionCompletionEngine getSuggestionEngine(PackageItem pkg) {
-            return super.getSuggestionEngine( pkg.getHeader(), getJars( pkg ), getDSLMappingFiles( pkg ), getDataEnums( pkg ));
+            return super.getSuggestionEngine( ServiceImplementation.getDroolsHeader(pkg), getJars( pkg ), getDSLMappingFiles( pkg ), getDataEnums( pkg ));
     }
 
 

Deleted: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/PerfServiceTest.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/PerfServiceTest.java	2008-06-09 22:41:10 UTC (rev 20388)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/PerfServiceTest.java	2008-06-10 01:02:35 UTC (rev 20389)
@@ -1,163 +0,0 @@
-package org.drools.brms.server;
-/*
- * Copyright 2005 JBoss Inc
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-
-import java.io.ByteArrayInputStream;
-import java.io.ObjectInputStream;
-import java.util.Calendar;
-
-import javax.jcr.Node;
-import javax.jcr.Session;
-
-import junit.framework.TestCase;
-
-import org.drools.brms.client.rpc.BuilderResult;
-import org.drools.brms.server.util.TestEnvironmentSessionHelper;
-import org.drools.repository.AssetItem;
-import org.drools.repository.PackageItem;
-import org.drools.repository.RulesRepository;
-import org.drools.repository.VersionableItem;
-import org.drools.rule.Package;
-
-/**
- * A playground for performance analysing.
- * @author Michael Neale
- *
- */
-public class PerfServiceTest extends TestCase {
-
-    private long time;
-
-    public void testDummy() {}
-
-    public void XXXtestWarmup() throws Exception {
-
-        ServiceImplementation impl = getService();
-        RulesRepository repo = impl.repository;
-
-
-
-        //create our package
-        PackageItem pkg = repo.createPackage( "testBinaryPackageCompile", "" );
-        pkg.updateHeader( "import org.drools.Person" );
-        Session session = repo.getSession();
-        Node pkgNode = repo.getSession().getNodeByUUID( pkg.getUUID() );
-
-        Node assetNode = pkgNode.getNode( "assets" );
-
-
-
-        for (int i = 0; i < 500; i++) {
-            System.out.println("processing asset:" + i);
-            Node ruleNode = assetNode.addNode( "" + i, "drools:assetNodeType" );
-
-            ruleNode.setProperty( AssetItem.TITLE_PROPERTY_NAME,
-                                  "" + i );
-
-            ruleNode.setProperty( AssetItem.DESCRIPTION_PROPERTY_NAME,
-                                  "" );
-
-            ruleNode.setProperty( AssetItem.FORMAT_PROPERTY_NAME,
-                                  "DRL" );
-
-
-            ruleNode.setProperty( VersionableItem.CHECKIN_COMMENT,
-                                  "Initial" );
-
-            Calendar lastModified = Calendar.getInstance();
-
-            ruleNode.setProperty( AssetItem.LAST_MODIFIED_PROPERTY_NAME, lastModified );
-//            ruleNode.setProperty( AssetItem.PACKAGE_NAME_PROPERTY, this.getName() );
-            ruleNode.setProperty( AssetItem.CREATOR_PROPERTY_NAME, session.getUserID() );
-
-
-
-            repo.save();
-            ruleNode.checkin();
-//            AssetItem rule1 = pkg.addAsset( "rule_" + i, "" );
-//            rule1.updateFormat( AssetFormats.DRL );
-//            rule1.updateContent( "rule 'rule_" + i + "'  \n when p:Person() \n then p.setAge(" + i + "); \n end");
-//            rule1.checkin( "" );
-
-        }
-
-        repo.save();
-
-
-    }
-
-    /**
-     * This will test creating a package, check it compiles, and can exectute rules,
-     * then take a snapshot, and check that it reports errors.
-     */
-    public void XXXtestBinaryPackageCompileAndExecute() throws Exception {
-
-
-        ServiceImplementation impl = getService();
-        RulesRepository repo = impl.repository;
-
-        reset();
-
-        PackageItem pkg = repo.loadPackage( "testBinaryPackageCompile" );
-
-        time("loaded package"); reset();
-
-        BuilderResult[] results = impl.buildPackage( pkg.getUUID(), null, true );
-
-        time("built"); reset();
-        assertNull(results);
-
-        pkg = repo.loadPackage( "testBinaryPackageCompile" );
-        byte[] binPackage = pkg.getCompiledPackageBytes();
-
-        time("got bytes"); reset();
-
-        assertNotNull(binPackage);
-
-        ByteArrayInputStream bin = new ByteArrayInputStream(binPackage);
-        ObjectInputStream in = new ObjectInputStream(bin);
-        Package binPkg = (Package) in.readObject();
-
-        assertNotNull(binPkg);
-        assertTrue(binPkg.isValid());
-
-
-
-        impl.createPackageSnapshot( "testBinaryPackageCompile", "SNAP1", false, "" );
-
-
-
-    }
-
-    private void time(String m) {
-        System.out.println(m + " : " + (System.currentTimeMillis() - time) );
-
-    }
-
-    private void reset() {
-        this.time = System.currentTimeMillis();
-
-    }
-
-    private ServiceImplementation getService() throws Exception {
-        ServiceImplementation impl = new ServiceImplementation();
-        impl.repository = new RulesRepository( TestEnvironmentSessionHelper.getSession() );
-        return impl;
-    }
-
-}
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/PopulateDataTest.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/PopulateDataTest.java	2008-06-09 22:41:10 UTC (rev 20388)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/PopulateDataTest.java	2008-06-10 01:02:35 UTC (rev 20389)
@@ -77,8 +77,8 @@
 
 
         PackageItem pkg = repo.loadPackage( "com.billasurf.manufacturing.plant" );
-        pkg.updateHeader( "import com.billasurf.Board\nimport com.billasurf.Person" +
-                "\n\nglobal com.billasurf.Person prs" );
+        ServiceImplementation.updateDroolsHeader( "import com.billasurf.Board\nimport com.billasurf.Person" +
+                "\n\nglobal com.billasurf.Person prs", pkg );
         pkg.checkin( "added imports" );
 
         SuggestionCompletionEngine eng = serv.loadSuggestionCompletionEngine( "com.billasurf.manufacturing.plant" );

Modified: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java	2008-06-09 22:41:10 UTC (rev 20388)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java	2008-06-10 01:02:35 UTC (rev 20389)
@@ -206,7 +206,7 @@
 		assertEquals("DUPLICATE", uuid);
 
 	}
-	
+
 	public void testCreateNewRule() throws Exception {
 		ServiceImplementation impl = getService();
 		impl.repository.createPackage("testCreateNewRule", "desc");
@@ -221,7 +221,7 @@
 		AssetItem dtItem = impl.repository.loadAssetByUUID(uuid);
 		assertEquals(dtItem.getDescription(), "an initial desc");
 	}
-	
+
 	public void testCreateNewRuleContainsApostrophe() throws Exception {
 		ServiceImplementation impl = getService();
 		impl.repository.createPackage("testCreateNewRuleContainsApostrophe",
@@ -242,7 +242,7 @@
 							"'testCreateNewRuleContains' character' is not a valid path. ''' not a valid name character") >= 0);
 		}
 	}
-	
+
 	public void testRuleTableLoad() throws Exception {
 		ServiceImplementation impl = getService();
 		TableConfig conf = impl
@@ -524,7 +524,7 @@
 		String uuid = it.getUUID();
 		it.updateCoverage("xyz");
 		it.updateExternalURI("ext");
-		it.updateHeader("header");
+		ServiceImplementation.updateDroolsHeader("header", it);
 		impl.repository.save();
 
 		PackageConfigData data = impl.loadPackageConfig(uuid);
@@ -803,7 +803,7 @@
 		}
 
 		PackageItem pkg = repo.createPackage("testSnapshotRebuild", "");
-		pkg.updateHeader("import java.util.List");
+		ServiceImplementation.updateDroolsHeader("import java.util.List", pkg);
 		repo.save();
 
 		AssetItem item = pkg.addAsset("anAsset", "");
@@ -963,7 +963,7 @@
 
 		// create our package
 		PackageItem pkg = repo.createPackage("testBinaryPackageCompile", "");
-		pkg.updateHeader("import org.drools.Person");
+		ServiceImplementation.updateDroolsHeader("import org.drools.Person", pkg);
 		AssetItem rule1 = pkg.addAsset("rule_1", "");
 		rule1.updateFormat(AssetFormats.DRL);
 		rule1
@@ -1026,7 +1026,7 @@
 
 		// create our package
 		PackageItem pkg = repo.createPackage("testBinaryPackageCompileBRL", "");
-		pkg.updateHeader("import org.drools.Person");
+		ServiceImplementation.updateDroolsHeader("import org.drools.Person", pkg);
 		AssetItem rule2 = pkg.addAsset("rule2", "");
 		rule2.updateFormat(AssetFormats.BUSINESS_RULE);
 
@@ -1151,7 +1151,7 @@
 
 		// create our package
 		PackageItem pkg = repo.createPackage("testPackageSource", "");
-		pkg.updateHeader("import org.goo.Ber");
+		ServiceImplementation.updateDroolsHeader("import org.goo.Ber", pkg);
 		AssetItem rule1 = pkg.addAsset("rule_1", "");
 		rule1.updateFormat(AssetFormats.DRL);
 		rule1
@@ -1267,7 +1267,7 @@
 				.getResourceAsStream("/billasurf.jar"));
 		model.checkin("");
 
-		pkg.updateHeader("import com.billasurf.Person");
+		ServiceImplementation.updateDroolsHeader("import com.billasurf.Person", pkg);
 
 		AssetItem asset = pkg.addAsset("testRule", "");
 		asset.updateFormat(AssetFormats.DRL);
@@ -1331,7 +1331,7 @@
 				.getResourceAsStream("/billasurf.jar"));
 		model.checkin("");
 
-		pkg.updateHeader("import com.billasurf.Person");
+		ServiceImplementation.updateDroolsHeader("import com.billasurf.Person", pkg);
 		impl.createCategory("/", "brl", "");
 
 		String uuid = impl.createNewRule("testBRL", "", "brl",
@@ -1374,13 +1374,13 @@
 		assertNull(result);
 
 		List assets = iteratorToList(pkg.getAssets());
-		assertEquals(2, assets.size());
+		assertEquals(3, assets.size());
 		// now lets copy...
 		String newUUID = impl.copyAsset(rule.uuid, rule.metaData.packageName,
 				"ruleName2");
 
 		assets = iteratorToList(pkg.getAssets());
-		assertEquals(3, assets.size());
+		assertEquals(4, assets.size()); //we have 4 due to the drools.package file.
 		RuleAsset asset = impl.loadRuleAsset(newUUID);
 
 		String pkgSource = impl.buildPackageSource(pkg.getUUID());
@@ -1432,7 +1432,7 @@
 		}
 		assertNull(result);
 
-		pkg.updateHeader("importxxxx");
+		ServiceImplementation.updateDroolsHeader("importxxxx", pkg);
 		repo.save();
 		result = impl.buildAsset(rule);
 		assertNotNull(result);
@@ -1449,7 +1449,7 @@
 
 		// create our package
 		PackageItem pkg = repo.createPackage("testRuleNameList", "");
-		pkg.updateHeader("import org.goo.Ber");
+		ServiceImplementation.updateDroolsHeader("import org.goo.Ber", pkg);
 		AssetItem rule1 = pkg.addAsset("rule_1", "");
 		rule1.updateFormat(AssetFormats.DRL);
 		rule1
@@ -1481,7 +1481,7 @@
 		// create our package
 		PackageItem pkg = repo.createPackage("testBinaryPackageUpToDate", "");
 		assertFalse(pkg.isBinaryUpToDate());
-		pkg.updateHeader("import org.drools.Person");
+		ServiceImplementation.updateDroolsHeader("import org.drools.Person", pkg);
 		AssetItem rule1 = pkg.addAsset("rule_1", "");
 		rule1.updateFormat(AssetFormats.DRL);
 		rule1
@@ -1537,7 +1537,7 @@
 		RulesRepository repo = impl.repository;
 
 		PackageItem pkg = repo.createPackage("testScenarioRun", "");
-		pkg.updateHeader("import org.drools.Person\n global org.drools.Cheese cheese\n");
+		ServiceImplementation.updateDroolsHeader("import org.drools.Person\n global org.drools.Cheese cheese\n", pkg);
 		AssetItem rule1 = pkg.addAsset("rule_1", "");
 		rule1.updateFormat(AssetFormats.DRL);
 		rule1
@@ -1640,7 +1640,7 @@
 				.getResourceAsStream("/billasurf.jar"));
 		model.checkin("");
 
-		pkg.updateHeader("import com.billasurf.Board");
+		ServiceImplementation.updateDroolsHeader("import com.billasurf.Board", pkg);
 
 		AssetItem asset = pkg.addAsset("testRule", "");
 		asset.updateFormat(AssetFormats.DRL);
@@ -1697,7 +1697,7 @@
 		RulesRepository repo = impl.repository;
 
 		PackageItem pkg = repo.createPackage("testScenarioRunBulk", "");
-		pkg.updateHeader("import org.drools.Person");
+		ServiceImplementation.updateDroolsHeader("import org.drools.Person", pkg);
 		AssetItem rule1 = pkg.addAsset("rule_1", "");
 		rule1.updateFormat(AssetFormats.DRL);
 		rule1
@@ -1843,7 +1843,7 @@
 		impl.createCategory("/", "decisiontables", "");
 
 		PackageItem pkg = repo.createPackage("testGuidedDTCompile", "");
-		pkg.updateHeader("import org.drools.Person");
+		ServiceImplementation.updateDroolsHeader("import org.drools.Person", pkg);
 		AssetItem rule1 = pkg.addAsset("rule_1", "");
 		rule1.updateFormat(AssetFormats.DRL);
 		rule1.updateContent("rule 'rule1' \n when \np : Person() \n then \np.setAge(42); \n end");

Modified: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/builder/ContentPackageAssemblerTest.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/builder/ContentPackageAssemblerTest.java	2008-06-09 22:41:10 UTC (rev 20388)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/builder/ContentPackageAssemblerTest.java	2008-06-10 01:02:35 UTC (rev 20389)
@@ -37,6 +37,7 @@
 import org.drools.brms.client.modeldriven.brl.DSLSentence;
 import org.drools.brms.client.modeldriven.brl.FactPattern;
 import org.drools.brms.client.modeldriven.brl.RuleModel;
+import org.drools.brms.server.ServiceImplementation;
 import org.drools.brms.server.selector.AssetSelector;
 import org.drools.brms.server.selector.SelectorManager;
 import org.drools.brms.server.util.BRXMLPersistence;
@@ -63,7 +64,7 @@
         //test the config, no rule assets yet
         RulesRepository repo = getRepo();
         PackageItem pkg = repo.createPackage( "testBuilderPackageConfig", "x" );
-        pkg.updateHeader( "import java.util.List" );
+        ServiceImplementation.updateDroolsHeader( "import java.util.List", pkg );
         AssetItem func = pkg.addAsset( "func1", "a function" );
         func.updateFormat( AssetFormats.FUNCTION );
         func.updateContent( "function void doSomething() { \n System.err.println(List.class.toString()); }" );
@@ -93,12 +94,12 @@
         assertEquals(1, assembler.builder.getDSLMappingFiles().size());
 
 
-        pkg.updateHeader( "koo koo ca choo" );
+        ServiceImplementation.updateDroolsHeader( "koo koo ca choo", pkg );
         assembler = new ContentPackageAssembler(pkg);
         assertTrue(assembler.hasErrors());
         assertTrue(assembler.isPackageConfigurationInError());
 
-        pkg.updateHeader( "import java.util.Date" );
+        ServiceImplementation.updateDroolsHeader( "import java.util.Date", pkg );
         assembler = new ContentPackageAssembler(pkg);
         assertTrue(assembler.hasErrors());
         assertTrue(assembler.getErrors().get(0).itemInError instanceof AssetItem);
@@ -112,7 +113,7 @@
         }
 
         //fix it up
-        pkg.updateHeader( "import java.util.List" );
+        ServiceImplementation.updateDroolsHeader("import java.util.List", pkg);
         assembler = new ContentPackageAssembler(pkg);
         assertFalse(assembler.hasErrors());
 
@@ -152,7 +153,7 @@
         model.updateBinaryContentAttachment( this.getClass().getResourceAsStream( "/billasurf.jar" ) );
         model.checkin( "" );
 
-        pkg.updateHeader( "import com.billasurf.Board\n global com.billasurf.Person customer" );
+        ServiceImplementation.updateDroolsHeader("import com.billasurf.Board\n global com.billasurf.Person customer", pkg);
 
         AssetItem rule1 = pkg.addAsset( "rule_1", "" );
         rule1.updateFormat( AssetFormats.DRL );
@@ -207,7 +208,7 @@
         model.updateBinaryContentAttachment( this.getClass().getResourceAsStream( "/billasurf.jar" ) );
         model.checkin( "" );
 
-        pkg.updateHeader( "import com.billasurf.Board\n global com.billasurf.Person customer" );
+        ServiceImplementation.updateDroolsHeader("import com.billasurf.Board\n global com.billasurf.Person customer", pkg );
 
         AssetItem rule1 = pkg.addAsset( "rule_1", "" );
         rule1.updateFormat( AssetFormats.DRL );
@@ -241,7 +242,7 @@
         repo.createPackageSnapshot( pkg.getName(), "SNAP_1" );
 
         //and screw up the the non snapshot one
-        pkg.updateHeader( "koo koo ca choo" );
+        ServiceImplementation.updateDroolsHeader("koo koo ca choo", pkg );
         asm = new ContentPackageAssembler(pkg);
         assertTrue(asm.hasErrors());
 
@@ -263,7 +264,7 @@
         model.updateBinaryContentAttachment( this.getClass().getResourceAsStream( "/billasurf.jar" ) );
         model.checkin( "" );
 
-        pkg.updateHeader( "import com.billasurf.Board\n global com.billasurf.Person customer" );
+        ServiceImplementation.updateDroolsHeader("import com.billasurf.Board\n global com.billasurf.Person customer", pkg );
 
         AssetItem rule1 = pkg.addAsset( "rule_1", "" );
         rule1.updateFormat( AssetFormats.DRL );
@@ -305,7 +306,7 @@
         model.updateFormat( AssetFormats.MODEL );
         model.updateBinaryContentAttachment( this.getClass().getResourceAsStream( "/billasurf.jar" ) );
         model.checkin( "" );
-        pkg.updateHeader( "import com.billasurf.Board\n global com.billasurf.Person customer" );
+        ServiceImplementation.updateDroolsHeader("import com.billasurf.Board\n global com.billasurf.Person customer", pkg );
         repo.save();
 
         AssetItem goodRule = pkg.addAsset( "goodRule", "" );
@@ -344,7 +345,7 @@
         model.updateFormat( AssetFormats.MODEL );
         model.updateBinaryContentAttachment( this.getClass().getResourceAsStream( "/billasurf.jar" ) );
         model.checkin( "" );
-        pkg.updateHeader( "import com.billasurf.Board\n global com.billasurf.Person customer" );
+        ServiceImplementation.updateDroolsHeader("import com.billasurf.Board\n global com.billasurf.Person customer", pkg );
         repo.save();
 
         AssetItem func = pkg.addAsset( "func", "" );
@@ -395,7 +396,7 @@
         //first, setup the package correctly:
         PackageItem pkg = repo.createPackage( "testShowSource", "" );
 
-        pkg.updateHeader( "import com.billasurf.Board\n global com.billasurf.Person customer" );
+        ServiceImplementation.updateDroolsHeader("import com.billasurf.Board\n global com.billasurf.Person customer", pkg );
         repo.save();
 
         AssetItem func = pkg.addAsset( "func", "" );
@@ -440,7 +441,7 @@
         //first, setup the package correctly:
         PackageItem pkg = repo.createPackage( "testXLSDecisionTable", "" );
 
-        pkg.updateHeader( "import org.acme.insurance.Policy\n import org.acme.insurance.Driver" );
+        ServiceImplementation.updateDroolsHeader("import org.acme.insurance.Policy\n import org.acme.insurance.Driver", pkg );
         repo.save();
 
         InputStream xls = this.getClass().getResourceAsStream( "/SampleDecisionTable.xls" );
@@ -499,7 +500,7 @@
 
         //create our package
         PackageItem pkg = repo.createPackage( "testBRLWithDSLMixedIn", "" );
-        pkg.updateHeader( "import org.drools.Person" );
+        ServiceImplementation.updateDroolsHeader( "import org.drools.Person", pkg );
         AssetItem rule1 = pkg.addAsset( "rule2", "" );
         rule1.updateFormat( AssetFormats.BUSINESS_RULE );
 
@@ -568,7 +569,7 @@
 
         //create our package
         PackageItem pkg = repo.createPackage( "testCustomSelector", "" );
-        pkg.updateHeader( "import org.drools.Person" );
+        ServiceImplementation.updateDroolsHeader("import org.drools.Person", pkg );
         AssetItem rule1 = pkg.addAsset( "rule1", "" );
         rule1.updateFormat( AssetFormats.DRL );
 

Modified: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/contenthandler/ContentHandlerTest.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/contenthandler/ContentHandlerTest.java	2008-06-09 22:41:10 UTC (rev 20388)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/contenthandler/ContentHandlerTest.java	2008-06-10 01:02:35 UTC (rev 20389)
@@ -38,12 +38,10 @@
         assertTrue(ContentManager.getHandler( AssetFormats.DECISION_TABLE_GUIDED ) instanceof GuidedDTContentHandler);
 
 
-        try {
-            ContentManager.getHandler( "XXX" );
-            fail("should have thrown an exception");
-        } catch (IllegalArgumentException e) {
-            assertNotNull(e.getMessage());
-        }
+
+        assertTrue(ContentManager.getHandler( "XXX" ) instanceof DefaultContentHandler);
+
+
     }
 
     public void testRuleAssetType() {

Modified: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/rules/BRMSSuggestionCompletionLoaderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/rules/BRMSSuggestionCompletionLoaderTest.java	2008-06-09 22:41:10 UTC (rev 20388)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/rules/BRMSSuggestionCompletionLoaderTest.java	2008-06-10 01:02:35 UTC (rev 20389)
@@ -23,6 +23,7 @@
 
 import org.drools.brms.client.common.AssetFormats;
 import org.drools.brms.client.modeldriven.SuggestionCompletionEngine;
+import org.drools.brms.server.ServiceImplementation;
 import org.drools.brms.server.util.BRMSSuggestionCompletionLoader;
 import org.drools.brms.server.util.TestEnvironmentSessionHelper;
 import org.drools.repository.AssetItem;
@@ -35,11 +36,11 @@
 
         RulesRepository repo = new RulesRepository(TestEnvironmentSessionHelper.getSession());
         PackageItem item = repo.createPackage( "testLoader", "to test the loader" );
-        item.updateHeader( "import java.util.Date" );
+        ServiceImplementation.updateDroolsHeader("import java.util.Date", item );
         repo.save();
 
         BRMSSuggestionCompletionLoader  loader = new BRMSSuggestionCompletionLoader();
-        String header = item.getHeader();
+        String header = ServiceImplementation.getDroolsHeader(item);
 
 
         SuggestionCompletionEngine engine = loader.getSuggestionEngine( item );
@@ -66,7 +67,7 @@
 
         RulesRepository repo = new RulesRepository(TestEnvironmentSessionHelper.getSession());
         PackageItem item = repo.createPackage( "testLoader2", "to test the loader for fact templates" );
-        item.updateHeader( "import java.util.Date\ntemplate Person\njava.lang.String name\nDate birthDate\nend" );
+        ServiceImplementation.updateDroolsHeader("import java.util.Date\ntemplate Person\njava.lang.String name\nDate birthDate\nend", item );
         repo.save();
 
         BRMSSuggestionCompletionLoader loader = new BRMSSuggestionCompletionLoader();
@@ -162,13 +163,13 @@
         assertNotNull(loader.getSuggestionEngine( item ));
         assertFalse(loader.hasErrors());
 
-        item.updateHeader( "gooble de gook" );
+        ServiceImplementation.updateDroolsHeader("gooble de gook", item );
         loader = new BRMSSuggestionCompletionLoader();
         loader.getSuggestionEngine( item );
         assertTrue(loader.hasErrors());
 
 
-        item.updateHeader( "import foo.bar; \nglobal goo.Bar baz;" );
+        ServiceImplementation.updateDroolsHeader("import foo.bar; \nglobal goo.Bar baz;", item );
         loader = new BRMSSuggestionCompletionLoader();
         loader.getSuggestionEngine( item );
         assertTrue(loader.hasErrors());

Modified: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/util/FileManagerUtilsTest.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/util/FileManagerUtilsTest.java	2008-06-09 22:41:10 UTC (rev 20388)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/util/FileManagerUtilsTest.java	2008-06-10 01:02:35 UTC (rev 20389)
@@ -86,18 +86,18 @@
 		pkg = repo.loadPackage("testAttachModelImports");
 
 		assertFalse(pkg.isBinaryUpToDate());
-		assertNotNull(pkg.getHeader());
-		assertTrue(pkg.getHeader().indexOf("import com.billasurf.Board") > -1);
-		assertTrue(pkg.getHeader().indexOf("import com.billasurf.Person") > -1);
+		assertNotNull(ServiceImplementation.getDroolsHeader(pkg));
+		assertTrue(ServiceImplementation.getDroolsHeader(pkg).indexOf("import com.billasurf.Board") > -1);
+		assertTrue(ServiceImplementation.getDroolsHeader(pkg).indexOf("import com.billasurf.Person") > -1);
 
 
-		pkg.updateHeader("goo wee");
+		ServiceImplementation.updateDroolsHeader("goo wee", pkg);
 		pkg.checkin("");
 
 
 		fm.attachFileToAsset(asset.getUUID(), this.getClass().getResourceAsStream("/billasurf.jar"), "billasurf.jar");
 		pkg = repo.loadPackage("testAttachModelImports");
-		assertEquals("goo wee", pkg.getHeader());
+		assertEquals("goo wee", ServiceImplementation.getDroolsHeader(pkg));
 
 	}
 
@@ -147,7 +147,7 @@
 
 		uploadHelper.repository = repo;
 		PackageItem pkg = repo.createPackage("testGetBinaryPackageServlet", "");
-		pkg.updateHeader("import java.util.List");
+		ServiceImplementation.updateDroolsHeader("import java.util.List", pkg);
 		pkg.updateCompiledPackage(new ByteArrayInputStream("foo".getBytes()));
 		pkg.checkin("");
 
@@ -213,8 +213,12 @@
 		assertNotNull(pkg);
 
 		List<AssetItem> rules = iteratorToList(pkg.getAssets());
-		assertEquals(2, rules.size());
+		assertEquals(3, rules.size());
 
+		AssetItem pkgConf = rules.get(0);
+		assertEquals("drools", pkgConf.getName());
+		rules.remove(0);
+
 		final AssetItem rule1 = rules.get(0);
 		assertEquals("ola", rule1.getName());
 		assertNotNull(rule1.getContent());
@@ -227,8 +231,8 @@
 		assertEquals(AssetFormats.DRL, rule2.getFormat());
 		assertTrue(rule2.getContent().indexOf("when") > -1);
 
-		assertNotNull(pkg.getHeader());
-		assertTrue(pkg.getHeader().indexOf("import") > -1);
+		assertNotNull(ServiceImplementation.getDroolsHeader(pkg));
+		assertTrue(ServiceImplementation.getDroolsHeader(pkg).indexOf("import") > -1);
 
 		// now lets import an existing thing
 		drl = "package testClassicDRLImport\n import should not see \n rule 'ola2' \n when \n then \n end \n rule 'hola' \n when \n then \n end";
@@ -239,13 +243,13 @@
 		assertNotNull(pkg);
 
 		// it should not overwrite this.
-		String hdr = pkg.getHeader();
+		String hdr = ServiceImplementation.getDroolsHeader(pkg);
 		assertTrue(hdr.indexOf("import should not see") > -1);
 		assertTrue(hdr.indexOf("import blah") > -1);
 		assertTrue(hdr.indexOf("import should not see") > hdr.indexOf("import blah"));
 
 		rules = iteratorToList(pkg.getAssets());
-		assertEquals(3, rules.size());
+		assertEquals(4, rules.size());
 
 		// now we will import a change, check that it appears. a change to the
 		// "ola" rule
@@ -276,8 +280,13 @@
 		assertNotNull(pkg);
 
 		List<AssetItem> rules = iteratorToList(pkg.getAssets());
-		assertEquals(2, rules.size());
+		assertEquals(3, rules.size()); //its 3 cause there is the drools.package file
+		AssetItem pkgConf = rules.get(0);
+		assertEquals("drools", pkgConf.getName());
+		assertEquals("package", pkgConf.getFormat());
+		rules.remove(0);//now lets get rid of it
 
+
 		final AssetItem rule1 = rules.get(0);
 		assertEquals("ola", rule1.getName());
 		assertNotNull(rule1.getContent());
@@ -290,8 +299,7 @@
 		assertEquals(AssetFormats.DSL_TEMPLATE_RULE, rule2.getFormat());
 		assertTrue(rule2.getContent().indexOf("when") > -1);
 
-		assertNotNull(pkg.getHeader());
-		assertTrue(pkg.getHeader().indexOf("import") > -1);
+		assertTrue(ServiceImplementation.getDroolsHeader(pkg).indexOf("import") > -1);
 
 	}
 
@@ -299,7 +307,7 @@
 		RulesRepository repo = new RulesRepository(TestEnvironmentSessionHelper
 				.getSession());
 		PackageItem pkg = repo.createPackage("testHeadOOME", "");
-		pkg.updateHeader("import java.util.List");
+		ServiceImplementation.updateDroolsHeader("import java.util.List", pkg);
 		pkg.updateCompiledPackage(new ByteArrayInputStream("foo".getBytes()));
 		pkg.checkin("");
 		repo.logout();

Modified: labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/PackageItem.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/PackageItem.java	2008-06-09 22:41:10 UTC (rev 20388)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/PackageItem.java	2008-06-10 01:02:35 UTC (rev 20389)
@@ -8,25 +8,14 @@
 import java.util.Iterator;
 import java.util.List;
 
-import javax.jcr.AccessDeniedException;
 import javax.jcr.ItemExistsException;
-import javax.jcr.ItemNotFoundException;
 import javax.jcr.Node;
-import javax.jcr.PathNotFoundException;
 import javax.jcr.Property;
 import javax.jcr.RepositoryException;
-import javax.jcr.lock.LockException;
-import javax.jcr.nodetype.ConstraintViolationException;
 import javax.jcr.query.Query;
 import javax.jcr.query.QueryResult;
-import javax.jcr.version.VersionException;
 
-import org.apache.log4j.Appender;
-import org.apache.log4j.Layout;
 import org.apache.log4j.Logger;
-import org.apache.log4j.spi.ErrorHandler;
-import org.apache.log4j.spi.Filter;
-import org.apache.log4j.spi.LoggingEvent;
 
 /**
  * A PackageItem object aggregates a set of assets (for example, rules). This is advantageous for systems using the JBoss Rules
@@ -648,9 +637,9 @@
     /**
      * @return The header contents as pertains to a package of rule assets.
      */
-    public String getHeader() {
-        return this.getStringProperty( HEADER_PROPERTY_NAME );
-    }
+//    public String getHeader() {
+//        return this.getStringProperty( HEADER_PROPERTY_NAME );
+//    }
 
     /**
      * @return The external URI which will be used to sync this package to an external resource.
@@ -661,9 +650,9 @@
         return this.getStringProperty( EXTERNAL_URI_PROPERTY_NAME );
     }
 
-    public void updateHeader(String header) {
-        updateStringProperty( header, HEADER_PROPERTY_NAME );
-    }
+//    public void updateHeader(String header) {
+//        updateStringProperty( header, HEADER_PROPERTY_NAME );
+//    }
 
     public void updateExternalURI(String uri) {
         updateStringProperty( uri, EXTERNAL_URI_PROPERTY_NAME );

Modified: labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RulesRepository.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RulesRepository.java	2008-06-09 22:41:10 UTC (rev 20388)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RulesRepository.java	2008-06-10 01:02:35 UTC (rev 20389)
@@ -31,6 +31,7 @@
 import javax.jcr.version.VersionException;
 
 import org.apache.log4j.Logger;
+import org.drools.repository.migration.MigrateDroolsPackage;
 
 /**
  * RulesRepository is the class that defines the bahavior for the JBoss Rules
@@ -98,7 +99,7 @@
 
     private Session             session;
 
-    private static boolean initialized = false;
+    static boolean initialized = false;
 
     /**
      * This requires a JCR session be setup, and the repository be configured.
@@ -112,12 +113,14 @@
     private synchronized static void checkForDataMigration(RulesRepository self) {
     	if (initialized) return;
     	if (self.session.getUserID().equals("anonymous")) return;
-    	//need to have check for migration in datastore
-    	PackageIterator pkgs = self.listPackages();
-//    	while(pkgs.hasNext()) {
-//
-//    	}
-
+    	try {
+    		MigrateDroolsPackage migration = new MigrateDroolsPackage();
+			if (migration.needsMigration(self)) {
+				migration.migrate(self);
+		    }
+		} catch (RepositoryException e) {
+			throw new RulesRepositoryException(e);
+		}
     	initialized = true;
 	}
 

Modified: labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/VersionableItem.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/VersionableItem.java	2008-06-09 22:41:10 UTC (rev 20388)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/VersionableItem.java	2008-06-10 01:02:35 UTC (rev 20389)
@@ -11,10 +11,10 @@
 
 /**
  * This is the parent class for versionable assets.
- * Contains standard fields based on Dublin Core, and 
+ * Contains standard fields based on Dublin Core, and
  * stuff required for versioning.
  * For dublin core, refer to <a href="http://dublincore.org/documents/dces/">Here</a>
- * 
+ *
  * @see CategorisableItem for more attributes to do with BRMS resources.
  * @author Ben Truitt, Michael Neale
  *
@@ -43,9 +43,9 @@
     public static final String RIGHTS_PROPERTY_NAME           = "drools:rights";
     public static final String COVERAGE_PROPERTY_NAME         = "drools:coverage";
     public static final String PUBLISHER_PROPERTY_NAME        = "drools:publisher";
-    
-    
-    
+
+
+
     /**
      * The name of the state property on the rule node type
      */
@@ -67,7 +67,7 @@
 
     /**
      * Sets this object's node attribute to the specified node
-     * 
+     *
      * @param rulesRepository the RulesRepository object that this object is being created from
      * @param node the node in the repository that this item corresponds to
      */
@@ -79,17 +79,17 @@
 
     /**
      * @return A unique identifier for this items content node.
-     * This UUID is constant even with new versions, it represents the asset, and 
+     * This UUID is constant even with new versions, it represents the asset, and
      * ALL its historical versions.
      */
     public String getUUID() {
         try {
             return this.getVersionContentNode().getUUID();
-        } catch (  RepositoryException e ) {            
+        } catch (  RepositoryException e ) {
             throw new RulesRepositoryException(e);
         }
     }
-    
+
     /**
      * This will return true if the current entity is actually a
      * historical version (which means is effectively read only).
@@ -97,10 +97,10 @@
     public boolean isHistoricalVersion() throws RepositoryException {
         return this.node.getPrimaryNodeType().getName().equals( "nt:version" ) || node.getPrimaryNodeType().getName().equals( "nt:frozenNode" );
     }
-    
-    
-    
 
+
+
+
     /**
      * @return the predessor node of this node in the version history, or null if no predecessor version exists
      * @throws RulesRepositoryException
@@ -161,7 +161,7 @@
     }
 
     /**
-     * @return an Iterator over VersionableItem objects encapsulating each successor node of this 
+     * @return an Iterator over VersionableItem objects encapsulating each successor node of this
      *         Item's node
      * @throws RulesRepositoryException
      * @Deprecated Until I can work out why it isn't quite kosher.
@@ -172,7 +172,7 @@
     }
 
     /**
-     * @return an Iterator over VersionableItem objects encapsulating each predecessor node of this 
+     * @return an Iterator over VersionableItem objects encapsulating each predecessor node of this
      *         Item's node
      * @throws RulesRepositoryException
      * @Deprecated Until I can work out why it isn't quite kosher.
@@ -183,38 +183,38 @@
     }
 
     /**
-     * Clients of this method can cast the resulting object to the type of object they are 
-     * calling the method on (e.g. 
+     * Clients of this method can cast the resulting object to the type of object they are
+     * calling the method on (e.g.
      *         <pre>
      *           RuleItem item;
      *           ...
      *           RuleItem predcessor = (RuleItem) item.getPrecedingVersion();
      *         </pre>
-     * @return a VersionableItem object encapsulating the predessor node of this node in the 
+     * @return a VersionableItem object encapsulating the predessor node of this node in the
      *         version history, or null if no predecessor version exists
      * @throws RulesRepositoryException
      */
     public abstract VersionableItem getPrecedingVersion() throws RulesRepositoryException;
 
     /**
-     * Clients of this method can cast the resulting object to the type of object they are 
-     * calling the method on (e.g. 
+     * Clients of this method can cast the resulting object to the type of object they are
+     * calling the method on (e.g.
      *         <pre>
      *           RuleItem item;
      *           ...
      *           RuleItem successor = (RuleItem) item.getSucceedingVersion();
      *         </pre>
-     *         
-     * @return a VersionableItem object encapsulating the successor node of this node in the 
-     *         version history. 
+     *
+     * @return a VersionableItem object encapsulating the successor node of this node in the
+     *         version history.
      * @throws RulesRepositoryException
      */
     public abstract VersionableItem getSucceedingVersion() throws RulesRepositoryException;
 
-    /** 
+    /**
      * Gets the Title of the versionable node.  See the Dublin Core documentation for more
      * explanation: http://dublincore.org/documents/dces/
-     * 
+     *
      * @return the title of the node this object encapsulates
      * @throws RulesRepositoryException
      */
@@ -231,10 +231,10 @@
         }
     }
 
-    /** 
+    /**
      * See the Dublin Core documentation for more
      * explanation: http://dublincore.org/documents/dces/
-     * 
+     *
      * @param title the new title for the node
      * @throws RulesRepositoryException
      */
@@ -284,7 +284,7 @@
      * uses the JCR node to set a property.
      * This will also update the timestamp.
      */
-    protected void updateStringProperty(String value,
+    public void updateStringProperty(String value,
                                       String prop) {
         try {
             checkIsUpdateable();
@@ -292,7 +292,7 @@
             if (value == null) {
                 return;
             }
-            
+
             node.checkout();
             node.setProperty( prop,
                               value );
@@ -307,14 +307,14 @@
             throw new RulesRepositoryException( e );
         }
     }
-    
 
-    
 
+
+
     /**
      * See the Dublin Core documentation for more
      * explanation: http://dublincore.org/documents/dces/
-     * 
+     *
      * @return the description of this object's node.
      * @throws RulesRepositoryException
      */
@@ -336,7 +336,7 @@
 //        } catch ( RepositoryException e ) {
 //            throw new RulesRepositoryException( e );
 //        }
-        
+
         return getLongProperty( VERSION_NUMBER_PROPERTY_NAME );
     }
 
@@ -363,12 +363,12 @@
     }
 
     /**
-     * Creates a new version of this object's node, updating the description content 
+     * Creates a new version of this object's node, updating the description content
      * for the node.
      * <br>
      * See the Dublin Core documentation for more
-     * explanation: http://dublincore.org/documents/dces/ 
-     * 
+     * explanation: http://dublincore.org/documents/dces/
+     *
      * @param newDescriptionContent the new description content for the rule
      * @throws RulesRepositoryException
      */
@@ -392,13 +392,13 @@
 
     /**
      * This returns the format of an item.
-     * This is analagous to a file extension 
-     * if the resource was a file (it may contain more information 
-     * then a pure file extension could, however). 
-     * 
+     * This is analagous to a file extension
+     * if the resource was a file (it may contain more information
+     * then a pure file extension could, however).
+     *
      * See the Dublin Core documentation for more
      * explanation: http://dublincore.org/documents/dces/
-     * 
+     *
      * @return the format of this object's node
      * @throws RulesRepositoryException
      */
@@ -416,10 +416,10 @@
     }
 
     /**
-     * This sets the format (or "file extension" of the resource). 
+     * This sets the format (or "file extension" of the resource).
      * In some cases this is critical, and generally should not be changed
      * after the initial version is checked in.
-     * 
+     *
      * @param newFormat
      */
     public void updateFormat(String newFormat) {
@@ -428,9 +428,9 @@
     }
 
     /**
-     * When retrieving content, if we are dealing with a version in the history, 
+     * When retrieving content, if we are dealing with a version in the history,
      * we need to get the actual content node to retrieve values.
-     * 
+     *
      */
     public Node getVersionContentNode() throws RepositoryException,
                                        PathNotFoundException {
@@ -452,9 +452,9 @@
         }
     }
 
-    /** 
+    /**
      * Need to get the name from the content node, not the version node
-     * if it is in fact a version ! 
+     * if it is in fact a version !
      */
     public String getName() {
         try {
@@ -498,8 +498,8 @@
             throw new RulesRepositoryException( e );
         }
     }
-    /** 
-     * This will save the content (if it hasn't been already) and 
+    /**
+     * This will save the content (if it hasn't been already) and
      * then check it in to create a new version.
      * It will also set the last modified property.
      */
@@ -539,14 +539,14 @@
 
     /**
      * Sets this object's rule node's state property to refer to the specified state node
-     * 
+     *
      * @param stateName the name of the state to set the rule node to
-     * @throws RulesRepositoryException 
+     * @throws RulesRepositoryException
      */
     public void updateState(String stateName) throws RulesRepositoryException {
         try {
 
-            //now set the state property of the rule                              
+            //now set the state property of the rule
             checkout();
 
             StateItem stateItem = this.rulesRepository.getState( stateName );
@@ -560,16 +560,16 @@
 
     /**
      * Sets this object's rule node's state property to refer to the specified StateItem's node
-     * 
-     * @param stateItem the StateItem encapsulating the node to refer to from this object's node's state 
+     *
+     * @param stateItem the StateItem encapsulating the node to refer to from this object's node's state
      *                  property
-     * @throws RulesRepositoryException 
+     * @throws RulesRepositoryException
      */
     public void updateState(StateItem stateItem) throws RulesRepositoryException {
         checkIsUpdateable();
         try {
 
-            //now set the state property of the rule                              
+            //now set the state property of the rule
             checkout();
             this.node.setProperty( STATE_PROPERTY_NAME,
                                    stateItem.getNode() );
@@ -582,7 +582,7 @@
 
     /**
      * Gets StateItem object corresponding to the state property of this object's node
-     * 
+     *
      * @return a StateItem object corresponding to the state property of this object's node, or null
      *         if the state property is not set
      * @throws RulesRepositoryException
@@ -658,8 +658,8 @@
     }
 
     /**
-     * Typically, 
-     * Subject will be expressed as keywords, 
+     * Typically,
+     * Subject will be expressed as keywords,
      * key phrases or classification codes that describe a topic of the resource.
      */
     public String getSubject() {
@@ -681,7 +681,7 @@
     }
 
     /**
-     * Typically, Coverage will include spatial location 
+     * Typically, Coverage will include spatial location
      * (a place name or geographic coordinates), temporal period (a period label, date, or date range) or jurisdiction (such as a named administrative entity). Recommended best practice is to select a value from a controlled vocabulary (for example, the Thesaurus of Geographic Names [TGN]) and to use, where appropriate, named places or time periods in preference to numeric identifiers such as sets of coordinates or date ranges.
      */
     public String getCoverage() {
@@ -689,7 +689,7 @@
     }
 
     /**
-     *  Examples of Publisher include a person, an organization, or a service. 
+     *  Examples of Publisher include a person, an organization, or a service.
      *  Typically, the name of a Publisher should be used to indicate the entity.
      */
     public String getPublisher() {
@@ -711,7 +711,7 @@
 
     }
 
-    protected String getStringProperty(String property) {
+    public String getStringProperty(String property) {
         try {
             Node theNode = getVersionContentNode();
             if ( theNode.hasProperty( property ) ) {
@@ -724,7 +724,7 @@
             throw new RulesRepositoryException( e );
         }
     }
-    
+
     protected long getLongProperty(String property) {
         try {
             Node theNode = getVersionContentNode();
@@ -736,12 +736,12 @@
             }
         } catch ( RepositoryException e ) {
             throw new RulesRepositoryException( e );
-        }        
+        }
     }
-    
+
     /**
      * This returns the id of the exact version node (as opposed to the "main" node).
-     * Note that each asset has only one UUID the whole time, but there are also UUIDs 
+     * Note that each asset has only one UUID the whole time, but there are also UUIDs
      * for each item in the history.
      * So while the main UUID version remains constant, the version UUIDs change on each
      * checkin, which is what this method provides.
@@ -757,9 +757,9 @@
             throw new RulesRepositoryException(e);
         }
 
-    }    
-    
+    }
 
+
     public VersionableItem archiveItem(boolean data) {
     	checkout();
 
@@ -773,7 +773,7 @@
     }
 
     /**
-     * Test if the VersionableItem is archived 
+     * Test if the VersionableItem is archived
      */
     public boolean isArchived() {
     	try {
@@ -784,6 +784,6 @@
     		throw new RulesRepositoryException(e);
     	}
     }
-    
-    
+
+
 }

Modified: labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/remoteapi/RestAPI.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/remoteapi/RestAPI.java	2008-06-09 22:41:10 UTC (rev 20388)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/remoteapi/RestAPI.java	2008-06-10 01:02:35 UTC (rev 20389)
@@ -85,7 +85,7 @@
 		if (resourceFile.equals(".package")) {
 			Text r = new Response.Text();
 			r.lastModified = pkg.getLastModified();
-			r.data = pkg.getHeader();
+			r.data = pkg.getStringProperty( PackageItem.HEADER_PROPERTY_NAME );
 			return r;
 		} else {
 			String assetName = resourceFile.split("\\.")[0];
@@ -141,7 +141,7 @@
 				//new package
 				PackageItem pkg = repo.createPackage(bits[1], "<added remotely>");
 				pkg.updateCheckinComment(comment);
-				pkg.updateHeader(readContent(in));
+				pkg.updateStringProperty(readContent(in), PackageItem.HEADER_PROPERTY_NAME);
 				repo.save();
 			} else {
 				//new asset
@@ -204,7 +204,7 @@
 				if (lastModified != null && pkg.getLastModified().after(lastModified)) {
 					throw new RulesRepositoryException("The package was modified by: " + pkg.getLastContributor() + ", unable to write changes.");
 				}
-				pkg.updateHeader(readContent(in));
+				pkg.updateStringProperty(readContent(in), PackageItem.HEADER_PROPERTY_NAME);
 				pkg.checkin(comment);
 				repo.save();
 			} else {

Modified: labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/PackageItemTest.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/PackageItemTest.java	2008-06-09 22:41:10 UTC (rev 20388)
+++ labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/PackageItemTest.java	2008-06-10 01:02:35 UTC (rev 20389)
@@ -620,12 +620,12 @@
     public void testMiscProperties() {
         PackageItem item = getRepo().createPackage( "testHeader", "ya" );
 
-        item.updateHeader( "new header" );
+        updateHeader( "new header", item );
         item.updateExternalURI( "boo" );
         getRepo().save();
-        assertEquals("new header", item.getHeader());
+        assertEquals("new header", getHeader(item));
         item = getRepo().loadPackage("testHeader");
-        assertEquals("new header", item.getHeader());
+        assertEquals("new header", getHeader(item));
         assertEquals("boo", item.getExternalURI());
 
 
@@ -642,6 +642,27 @@
             assertFalse(rulePackageItem1.isBinaryUpToDate());
     }
 
+    public static void updateHeader(String h, PackageItem pkg) {
+    	pkg.checkout();
+    	AssetItem as = null;
+    	if (pkg.containsAsset("drools")) {
+    		as = pkg.loadAsset("drools");
+    	} else {
+    		as = pkg.addAsset("drools", "");
+    	}
+		as.updateContent(h);
+		//as.checkin("");
+
+    }
+
+    public static String getHeader(PackageItem pkg) {
+    	if (pkg.containsAsset("drools")) {
+    		return pkg.loadAsset("drools").getContent();
+    	} else {
+    		return "";
+    	}
+    }
+
     public void testPackageCheckinConfig() {
         PackageItem item = getRepo().createPackage( "testPackageCheckinConfig", "description" );
 
@@ -649,19 +670,19 @@
         rule.checkin( "goo" );
 
         assertEquals(1, iteratorToList( item.getAssets() ).size());
-        item.updateHeader( "la" );
+        updateHeader( "la", item );
         item.checkin( "woot" );
 
-        item.updateHeader( "we" );
+        updateHeader( "we", item );
         item.checkin( "gah" );
 
 
 
 
 
-        PackageItem pre = (PackageItem) item.getPrecedingVersion();
-        assertNotNull(pre);
-        assertEquals("la", pre.getHeader());
+//        PackageItem pre = (PackageItem) item.getPrecedingVersion();
+//        assertNotNull(pre);
+//        assertEquals("la", getHeader(pre));
 
         AssetItem rule_ = getRepo().loadAssetByUUID( rule.getUUID() );
         assertEquals(rule.getVersionNumber(), rule_.getVersionNumber());

Modified: labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RulesRepositoryTest.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RulesRepositoryTest.java	2008-06-09 22:41:10 UTC (rev 20388)
+++ labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RulesRepositoryTest.java	2008-06-10 01:02:35 UTC (rev 20389)
@@ -14,6 +14,8 @@
 import javax.jcr.Session;
 import javax.jcr.SimpleCredentials;
 
+import org.drools.repository.migration.MigrateDroolsPackage;
+
 import junit.framework.TestCase;
 
 public class RulesRepositoryTest extends TestCase {
@@ -39,6 +41,10 @@
         assertNotNull(userId);
         assertFalse(userId.equals( "" ));
 
+        MigrateDroolsPackage mig = new MigrateDroolsPackage();
+        assertFalse(mig.needsMigration(repo));
+        assertTrue(repo.initialized);
+
     }
 
     public void testCategoryRename() throws Exception {

Modified: labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/remoteapi/RestAPITest.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/remoteapi/RestAPITest.java	2008-06-09 22:41:10 UTC (rev 20388)
+++ labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/remoteapi/RestAPITest.java	2008-06-10 01:02:35 UTC (rev 20389)
@@ -31,7 +31,7 @@
 
 		RulesRepository repo = RepositorySessionUtil.getRepository();
 		PackageItem pkg = repo.createPackage("testRestGetBasics", "");
-		pkg.updateHeader("This is some header");
+		pkg.updateStringProperty("This is some header", PackageItem.HEADER_PROPERTY_NAME);
 		repo.save();
 
 
@@ -66,7 +66,7 @@
 		res.writeData(out);
 
 		String dotPackage = new String(out.toByteArray());
-		assertEquals(pkg.getHeader(), dotPackage);
+		assertEquals(pkg.getStringProperty(PackageItem.HEADER_PROPERTY_NAME), dotPackage);
 
 		res = api.get("packages/testRestGetBasics");
 		assertTrue(res instanceof Text);
@@ -129,7 +129,7 @@
 	public void testPost() throws Exception {
 		RulesRepository repo = RepositorySessionUtil.getRepository();
 		PackageItem pkg = repo.createPackage("testRestPost", "");
-		pkg.updateHeader("This is some header");
+		pkg.updateStringProperty("This is some header", PackageItem.HEADER_PROPERTY_NAME);
 		repo.save();
 
 		RestAPI api = new RestAPI(repo);
@@ -164,7 +164,7 @@
 
 		api.post("/packages/testPostNewPackage/.package", new ByteArrayInputStream("qaz".getBytes()), "This is a new package");
 		PackageItem pkg = repo.loadPackage("testPostNewPackage");
-		assertEquals("qaz", pkg.getHeader());
+		assertEquals("qaz", pkg.getStringProperty(PackageItem.HEADER_PROPERTY_NAME));
 
 		assertEquals("This is a new package", pkg.getCheckinComment());
 
@@ -175,7 +175,7 @@
 		//need to test both asset and .package shite.
 		RulesRepository repo = RepositorySessionUtil.getRepository();
 		PackageItem pkg = repo.createPackage("testRestPut", "");
-		pkg.updateHeader("This is some header");
+		pkg.updateStringProperty("This is some header", PackageItem.HEADER_PROPERTY_NAME);
 		repo.save();
 
 		AssetItem asset1 = pkg.addAsset("asset1", "");
@@ -209,7 +209,7 @@
 		//now check updating the package header
 		api.put("packages/testRestPut/.package", Calendar.getInstance(), new ByteArrayInputStream("whee".getBytes()), "hey");
 		pkg = repo.loadPackage("testRestPut");
-		assertEquals("whee", pkg.getHeader());
+		assertEquals("whee", pkg.getStringProperty(PackageItem.HEADER_PROPERTY_NAME));
 
 		try {
 			api.put("packages/testRestPut/asset1.drl", cd, new ByteArrayInputStream("qaz".getBytes()), "a new comment");
@@ -231,7 +231,7 @@
 	public void testDelete() throws Exception {
 		RulesRepository repo = RepositorySessionUtil.getRepository();
 		PackageItem pkg = repo.createPackage("testRestDelete", "");
-		pkg.updateHeader("This is some header");
+		pkg.updateStringProperty("This is some header", PackageItem.HEADER_PROPERTY_NAME);
 		repo.save();
 
 		AssetItem asset1 = pkg.addAsset("asset1", "");




More information about the jboss-svn-commits mailing list