This is an automated email from the ASF dual-hosted git repository. hboutemy pushed a commit to annotated tag maven-filtering-1.0-alpha-1 in repository https://gitbox.apache.org/repos/asf/maven-filtering.git
commit 7465c47a36d62e51173d188b9a4182538a3a5f86 Author: Oliver Lamy <[email protected]> AuthorDate: Wed Feb 27 22:58:39 2008 +0000 add filterWrappers coming from the execution configuration bean update documentation git-svn-id: https://svn.apache.org/repos/asf/maven/sandbox/trunk/shared/maven-filtering@631768 13f79535-47bb-0310-9956-ffa450edef68 --- .../filtering/DefaultMavenResourcesFiltering.java | 19 +++++++++---- src/site/apt/usage.apt | 33 ++++++++++++++-------- .../DefaultMavenResourcesFilteringTest.java | 18 ++++++------ 3 files changed, 43 insertions(+), 27 deletions(-) diff --git a/src/main/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFiltering.java b/src/main/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFiltering.java index 05706d4..b0257c4 100755 --- a/src/main/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFiltering.java +++ b/src/main/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFiltering.java @@ -138,10 +138,15 @@ public class DefaultMavenResourcesFiltering if ( mavenResourcesExecution.isUseDefaultFilterWrappers() ) { - List filterWrappers = mavenFileFilter.getDefaultFilterWrappers( mavenResourcesExecution.getMavenProject(), - mavenResourcesExecution.getFileFilters(), - true, mavenResourcesExecution - .getMavenSession() ); + List filterWrappers = new ArrayList(); + if ( mavenResourcesExecution.getFilterWrappers() != null ) + { + filterWrappers.addAll( mavenResourcesExecution.getFilterWrappers() ); + } + filterWrappers.addAll( mavenFileFilter.getDefaultFilterWrappers( mavenResourcesExecution.getMavenProject(), + mavenResourcesExecution.getFileFilters(), + true, mavenResourcesExecution + .getMavenSession() ) ); mavenResourcesExecution.setFilterWrappers( filterWrappers ); } @@ -209,8 +214,8 @@ public class DefaultMavenResourcesFiltering getLogger().info( "Copying " + includedFiles.size() + " resource" + ( includedFiles.size() > 1 ? "s" : "" ) - + ( targetPath == null ? "" : " to " + targetPath ) ); - + + ( targetPath == null ? "" : " to " + targetPath ) ); + for ( Iterator j = includedFiles.iterator(); j.hasNext(); ) { String name = (String) j.next(); @@ -230,8 +235,10 @@ public class DefaultMavenResourcesFiltering { destinationFile.getParentFile().mkdirs(); } + boolean filteredExt = filteredFileExtension( source.getName(), mavenResourcesExecution .getNonFilteredFileExtensions() ); + mavenFileFilter.copyFile( source, destinationFile, resource.isFiltering() && filteredExt, mavenResourcesExecution.getFilterWrappers(), mavenResourcesExecution .getEncoding() ); diff --git a/src/site/apt/usage.apt b/src/site/apt/usage.apt index 3c28ce5..8c6a0bc 100755 --- a/src/site/apt/usage.apt +++ b/src/site/apt/usage.apt @@ -43,11 +43,24 @@ Maven Filtering Component Basic Usage +-----+ -encoding can be null platform default will be used +resources : List of org.apache.maven.model.Resource + +outputDirectory : base output directory for Resource.targetPath + +mavenProject : a mavenProject + +encoding : output encoding for filtered files (can be null platform default will be used) + +filtersFile : List of String pointed to a properties file nonFilteredFileExtensions : is a List of String which file extensions to not apply filtering (default List contains jpg,jpeg,gif,bmp,png) -mavenResourcesFiltering.filterResources( resources, outputDirectory, mavenProject, encoding, filtersFile, nonFilteredFileExtensions, mavenSession ); +mavenSession : executionProperties will be used for file filtering + +MavenResourcesExecution mavenResourcesExecution = + new MavenResourcesExecution ( resources, outputDirectory, mavenProject, encoding, filtersFile, nonFilteredFileExtensions, mavenSession ); + +mavenResourcesFiltering.filterResources( mavenResourcesExecution ); +-----+ @@ -58,11 +71,8 @@ mavenResourcesFiltering.filterResources( resources, outputDirectory, mavenProjec +-----+ -MavenFileFilter mavenFileFilter = (MavenFileFilter) lookup( MavenFileFilter.class.getName(), "default" ); -List defaultFilterWrappers = mavenFileFilter.getDefaultFilterWrappers( mavenProject, null, true, mavenSession ); +Create your FilterWrapper. -List filterWrappers = new ArrayList( ); -filterWrappers.addAll( defaultFilterWrappers ); FileUtils.FilterWrapper filterWrapper = new FileUtils.FilterWrapper() { public Reader getReader( Reader reader ) @@ -71,15 +81,14 @@ FileUtils.FilterWrapper filterWrapper = new FileUtils.FilterWrapper() return new InterpolationFilterReader( reader, reflectionProperties, "@", "@" ); } }; -filterWrappers.add( filterWrapper ); -here you can apply filtering on your resources. +Create your MavenResourcesExecution instance and add a new filterWrapper. -encoding can be null platform default will be used +mavenResourcesExecution.addFilterWrapper( filterWrapper ); +If the mavenResourcesExecution.useDefaultFilterWrappers is set to true default FilterWrapper will be added first. -nonFilteredFileExtensions : is a List of String which file extensions to not apply filtering (default List contains jpg,jpeg,gif,bmp,png) +here you can apply filtering on your resources. -mavenResourcesFiltering.filterResources( resources, outputDirectory, encoding, filterWrappers, - outputDirectory, nonFilteredFileExtensions, mavenSession ); +mavenResourcesFiltering.filterResources( mavenResourcesExecution ); +-----+ diff --git a/src/test/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFilteringTest.java b/src/test/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFilteringTest.java index dcf3e14..fe5a6a1 100755 --- a/src/test/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFilteringTest.java +++ b/src/test/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFilteringTest.java @@ -28,7 +28,9 @@ import java.util.Collections; import java.util.List; import java.util.Properties; +import org.apache.maven.execution.MavenSession; import org.apache.maven.model.Resource; +import org.apache.maven.project.MavenProject; import org.codehaus.plexus.PlexusTestCase; import org.codehaus.plexus.util.FileUtils; import org.codehaus.plexus.util.IOUtil; @@ -194,12 +196,6 @@ public class DefaultMavenResourcesFilteringTest List nonFilteredFileExtensions = Collections.singletonList( "gif" ); - MavenFileFilter mavenFileFilter = (MavenFileFilter) lookup( MavenFileFilter.class.getName(), "default" ); - List defaultFilterWrappers = mavenFileFilter.getDefaultFilterWrappers( mavenProject, null, true, - new StubMavenSession() ); - - List filterWrappers = new ArrayList(); - filterWrappers.addAll( defaultFilterWrappers ); FileUtils.FilterWrapper filterWrapper = new FileUtils.FilterWrapper() { public Reader getReader( Reader reader ) @@ -208,9 +204,13 @@ public class DefaultMavenResourcesFilteringTest return new InterpolationFilterReader( reader, reflectionProperties, "@", "@" ); } }; - filterWrappers.add( filterWrapper ); - mavenResourcesFiltering.filterResources( resources, outputDirectory, null, filterWrappers, - new File( getBasedir() ), nonFilteredFileExtensions ); + + MavenResourcesExecution mavenResourcesExecution = new MavenResourcesExecution( resources, outputDirectory, + mavenProject, null, null, + nonFilteredFileExtensions, + new StubMavenSession() ); + mavenResourcesExecution.addFilterWrapper( filterWrapper ); + mavenResourcesFiltering.filterResources( mavenResourcesExecution ); Properties result = PropertyUtils .loadPropertyFile( new File( outputDirectory, "maven-resources-filtering.txt" ), null );
