Author: olamy Date: Wed Sep 10 03:58:19 2008 New Revision: 693783 URL: http://svn.apache.org/viewvc?rev=693783&view=rev Log: [MSHARED-51] ability to escape interpolation with \ to preserve backward comp no default escape String is used
Modified: maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/DefaultMavenFileFilter.java maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/MavenFileFilter.java maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/MavenResourcesExecution.java maven/shared/trunk/maven-filtering/src/test/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFilteringTest.java Modified: maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/DefaultMavenFileFilter.java URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/DefaultMavenFileFilter.java?rev=693783&r1=693782&r2=693783&view=diff ============================================================================== --- maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/DefaultMavenFileFilter.java (original) +++ maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/DefaultMavenFileFilter.java Wed Sep 10 03:58:19 2008 @@ -155,8 +155,7 @@ final ValueSource propertiesValueSource = new PropertiesEscapingBackSlashValueSource( escapedBackslashesInFilePath, filterProperties ); - final String escapeString = mavenResourcesExecution == null ? MavenResourcesExecution.DEFAULT_ESCAPE_STRING - : mavenResourcesExecution.getEscapeString(); + final String escapeString = mavenResourcesExecution == null ? null : mavenResourcesExecution.getEscapeString(); // support ${token} Modified: maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/MavenFileFilter.java URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/MavenFileFilter.java?rev=693783&r1=693782&r2=693783&view=diff ============================================================================== --- maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/MavenFileFilter.java (original) +++ maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/MavenFileFilter.java Wed Sep 10 03:58:19 2008 @@ -67,7 +67,7 @@ * <li>interpolate with token ${} and values from mavenProject interpolation.</li> * <li>interpolation with token @ @ and values from mavenProject interpolation</li> * </ul> - * <b>default escape characters will be \</b> + * <b>this method si now deprecated and no escape mechanism will be use</b> * @deprecated use [EMAIL PROTECTED] #getDefaultFilterWrappers(MavenProject, List, boolean, MavenSession, MavenResourcesExecution)} * @param mavenProject * @param filters [EMAIL PROTECTED] List} of properties file Modified: maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/MavenResourcesExecution.java URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/MavenResourcesExecution.java?rev=693783&r1=693782&r2=693783&view=diff ============================================================================== --- maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/MavenResourcesExecution.java (original) +++ maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/MavenResourcesExecution.java Wed Sep 10 03:58:19 2008 @@ -29,6 +29,7 @@ import org.codehaus.plexus.interpolation.Interpolator; import org.codehaus.plexus.interpolation.InterpolatorFilterReader; import org.codehaus.plexus.interpolation.RegexBasedInterpolator; +import org.codehaus.plexus.interpolation.StringSearchInterpolator; import org.codehaus.plexus.interpolation.ValueSource; import org.codehaus.plexus.util.FileUtils; import org.codehaus.plexus.util.FileUtils.FilterWrapper; @@ -40,9 +41,7 @@ */ public class MavenResourcesExecution { - - public static final String DEFAULT_ESCAPE_STRING = "\\"; - + /** @see org.apache.maven.model.Resource */ private List resources; @@ -73,9 +72,8 @@ /** * String which will escape interpolation mechanism : foo \${foo.bar} -> foo ${foo.bar} - * by default it will be [EMAIL PROTECTED] #DEFAULT_ESCAPE_STRING} */ - private String escapeString = DEFAULT_ESCAPE_STRING; + private String escapeString; public MavenResourcesExecution() @@ -257,6 +255,14 @@ } ); } + /** + * @param valueSource + * @param startRegExp + * @param endRegExp + * @param startToken + * @param endToken + * @deprecated this doesn't support escaping + */ public void addFilerWrapper( final ValueSource valueSource, final String startRegExp, final String endRegExp, final String startToken, final String endToken ) { @@ -269,7 +275,31 @@ return new InterpolatorFilterReader( reader, propertiesInterpolator, startToken, endToken ); } } ); - } + } + + /** + * @param valueSource + * @param startRegExp + * @param endRegExp + * @param startToken + * @param endToken + * @since 1.0-beta-2 + * @param escapeString + */ + public void addFilerWrapperWithEscaping( final ValueSource valueSource, final String startRegExp, final String endRegExp, + final String startToken, final String endToken, final String escapeString ) + { + addFilterWrapper( new FileUtils.FilterWrapper() + { + public Reader getReader( Reader reader ) + { + StringSearchInterpolator propertiesInterpolator = new StringSearchInterpolator( startRegExp, endRegExp ); + propertiesInterpolator.addValueSource( valueSource ); + propertiesInterpolator.setEscapeString( escapeString ); + return new InterpolatorFilterReader( reader, propertiesInterpolator, startToken, endToken ); + } + } ); + } public File getResourcesBaseDirectory() Modified: maven/shared/trunk/maven-filtering/src/test/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFilteringTest.java URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-filtering/src/test/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFilteringTest.java?rev=693783&r1=693782&r2=693783&view=diff ============================================================================== --- maven/shared/trunk/maven-filtering/src/test/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFilteringTest.java (original) +++ maven/shared/trunk/maven-filtering/src/test/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFilteringTest.java Wed Sep 10 03:58:19 2008 @@ -93,7 +93,7 @@ mavenResourcesFiltering.filterResources( resources, outputDirectory, mavenProject, null, filtersFile, nonFilteredFileExtensions, new StubMavenSession() ); - assertFiltering( baseDir, initialImageFile ); + assertFiltering( baseDir, initialImageFile, false ); } public void testWithMavenResourcesExecution() @@ -130,12 +130,12 @@ mavenProject, null, filtersFile, nonFilteredFileExtensions, new StubMavenSession() ); - + mavenResourcesExecution.setEscapeString( "\\" ); mavenResourcesFiltering.filterResources( mavenResourcesExecution ); - assertFiltering( baseDir, initialImageFile ); + assertFiltering( baseDir, initialImageFile, true ); } - private void assertFiltering( File baseDir, File initialImageFile ) + private void assertFiltering( File baseDir, File initialImageFile, boolean escapeTest ) throws Exception { assertEquals( 7, outputDirectory.listFiles().length ); @@ -158,9 +158,11 @@ assertEquals( System.getProperty( "user.dir" ), result.getProperty( "userDir" ) ); assertEquals( System.getProperty( "java.version" ), result.getProperty( "javaVersion" ) ); - assertEquals("${java.version}", result.getProperty( "escapeJavaVersion" )); - assertEquals("@user.dir@", result.getProperty( "escapeuserDir" )); - + if ( escapeTest ) + { + assertEquals( "${java.version}", result.getProperty( "escapeJavaVersion" ) ); + assertEquals( "@user.dir@", result.getProperty( "escapeuserDir" ) ); + } assertEquals( baseDir.toString(), result.get( "base" ) ); assertEquals( new File( baseDir.toString() ).getPath(), new File( result.getProperty( "base" ) ).getPath() ); @@ -208,12 +210,11 @@ mavenResourcesExecution.addFilerWrapper( new MavenProjectValueSource( mavenProject, true ), "\\@", "(.+?)\\@", "@", "@" ); mavenResourcesFiltering.filterResources( mavenResourcesExecution ); - Properties result = PropertyUtils .loadPropertyFile( new File( outputDirectory, "maven-resources-filtering.txt" ), null ); assertFalse( result.isEmpty() ); assertEquals( mavenProject.getName(), result.get( "pomName" ) ); - assertFiltering( baseDir, initialImageFile ); + assertFiltering( baseDir, initialImageFile, false ); } public void testNoFiltering()