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 ) );
+ }
}