You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2014/02/09 22:25:35 UTC

svn commit: r1566429 - in /maven/shared/trunk/maven-filtering/src: main/java/org/apache/maven/shared/filtering/MultiDelimiterInterpolatorFilterReaderLineEnding.java test/java/org/apache/maven/shared/filtering/DefaultMavenFileFilterTest.java

Author: rfscholte
Date: Sun Feb  9 21:25:34 2014
New Revision: 1566429

URL: http://svn.apache.org/r1566429
Log:
[MSHARED-198] custom delimiters doesn't work as expected
real issue: endtoken only worked when it contained equal character(s)

Modified:
    maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/MultiDelimiterInterpolatorFilterReaderLineEnding.java
    maven/shared/trunk/maven-filtering/src/test/java/org/apache/maven/shared/filtering/DefaultMavenFileFilterTest.java

Modified: maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/MultiDelimiterInterpolatorFilterReaderLineEnding.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/MultiDelimiterInterpolatorFilterReaderLineEnding.java?rev=1566429&r1=1566428&r2=1566429&view=diff
==============================================================================
--- maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/MultiDelimiterInterpolatorFilterReaderLineEnding.java (original)
+++ maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/MultiDelimiterInterpolatorFilterReaderLineEnding.java Sun Feb  9 21:25:34 2014
@@ -349,7 +349,8 @@ public class MultiDelimiterInterpolatorF
         in.skip( beginToken.length() );
         ch = in.read();
 
-        int end = endToken.length();
+        int endTokenSize = endToken.length();
+        int end = endTokenSize;
         do
         {
             if ( ch == -1 )
@@ -365,7 +366,7 @@ public class MultiDelimiterInterpolatorF
 
             key.append( (char) ch );
 
-            if ( ch == this.endToken.charAt( end - 1 ) )
+            if ( ch == this.endToken.charAt( endTokenSize - end ) )
             {
                 end--;
                 if ( end == 0 )
@@ -375,7 +376,7 @@ public class MultiDelimiterInterpolatorF
             }
             else
             {
-                end = endToken.length();
+                end = endTokenSize;
             }
 
             ch = in.read();

Modified: maven/shared/trunk/maven-filtering/src/test/java/org/apache/maven/shared/filtering/DefaultMavenFileFilterTest.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-filtering/src/test/java/org/apache/maven/shared/filtering/DefaultMavenFileFilterTest.java?rev=1566429&r1=1566428&r2=1566429&view=diff
==============================================================================
--- maven/shared/trunk/maven-filtering/src/test/java/org/apache/maven/shared/filtering/DefaultMavenFileFilterTest.java (original)
+++ maven/shared/trunk/maven-filtering/src/test/java/org/apache/maven/shared/filtering/DefaultMavenFileFilterTest.java Sun Feb  9 21:25:34 2014
@@ -23,7 +23,9 @@ import java.io.File;
 import java.io.Reader;
 import java.io.StringReader;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collections;
+import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Properties;
 
@@ -153,4 +155,25 @@ public class DefaultMavenFileFilterTest
         
         assertEquals( "true true", IOUtil.toString( reader ) );
     }
+
+    // MSHARED-198: custom delimiters doesn't work as expected
+    public void testCustomDelimiters()
+        throws Exception
+    {
+        MavenFileFilter mavenFileFilter = (MavenFileFilter) lookup( MavenFileFilter.class.getName(), "default" );
+
+        AbstractMavenFilteringRequest req = new AbstractMavenFilteringRequest();
+        Properties additionalProperties = new Properties();
+        additionalProperties.setProperty( "FILTER.a.ME", "DONE" );
+        req.setAdditionalProperties( additionalProperties );
+        req.setDelimiters( new LinkedHashSet<String>( Arrays.asList( "aaa*aaa", "abc*abc" ) ) );
+
+        List<FilterWrapper> wrappers = mavenFileFilter.getDefaultFilterWrappers( req );
+
+        Reader reader = wrappers.get( 0 ).getReader( new StringReader( "aaaFILTER.a.MEaaa" ) );
+        assertEquals( "DONE", IOUtil.toString( reader ) );
+
+        reader = wrappers.get( 0 ).getReader( new StringReader( "abcFILTER.a.MEabc" ) );
+        assertEquals( "DONE", IOUtil.toString( reader ) );
+    }
 }