You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by kh...@apache.org on 2014/10/13 08:15:59 UTC

svn commit: r1631288 - in /maven/plugins/trunk/maven-assembly-plugin: ./ src/main/java/org/apache/maven/plugin/assembly/ src/main/java/org/apache/maven/plugin/assembly/format/ src/main/java/org/apache/maven/plugin/assembly/mojos/ src/test/java/org/apac...

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;