[jboss-svn-commits] JBL Code SVN: r8601 - in labs/jbossrules/trunk/drools-jbrms: . src/main/java/org/drools/brms/client/modeldriven/model src/main/java/org/drools/brms/server src/main/java/org/drools/brms/server/util src/test/java/org/drools/brms/client/modeldriven 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
Sat Dec 30 12:46:47 EST 2006


Author: michael.neale at jboss.com
Date: 2006-12-30 12:46:32 -0500 (Sat, 30 Dec 2006)
New Revision: 8601

Added:
   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/TableDisplayHandler.java
   labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/util/BRLPersitenceTest.java
Removed:
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/TableDisplayHandler.java
Modified:
   labs/jbossrules/trunk/drools-jbrms/.classpath
   labs/jbossrules/trunk/drools-jbrms/pom.xml
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/RuleModel.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/JBRMSServiceServlet.java
   labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/modeldriven/RuleModelTest.java
   labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java
Log:
added BRXML persistence for the rule modeller

Modified: labs/jbossrules/trunk/drools-jbrms/.classpath
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/.classpath	2006-12-29 08:23:40 UTC (rev 8600)
+++ labs/jbossrules/trunk/drools-jbrms/.classpath	2006-12-30 17:46:32 UTC (rev 8601)
@@ -1,22 +1,23 @@
-<?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="src" path="src/main/java"/>
-	<classpathentry kind="src" path="src/main/resources"/>
-	<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="var" path="M2_REPO/geronimo-spec/geronimo-spec-jta/1.0-M1/geronimo-spec-jta-1.0-M1.jar"/>
-	<classpathentry kind="var" path="M2_REPO/google/gwt-servlet/1.2.11/gwt-servlet-1.2.11.jar"/>
-	<classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/tmatesoft/javasvn/1.1-beta5/javasvn-1.1-beta5.jar"/>
-	<classpathentry kind="var" path="M2_REPO/jsr170/jcr/1.0/jcr-1.0.jar"/>
-	<classpathentry kind="var" path="M2_REPO/commons-collections/commons-collections/3.1/commons-collections-3.1.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-log4j12/1.0/slf4j-log4j12-1.0.jar"/>
-	<classpathentry kind="var" path="M2_REPO/javax/servlet/servlet-api/2.3/servlet-api-2.3.jar"/>
-	<classpathentry kind="var" path="M2_REPO/lucene/lucene/1.4.3/lucene-1.4.3.jar"/>
-	<classpathentry kind="var" path="M2_REPO/concurrent/concurrent/1.3.4/concurrent-1.3.4.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/apache/derby/derby/10.1.3.1/derby-10.1.3.1.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-core/1.1/jackrabbit-core-1.1.jar"/>
-	<classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.8/log4j-1.2.8.jar"/>
-	<classpathentry combineaccessrules="false" kind="src" path="/drools-repository"/>
-	<classpathentry kind="output" path="target/classes"/>
-</classpath>
+  <classpathentry kind="src" path="src/main/java"/>
+  <classpathentry kind="src" path="src/main/resources"/>
+  <classpathentry kind="src" path="src/test/java" output="target/test-classes"/>
+  <classpathentry kind="output" path="target/classes"/>
+  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+  <classpathentry kind="var" path="M2_REPO/javax/servlet/servlet-api/2.3/servlet-api-2.3.jar"/>
+  <classpathentry kind="var" path="M2_REPO/geronimo-spec/geronimo-spec-jta/1.0-M1/geronimo-spec-jta-1.0-M1.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/tmatesoft/javasvn/1.1-beta5/javasvn-1.1-beta5.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-log4j12/1.0/slf4j-log4j12-1.0.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/drools/drools-repository/3.1.0-SNAPSHOT/drools-repository-3.1.0-SNAPSHOT.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/drools/drools-repository/3.1.0-SNAPSHOT/drools-repository-3.1.0-SNAPSHOT-tests.jar"/>
+  <classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.8/log4j-1.2.8.jar"/>
+  <classpathentry kind="var" path="M2_REPO/google/gwt-servlet/1.2.11/gwt-servlet-1.2.11.jar"/>
+  <classpathentry kind="var" path="M2_REPO/jsr170/jcr/1.0/jcr-1.0.jar"/>
+  <classpathentry kind="var" path="M2_REPO/xstream/xstream/1.1.3/xstream-1.1.3.jar"/>
+  <classpathentry kind="var" path="M2_REPO/concurrent/concurrent/1.3.4/concurrent-1.3.4.jar"/>
+  <classpathentry kind="var" path="M2_REPO/commons-collections/commons-collections/3.1/commons-collections-3.1.jar"/>
+  <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
+  <classpathentry kind="var" path="M2_REPO/lucene/lucene/1.4.3/lucene-1.4.3.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-core/1.1/jackrabbit-core-1.1.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/apache/derby/derby/10.1.3.1/derby-10.1.3.1.jar"/>
+</classpath>
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-jbrms/pom.xml
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/pom.xml	2006-12-29 08:23:40 UTC (rev 8600)
+++ labs/jbossrules/trunk/drools-jbrms/pom.xml	2006-12-30 17:46:32 UTC (rev 8601)
@@ -59,6 +59,11 @@
       <groupId>google</groupId>
       <artifactId>gwt-servlet</artifactId>
     </dependency>
+    <dependency>
+     <groupId>xstream</groupId>
+     <artifactId>xstream</artifactId>
+    </dependency>
+
   </dependencies>
 
 </project>

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/RuleModel.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/RuleModel.java	2006-12-29 08:23:40 UTC (rev 8600)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/RuleModel.java	2006-12-30 17:46:32 UTC (rev 8601)
@@ -7,6 +7,7 @@
 
 public class RuleModel implements IsSerializable {
 
+    public String name;
     public RuleAttribute[] attributes = new RuleAttribute[0];
     
     public IPattern[] lhs;

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	2006-12-29 08:23:40 UTC (rev 8600)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/JBRMSServiceServlet.java	2006-12-30 17:46:32 UTC (rev 8601)
@@ -20,6 +20,7 @@
 import org.drools.brms.client.rpc.TableConfig;
 import org.drools.brms.client.rpc.TableDataResult;
 import org.drools.brms.server.util.MetaDataMapper;
+import org.drools.brms.server.util.TableDisplayHandler;
 import org.drools.repository.AssetItem;
 import org.drools.repository.CategoryItem;
 import org.drools.repository.PackageItem;

Deleted: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/TableDisplayHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/TableDisplayHandler.java	2006-12-29 08:23:40 UTC (rev 8600)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/TableDisplayHandler.java	2006-12-30 17:46:32 UTC (rev 8601)
@@ -1,75 +0,0 @@
-package org.drools.brms.server;
-
-import java.text.DateFormat;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Iterator;
-import java.util.List;
-
-import javax.jcr.RepositoryException;
-
-import org.drools.brms.client.rpc.TableConfig;
-import org.drools.brms.client.rpc.TableDataResult;
-import org.drools.brms.client.rpc.TableDataRow;
-import org.drools.repository.AssetItem;
-
-import com.google.gwt.user.client.rpc.SerializableException;
-
-/**
- * This utility class handles loading of tables.
- * 
- * This is to give some flexibility in what fields are displayed.
- * This will likely be dynamic in the future (driven of user config stored in the 
- * repository).
- * 
- * @author michael neale
- */
-public class TableDisplayHandler {
-
-    
-    public TableDataResult loadRuleListTable(List list) throws SerializableException {
-        List data = new ArrayList();
-        
-        for ( Iterator iter = list.iterator(); iter.hasNext(); ) {
-            AssetItem rule = (AssetItem) iter.next();
-            TableDataRow row = new TableDataRow();
-            try {
-
-                
-                row.id = rule.getNode().getUUID();
-                row.format = rule.getFormat();
-                row.values = new String[4];
-                row.values[0] = rule.getName();
-                row.values[1] = formatDate(rule.getLastModified());
-                row.values[2] = rule.getStateDescription();                
-                row.values[3] = rule.getVersionNumber();
-                data.add( row );
-            } catch ( RepositoryException e ) {
-                throw new SerializableException(e.getMessage());
-            }            
-        }
-        TableDataResult result = new TableDataResult();
-        result.data = (TableDataRow[]) data.toArray( new TableDataRow[data.size()] );
-        result.numberOfRows = data.size();
-        return result;        
-    }
-    
-    String formatDate(Calendar cal) {
-        DateFormat localFormat = DateFormat.getDateInstance();
-        
-        return localFormat.format( cal.getTime() );
-    }
-
-    public TableConfig loadTableConfig(String listName) {
-        final TableConfig config = new TableConfig();
-
-        config.headers = new String[]{"name", 
-                                      "last modified", 
-                                      "state", 
-                                      "version"};
-        config.rowsPerPage = 30;
-        return config;
-    }
-    
-    
-}

Added: 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	2006-12-29 08:23:40 UTC (rev 8600)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/util/BRLPersistence.java	2006-12-30 17:46:32 UTC (rev 8601)
@@ -0,0 +1,64 @@
+package org.drools.brms.server.util;
+
+import org.drools.brms.client.modeldriven.model.ActionAssertFact;
+import org.drools.brms.client.modeldriven.model.ActionFieldList;
+import org.drools.brms.client.modeldriven.model.ActionFieldValue;
+import org.drools.brms.client.modeldriven.model.ActionRetractFact;
+import org.drools.brms.client.modeldriven.model.ActionSetField;
+import org.drools.brms.client.modeldriven.model.CompositeFactPattern;
+import org.drools.brms.client.modeldriven.model.ConnectiveConstraint;
+import org.drools.brms.client.modeldriven.model.Constraint;
+import org.drools.brms.client.modeldriven.model.DSLSentence;
+import org.drools.brms.client.modeldriven.model.DSLSentenceFragment;
+import org.drools.brms.client.modeldriven.model.FactPattern;
+import org.drools.brms.client.modeldriven.model.RuleAttribute;
+import org.drools.brms.client.modeldriven.model.RuleModel;
+
+import com.thoughtworks.xstream.XStream;
+import com.thoughtworks.xstream.io.xml.DomDriver;
+
+/**
+ * This class persists the rule model to XML and back.
+ * 
+ * This is the "brxml" xml format (Business Rule Language).
+ * 
+ * @author Michael Neale
+ */
+public class BRLPersistence {
+
+    private XStream        xt;
+    private static final BRLPersistence INSTANCE = new BRLPersistence();
+
+    private BRLPersistence() {
+        xt = new XStream(new DomDriver());
+
+        xt.alias( "rule", RuleModel.class );
+        xt.alias( "fact", FactPattern.class );
+        xt.alias( "retract", ActionRetractFact.class );
+        xt.alias( "assert", ActionAssertFact.class );
+        xt.alias( "modify", ActionSetField.class );
+        xt.alias( "dsl-expression", DSLSentence.class );
+        xt.alias( "composite-pattern", CompositeFactPattern.class );
+        xt.alias( "attribute", RuleAttribute.class );
+        xt.alias( "action-field-list", ActionFieldList.class );
+        xt.alias( "action-field-value", ActionFieldValue.class );
+        xt.alias( "connective-constraint", ConnectiveConstraint.class );
+        xt.alias( "constraint", Constraint.class );
+        xt.alias( "sentence-fragment", DSLSentenceFragment.class );
+        
+
+    }
+
+    public static BRLPersistence getInstance() {
+        return INSTANCE;
+    }
+
+    public String toXML(RuleModel model) {
+        return xt.toXML( model );
+    }
+
+    public RuleModel toModel(String xml) {
+        return (RuleModel) xt.fromXML( xml );
+    }
+
+}


Property changes on: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/util/BRLPersistence.java
___________________________________________________________________
Name: svn:eol-style
   + native

Copied: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/util/TableDisplayHandler.java (from rev 8535, labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/TableDisplayHandler.java)
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/TableDisplayHandler.java	2006-12-22 00:47:10 UTC (rev 8535)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/util/TableDisplayHandler.java	2006-12-30 17:46:32 UTC (rev 8601)
@@ -0,0 +1,75 @@
+package org.drools.brms.server.util;
+
+import java.text.DateFormat;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.jcr.RepositoryException;
+
+import org.drools.brms.client.rpc.TableConfig;
+import org.drools.brms.client.rpc.TableDataResult;
+import org.drools.brms.client.rpc.TableDataRow;
+import org.drools.repository.AssetItem;
+
+import com.google.gwt.user.client.rpc.SerializableException;
+
+/**
+ * This utility class handles loading of tables.
+ * 
+ * This is to give some flexibility in what fields are displayed.
+ * This will likely be dynamic in the future (driven of user config stored in the 
+ * repository).
+ * 
+ * @author michael neale
+ */
+public class TableDisplayHandler {
+
+    
+    public TableDataResult loadRuleListTable(List list) throws SerializableException {
+        List data = new ArrayList();
+        
+        for ( Iterator iter = list.iterator(); iter.hasNext(); ) {
+            AssetItem rule = (AssetItem) iter.next();
+            TableDataRow row = new TableDataRow();
+            try {
+
+                
+                row.id = rule.getNode().getUUID();
+                row.format = rule.getFormat();
+                row.values = new String[4];
+                row.values[0] = rule.getName();
+                row.values[1] = formatDate(rule.getLastModified());
+                row.values[2] = rule.getStateDescription();                
+                row.values[3] = rule.getVersionNumber();
+                data.add( row );
+            } catch ( RepositoryException e ) {
+                throw new SerializableException(e.getMessage());
+            }            
+        }
+        TableDataResult result = new TableDataResult();
+        result.data = (TableDataRow[]) data.toArray( new TableDataRow[data.size()] );
+        result.numberOfRows = data.size();
+        return result;        
+    }
+    
+    public String formatDate(Calendar cal) {
+        DateFormat localFormat = DateFormat.getDateInstance();
+        
+        return localFormat.format( cal.getTime() );
+    }
+
+    public TableConfig loadTableConfig(String listName) {
+        final TableConfig config = new TableConfig();
+
+        config.headers = new String[]{"name", 
+                                      "last modified", 
+                                      "state", 
+                                      "version"};
+        config.rowsPerPage = 30;
+        return config;
+    }
+    
+    
+}

Modified: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/modeldriven/RuleModelTest.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/modeldriven/RuleModelTest.java	2006-12-29 08:23:40 UTC (rev 8600)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/modeldriven/RuleModelTest.java	2006-12-30 17:46:32 UTC (rev 8601)
@@ -10,6 +10,8 @@
 import org.drools.brms.client.modeldriven.model.RuleAttribute;
 import org.drools.brms.client.modeldriven.model.RuleModel;
 
+import com.thoughtworks.xstream.XStream;
+
 import junit.framework.TestCase;
 
 public class RuleModelTest extends TestCase {
@@ -54,6 +56,16 @@
         model.rhs[0] = fact;
         assertTrue(model.isBoundFactUsed( "q" ));
         assertFalse(model.isBoundFactUsed( "x" ));
+        
+        XStream xt = new XStream();
+        xt.alias( "rule", RuleModel.class );
+        xt.alias( "fact", FactPattern.class );
+        xt.alias( "retract", ActionRetractFact.class );
+        
+        
+        String brl = xt.toXML( model );
+        
+        System.out.println(brl);
     }
     
     public void testBindingList() {

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	2006-12-29 08:23:40 UTC (rev 8600)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java	2006-12-30 17:46:32 UTC (rev 8601)
@@ -11,6 +11,7 @@
 import org.drools.brms.client.rpc.TableDataResult;
 import org.drools.brms.client.rpc.TableDataRow;
 import org.drools.brms.client.rulelist.RuleItemListViewer;
+import org.drools.brms.server.util.TableDisplayHandler;
 import org.drools.repository.AssetItem;
 import org.drools.repository.CategoryItem;
 

Added: 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	2006-12-29 08:23:40 UTC (rev 8600)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/util/BRLPersitenceTest.java	2006-12-30 17:46:32 UTC (rev 8601)
@@ -0,0 +1,114 @@
+package org.drools.brms.server.util;
+
+import junit.framework.TestCase;
+
+import org.drools.brms.client.modeldriven.model.ActionAssertFact;
+import org.drools.brms.client.modeldriven.model.ActionFieldValue;
+import org.drools.brms.client.modeldriven.model.ActionRetractFact;
+import org.drools.brms.client.modeldriven.model.ActionSetField;
+import org.drools.brms.client.modeldriven.model.CompositeFactPattern;
+import org.drools.brms.client.modeldriven.model.Constraint;
+import org.drools.brms.client.modeldriven.model.DSLSentence;
+import org.drools.brms.client.modeldriven.model.DSLSentenceFragment;
+import org.drools.brms.client.modeldriven.model.FactPattern;
+import org.drools.brms.client.modeldriven.model.RuleAttribute;
+import org.drools.brms.client.modeldriven.model.RuleModel;
+
+public class BRLPersitenceTest extends TestCase {
+
+    public void testGenerateEmptyXML() {
+        BRLPersistence p = BRLPersistence.getInstance();
+        String xml = p.toXML( new RuleModel() );
+        assertNotNull(xml);
+        assertFalse(xml.equals( "" ));
+        
+        assertTrue(xml.startsWith( "<rule>" ));
+        assertTrue(xml.endsWith( "</rule>" ));
+    }
+    
+    public void testBasics() {
+        BRLPersistence p = BRLPersistence.getInstance();
+        RuleModel m = new RuleModel();
+        m.addLhsItem( new FactPattern("Person") );
+        m.addLhsItem( new FactPattern("Accident") );
+        m.addAttribute( new RuleAttribute("no-loop", "true") );
+        
+        
+        
+        m.addRhsItem( new ActionAssertFact("Report") );
+        m.name = "my rule";
+        String xml = p.toXML( m );
+        assertTrue(xml.indexOf( "Person" ) > -1);
+        assertTrue(xml.indexOf( "Accident" ) > -1);
+        assertTrue(xml.indexOf( "no-loop" ) > -1);
+        assertTrue(xml.indexOf( "org.drools" ) == -1);
+        
+    }
+    
+    public void testMoreComplexRendering() {
+        BRLPersistence p = BRLPersistence.getInstance();
+        RuleModel m = getComplexModel();
+        
+        String xml = p.toXML( m );
+        System.out.println(xml);
+        
+        assertTrue(xml.indexOf( "org.drools" ) == -1);
+        
+    }
+    
+    public void testRoundTrip() {
+        RuleModel m = getComplexModel();
+        
+        String xml = BRLPersistence.getInstance().toXML( m );
+        
+        RuleModel m2 = BRLPersistence.getInstance().toModel( xml );
+        assertNotNull(m2);
+        assertEquals(m.name, m2.name);
+        assertEquals(m.lhs.length, m2.lhs.length);
+        assertEquals(m.rhs.length, m2.rhs.length);
+        
+        String newXML = BRLPersistence.getInstance().toXML( m2 );
+        assertEquals(xml, newXML);
+        
+    }
+
+    private RuleModel getComplexModel() {
+        RuleModel m = new RuleModel();
+        
+        FactPattern pat = new FactPattern();
+        pat.boundName = "p1";
+        pat.factType = "Person";
+        Constraint con = new Constraint();
+        con.fieldBinding = "f1";
+        con.fieldName = "age";
+        con.operator = "<";
+        con.value = "42";
+        pat.addConstraint( con );
+        
+        m.addLhsItem( pat );
+
+        CompositeFactPattern comp = new CompositeFactPattern("not");
+        comp.addFactPattern( new FactPattern("Cancel") );
+        m.addLhsItem( comp );
+        
+        ActionSetField set = new ActionSetField();
+        set.variable = "p1";        
+        set.addFieldValue( new ActionFieldValue("status", "rejected") );
+        m.addRhsItem( set );
+        
+        
+        ActionRetractFact ret = new ActionRetractFact("p1");
+        m.addRhsItem( ret );
+        
+        DSLSentence sen = new DSLSentence();
+        sen.elements = new DSLSentenceFragment[2];
+        sen.elements[0] = new DSLSentenceFragment("Send an email to", false);
+        sen.elements[1] = new DSLSentenceFragment("administrator", true);
+        
+        
+        
+        m.addRhsItem( sen );
+        return m;
+    }
+    
+}


Property changes on: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/util/BRLPersitenceTest.java
___________________________________________________________________
Name: svn:eol-style
   + native




More information about the jboss-svn-commits mailing list