[jboss-svn-commits] JBL Code SVN: r20902 - in labs/jbossrules/trunk/drools-guvnor/src: test/java/org/drools/guvnor/server/contenthandler and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Jul 4 02:39:45 EDT 2008


Author: michael.neale at jboss.com
Date: 2008-07-04 02:39:45 -0400 (Fri, 04 Jul 2008)
New Revision: 20902

Modified:
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/contenthandler/DRLFileContentHandler.java
   labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/contenthandler/DRLFileContentHandlerTest.java
Log:
GUVNOR-3 Fix for ruleflow group in technical rules

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/contenthandler/DRLFileContentHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/contenthandler/DRLFileContentHandler.java	2008-07-04 02:37:03 UTC (rev 20901)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/contenthandler/DRLFileContentHandler.java	2008-07-04 06:39:45 UTC (rev 20902)
@@ -61,11 +61,11 @@
             	return true;
             }
             //otherwise sniff for a suitable keyword at the start of a line
-            if (tok.startsWith( "package" ) ||
-                    tok.startsWith( "rule" ) ||
-                    tok.startsWith( "end" ) ||
-                    tok.startsWith( "function" ) ||
-                    tok.startsWith( "query" )) {
+            if (startsWithWord( "package", tok ) ||
+                    startsWithWord( "rule", tok ) ||
+                    startsWithWord( "end", tok ) ||
+                    startsWithWord( "function", tok ) ||
+                    startsWithWord( "query", tok )) {
                 return false;
             }
         }
@@ -73,6 +73,15 @@
 
     }
 
+    static boolean startsWithWord(String word, String sentence) {
+    	String[] words = sentence.trim().split("\\s");
+    	if (words.length > 0) {
+    		return words[0].equals(word);
+    	} else {
+    		return false;
+    	}
+    }
+
     public void assembleDRL(BRMSPackageBuilder builder, AssetItem asset, StringBuffer buf) {
         String content = asset.getContent();
         boolean standAlone = isStandAloneRule( content );

Modified: labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/contenthandler/DRLFileContentHandlerTest.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/contenthandler/DRLFileContentHandlerTest.java	2008-07-04 02:37:03 UTC (rev 20901)
+++ labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/contenthandler/DRLFileContentHandlerTest.java	2008-07-04 06:39:45 UTC (rev 20902)
@@ -70,4 +70,26 @@
 
     }
 
+    public void testRuleWithRuleFlowGroup() {
+        String rule = "rule \"DemoRule\" \n "+
+        "    ruleflow-group \"name-of-ruleflow\"  \n" +
+        "    dialect \"mvel\" \n " +
+        " when \n" +
+        " Driver( age > 65 ) \n" +
+        " then \n" +
+        " insert(new Rejection(\" too old \"));" +
+        "end ";
+		DRLFileContentHandler h = new DRLFileContentHandler();
+		assertFalse(h.isStandAloneRule( rule ));
+
+		rule =
+        "    ruleflow-group \"name-of-ruleflow\"  \n" +
+        "    dialect \"mvel\" \n " +
+        " when \n" +
+        " Driver( age > 65 ) \n" +
+        " then \n" +
+        " insert(new Rejection(\" too old \"));";
+		assertTrue(h.isStandAloneRule( rule ));
+    }
+
 }
\ No newline at end of file




More information about the jboss-svn-commits mailing list