[jboss-svn-commits] JBL Code SVN: r11243 - in labs/jbossrules/trunk/drools-compiler/src: test/java/org/drools/lang/dsl and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Apr 23 12:45:59 EDT 2007


Author: tirelli
Date: 2007-04-23 12:45:58 -0400 (Mon, 23 Apr 2007)
New Revision: 11243

Modified:
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/dsl/DefaultDSLMappingEntry.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/lang/dsl/DefaultExpanderTest.java
Log:
JBRULES-808: restricting matches to full tokens only

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/dsl/DefaultDSLMappingEntry.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/dsl/DefaultDSLMappingEntry.java	2007-04-23 16:41:09 UTC (rev 11242)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/dsl/DefaultDSLMappingEntry.java	2007-04-23 16:45:58 UTC (rev 11243)
@@ -106,10 +106,15 @@
         this.key = key;
 
         if ( key != null ) {
-            // retrieving variables list and creating key pattern 
+            // escape '$' to avoid errors  
             final Matcher m = varFinder.matcher( key.replaceAll( "\\$",
                                                            "\\\\\\$" ) );
+            // retrieving variables list and creating key pattern 
             final StringBuffer buf = new StringBuffer();
+
+            // making it start with a space char or a line start
+            buf.append( "(\\W|^)" );
+            
             int counter = 1;
             while ( m.find() ) {
                 if ( this.variables == Collections.EMPTY_MAP ) {
@@ -121,8 +126,12 @@
                                      m.group( 1 ) + "(.*?)" );
             }
             m.appendTail( buf );
+            
+            // if pattern ends with a variable, append a line end to avoid multiple line matching
             if ( buf.toString().endsWith( "(.*?)" ) ) {
                 buf.append( "$" );
+            } else {
+                buf.append( "\\W" );
             }
 
             // setting the key pattern and making it space insensitive

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/lang/dsl/DefaultExpanderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/lang/dsl/DefaultExpanderTest.java	2007-04-23 16:41:09 UTC (rev 11242)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/lang/dsl/DefaultExpanderTest.java	2007-04-23 16:45:58 UTC (rev 11243)
@@ -41,7 +41,7 @@
         final String result = this.expander.expand( rules );
     }
 
-    public void FIXME_testExpandFailure() throws Exception {
+    public void testExpandFailure() throws Exception {
 
         DSLMappingFile file = new DSLMappingFile();
         String dsl = "[when]foo=Foo()\n[then]bar {num}=baz({num});";
@@ -59,10 +59,10 @@
 
         source = "rule 'q' agenda-group 'x'\nwhen\n    foos \nthen\n    bar 42\n end";
         drl = ex.expand( source );
-        System.out.println( drl );
+        //System.out.println( drl );
         assertTrue( ex.hasErrors() );
         assertEquals( 1, ex.getErrors().size() );
-        System.err.println(( (ExpanderException) ex.getErrors().get( 0 )).getMessage());
+        //System.err.println(( (ExpanderException) ex.getErrors().get( 0 )).getMessage());
 
     }
     




More information about the jboss-svn-commits mailing list