Author: krosenvold
Date: Mon Feb  2 15:35:39 2015
New Revision: 1656493

URL: http://svn.apache.org/r1656493
Log:
Extracted createInterpolator method

Modified:
    
maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/BaseFilter.java

Modified: 
maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/BaseFilter.java
URL: 
http://svn.apache.org/viewvc/maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/BaseFilter.java?rev=1656493&r1=1656492&r2=1656493&view=diff
==============================================================================
--- 
maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/BaseFilter.java
 (original)
+++ 
maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/BaseFilter.java
 Mon Feb  2 15:35:39 2015
@@ -19,23 +19,13 @@ package org.apache.maven.shared.filterin
  * under the License.
  */
 
-import java.io.File;
-import java.io.IOException;
-import java.io.Reader;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Properties;
-
-import javax.annotation.Nonnull;
-
 import org.apache.maven.execution.MavenSession;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.settings.Settings;
 import org.apache.maven.shared.utils.StringUtils;
 import org.apache.maven.shared.utils.io.FileUtils;
 import org.codehaus.plexus.interpolation.InterpolationPostProcessor;
+import org.codehaus.plexus.interpolation.Interpolator;
 import org.codehaus.plexus.interpolation.PrefixAwareRecursionInterceptor;
 import org.codehaus.plexus.interpolation.PrefixedObjectValueSource;
 import org.codehaus.plexus.interpolation.PropertiesBasedValueSource;
@@ -46,6 +36,16 @@ import org.codehaus.plexus.interpolation
 import 
org.codehaus.plexus.interpolation.multi.MultiDelimiterStringSearchInterpolator;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 
+import javax.annotation.Nonnull;
+import java.io.File;
+import java.io.IOException;
+import java.io.Reader;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Properties;
+
 class BaseFilter
     extends AbstractLogEnabled
     implements DefaultFilterInfo
@@ -53,10 +53,11 @@ class BaseFilter
 
     /**
      * @see 
org.apache.maven.shared.filtering.MavenFileFilter#getDefaultFilterWrappers(org.apache.maven.project.MavenProject,
-     *      java.util.List, boolean, org.apache.maven.execution.MavenSession)
+     * java.util.List, boolean, org.apache.maven.execution.MavenSession)
      * @deprecated
      */
-    @Nonnull public List<FileUtils.FilterWrapper> getDefaultFilterWrappers( 
final MavenProject mavenProject,
+    @Nonnull
+    public List<FileUtils.FilterWrapper> getDefaultFilterWrappers( final 
MavenProject mavenProject,
                                                                    
List<String> filters,
                                                                    final 
boolean escapedBackslashesInFilePath,
                                                                    
MavenSession mavenSession )
@@ -109,8 +110,9 @@ class BaseFilter
         // Project properties
         if ( request.getMavenProject() != null )
         {
-            baseProps.putAll( request.getMavenProject().getProperties() == 
null ? Collections.emptyMap()
-                            : request.getMavenProject().getProperties() );
+            baseProps.putAll( request.getMavenProject().getProperties() == null
+                                  ? Collections.emptyMap()
+                                  : request.getMavenProject().getProperties() 
);
         }
         // TODO this is NPE free but do we consider this as normal
         // or do we have to throw an MavenFilteringException with mavenSession 
cannot be null
@@ -148,8 +150,9 @@ class BaseFilter
             }
 
             // Project properties
-            filterProperties.putAll( request.getMavenProject().getProperties() 
== null ? Collections.emptyMap()
-                            : request.getMavenProject().getProperties() );
+            filterProperties.putAll( request.getMavenProject().getProperties() 
== null
+                                         ? Collections.emptyMap()
+                                         : 
request.getMavenProject().getProperties() );
         }
         if ( request.getMavenSession() != null )
         {
@@ -163,9 +166,9 @@ class BaseFilter
             filterProperties.putAll( request.getAdditionalProperties() );
         }
 
-        List<FileUtils.FilterWrapper> defaultFilterWrappers =
-            request == null ? new ArrayList<FileUtils.FilterWrapper>( 1 )
-                            : new ArrayList<FileUtils.FilterWrapper>( 
request.getDelimiters().size() + 1 );
+        List<FileUtils.FilterWrapper> defaultFilterWrappers = request == null
+            ? new ArrayList<FileUtils.FilterWrapper>( 1 )
+            : new ArrayList<FileUtils.FilterWrapper>( 
request.getDelimiters().size() + 1 );
 
         if ( getLogger().isDebugEnabled() )
         {
@@ -264,10 +267,15 @@ class BaseFilter
 
         public Reader getReader( Reader reader )
         {
-            MultiDelimiterStringSearchInterpolator interpolator = new 
MultiDelimiterStringSearchInterpolator();
-            interpolator.setDelimiterSpecs( delimiters );
+            Interpolator interpolator =
+                createInterpolator( delimiters, projectStartExpressions,
+                                    propertiesValueSource, project, 
mavenSession,
+                                    escapeString, escapeWindowsPaths );
+
+            MultiDelimiterInterpolatorFilterReaderLineEnding filterReader =
+                new MultiDelimiterInterpolatorFilterReaderLineEnding( reader, 
interpolator, supportMultiLineFiltering );
 
-            RecursionInterceptor ri = null;
+            final RecursionInterceptor ri;
             if ( projectStartExpressions != null && 
!projectStartExpressions.isEmpty() )
             {
                 ri = new PrefixAwareRecursionInterceptor( 
projectStartExpressions, true );
@@ -277,54 +285,63 @@ class BaseFilter
                 ri = new SimpleRecursionInterceptor();
             }
 
-            interpolator.addValueSource( propertiesValueSource );
+            filterReader.setRecursionInterceptor( ri );
+            filterReader.setDelimiterSpecs( delimiters );
 
-            if ( project != null )
-            {
-                interpolator.addValueSource( new PrefixedObjectValueSource( 
projectStartExpressions, project, true ) );
-            }
+            filterReader.setInterpolateWithPrefixPattern( false );
+            filterReader.setEscapeString( escapeString );
 
-            if ( mavenSession != null )
-            {
-                interpolator.addValueSource( new PrefixedObjectValueSource( 
"session", mavenSession ) );
+            return filterReader;
+        }
 
-                final Settings settings = mavenSession.getSettings();
-                if ( settings != null )
-                {
-                    interpolator.addValueSource( new 
PrefixedObjectValueSource( "settings", settings ) );
-                    interpolator.addValueSource( new 
SingleResponseValueSource( "localRepository",
-                                                                               
 settings.getLocalRepository() ) );
-                }
+    }
+
+    private static Interpolator createInterpolator( LinkedHashSet<String> 
delimiters,
+                                                    List<String> 
projectStartExpressions,
+                                                    ValueSource 
propertiesValueSource, MavenProject project,
+                                                    MavenSession mavenSession, 
String escapeString,
+                                                    boolean escapeWindowsPaths 
)
+    {
+        MultiDelimiterStringSearchInterpolator interpolator = new 
MultiDelimiterStringSearchInterpolator();
+        interpolator.setDelimiterSpecs( delimiters );
+
+        interpolator.addValueSource( propertiesValueSource );
+
+        if ( project != null )
+        {
+            interpolator.addValueSource( new PrefixedObjectValueSource( 
projectStartExpressions, project, true ) );
+        }
+
+        if ( mavenSession != null )
+        {
+            interpolator.addValueSource( new PrefixedObjectValueSource( 
"session", mavenSession ) );
+
+            final Settings settings = mavenSession.getSettings();
+            if ( settings != null )
+            {
+                interpolator.addValueSource( new PrefixedObjectValueSource( 
"settings", settings ) );
+                interpolator.addValueSource(
+                    new SingleResponseValueSource( "localRepository", 
settings.getLocalRepository() ) );
             }
+        }
 
-            interpolator.setEscapeString( escapeString );
+        interpolator.setEscapeString( escapeString );
 
-            if ( escapeWindowsPaths )
+        if ( escapeWindowsPaths )
+        {
+            interpolator.addPostProcessor( new InterpolationPostProcessor()
             {
-                interpolator.addPostProcessor( new InterpolationPostProcessor()
+                public Object execute( String expression, Object value )
                 {
-                    public Object execute( String expression, Object value )
+                    if ( value instanceof String )
                     {
-                        if ( value instanceof String )
-                        {
-                            return FilteringUtils.escapeWindowsPath( (String) 
value );
-                        }
-
-                        return value;
+                        return FilteringUtils.escapeWindowsPath( (String) 
value );
                     }
-                } );
-            }
 
-            MultiDelimiterInterpolatorFilterReaderLineEnding filterReader =
-                new MultiDelimiterInterpolatorFilterReaderLineEnding( reader, 
interpolator, supportMultiLineFiltering );
-            filterReader.setRecursionInterceptor( ri );
-            filterReader.setDelimiterSpecs( delimiters );
-
-            filterReader.setInterpolateWithPrefixPattern( false );
-            filterReader.setEscapeString( escapeString );
-
-            return filterReader;
+                    return value;
+                }
+            } );
         }
-
+        return interpolator;
     }
 }


Reply via email to