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;