[jboss-svn-commits] JBL Code SVN: r8675 - in labs/jbossrules/trunk/drools-jbrms: . src/main/java/org/drools/brms/client src/main/java/org/drools/brms/client/common src/main/java/org/drools/brms/client/modeldriven/brxml src/main/java/org/drools/brms/client/ruleeditor src/main/java/org/drools/brms/server src/main/java/org/drools/brms/server/util src/test/java/org/drools/brms/server src/test/java/org/drools/brms/server/util

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Jan 3 16:04:34 EST 2007


Author: michael.neale at jboss.com
Date: 2007-01-03 16:04:21 -0500 (Wed, 03 Jan 2007)
New Revision: 8675

Modified:
   labs/jbossrules/trunk/drools-jbrms/JBRMS.launch
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/Packages.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/AssetFormats.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/brxml/RuleModel.java
   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/JBRMSServiceServlet.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/util/BRLPersistence.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/util/BRLPersitenceTest.java
Log:
storing brxml now

Modified: labs/jbossrules/trunk/drools-jbrms/JBRMS.launch
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/JBRMS.launch	2007-01-03 20:14:32 UTC (rev 8674)
+++ labs/jbossrules/trunk/drools-jbrms/JBRMS.launch	2007-01-03 21:04:21 UTC (rev 8675)
@@ -10,19 +10,20 @@
 <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 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 internalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/xstream-1.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 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 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 externalArchive=&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 externalArchive=&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 externalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/derby-10.1.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 externalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/geronimo-spec-jta-1.0-M1.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 externalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/gwt-servlet-1.2.11.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 externalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/jackrabbit-core-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 externalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/javasvn-1.1-beta5.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 externalArchive=&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 externalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/log4j-1.2.8.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 externalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/lucene-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 externalArchive=&quot;/drools-jbrms/target/drools-jbrms/WEB-INF/lib/slf4j-log4j12-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/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/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.1.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/geronimo-spec-jta-1.0-M1.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.2.11.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.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/javasvn-1.1-beta5.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/log4j-1.2.8.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-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.0.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
 </listAttribute>
 <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"/>

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/Packages.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/Packages.java	2007-01-03 20:14:32 UTC (rev 8674)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/Packages.java	2007-01-03 21:04:21 UTC (rev 8675)
@@ -15,7 +15,6 @@
 import org.drools.brms.client.modeldriven.brxml.RuleModel;
 import org.drools.brms.client.modeldriven.ui.RuleModeller;
 
-import com.google.gwt.user.client.ui.Image;
 import com.google.gwt.user.client.ui.VerticalPanel;
 
 /**

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/AssetFormats.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/AssetFormats.java	2007-01-03 20:14:32 UTC (rev 8674)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/AssetFormats.java	2007-01-03 21:04:21 UTC (rev 8675)
@@ -12,7 +12,7 @@
     public static String DRL = "drl";
     
     /** Use the rule modeller */
-    public static String BUSINESS_RULE = "brl";
+    public static String BUSINESS_RULE = "brxml";
     
     /** use vanilla text */
     public static String TECHNICAL_RULE    = "rule";

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/brxml/RuleModel.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/brxml/RuleModel.java	2007-01-03 20:14:32 UTC (rev 8674)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/brxml/RuleModel.java	2007-01-03 21:04:21 UTC (rev 8675)
@@ -10,8 +10,8 @@
     
     public RuleAttribute[] attributes = new RuleAttribute[0];
     
-    public IPattern[] lhs;
-    public IAction[] rhs;
+    public IPattern[] lhs = new IPattern[0];
+    public IAction[] rhs = new IAction[0];
     
     /**
      * This will return the fact pattern that a variable is bound to. 

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	2007-01-03 20:14:32 UTC (rev 8674)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/EditorLauncher.java	2007-01-03 21:04:21 UTC (rev 8675)
@@ -1,5 +1,6 @@
 package org.drools.brms.client.ruleeditor;
 
+import org.drools.brms.client.common.AssetFormats;
 import org.drools.brms.client.modeldriven.SuggestionCompletionEngine;
 import org.drools.brms.client.modeldriven.brxml.ActionAssertFact;
 import org.drools.brms.client.modeldriven.brxml.ActionFieldValue;
@@ -30,10 +31,8 @@
      */
     public static Widget getEditorViewer(RuleAsset asset) {
         //depending on the format, load the appropriate editor
-        if ( asset.metaData.format.equals( "DSL" ) ) {
-
+        if ( asset.metaData.format.equals( AssetFormats.BUSINESS_RULE ) ) {
             return new RuleModeller( getSuggestionCompletionEngine(asset), getRuleModel(asset) );
-
         } else {
             return new DefaultRuleContentWidget( asset );
         }
@@ -41,88 +40,90 @@
     }
 
     private static RuleModel getRuleModel(RuleAsset asset) {
-        RuleModel model = new RuleModel();
+//        RuleModel model = new RuleModel();
+//        
+//        model.lhs = new IPattern[3];
+//        
+//        FactPattern p1 = new FactPattern();
+//        FactPattern p2 = new FactPattern();
+//        CompositeFactPattern p3 = new CompositeFactPattern();
+//        
+//        
+//        model.lhs[0] = p1;
+//        model.lhs[1] = p2;
+//        model.lhs[2] = p3;
+//        
+//        DSLSentence dsl = new DSLSentence();
+//        dsl.elements = new DSLSentenceFragment[2];
+//        dsl.elements[0] = new DSLSentenceFragment("There is a Storm alert of type", false);
+//        dsl.elements[1] = new DSLSentenceFragment("(code here)", true);
+//        
+//        model.addLhsItem( dsl );
+//        
+//        dsl = new DSLSentence();
+//        dsl.elements = new DSLSentenceFragment[2];
+//        dsl.elements[0] = new DSLSentenceFragment("- severity rating is not more than", false);
+//        dsl.elements[1] = new DSLSentenceFragment("(code here)", true);
+//        
+//        model.addLhsItem( dsl );
+//            
+//        
+//        
+//        
+//        p1.factType = "Person";
+//        p1.constraints = new Constraint[2];
+//        p1.constraints[0] = new Constraint();
+//        p1.constraints[1] = new Constraint();
+//        p1.constraints[0].fieldName = "age";
+//        p1.constraints[0].operator = "<";
+//        p1.constraints[0].value = "42";
+//
+//        p1.constraints[1].fieldName = "name";
+//        p1.constraints[1].operator = "==";
+//        p1.constraints[1].value = "Bob";
+//        p1.constraints[1].fieldBinding = "n";
+//  
+//        
+//        
+//        p2.factType = "Vehicle";
+//        p2.boundName = "car1";
+//        p2.constraints = new Constraint[1];
+//        p2.constraints[0] = new Constraint();
+//        p2.constraints[0].fieldName = "type";
+//        p2.constraints[0].operator = "!=";
+//        
+//        p3.type = "not";
+//        p3.patterns = new FactPattern[1];
+//        FactPattern i1 = new FactPattern("Vehicle");
+//        i1.constraints = new Constraint[1];
+//        i1.constraints[0] = new Constraint();
+//        i1.constraints[0].fieldName = "type";
+//        i1.constraints[0].operator = "==";
+//        
+//        p3.patterns[0] = i1;
+//        
+//        ActionSetField set = new ActionSetField();
+//        set.variable = "car1";
+//        set.fieldValues = new ActionFieldValue[1];
+//        set.fieldValues[0] = new ActionFieldValue();
+//        set.fieldValues[0].field = "type";
+//        
+//        ActionAssertFact fact = new ActionAssertFact();
+//        fact.factType = "Person";
+//        fact.fieldValues = new ActionFieldValue[2];
+//        fact.fieldValues[0] = new ActionFieldValue("name", "Mike");
+//        fact.fieldValues[1] = new ActionFieldValue("age", "42");
+//        
+//        ActionRetractFact retract = new ActionRetractFact("car1");
+//        
+//        model.rhs = new IAction[3];
+//        model.rhs[0] = set;
+//        model.rhs[1] = fact;
+//        model.rhs[2] = retract;
         
-        model.lhs = new IPattern[3];
         
-        FactPattern p1 = new FactPattern();
-        FactPattern p2 = new FactPattern();
-        CompositeFactPattern p3 = new CompositeFactPattern();
         
-        
-        model.lhs[0] = p1;
-        model.lhs[1] = p2;
-        model.lhs[2] = p3;
-        
-        DSLSentence dsl = new DSLSentence();
-        dsl.elements = new DSLSentenceFragment[2];
-        dsl.elements[0] = new DSLSentenceFragment("There is a Storm alert of type", false);
-        dsl.elements[1] = new DSLSentenceFragment("(code here)", true);
-        
-        model.addLhsItem( dsl );
-        
-        dsl = new DSLSentence();
-        dsl.elements = new DSLSentenceFragment[2];
-        dsl.elements[0] = new DSLSentenceFragment("- severity rating is not more than", false);
-        dsl.elements[1] = new DSLSentenceFragment("(code here)", true);
-        
-        model.addLhsItem( dsl );
-            
-        
-        
-        
-        p1.factType = "Person";
-        p1.constraints = new Constraint[2];
-        p1.constraints[0] = new Constraint();
-        p1.constraints[1] = new Constraint();
-        p1.constraints[0].fieldName = "age";
-        p1.constraints[0].operator = "<";
-        p1.constraints[0].value = "42";
-
-        p1.constraints[1].fieldName = "name";
-        p1.constraints[1].operator = "==";
-        p1.constraints[1].value = "Bob";
-        p1.constraints[1].fieldBinding = "n";
-  
-        
-        
-        p2.factType = "Vehicle";
-        p2.boundName = "car1";
-        p2.constraints = new Constraint[1];
-        p2.constraints[0] = new Constraint();
-        p2.constraints[0].fieldName = "type";
-        p2.constraints[0].operator = "!=";
-        
-        p3.type = "not";
-        p3.patterns = new FactPattern[1];
-        FactPattern i1 = new FactPattern("Vehicle");
-        i1.constraints = new Constraint[1];
-        i1.constraints[0] = new Constraint();
-        i1.constraints[0].fieldName = "type";
-        i1.constraints[0].operator = "==";
-        
-        p3.patterns[0] = i1;
-        
-        ActionSetField set = new ActionSetField();
-        set.variable = "car1";
-        set.fieldValues = new ActionFieldValue[1];
-        set.fieldValues[0] = new ActionFieldValue();
-        set.fieldValues[0].field = "type";
-        
-        ActionAssertFact fact = new ActionAssertFact();
-        fact.factType = "Person";
-        fact.fieldValues = new ActionFieldValue[2];
-        fact.fieldValues[0] = new ActionFieldValue("name", "Mike");
-        fact.fieldValues[1] = new ActionFieldValue("age", "42");
-        
-        ActionRetractFact retract = new ActionRetractFact("car1");
-        
-        model.rhs = new IAction[3];
-        model.rhs[0] = set;
-        model.rhs[1] = fact;
-        model.rhs[2] = retract;
-        
-        return model;
+        return (RuleModel) asset.content;
     }
 
     private static SuggestionCompletionEngine getSuggestionCompletionEngine(RuleAsset asset) {

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/JBRMSServiceServlet.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/JBRMSServiceServlet.java	2007-01-03 20:14:32 UTC (rev 8674)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/JBRMSServiceServlet.java	2007-01-03 21:04:21 UTC (rev 8675)
@@ -211,13 +211,13 @@
         RuleAsset asset = new RuleAsset();
         
         asset.metaData = popuplateMetaData( item );
-        
-        //TODO: possibly move this to a different structure, perhaps even into the drools-repository itself.
+
         if (item.getFormat().equals( AssetFormats.DSL_TEMPLATE_RULE)) {
             //ok here is where we do DSLs...
             throw new SerializableException("Can't load DSL rules just yet.");
 
         } else if (item.getFormat().equals( AssetFormats.BUSINESS_RULE )) { 
+            System.out.println("Contents:" + item.getContent());
             RuleModel model = BRLPersistence.getInstance().toModel( item.getContent() );
             asset.content = model;
         } else {
@@ -257,10 +257,9 @@
         meta.createdDate = calendarToDate(item.getCreatedDate());
         meta.dateEffective = calendarToDate( item.getDateEffective() );
         meta.dateExpired = calendarToDate( item.getDateExpired() );
+        meta.lastModifiedDate = calendarToDate( item.getLastModified() );
         
-
         
-        
         return meta;
     }
 
@@ -294,7 +293,7 @@
         rule.updateDateExpired( dateToCalendar( meta.dateExpired ) );        
         
         rule.updateCategoryList( meta.categories );
-        updateContentToAsset( rule, asset.content );
+        updateContentToAsset( rule, asset );
         
         
         
@@ -304,9 +303,12 @@
     }
     
 
-    private void updateContentToAsset(AssetItem repoAsset, IsSerializable content) throws SerializableException {
-        if (content instanceof RuleContentText) {
-            repoAsset.updateContent( ((RuleContentText)content).content );        
+    private void updateContentToAsset(AssetItem repoAsset, RuleAsset asset) throws SerializableException {
+        if (asset.content instanceof RuleContentText) {
+            repoAsset.updateContent( ((RuleContentText)asset.content).content );        
+        } else if (asset.content instanceof RuleModel) {
+            RuleModel model = (RuleModel) asset.content;
+            repoAsset.updateContent( BRLPersistence.getInstance().toXML( model ) );
         } else {
             throw new SerializableException("Not able to handle that type of content just yet...");
         }

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/util/BRLPersistence.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/util/BRLPersistence.java	2007-01-03 20:14:32 UTC (rev 8674)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/util/BRLPersistence.java	2007-01-03 21:04:21 UTC (rev 8675)
@@ -20,7 +20,7 @@
 /**
  * This class persists the rule model to XML and back.
  * 
- * This is the "brxml" xml format (Business Rule Language).
+ * This is the 'brxml' xml format (Business Rule Language).
  * 
  * @author Michael Neale
  */
@@ -58,6 +58,8 @@
     }
 
     public RuleModel toModel(String xml) {
+        if (xml == null) return new RuleModel();    
+        if (xml.trim().equals( "" )) return new RuleModel();
         return (RuleModel) xt.fromXML( xml );
     }
 

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	2007-01-03 20:14:32 UTC (rev 8674)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java	2007-01-03 21:04:21 UTC (rev 8675)
@@ -1,6 +1,7 @@
 package org.drools.brms.server;
 
 import java.util.Calendar;
+import java.util.Date;
 
 import junit.framework.TestCase;
 
@@ -189,16 +190,23 @@
           
           RuleAsset asset = serv.loadRuleAsset( uuid );
           
+          assertNotNull(asset.metaData.lastModifiedDate);
+          
           asset.metaData.coverage = "boo";
           asset.content = new RuleContentText();
           ((RuleContentText) asset.content).content = "yeah !";
           
+          Date start = new Date();
+          Thread.sleep( 100 );
           
           String uuid2 = serv.checkinVersion( asset );
           assertEquals(uuid, uuid2);
           
           RuleAsset asset2 = serv.loadRuleAsset( uuid );
+          assertNotNull(asset2.metaData.lastModifiedDate);
+          assertTrue(asset2.metaData.lastModifiedDate.after( start ));
           
+          
           assertEquals("boo", asset2.metaData.coverage);
           assertEquals("1", asset2.metaData.versionNumber);
           

Modified: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/util/BRLPersitenceTest.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/util/BRLPersitenceTest.java	2007-01-03 20:14:32 UTC (rev 8674)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/util/BRLPersitenceTest.java	2007-01-03 21:04:21 UTC (rev 8675)
@@ -118,4 +118,12 @@
         return m;
     }
     
+    public void testLoadEmpty() {
+        RuleModel m = BRLPersistence.getInstance().toModel( null );
+        assertNotNull(m);
+        
+        m = BRLPersistence.getInstance().toModel( "" );
+        assertNotNull(m);
+    }
+    
 }




More information about the jboss-svn-commits mailing list