You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ol...@apache.org on 2008/09/10 12:58:20 UTC

svn commit: r693783 - in /maven/shared/trunk/maven-filtering/src: main/java/org/apache/maven/shared/filtering/ test/java/org/apache/maven/shared/filtering/

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 {@link #getDefaultFilterWrappers(MavenProject, List, boolean, MavenSession, MavenResourcesExecution)}
      * @param mavenProject
      * @param filters {@link 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 {@value #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()