Revert accidental commit "Aded stuff"
git-svn-id: https://svn.apache.org/repos/asf/maven/shared/trunk@1631749 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/maven/shared/filtering/BaseFilter.java b/src/main/java/org/apache/maven/shared/filtering/BaseFilter.java
deleted file mode 100644
index abfd59c..0000000
--- a/src/main/java/org/apache/maven/shared/filtering/BaseFilter.java
+++ /dev/null
@@ -1,289 +0,0 @@
-package org.apache.maven.shared.filtering;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.Reader;
-import java.util.*;
-
-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.*;
-import org.codehaus.plexus.interpolation.multi.MultiDelimiterStringSearchInterpolator;
-import org.codehaus.plexus.logging.AbstractLogEnabled;
-
-class BaseFilter extends AbstractLogEnabled implements DefaultFilterInfo {
-
-
- /**
- * @see org.apache.maven.shared.filtering.MavenFileFilter#getDefaultFilterWrappers(org.apache.maven.project.MavenProject, java.util.List, boolean, org.apache.maven.execution.MavenSession)
- * @deprecated
- */
- public List<FileUtils.FilterWrapper> getDefaultFilterWrappers( final MavenProject mavenProject,
- List<String> filters,
- final boolean escapedBackslashesInFilePath,
- MavenSession mavenSession )
- throws MavenFilteringException
- {
- return getDefaultFilterWrappers( mavenProject, filters, escapedBackslashesInFilePath, mavenSession, null );
- }
-
-
- public List<FileUtils.FilterWrapper> getDefaultFilterWrappers( final MavenProject mavenProject, List<String> filters,
- final boolean escapedBackslashesInFilePath,
- MavenSession mavenSession,
- MavenResourcesExecution mavenResourcesExecution )
- throws MavenFilteringException
- {
-
- MavenResourcesExecution mre =
- mavenResourcesExecution == null ? new MavenResourcesExecution() : mavenResourcesExecution.copyOf();
-
- mre.setMavenProject( mavenProject );
- mre.setMavenSession( mavenSession );
- mre.setFilters( filters );
- mre.setEscapedBackslashesInFilePath( escapedBackslashesInFilePath );
-
- return getDefaultFilterWrappers( mre );
-
- }
-
- public List<FileUtils.FilterWrapper> getDefaultFilterWrappers( final AbstractMavenFilteringRequest req )
- throws MavenFilteringException
- {
- // backup values
- boolean supportMultiLineFiltering = req.isSupportMultiLineFiltering();
-
- // compensate for null parameter value.
- final AbstractMavenFilteringRequest request = req == null ? new MavenFileFilterRequest() : req;
-
- request.setSupportMultiLineFiltering( supportMultiLineFiltering );
-
- // Here we build some properties which will be used to read some properties files
- // to interpolate the expression ${ } in this properties file
-
- // Take a copy of filterProperties to ensure that evaluated filterTokens are not propagated
- // to subsequent filter files. Note: this replicates current behaviour and seems to make sense.
-
- final Properties baseProps = new Properties();
-
- // Project properties
- if ( request.getMavenProject() != null )
- {
- 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
- if ( request.getMavenSession() != null )
- {
- // execution properties wins
- baseProps.putAll( request.getMavenSession().getExecutionProperties() );
- }
-
- // now we build properties to use for resources interpolation
-
- final Properties filterProperties = new Properties();
-
- File basedir = request.getMavenProject() != null ? request.getMavenProject().getBasedir() : new File( "." );
-
- loadProperties( filterProperties, basedir, request.getFileFilters(), baseProps );
- if ( filterProperties.size() < 1 )
- {
- filterProperties.putAll( baseProps );
- }
-
- if ( request.getMavenProject() != null )
- {
- if ( request.isInjectProjectBuildFilters() )
- {
- @SuppressWarnings( "unchecked" )
- List<String> buildFilters = new ArrayList<String>( request.getMavenProject().getBuild().getFilters() );
-
- // JDK-8015656: (coll) unexpected NPE from removeAll
- if ( request.getFileFilters() != null )
- {
- buildFilters.removeAll( request.getFileFilters() );
- }
-
- loadProperties( filterProperties, basedir, buildFilters, baseProps );
- }
-
- // Project properties
- filterProperties.putAll( request.getMavenProject().getProperties() == null
- ? Collections.emptyMap()
- : request.getMavenProject().getProperties() );
- }
- if ( request.getMavenSession() != null )
- {
- // execution properties wins
- filterProperties.putAll( request.getMavenSession().getExecutionProperties() );
- }
-
- if ( request.getAdditionalProperties() != null )
- {
- // additional properties wins
- filterProperties.putAll( request.getAdditionalProperties() );
- }
-
- List<FileUtils.FilterWrapper> defaultFilterWrappers = request == null
- ? new ArrayList<FileUtils.FilterWrapper>( 1 )
- : new ArrayList<FileUtils.FilterWrapper>( request.getDelimiters().size() + 1 );
-
- if ( getLogger().isDebugEnabled() )
- {
- getLogger().debug( "properties used " + filterProperties );
- }
-
- final ValueSource propertiesValueSource = new PropertiesBasedValueSource( filterProperties );
-
- if ( request != null )
- {
- FileUtils.FilterWrapper wrapper =
- new Wrapper( request.getDelimiters(), request.getMavenProject(), request.getMavenSession(),
- propertiesValueSource, request.getProjectStartExpressions(), request.getEscapeString(),
- request.isEscapeWindowsPaths(), request.isSupportMultiLineFiltering() );
-
- defaultFilterWrappers.add( wrapper );
- }
-
- return defaultFilterWrappers;
- }
-
- /**
- * default visibility only for testing reason !
- */
- void loadProperties( Properties filterProperties, File basedir, List<String> propertiesFilePaths, Properties baseProps )
- throws MavenFilteringException
- {
- if ( propertiesFilePaths != null )
- {
- Properties workProperties = new Properties();
- workProperties.putAll( baseProps );
-
- for ( String filterFile : propertiesFilePaths )
- {
- if ( StringUtils.isEmpty(filterFile) )
- {
- // skip empty file name
- continue;
- }
- try
- {
- File propFile = FileUtils.resolveFile( basedir, filterFile );
- Properties properties = PropertyUtils.loadPropertyFile( propFile, workProperties );
- filterProperties.putAll( properties );
- workProperties.putAll( properties );
- }
- catch ( IOException e )
- {
- throw new MavenFilteringException( "Error loading property file '" + filterFile + "'", e );
- }
- }
- }
- }
-
- private static final class Wrapper
- extends FileUtils.FilterWrapper
- {
-
- private LinkedHashSet<String> delimiters;
-
- private MavenProject project;
-
- private ValueSource propertiesValueSource;
-
- private List<String> projectStartExpressions;
-
- private String escapeString;
-
- private boolean escapeWindowsPaths;
-
- private final MavenSession mavenSession;
-
- private boolean supportMultiLineFiltering;
-
- Wrapper( LinkedHashSet<String> delimiters, MavenProject project, MavenSession mavenSession,
- ValueSource propertiesValueSource, List<String> projectStartExpressions, String escapeString,
- boolean escapeWindowsPaths, boolean supportMultiLineFiltering )
- {
- super();
- this.delimiters = delimiters;
- this.project = project;
- this.mavenSession = mavenSession;
- this.propertiesValueSource = propertiesValueSource;
- this.projectStartExpressions = projectStartExpressions;
- this.escapeString = escapeString;
- this.escapeWindowsPaths = escapeWindowsPaths;
- this.supportMultiLineFiltering = supportMultiLineFiltering;
- }
-
- public Reader getReader( Reader reader )
- {
- MultiDelimiterStringSearchInterpolator interpolator = new MultiDelimiterStringSearchInterpolator();
- interpolator.setDelimiterSpecs( delimiters );
-
- RecursionInterceptor ri = null;
- if ( projectStartExpressions != null && !projectStartExpressions.isEmpty() )
- {
- ri = new PrefixAwareRecursionInterceptor( projectStartExpressions, true );
- }
- else
- {
- ri = new SimpleRecursionInterceptor();
- }
-
- 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 );
-
- if ( escapeWindowsPaths )
- {
- interpolator.addPostProcessor( new InterpolationPostProcessor()
- {
- public Object execute( String expression, Object value )
- {
- if ( value instanceof String )
- {
- return FilteringUtils.escapeWindowsPath( (String) value );
- }
-
- return value;
- }
- } );
- }
-
- MultiDelimiterInterpolatorFilterReaderLineEnding filterReader =
- new MultiDelimiterInterpolatorFilterReaderLineEnding( reader, interpolator, supportMultiLineFiltering );
- filterReader.setRecursionInterceptor( ri );
- filterReader.setDelimiterSpecs( delimiters );
-
- filterReader.setInterpolateWithPrefixPattern( false );
- filterReader.setEscapeString( escapeString );
-
- return filterReader;
- }
-
- }
-}
diff --git a/src/main/java/org/apache/maven/shared/filtering/DefaultFilterInfo.java b/src/main/java/org/apache/maven/shared/filtering/DefaultFilterInfo.java
deleted file mode 100644
index 6af1786..0000000
--- a/src/main/java/org/apache/maven/shared/filtering/DefaultFilterInfo.java
+++ /dev/null
@@ -1,75 +0,0 @@
-package org.apache.maven.shared.filtering;
-
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import java.util.List;
-
-import org.apache.maven.execution.MavenSession;
-import org.apache.maven.project.MavenProject;
-import org.apache.maven.shared.utils.io.FileUtils;
-
-public interface DefaultFilterInfo {
- /**
- * Will return the default FileUtils.FilterWrappers.
- * <p/>
- * <ul>
- * <li>interpolate with token ${} and values from sysProps, project.properties, filters and project filters.</li>
- * <li>interpolate with token @ @ and values from sysProps, project.properties, filters and project filters.</li>
- * <li>interpolate with token ${} and values from mavenProject interpolation.</li>
- * <li>interpolation with token @ @ and values from mavenProject interpolation</li>
- * </ul>
- * <b>This method is now deprecated and no escape mechanism will be used.</b>
- *
- * @param mavenProject
- * @param filters {@link java.util.List} of properties file
- * @return {@link java.util.List} of FileUtils.FilterWrapper
- * @deprecated use {@link #getDefaultFilterWrappers(org.apache.maven.project.MavenProject, java.util.List, boolean, org.apache.maven.execution.MavenSession, org.apache.maven.shared.filtering.MavenResourcesExecution)}
- */
- List<FileUtils.FilterWrapper> getDefaultFilterWrappers(MavenProject mavenProject, List<String> filters,
- boolean escapedBackslashesInFilePath,
- MavenSession mavenSession)
- throws MavenFilteringException;
-
- /**
- * @param mavenProject
- * @param filters
- * @param escapedBackslashesInFilePath
- * @param mavenSession
- * @param mavenResourcesExecution
- * @return {@link java.util.List} of FileUtils.FilterWrapper
- * @throws org.apache.maven.shared.filtering.MavenFilteringException
- * @since 1.0-beta-2
- */
- List<FileUtils.FilterWrapper> getDefaultFilterWrappers(MavenProject mavenProject, List<String> filters,
- boolean escapedBackslashesInFilePath,
- MavenSession mavenSession,
- MavenResourcesExecution mavenResourcesExecution)
- throws MavenFilteringException;
-
- /**
- * @param request
- * @return {@link java.util.List} of FileUtils.FilterWrapper
- * @throws org.apache.maven.shared.filtering.MavenFilteringException
- * @since 1.0-beta-3
- */
- List<FileUtils.FilterWrapper> getDefaultFilterWrappers(AbstractMavenFilteringRequest request)
- throws MavenFilteringException;
-}
diff --git a/src/main/java/org/apache/maven/shared/filtering/DefaultMavenFileFilter.java b/src/main/java/org/apache/maven/shared/filtering/DefaultMavenFileFilter.java
index 67b8833..f1de523 100644
--- a/src/main/java/org/apache/maven/shared/filtering/DefaultMavenFileFilter.java
+++ b/src/main/java/org/apache/maven/shared/filtering/DefaultMavenFileFilter.java
@@ -53,7 +53,7 @@
* role-hint="default"
*/
public class DefaultMavenFileFilter
- extends BaseFilter
+ extends AbstractLogEnabled
implements MavenFileFilter
{
@@ -130,4 +130,275 @@
}
}
+
+ /**
+ * @see org.apache.maven.shared.filtering.MavenFileFilter#getDefaultFilterWrappers(org.apache.maven.project.MavenProject, java.util.List, boolean, org.apache.maven.execution.MavenSession)
+ * @deprecated
+ */
+ public List<FileUtils.FilterWrapper> getDefaultFilterWrappers( final MavenProject mavenProject,
+ List<String> filters,
+ final boolean escapedBackslashesInFilePath,
+ MavenSession mavenSession )
+ throws MavenFilteringException
+ {
+ return getDefaultFilterWrappers( mavenProject, filters, escapedBackslashesInFilePath, mavenSession, null );
+ }
+
+
+ public List<FileUtils.FilterWrapper> getDefaultFilterWrappers( final MavenProject mavenProject, List<String> filters,
+ final boolean escapedBackslashesInFilePath,
+ MavenSession mavenSession,
+ MavenResourcesExecution mavenResourcesExecution )
+ throws MavenFilteringException
+ {
+
+ MavenResourcesExecution mre =
+ mavenResourcesExecution == null ? new MavenResourcesExecution() : mavenResourcesExecution.copyOf();
+
+ mre.setMavenProject( mavenProject );
+ mre.setMavenSession( mavenSession );
+ mre.setFilters( filters );
+ mre.setEscapedBackslashesInFilePath( escapedBackslashesInFilePath );
+
+ return getDefaultFilterWrappers( mre );
+
+ }
+
+ public List<FileUtils.FilterWrapper> getDefaultFilterWrappers( final AbstractMavenFilteringRequest req )
+ throws MavenFilteringException
+ {
+ // backup values
+ boolean supportMultiLineFiltering = req.isSupportMultiLineFiltering();
+
+ // compensate for null parameter value.
+ final AbstractMavenFilteringRequest request = req == null ? new MavenFileFilterRequest() : req;
+
+ request.setSupportMultiLineFiltering( supportMultiLineFiltering );
+
+ // Here we build some properties which will be used to read some properties files
+ // to interpolate the expression ${ } in this properties file
+
+ // Take a copy of filterProperties to ensure that evaluated filterTokens are not propagated
+ // to subsequent filter files. Note: this replicates current behaviour and seems to make sense.
+
+ final Properties baseProps = new Properties();
+
+ // Project properties
+ if ( request.getMavenProject() != null )
+ {
+ 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
+ if ( request.getMavenSession() != null )
+ {
+ // execution properties wins
+ baseProps.putAll( request.getMavenSession().getExecutionProperties() );
+ }
+
+ // now we build properties to use for resources interpolation
+
+ final Properties filterProperties = new Properties();
+
+ File basedir = request.getMavenProject() != null ? request.getMavenProject().getBasedir() : new File( "." );
+
+ loadProperties( filterProperties, basedir, request.getFileFilters(), baseProps );
+ if ( filterProperties.size() < 1 )
+ {
+ filterProperties.putAll( baseProps );
+ }
+
+ if ( request.getMavenProject() != null )
+ {
+ if ( request.isInjectProjectBuildFilters() )
+ {
+ @SuppressWarnings( "unchecked" )
+ List<String> buildFilters = new ArrayList<String>( request.getMavenProject().getBuild().getFilters() );
+
+ // JDK-8015656: (coll) unexpected NPE from removeAll
+ if ( request.getFileFilters() != null )
+ {
+ buildFilters.removeAll( request.getFileFilters() );
+ }
+
+ loadProperties( filterProperties, basedir, buildFilters, baseProps );
+ }
+
+ // Project properties
+ filterProperties.putAll( request.getMavenProject().getProperties() == null
+ ? Collections.emptyMap()
+ : request.getMavenProject().getProperties() );
+ }
+ if ( request.getMavenSession() != null )
+ {
+ // execution properties wins
+ filterProperties.putAll( request.getMavenSession().getExecutionProperties() );
+ }
+
+ if ( request.getAdditionalProperties() != null )
+ {
+ // additional properties wins
+ filterProperties.putAll( request.getAdditionalProperties() );
+ }
+
+ List<FileUtils.FilterWrapper> defaultFilterWrappers = request == null
+ ? new ArrayList<FileUtils.FilterWrapper>( 1 )
+ : new ArrayList<FileUtils.FilterWrapper>( request.getDelimiters().size() + 1 );
+
+ if ( getLogger().isDebugEnabled() )
+ {
+ getLogger().debug( "properties used " + filterProperties );
+ }
+
+ final ValueSource propertiesValueSource = new PropertiesBasedValueSource( filterProperties );
+
+ if ( request != null )
+ {
+ FileUtils.FilterWrapper wrapper =
+ new Wrapper( request.getDelimiters(), request.getMavenProject(), request.getMavenSession(),
+ propertiesValueSource, request.getProjectStartExpressions(), request.getEscapeString(),
+ request.isEscapeWindowsPaths(), request.isSupportMultiLineFiltering() );
+
+ defaultFilterWrappers.add( wrapper );
+ }
+
+ return defaultFilterWrappers;
+ }
+
+ /**
+ * default visibility only for testing reason !
+ */
+ void loadProperties( Properties filterProperties, File basedir, List<String> propertiesFilePaths, Properties baseProps )
+ throws MavenFilteringException
+ {
+ if ( propertiesFilePaths != null )
+ {
+ Properties workProperties = new Properties();
+ workProperties.putAll( baseProps );
+
+ for ( String filterFile : propertiesFilePaths )
+ {
+ if ( StringUtils.isEmpty( filterFile ) )
+ {
+ // skip empty file name
+ continue;
+ }
+ try
+ {
+ File propFile = FileUtils.resolveFile( basedir, filterFile );
+ Properties properties = PropertyUtils.loadPropertyFile( propFile, workProperties );
+ filterProperties.putAll( properties );
+ workProperties.putAll( properties );
+ }
+ catch ( IOException e )
+ {
+ throw new MavenFilteringException( "Error loading property file '" + filterFile + "'", e );
+ }
+ }
+ }
+ }
+
+ private static final class Wrapper
+ extends FileUtils.FilterWrapper
+ {
+
+ private LinkedHashSet<String> delimiters;
+
+ private MavenProject project;
+
+ private ValueSource propertiesValueSource;
+
+ private List<String> projectStartExpressions;
+
+ private String escapeString;
+
+ private boolean escapeWindowsPaths;
+
+ private final MavenSession mavenSession;
+
+ private boolean supportMultiLineFiltering;
+
+ Wrapper( LinkedHashSet<String> delimiters, MavenProject project, MavenSession mavenSession,
+ ValueSource propertiesValueSource, List<String> projectStartExpressions, String escapeString,
+ boolean escapeWindowsPaths, boolean supportMultiLineFiltering )
+ {
+ super();
+ this.delimiters = delimiters;
+ this.project = project;
+ this.mavenSession = mavenSession;
+ this.propertiesValueSource = propertiesValueSource;
+ this.projectStartExpressions = projectStartExpressions;
+ this.escapeString = escapeString;
+ this.escapeWindowsPaths = escapeWindowsPaths;
+ this.supportMultiLineFiltering = supportMultiLineFiltering;
+ }
+
+ public Reader getReader( Reader reader )
+ {
+ MultiDelimiterStringSearchInterpolator interpolator = new MultiDelimiterStringSearchInterpolator();
+ interpolator.setDelimiterSpecs( delimiters );
+
+ RecursionInterceptor ri = null;
+ if ( projectStartExpressions != null && !projectStartExpressions.isEmpty() )
+ {
+ ri = new PrefixAwareRecursionInterceptor( projectStartExpressions, true );
+ }
+ else
+ {
+ ri = new SimpleRecursionInterceptor();
+ }
+
+ 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 );
+
+ if ( escapeWindowsPaths )
+ {
+ interpolator.addPostProcessor( new InterpolationPostProcessor()
+ {
+ public Object execute( String expression, Object value )
+ {
+ if ( value instanceof String )
+ {
+ return FilteringUtils.escapeWindowsPath( (String) value );
+ }
+
+ return value;
+ }
+ } );
+ }
+
+ MultiDelimiterInterpolatorFilterReaderLineEnding filterReader =
+ new MultiDelimiterInterpolatorFilterReaderLineEnding( reader, interpolator, supportMultiLineFiltering );
+ filterReader.setRecursionInterceptor( ri );
+ filterReader.setDelimiterSpecs( delimiters );
+
+ filterReader.setInterpolateWithPrefixPattern( false );
+ filterReader.setEscapeString( escapeString );
+
+ return filterReader;
+ }
+
+ }
+
}
diff --git a/src/main/java/org/apache/maven/shared/filtering/DefaultMavenStreamFilter.java b/src/main/java/org/apache/maven/shared/filtering/DefaultMavenStreamFilter.java
deleted file mode 100644
index 9b74368..0000000
--- a/src/main/java/org/apache/maven/shared/filtering/DefaultMavenStreamFilter.java
+++ /dev/null
@@ -1,162 +0,0 @@
-package org.apache.maven.shared.filtering;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import java.io.*;
-import java.util.*;
-
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
-
-import org.apache.maven.execution.MavenSession;
-import org.apache.maven.project.MavenProject;
-import org.apache.maven.shared.utils.io.FileUtils.FilterWrapper;
-import org.apache.maven.shared.utils.io.IOUtil;
-import org.sonatype.plexus.build.incremental.BuildContext;
-
-/**
- * @author Olivier Lamy
- *
- * @plexus.component role="org.apache.maven.shared.filtering.MavenFileFilter"
- * role-hint="default"
- */
-public class DefaultMavenStreamFilter
- extends BaseFilter
- implements MavenStreamFilter
-{
-
- /**
- * @plexus.requirement
- */
- private BuildContext buildContext;
-
- public InputStream filter( InputStream from, boolean filtering, MavenProject mavenProject, List<String> filters,
- boolean escapedBackslashesInFilePath, String encoding, MavenSession mavenSession )
- throws MavenFilteringException
- {
- MavenResourcesExecution mre = new MavenResourcesExecution();
- mre.setMavenProject( mavenProject );
- mre.setFileFilters( filters );
- mre.setEscapeWindowsPaths( escapedBackslashesInFilePath );
- mre.setMavenSession( mavenSession );
- mre.setInjectProjectBuildFilters( true );
-
- List<FilterWrapper> filterWrappers = getDefaultFilterWrappers( mre );
- return filter(from, filtering, filterWrappers, encoding);
- }
-
-
- public InputStream filter( MavenStreamFilterRequest mavenFileFilterRequest )
- throws MavenFilteringException
- {
- List<FilterWrapper> filterWrappers = getDefaultFilterWrappers( mavenFileFilterRequest );
-
- return filter(mavenFileFilterRequest.getFrom(),
- mavenFileFilterRequest.isFiltering(), filterWrappers, mavenFileFilterRequest.getEncoding());
- }
-
-
- public InputStream filter( InputStream from,boolean filtering, List<FilterWrapper> filterWrappers,
- String encoding )
- throws MavenFilteringException
- {
- // overwrite forced to false to preserve backward comp
- return filter( from, filtering, filterWrappers, encoding, false );
- }
-
-
- public InputStream filter( InputStream from, boolean filtering, List<FilterWrapper> filterWrappers,
- String encoding, boolean overwrite )
- throws MavenFilteringException
- {
- try
- {
- if ( filtering )
- {
- FilterWrapper[] wrappers = filterWrappers.toArray(
- new FilterWrapper[filterWrappers.size()] );
- return filterWrap(from, encoding, wrappers, false);
- }
- else
- {
- return filterWrap(from, encoding, new FilterWrapper[0], overwrite);
- }
-
- }
- catch ( IOException e )
- {
- throw new MavenFilteringException( e.getMessage(), e );
- }
-
- }
-
-
- public static InputStream filterWrap(@Nonnull InputStream from, @Nullable String encoding,
- @Nullable FilterWrapper[] wrappers, boolean overwrite)
- throws IOException
- {
- if ( wrappers != null && wrappers.length > 0 )
- {
- // buffer so it isn't reading a byte at a time!
- Reader fileReader = null;
- Writer fileWriter = null;
- try
- {
- if ( encoding == null || encoding.length() < 1 )
- {
- fileReader = new BufferedReader( new InputStreamReader(from) );
- fileWriter = new FileWriter( to );
- }
- else
- {
- FileInputStream instream = new FileInputStream( from );
-
- FileOutputStream outstream = new FileOutputStream( to );
-
- fileReader = new BufferedReader( new InputStreamReader( instream, encoding ) );
-
- fileWriter = new OutputStreamWriter( outstream, encoding );
- }
-
- Reader reader = fileReader;
- for ( FilterWrapper wrapper : wrappers )
- {
- reader = wrapper.getReader( reader );
- }
-
- IOUtil.copy(reader, fileWriter);
- }
- finally
- {
- IOUtil.close( fileReader );
- IOUtil.close( fileWriter );
- }
- }
- else
- {
- if ( to.lastModified() < from.lastModified() || overwrite )
- {
- filterWrap(from, to);
- }
- }
- }
-
-
-}
diff --git a/src/main/java/org/apache/maven/shared/filtering/MavenFileFilter.java b/src/main/java/org/apache/maven/shared/filtering/MavenFileFilter.java
index b383649..dbc7bdd 100644
--- a/src/main/java/org/apache/maven/shared/filtering/MavenFileFilter.java
+++ b/src/main/java/org/apache/maven/shared/filtering/MavenFileFilter.java
@@ -30,7 +30,7 @@
* @author Olivier Lamy
*
*/
-public interface MavenFileFilter extends DefaultFilterInfo
+public interface MavenFileFilter
{
/**
@@ -81,4 +81,51 @@
void copyFile( File from, final File to, boolean filtering, List<FileUtils.FilterWrapper> filterWrappers,
String encoding, boolean overwrite )
throws MavenFilteringException;
+
+ /**
+ * Will return the default FileUtils.FilterWrappers.
+ * <p/>
+ * <ul>
+ * <li>interpolate with token ${} and values from sysProps, project.properties, filters and project filters.</li>
+ * <li>interpolate with token @ @ and values from sysProps, project.properties, filters and project filters.</li>
+ * <li>interpolate with token ${} and values from mavenProject interpolation.</li>
+ * <li>interpolation with token @ @ and values from mavenProject interpolation</li>
+ * </ul>
+ * <b>This method is now deprecated and no escape mechanism will be used.</b>
+ *
+ * @param mavenProject
+ * @param filters {@link List} of properties file
+ * @return {@link List} of FileUtils.FilterWrapper
+ * @deprecated use {@link #getDefaultFilterWrappers(MavenProject, List, boolean, MavenSession, MavenResourcesExecution)}
+ */
+ List<FileUtils.FilterWrapper> getDefaultFilterWrappers( MavenProject mavenProject, List<String> filters,
+ boolean escapedBackslashesInFilePath,
+ MavenSession mavenSession )
+ throws MavenFilteringException;
+
+ /**
+ * @param mavenProject
+ * @param filters
+ * @param escapedBackslashesInFilePath
+ * @param mavenSession
+ * @param mavenResourcesExecution
+ * @return {@link List} of FileUtils.FilterWrapper
+ * @throws MavenFilteringException
+ * @since 1.0-beta-2
+ */
+ List<FileUtils.FilterWrapper> getDefaultFilterWrappers( MavenProject mavenProject, List<String> filters,
+ boolean escapedBackslashesInFilePath,
+ MavenSession mavenSession,
+ MavenResourcesExecution mavenResourcesExecution )
+ throws MavenFilteringException;
+
+ /**
+ * @param request
+ * @return {@link List} of FileUtils.FilterWrapper
+ * @throws MavenFilteringException
+ * @since 1.0-beta-3
+ */
+ List<FileUtils.FilterWrapper> getDefaultFilterWrappers( AbstractMavenFilteringRequest request )
+ throws MavenFilteringException;
+
}
diff --git a/src/main/java/org/apache/maven/shared/filtering/MavenStreamFilter.java b/src/main/java/org/apache/maven/shared/filtering/MavenStreamFilter.java
deleted file mode 100644
index a79cc2d..0000000
--- a/src/main/java/org/apache/maven/shared/filtering/MavenStreamFilter.java
+++ /dev/null
@@ -1,87 +0,0 @@
-package org.apache.maven.shared.filtering;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import java.io.File;
-import java.io.InputStream;
-import java.util.List;
-
-import org.apache.maven.execution.MavenSession;
-import org.apache.maven.project.MavenProject;
-import org.apache.maven.shared.utils.io.FileUtils;
-
-/**
- * @author Olivier Lamy
- * @author Kristian Rosenvold
- */
-public interface MavenStreamFilter extends DefaultFilterInfo
-{
-
- /**
- * Will copy a file with some filtering using defaultFilterWrappers.
- *
- * @param source file to copy/filter
- * @param filtering enable or not filering
- * @param mavenProject the mavenproject
- * @param filters {@link java.util.List} of String which are path to a Property file
- * @return an input stream that applies the filter
- * @throws org.apache.maven.shared.filtering.MavenFilteringException
- * @see #getDefaultFilterWrappers(org.apache.maven.project.MavenProject, java.util.List, boolean, org.apache.maven.execution.MavenSession)
- */
- InputStream filter(InputStream source, boolean filtering, MavenProject mavenProject, List<String> filters,
- boolean escapedBackslashesInFilePath, String encoding, MavenSession mavenSession)
- throws MavenFilteringException;
-
- /**
- * @param mavenStreamFilterRequest The filter request
- * @throws org.apache.maven.shared.filtering.MavenFilteringException
- * @return an input stream that applies the filter
- * @since 1.0-beta-3
- */
- InputStream filter(MavenStreamFilterRequest mavenStreamFilterRequest)
- throws MavenFilteringException;
-
- /**
- * @param source The source stream to filter
- * @param filtering
- * @param filterWrappers {@link java.util.List} of FileUtils.FilterWrapper
- * @return an input stream that applies the filter
- * @throws org.apache.maven.shared.filtering.MavenFilteringException
- */
- InputStream filter(InputStream source, boolean filtering, List<FileUtils.FilterWrapper> filterWrappers,
- String encoding)
- throws MavenFilteringException;
-
-
- /**
- * @param source The source stream to filter
- * @param filtering
- * @param filterWrappers
- * @param encoding
- * @param overwrite
- * @throws org.apache.maven.shared.filtering.MavenFilteringException
- * @return an input stream that applies the filter
- * @since 1.0-beta-2
- */
- InputStream filter(InputStream source, boolean filtering, List<FileUtils.FilterWrapper> filterWrappers,
- String encoding, boolean overwrite)
- throws MavenFilteringException;
-
-}
diff --git a/src/main/java/org/apache/maven/shared/filtering/MavenStreamFilterRequest.java b/src/main/java/org/apache/maven/shared/filtering/MavenStreamFilterRequest.java
deleted file mode 100644
index 14727aa..0000000
--- a/src/main/java/org/apache/maven/shared/filtering/MavenStreamFilterRequest.java
+++ /dev/null
@@ -1,80 +0,0 @@
-package org.apache.maven.shared.filtering;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import java.io.File;
-import java.io.InputStream;
-import java.util.List;
-import java.util.Properties;
-
-import org.apache.maven.execution.MavenSession;
-import org.apache.maven.project.MavenProject;
-
-/**
- * @author Olivier Lamy
- * @since 1.0-beta-3
- */
-public class MavenStreamFilterRequest
- extends AbstractMavenFilteringRequest
-{
-
- private InputStream from;
-
- private boolean filtering;
-
- public MavenStreamFilterRequest()
- {
- // nothing
- }
-
- public MavenStreamFilterRequest(InputStream from, boolean filtering, MavenProject mavenProject,
- List<String> filters,
- boolean escapedBackslashesInFilePath, String encoding, MavenSession mavenSession,
- Properties additionalProperties)
- {
- super( mavenProject, filters, encoding, mavenSession );
- this.from = from;
- this.filtering = filtering;
- setAdditionalProperties( additionalProperties );
- setEscapeWindowsPaths( escapedBackslashesInFilePath );
- }
-
-
- public InputStream getFrom()
- {
- return from;
- }
-
- public void setFrom( InputStream from )
- {
- this.from = from;
- }
-
- public boolean isFiltering()
- {
- return filtering;
- }
-
- public void setFiltering( boolean filtering )
- {
- this.filtering = filtering;
- }
-
-}