[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