You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jd...@apache.org on 2009/08/21 01:36:11 UTC

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

Author: jdcasey
Date: Thu Aug 20 23:36:11 2009
New Revision: 806397

URL: http://svn.apache.org/viewvc?rev=806397&view=rev
Log:
cleanup on custom delimiter support.

Modified:
    maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/AbstractMavenFilteringRequest.java
    maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/DefaultMavenFileFilter.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/AbstractMavenFilteringRequest.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/AbstractMavenFilteringRequest.java?rev=806397&r1=806396&r2=806397&view=diff
==============================================================================
--- maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/AbstractMavenFilteringRequest.java (original)
+++ maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/AbstractMavenFilteringRequest.java Thu Aug 20 23:36:11 2009
@@ -24,6 +24,7 @@
 
 import java.util.ArrayList;
 import java.util.HashSet;
+import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Properties;
 import java.util.Set;
@@ -74,7 +75,7 @@
      * 
      * @since 1.0-beta-3
      */
-    private Set delimiters = new HashSet();
+    private LinkedHashSet delimiters = new LinkedHashSet();
     
     protected AbstractMavenFilteringRequest()
     {
@@ -249,7 +250,7 @@
      * @return Not allowed to be null or empty.
      * @since 1.0-beta-3
      */
-    public Set getDelimiters()
+    public LinkedHashSet getDelimiters()
     {
         return delimiters;
     }
@@ -262,7 +263,7 @@
      * @param delimiters If null, reset delimiters to '${*}' only. Otherwise, use the provided parameter value.
      * @since 1.0-beta-3
      */
-    public void setDelimiters( Set delimiters )
+    public void setDelimiters( LinkedHashSet delimiters )
     {
         if ( delimiters == null || delimiters.isEmpty() )
         {

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=806397&r1=806396&r2=806397&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 Thu Aug 20 23:36:11 2009
@@ -23,6 +23,7 @@
 import java.io.IOException;
 import java.io.Reader;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
@@ -228,13 +229,16 @@
         final ValueSource propertiesValueSource =
             new PropertiesEscapingBackSlashValueSource( request.isEscapeWindowsPaths(), filterProperties );
 
-        final String escapeString = request == null ? null : request.getEscapeString();
-        
         if ( request != null )
         {
             for ( Iterator it = request.getDelimiters().iterator(); it.hasNext(); )
             {
                 String delimiterPattern = (String) it.next();
+                if ( delimiterPattern == null )
+                {
+                    continue;
+                }
+                
                 final String[] delimiters = new String[2];
                 
                 int splitIdx = delimiterPattern.indexOf( '*' );
@@ -254,44 +258,9 @@
                     delimiters[1] = delimiterPattern.substring( splitIdx + 1 );
                 }
                 
-                FileUtils.FilterWrapper wrapper = new FileUtils.FilterWrapper()
-                {
-                    public Reader getReader( Reader reader )
-                    {
-                        StringSearchInterpolator propertiesInterpolator = new StringSearchInterpolator( delimiters[0],
-                                                                                                        delimiters[1] );
-                        
-                        RecursionInterceptor ri = null;
-                        if ( request.getProjectStartExpressions() != null && !request.getProjectStartExpressions().isEmpty() )
-                        {
-                            ri = new PrefixAwareRecursionInterceptor( request.getProjectStartExpressions(), true );
-                        }
-                        else
-                        {
-                            ri = new SimpleRecursionInterceptor();
-                        }
-                        
-                        MavenProjectValueSource valueSource = new MavenProjectValueSource(
-                                                                                           request.getMavenProject(),
-                                                                                           request.isEscapeWindowsPaths() );
-                        
-                        valueSource.setPropertiesValueSource( propertiesValueSource );
-                        
-                        propertiesInterpolator.addValueSource( valueSource );
-                        propertiesInterpolator.setEscapeString( escapeString );
-                        
-                        InterpolatorFilterReader filterReader = new InterpolatorFilterReader( reader,
-                                                                                              propertiesInterpolator,
-                                                                                              delimiters[0],
-                                                                                              delimiters[1],
-                                                                                              ri );
-                        
-                        filterReader.setInterpolateWithPrefixPattern( false );
-                        filterReader.setEscapeString( escapeString );
-                        
-                        return filterReader;
-                    }
-                };
+                FileUtils.FilterWrapper wrapper = new Wrapper( delimiters, request.getMavenProject(), propertiesValueSource,
+                                                               request.getProjectStartExpressions(), request.getEscapeString(),
+                                                               request.isEscapeWindowsPaths() );
                 
                 defaultFilterWrappers.add( wrapper );
             }
@@ -326,5 +295,68 @@
             }
         }
     }
+    
+    private static final class Wrapper extends FileUtils.FilterWrapper
+    {
+        
+        private String[] delimiters;
+        
+        private MavenProject project;
+        
+        private ValueSource propertiesValueSource;
+        
+        private Collection projectStartExpressions;
+        
+        private String escapeString;
+        
+        private boolean escapeWindowsPaths;
+
+        Wrapper( String[] delimiters, MavenProject project, ValueSource propertiesValueSource,
+                        Collection projectStartExpressions, String escapeString, boolean escapeWindowsPaths )
+        {
+            super();
+            this.delimiters = delimiters;
+            this.project = project;
+            this.propertiesValueSource = propertiesValueSource;
+            this.projectStartExpressions = projectStartExpressions;
+            this.escapeString = escapeString;
+            this.escapeWindowsPaths = escapeWindowsPaths;
+        }
+
+        public Reader getReader( Reader reader )
+        {
+            StringSearchInterpolator propertiesInterpolator = new StringSearchInterpolator( delimiters[0],
+                                                                                            delimiters[1] );
+            
+            RecursionInterceptor ri = null;
+            if ( projectStartExpressions != null && !projectStartExpressions.isEmpty() )
+            {
+                ri = new PrefixAwareRecursionInterceptor( projectStartExpressions, true );
+            }
+            else
+            {
+                ri = new SimpleRecursionInterceptor();
+            }
+            
+            MavenProjectValueSource valueSource = new MavenProjectValueSource( project, escapeWindowsPaths );
+            
+            valueSource.setPropertiesValueSource( propertiesValueSource );
+            
+            propertiesInterpolator.addValueSource( valueSource );
+            propertiesInterpolator.setEscapeString( escapeString );
+            
+            InterpolatorFilterReader filterReader = new InterpolatorFilterReader( reader,
+                                                                                  propertiesInterpolator,
+                                                                                  delimiters[0],
+                                                                                  delimiters[1],
+                                                                                  ri );
+            
+            filterReader.setInterpolateWithPrefixPattern( false );
+            filterReader.setEscapeString( escapeString );
+            
+            return filterReader;
+        }
+        
+    }
 
 }

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=806397&r1=806396&r2=806397&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 Thu Aug 20 23:36:11 2009
@@ -668,6 +668,7 @@
                                          Collections.EMPTY_LIST, new StubMavenSession() );
         mavenResourcesExecution.setIncludeEmptyDirs( true );
         mavenResourcesExecution.setEscapeString( "\\" );
+        
         mavenResourcesFiltering.filterResources( mavenResourcesExecution );
 
         Properties filteredResult = PropertyUtils.loadPropertyFile( new File( output, "filtered.properties" ), null );
@@ -675,8 +676,13 @@
         Properties expectedFilteredResult =
             PropertyUtils.loadPropertyFile( new File( getBasedir() + "/src/test/units-files/MSHARED-81",
                                                       "expected-filtered.properties" ), null );
+        
+        System.out.println( "Expected:\n" );
+        expectedFilteredResult.list( System.out );
+        System.out.println( "\n\n\nGot:\n" );
+        filteredResult.list( System.out );
 
-        assertTrue( filteredResult.equals( expectedFilteredResult ) );
+        assertEquals( expectedFilteredResult, filteredResult );
 
         Properties nonFilteredResult =
             PropertyUtils.loadPropertyFile( new File( output, "unfiltered.properties" ), null );