[jboss-svn-commits] JBL Code SVN: r15803 - in labs/jbossrules/branches/4.0.x/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
Fri Oct 12 17:55:36 EDT 2007


Author: tirelli
Date: 2007-10-12 17:55:36 -0400 (Fri, 12 Oct 2007)
New Revision: 15803

Modified:
   labs/jbossrules/branches/4.0.x/drools-compiler/src/main/java/org/drools/lang/dsl/DefaultDSLMappingEntry.java
   labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/lang/dsl/DefaultDSLMappingEntryTest.java
Log:
JBRULES-1272: fixing mapping compilation when there is only a single character between variables

Modified: labs/jbossrules/branches/4.0.x/drools-compiler/src/main/java/org/drools/lang/dsl/DefaultDSLMappingEntry.java
===================================================================
--- labs/jbossrules/branches/4.0.x/drools-compiler/src/main/java/org/drools/lang/dsl/DefaultDSLMappingEntry.java	2007-10-12 21:47:34 UTC (rev 15802)
+++ labs/jbossrules/branches/4.0.x/drools-compiler/src/main/java/org/drools/lang/dsl/DefaultDSLMappingEntry.java	2007-10-12 21:55:36 UTC (rev 15803)
@@ -136,7 +136,7 @@
                 }
                 
                 // calculating and fixing variable offset 
-                String before = escapedKey.substring( lastMatch, m.start() );
+                String before = escapedKey.substring( lastMatch, Math.max( m.start(), lastMatch) );
                 lastMatch = m.end()+1;
                 Matcher m2 = PAREN_FINDER.matcher( before );
                 while( m2.find() ) {

Modified: labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/lang/dsl/DefaultDSLMappingEntryTest.java
===================================================================
--- labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/lang/dsl/DefaultDSLMappingEntryTest.java	2007-10-12 21:47:34 UTC (rev 15802)
+++ labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/lang/dsl/DefaultDSLMappingEntryTest.java	2007-10-12 21:55:36 UTC (rev 15803)
@@ -235,4 +235,19 @@
                       result );
     }
     
+    public void testSingleCharacterBetweenVars() {
+        final String inputKey = "DSL sentence with {key1} {key2}";
+        final String inputValue = "Sentence( {key1} == {key2} )";
+
+        this.entry = new DefaultDSLMappingEntry( DSLMappingEntry.CONDITION,
+                                            null,
+                                            inputKey,
+                                            inputValue );
+
+        String result = this.entry.getKeyPattern().matcher( "DSL sentence with mykey myvalue" ).replaceAll( this.entry.getValuePattern() );
+        assertEquals( result,
+                      "Sentence( mykey == myvalue )",
+                      result );
+    }
+    
 }




More information about the jboss-svn-commits mailing list