Author: khmarbaise Date: Mon Oct 13 06:15:59 2014 New Revision: 1631288 URL: http://svn.apache.org/r1631288 Log: [MASSEMBLY-717] - Patch of Tony Jewell applied to add an option includeProjectBuildFilters
Modified: maven/plugins/trunk/maven-assembly-plugin/pom.xml maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/AssemblerConfigurationSource.java maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/FileFormatter.java maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/mojos/AbstractAssemblyMojo.java maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/format/FileFormatterTest.java maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/format/FileSetFormatterTest.java maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/testutils/ConfigSourceStub.java Modified: maven/plugins/trunk/maven-assembly-plugin/pom.xml URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/pom.xml?rev=1631288&r1=1631287&r2=1631288&view=diff ============================================================================== --- maven/plugins/trunk/maven-assembly-plugin/pom.xml (original) +++ maven/plugins/trunk/maven-assembly-plugin/pom.xml Mon Oct 13 06:15:59 2014 @@ -72,6 +72,9 @@ under the License. <contributor> <name>Stephen Colebourne</name> </contributor> + <contributor> + <name>Tony Jewell</name> + <contributor> </contributors> <dependencies> Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/AssemblerConfigurationSource.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/AssemblerConfigurationSource.java?rev=1631288&r1=1631287&r2=1631288&view=diff ============================================================================== --- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/AssemblerConfigurationSource.java (original) +++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/AssemblerConfigurationSource.java Mon Oct 13 06:15:59 2014 @@ -74,6 +74,8 @@ public interface AssemblerConfigurationS List<String> getFilters(); + boolean isIncludeProjectBuildFilters(); + List<MavenProject> getReactorProjects(); List<ArtifactRepository> getRemoteRepositories(); Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/FileFormatter.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/FileFormatter.java?rev=1631288&r1=1631287&r2=1631288&view=diff ============================================================================== --- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/FileFormatter.java (original) +++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/FileFormatter.java Mon Oct 13 06:15:59 2014 @@ -132,7 +132,7 @@ public class FileFormatter filterRequest.setDelimiters( delims ); } - filterRequest.setInjectProjectBuildFilters( true ); + filterRequest.setInjectProjectBuildFilters( configSource.isIncludeProjectBuildFilters() ); configSource.getMavenFileFilter().copyFile( filterRequest ); return target; Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/mojos/AbstractAssemblyMojo.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/mojos/AbstractAssemblyMojo.java?rev=1631288&r1=1631287&r2=1631288&view=diff ============================================================================== --- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/mojos/AbstractAssemblyMojo.java (original) +++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/mojos/AbstractAssemblyMojo.java Mon Oct 13 06:15:59 2014 @@ -284,6 +284,14 @@ public abstract class AbstractAssemblyMo protected List<String> filters; /** + * If True (default) then the ${project.build.filters} are also used in addition to any + * further filters defined for the Assembly. + * @since 2.4.2 + */ + @Parameter( property = "assembly.includeProjectBuildFilters", defaultValue = "true") + protected boolean includeProjectBuildFilters; + + /** * Controls whether the assembly plugin tries to attach the resulting assembly to the project. * * @since 2.2-beta-1 @@ -660,6 +668,10 @@ public abstract class AbstractAssemblyMo return filters; } + public boolean isIncludeProjectBuildFilters() { + return includeProjectBuildFilters; + } + public List<MavenProject> getReactorProjects() { return reactorProjects; Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/format/FileFormatterTest.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/format/FileFormatterTest.java?rev=1631288&r1=1631287&r2=1631288&view=diff ============================================================================== --- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/format/FileFormatterTest.java (original) +++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/format/FileFormatterTest.java Mon Oct 13 06:15:59 2014 @@ -366,6 +366,60 @@ public class FileFormatterTest mockManager.verifyAll(); } + public void testShouldCombineProjectValueWithFilterValueAndFilterFile() throws Exception + { + final File basedir = fileManager.createTempDir(); + + final File buildFilterProps = fileManager.createFile( basedir, "build-filter.properties", "common=build\r\nbuild.test=build\r\n" ); + final File configFilterProps = fileManager.createFile( basedir, "config-filter.properties", "common=config\r\nconfig.test=config\r\n" ); + + final List<String> buildFilters = new ArrayList<String>(); + buildFilters.add( buildFilterProps.getCanonicalPath() ); + + final List<String> configFilters = new ArrayList<String>(); + configFilters.add( configFilterProps.getCanonicalPath() ); + + enableFilteringConfiguration( basedir, buildFilters, configFilters, true); + + final File file = + fileManager.createFile( basedir, "one.txt", "filtered common=${common} build.test=${build.test} config.test=${config.test}." ); + + mockManager.replayAll(); + + final File result = new FileFormatter( configSource, logger ).format( file, true, null, "UTF-8" ); + + assertEquals( "filtered common=build build.test=build config.test=config.", fileManager.getFileContents( result ) ); + + mockManager.verifyAll(); + } + + public void testShouldIgnoreProjectValueWithFilterValueAndFilterFile() throws Exception + { + final File basedir = fileManager.createTempDir(); + + final File buildFilterProps = fileManager.createFile( basedir, "build-filter.properties", "common=build\r\nbuild.test=build\r\n" ); + final File configFilterProps = fileManager.createFile( basedir, "config-filter.properties", "common=config\r\nconfig.test=config\r\n" ); + + final List<String> buildFilters = new ArrayList<String>(); + buildFilters.add( buildFilterProps.getCanonicalPath() ); + + final List<String> configFilters = new ArrayList<String>(); + configFilters.add( configFilterProps.getCanonicalPath() ); + + enableFilteringConfiguration( basedir, buildFilters, configFilters, false); + + final File file = + fileManager.createFile( basedir, "config.txt", "filtered common=${common} build.test=${build.test} config.test=${config.test}." ); + + mockManager.replayAll(); + + final File result = new FileFormatter( configSource, logger ).format( file, true, null, "UTF-8" ); + + assertEquals( "filtered common=config build.test=${build.test} config.test=config.", fileManager.getFileContents( result ) ); + + mockManager.verifyAll(); + } + public void testShouldFilterExpressionFromFiltersFileInFileAddCustomDelimiters() throws Exception { final File basedir = fileManager.createTempDir(); @@ -421,7 +475,14 @@ public class FileFormatterTest return new MavenProject( model ); } - private void enableBasicFilteringConfiguration( final MavenProject project, final File basedir, final boolean useDefault, final List<String> delimiters) throws Exception + private void enableBasicFilteringConfiguration( final MavenProject project, final File basedir, final boolean useDefault, final List<String> delimiters) throws Exception { + + enableFilteringConfiguration(project, basedir, useDefault, delimiters, Collections.<String>emptyList(), true); + + } + + private void enableFilteringConfiguration( final MavenProject project, final File basedir, final boolean useDefault, final List<String> delimiters, + final List<String> filters, final boolean includeProjectBuildFilters) throws Exception { configSource.getTemporaryRootDirectory(); configSourceControl.setReturnValue( basedir ); @@ -439,8 +500,11 @@ public class FileFormatterTest configSourceControl.setReturnValue( null ); configSource.getFilters(); - configSourceControl.setReturnValue( Collections.EMPTY_LIST ); + configSourceControl.setReturnValue( filters ); + configSource.isIncludeProjectBuildFilters(); + configSourceControl.setReturnValue( includeProjectBuildFilters ); + configSource.getDelimiters(); configSourceControl.setReturnValue( delimiters ); @@ -448,27 +512,40 @@ public class FileFormatterTest configSourceControl.setReturnValue( useDefault ); } - private void enableBasicFilteringConfiguration( final File basedir, final List<String> filterFilenames ) + private void enableBasicFilteringConfiguration( final File basedir, final List<String> buildFilterFilenames ) throws Exception { final MavenProject project = createBasicMavenProject(); - if ( filterFilenames != null ) + if ( buildFilterFilenames != null ) { project.getBuild() - .setFilters( filterFilenames ); + .setFilters( buildFilterFilenames ); } enableBasicFilteringConfiguration( project, basedir, true, null ); } - private void enableBasicFilteringConfiguration( final File basedir, final List<String> filterFilenames, final boolean useDefault, final List<String> delimiters) throws Exception + private void enableFilteringConfiguration( final File basedir, final List<String> buildFilterFilenames, final List<String> configFilterFilenames, boolean includeProjectBuildFilters ) + throws Exception + { + final MavenProject project = createBasicMavenProject(); + if ( buildFilterFilenames != null ) + { + project.getBuild() + .setFilters( buildFilterFilenames ); + } + + enableFilteringConfiguration( project, basedir, true, null, configFilterFilenames, includeProjectBuildFilters ); + } + + private void enableBasicFilteringConfiguration( final File basedir, final List<String> buildFilterFilenames, final boolean useDefault, final List<String> delimiters) throws Exception { final MavenProject project = createBasicMavenProject(); - if ( filterFilenames != null ) + if ( buildFilterFilenames != null ) { project.getBuild() - .setFilters( filterFilenames ); + .setFilters( buildFilterFilenames ); } enableBasicFilteringConfiguration( project, basedir, useDefault, delimiters); Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/format/FileSetFormatterTest.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/format/FileSetFormatterTest.java?rev=1631288&r1=1631287&r2=1631288&view=diff ============================================================================== --- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/format/FileSetFormatterTest.java (original) +++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/format/FileSetFormatterTest.java Mon Oct 13 06:15:59 2014 @@ -359,6 +359,9 @@ public class FileSetFormatterTest configSource.getFilters(); configSourceControl.setReturnValue( Collections.EMPTY_LIST, MockControl.ONE_OR_MORE ); + configSource.isIncludeProjectBuildFilters(); + configSourceControl.setReturnValue( true, MockControl.ONE_OR_MORE ); + configSource.getEncoding(); configSourceControl.setReturnValue( "UTF-8", MockControl.ONE_OR_MORE ); Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/testutils/ConfigSourceStub.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/testutils/ConfigSourceStub.java?rev=1631288&r1=1631287&r2=1631288&view=diff ============================================================================== --- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/testutils/ConfigSourceStub.java (original) +++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/testutils/ConfigSourceStub.java Mon Oct 13 06:15:59 2014 @@ -82,6 +82,10 @@ public class ConfigSourceStub return null; } + public boolean isIncludeProjectBuildFilters() { + return false; + } + public String getFinalName() { return null;