You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jd...@apache.org on 2010/09/28 17:51:26 UTC

svn commit: r1002228 - in /maven/plugins/trunk/maven-assembly-plugin/src: it/projects/mojo-configuration/archiver-ignorePermissions/ it/projects/mojo-configuration/archiver-ignorePermissions/src/ it/projects/mojo-configuration/archiver-ignorePermission...

Author: jdcasey
Date: Tue Sep 28 15:51:25 2010
New Revision: 1002228

URL: http://svn.apache.org/viewvc?rev=1002228&view=rev
Log:
[MASSEMBLY-499] Add ignorePermissions flag to mojos, to allow disabling of chmod calls when users don't care about them. This should improve performance.

Also, move useJvmChmod parameter into AssemblerConfigurationSource interface, and access it through that in the various components of the assembly code.

Added:
    maven/plugins/trunk/maven-assembly-plugin/src/it/projects/mojo-configuration/archiver-ignorePermissions/
    maven/plugins/trunk/maven-assembly-plugin/src/it/projects/mojo-configuration/archiver-ignorePermissions/pom.xml   (with props)
    maven/plugins/trunk/maven-assembly-plugin/src/it/projects/mojo-configuration/archiver-ignorePermissions/src/
    maven/plugins/trunk/maven-assembly-plugin/src/it/projects/mojo-configuration/archiver-ignorePermissions/src/main/
    maven/plugins/trunk/maven-assembly-plugin/src/it/projects/mojo-configuration/archiver-ignorePermissions/src/main/assembly/
    maven/plugins/trunk/maven-assembly-plugin/src/it/projects/mojo-configuration/archiver-ignorePermissions/src/main/assembly/bin.xml   (with props)
    maven/plugins/trunk/maven-assembly-plugin/src/it/projects/mojo-configuration/archiver-ignorePermissions/src/main/java/
    maven/plugins/trunk/maven-assembly-plugin/src/it/projects/mojo-configuration/archiver-ignorePermissions/src/main/java/test/
    maven/plugins/trunk/maven-assembly-plugin/src/it/projects/mojo-configuration/archiver-ignorePermissions/src/main/java/test/App.java   (with props)
    maven/plugins/trunk/maven-assembly-plugin/src/it/projects/mojo-configuration/archiver-ignorePermissions/src/test/
    maven/plugins/trunk/maven-assembly-plugin/src/it/projects/mojo-configuration/archiver-ignorePermissions/src/test/java/
    maven/plugins/trunk/maven-assembly-plugin/src/it/projects/mojo-configuration/archiver-ignorePermissions/src/test/java/test/
    maven/plugins/trunk/maven-assembly-plugin/src/it/projects/mojo-configuration/archiver-ignorePermissions/src/test/java/test/AppTest.java   (with props)
    maven/plugins/trunk/maven-assembly-plugin/src/it/projects/mojo-configuration/archiver-ignorePermissions/verify.bsh   (with props)
Modified:
    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/archive/AssemblyArchiver.java
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiver.java
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/AssemblyProxyArchiver.java
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTask.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/main/java/org/apache/maven/plugin/assembly/mojos/AbstractDirectoryMojo.java
    maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiverTest.java
    maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/filter/ComponentsXmlArchiverFileFilterTest.java
    maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/testutils/ConfigSourceStub.java
    maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/testutils/TrackingArchiverStub.java

Added: maven/plugins/trunk/maven-assembly-plugin/src/it/projects/mojo-configuration/archiver-ignorePermissions/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/projects/mojo-configuration/archiver-ignorePermissions/pom.xml?rev=1002228&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/projects/mojo-configuration/archiver-ignorePermissions/pom.xml (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/projects/mojo-configuration/archiver-ignorePermissions/pom.xml Tue Sep 28 15:51:25 2010
@@ -0,0 +1,47 @@
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.apache.maven.plugin.assembly.test</groupId>
+    <artifactId>it-project-parent</artifactId>
+    <version>1</version>
+  </parent>
+  
+  <groupId>test</groupId>
+  <artifactId>parent</artifactId>
+  <version>1</version>
+  
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>3.8.1</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+  <build>
+    <plugins>
+      <plugin>
+        <artifactId>maven-assembly-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>assembly</id>
+            <phase>package</phase>
+            <goals>
+              <goal>single</goal>
+            </goals>
+            <configuration>
+              <descriptors>
+                <descriptor>src/main/assembly/bin.xml</descriptor>
+              </descriptors>
+              
+              <!-- This is the key configuration for the test -->
+              <ignorePermissions>true</ignorePermissions>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+</project>

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/projects/mojo-configuration/archiver-ignorePermissions/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: maven/plugins/trunk/maven-assembly-plugin/src/it/projects/mojo-configuration/archiver-ignorePermissions/src/main/assembly/bin.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/projects/mojo-configuration/archiver-ignorePermissions/src/main/assembly/bin.xml?rev=1002228&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/projects/mojo-configuration/archiver-ignorePermissions/src/main/assembly/bin.xml (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/projects/mojo-configuration/archiver-ignorePermissions/src/main/assembly/bin.xml Tue Sep 28 15:51:25 2010
@@ -0,0 +1,22 @@
+<assembly>
+  <id>bin</id>
+  <formats>
+    <format>dir</format>
+  </formats>
+  <dependencySets>
+    <dependencySet>
+      <outputDirectory>lib</outputDirectory>
+      <scope>test</scope>
+    </dependencySet>
+  </dependencySets>
+  <fileSets>
+    <fileSet>
+      <directory>${project.basedir}</directory>
+      <outputDirectory>/</outputDirectory>
+      <excludes>
+        <exclude>target/**</exclude>
+      </excludes>
+      <fileMode>777</fileMode>
+    </fileSet>
+  </fileSets>
+</assembly>
\ No newline at end of file

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/projects/mojo-configuration/archiver-ignorePermissions/src/main/assembly/bin.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: maven/plugins/trunk/maven-assembly-plugin/src/it/projects/mojo-configuration/archiver-ignorePermissions/src/main/java/test/App.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/projects/mojo-configuration/archiver-ignorePermissions/src/main/java/test/App.java?rev=1002228&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/projects/mojo-configuration/archiver-ignorePermissions/src/main/java/test/App.java (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/projects/mojo-configuration/archiver-ignorePermissions/src/main/java/test/App.java Tue Sep 28 15:51:25 2010
@@ -0,0 +1,13 @@
+package test;
+
+/**
+ * Hello world!
+ *
+ */
+public class App 
+{
+    public static void main( String[] args )
+    {
+        System.out.println( "Hello World!" );
+    }
+}

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/projects/mojo-configuration/archiver-ignorePermissions/src/main/java/test/App.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: maven/plugins/trunk/maven-assembly-plugin/src/it/projects/mojo-configuration/archiver-ignorePermissions/src/test/java/test/AppTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/projects/mojo-configuration/archiver-ignorePermissions/src/test/java/test/AppTest.java?rev=1002228&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/projects/mojo-configuration/archiver-ignorePermissions/src/test/java/test/AppTest.java (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/projects/mojo-configuration/archiver-ignorePermissions/src/test/java/test/AppTest.java Tue Sep 28 15:51:25 2010
@@ -0,0 +1,38 @@
+package test;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+/**
+ * Unit test for simple App.
+ */
+public class AppTest 
+    extends TestCase
+{
+    /**
+     * Create the test case
+     *
+     * @param testName name of the test case
+     */
+    public AppTest( String testName )
+    {
+        super( testName );
+    }
+
+    /**
+     * @return the suite of tests being tested
+     */
+    public static Test suite()
+    {
+        return new TestSuite( AppTest.class );
+    }
+
+    /**
+     * Rigourous Test :-)
+     */
+    public void testApp()
+    {
+        assertTrue( true );
+    }
+}

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/projects/mojo-configuration/archiver-ignorePermissions/src/test/java/test/AppTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: maven/plugins/trunk/maven-assembly-plugin/src/it/projects/mojo-configuration/archiver-ignorePermissions/verify.bsh
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/projects/mojo-configuration/archiver-ignorePermissions/verify.bsh?rev=1002228&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/projects/mojo-configuration/archiver-ignorePermissions/verify.bsh (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/projects/mojo-configuration/archiver-ignorePermissions/verify.bsh Tue Sep 28 15:51:25 2010
@@ -0,0 +1,22 @@
+import java.io.*;
+import java.util.jar.*;
+import java.util.*;
+import java.net.*;
+
+// minimal tests; the big thing here is that ignoring permissions doesn't stop the assembly from running...
+File pom = new File( basedir, "target/parent-1-bin/parent-1/pom.xml" );
+
+if ( !pom.exists() || !pom.isFile() )
+{
+  System.out.println( "POM was not included in assembly." );
+  return false;
+}
+
+File junitJar = new File( basedir, "target/parent-1-bin/parent-1/lib/junit-3.8.1.jar" );
+if ( !junitJar.exists() && !junitJar.isFile() )
+{
+  System.out.println( "JUnit jar was not included in assembly." );
+  return false;
+}
+
+return true;
\ No newline at end of file

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/projects/mojo-configuration/archiver-ignorePermissions/verify.bsh
------------------------------------------------------------------------------
    svn:eol-style = native

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=1002228&r1=1002227&r2=1002228&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 Tue Sep 28 15:51:25 2010
@@ -91,4 +91,8 @@ public interface AssemblerConfigurationS
     MavenFileFilter getMavenFileFilter();
 
     boolean isUpdateOnly();
+
+    boolean isUseJvmChmod();
+
+    boolean isIgnorePermissions();
 }

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/AssemblyArchiver.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/AssemblyArchiver.java?rev=1002228&r1=1002227&r2=1002228&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/AssemblyArchiver.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/AssemblyArchiver.java Tue Sep 28 15:51:25 2010
@@ -33,6 +33,6 @@ public interface AssemblyArchiver
 {
     String ROLE = AssemblyArchiver.class.getName();
 
-    File createArchive( Assembly assembly, String fullName, String format, AssemblerConfigurationSource configSource, boolean useJvmChmod )
+    File createArchive( Assembly assembly, String fullName, String format, AssemblerConfigurationSource configSource )
         throws ArchiveCreationException, AssemblyFormattingException, InvalidAssemblerConfigurationException;
 }

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiver.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiver.java?rev=1002228&r1=1002227&r2=1002228&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiver.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiver.java Tue Sep 28 15:51:25 2010
@@ -133,11 +133,11 @@ public class DefaultAssemblyArchiver
      * </ol>
      */
     public File createArchive( final Assembly assembly, final String fullName, final String format,
-                               final AssemblerConfigurationSource configSource, boolean useJvmChmod )
+                               final AssemblerConfigurationSource configSource )
         throws ArchiveCreationException, AssemblyFormattingException, InvalidAssemblerConfigurationException
     {
         validate( assembly );
-        
+
         String filename = fullName;
         if ( !configSource.isIgnoreDirFormatExtensions() || !format.startsWith( "dir" ) )
         {
@@ -168,7 +168,7 @@ public class DefaultAssemblyArchiver
                 selectContainerDescriptorHandlers( assembly.getContainerDescriptorHandlers(), configSource );
 
             final Archiver archiver =
-                createArchiver( format, assembly.isIncludeBaseDirectory(), basedir, configSource, containerHandlers, useJvmChmod );
+                createArchiver( format, assembly.isIncludeBaseDirectory(), basedir, configSource, containerHandlers );
 
             archiver.setDestFile( destFile );
 
@@ -209,10 +209,12 @@ public class DefaultAssemblyArchiver
         return destFile;
     }
 
-    private void validate( Assembly assembly )
+    private void validate( final Assembly assembly )
         throws InvalidAssemblerConfigurationException
     {
-        if ( assembly.getId() == null || assembly.getId().trim().length() < 1 )
+        if ( assembly.getId() == null || assembly.getId()
+                                                 .trim()
+                                                 .length() < 1 )
         {
             throw new InvalidAssemblerConfigurationException( "Assembly ID must be present and non-empty." );
         }
@@ -288,7 +290,7 @@ public class DefaultAssemblyArchiver
      */
     protected Archiver createArchiver( final String format, final boolean includeBaseDir, final String finalName,
                                        final AssemblerConfigurationSource configSource,
-                                       final List<ContainerDescriptorHandler> containerHandlers, boolean useJvmChmod )
+                                       final List<ContainerDescriptorHandler> containerHandlers )
         throws ArchiverException, NoSuchArchiverException
     {
         Archiver archiver;
@@ -331,9 +333,10 @@ public class DefaultAssemblyArchiver
             new AssemblyProxyArchiver( prefix, archiver, containerHandlers, extraSelectors, extraFinalizers,
                                        configSource.getWorkingDirectory(), getLogger(), configSource.isDryRun() );
 
-        archiver.setUseJvmChmod( useJvmChmod );
+        archiver.setUseJvmChmod( configSource.isUpdateOnly() );
+        archiver.setIgnorePermissions( configSource.isIgnorePermissions() );
         archiver.setForced( !configSource.isUpdateOnly() );
-        
+
         return archiver;
     }
 

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/AssemblyProxyArchiver.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/AssemblyProxyArchiver.java?rev=1002228&r1=1002227&r2=1002228&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/AssemblyProxyArchiver.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/AssemblyProxyArchiver.java Tue Sep 28 15:51:25 2010
@@ -81,7 +81,7 @@ public class AssemblyProxyArchiver
     private final Set<String> seenPaths = new HashSet<String>();
 
     private final String assemblyWorkPath;
-    
+
     /**
      * @since 2.2-beta-6
      */
@@ -976,9 +976,19 @@ public class AssemblyProxyArchiver
         return useJvmChmod;
     }
 
-    public void setUseJvmChmod( boolean useJvmChmod )
+    public void setUseJvmChmod( final boolean useJvmChmod )
     {
         this.useJvmChmod = useJvmChmod;
     }
 
+    public boolean isIgnorePermissions()
+    {
+        return delegate.isIgnorePermissions();
+    }
+
+    public void setIgnorePermissions( final boolean ignorePermissions )
+    {
+        delegate.setIgnorePermissions( ignorePermissions );
+    }
+
 }

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTask.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTask.java?rev=1002228&r1=1002227&r2=1002228&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTask.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTask.java Tue Sep 28 15:51:25 2010
@@ -203,7 +203,7 @@ public class AddDependencySetsTask
             mapping = defaultOutputFileNameMapping;
         }
 
-        if ( ( dir != null && dir.indexOf( "${" ) < 0 ) || ( mapping != null && mapping.indexOf( "${" ) < 0 ) )
+        if ( ( dir == null || dir.indexOf( "${" ) < 0 ) && ( mapping == null || mapping.indexOf( "${" ) < 0 ) )
         {
             logger.warn( "NOTE: Your assembly specifies a dependencySet that matches multiple artifacts, but specifies a concrete output format. "
                             + "THIS MAY RESULT IN ONE OR MORE ARTIFACTS BEING OBSCURED!\n\nOutput directory: '"
@@ -259,6 +259,8 @@ public class AddDependencySetsTask
             unarchiver.setDestDirectory( dir );
             unarchiver.setOverwrite( true );
             unarchiver.setSourceFile( depArtifact.getFile() );
+            unarchiver.setIgnorePermissions( configSource.isIgnorePermissions() );
+
             try
             {
                 unarchiver.extract();

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=1002228&r1=1002227&r2=1002228&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 Tue Sep 28 15:51:25 2010
@@ -330,16 +330,31 @@ public abstract class AbstractAssemblyMo
      * @since 2.2-beta-6
      */
     private boolean updateOnly;
-    
+
     /**
      * <p>
-     * will use the jvm chmod, this is available for user and all level
-     * group level will be ignored
+     * will use the jvm chmod, this is available for user and all level group level will be ignored
      * </p>
+     * 
      * @parameter expression="${assembly.useJvmChmod}" default-value="false"
      * @since 2.2-beta-6
      */
-    protected boolean useJvmChmod;
+    private boolean useJvmChmod;
+
+    /**
+     * <p>
+     * Set to <code>true</code> in order to avoid all chmod calls.
+     * </p>
+     * 
+     * <p>
+     * <b>NOTE:</b> This will cause the assembly plugin to <b>DISREGARD</b> all fileMode/directoryMode settings in the
+     * assembly descriptor, and all file permissions in unpacked dependencies!
+     * </p>
+     * 
+     * @parameter expression="${assembly.ignorePermissions}" default-value="false"
+     * @since 2.2-beta-6
+     */
+    private boolean ignorePermissions;
 
     /**
      * Create the binary distribution.
@@ -391,7 +406,7 @@ public abstract class AbstractAssemblyMo
 
                 for ( final String format : assembly.getFormats() )
                 {
-                    final File destFile = assemblyArchiver.createArchive( assembly, fullName, format, this, useJvmChmod );
+                    final File destFile = assemblyArchiver.createArchive( assembly, fullName, format, this );
 
                     final MavenProject project = getProject();
                     final String classifier = getClassifier();
@@ -799,4 +814,14 @@ public abstract class AbstractAssemblyMo
     {
         return updateOnly;
     }
+
+    public boolean isUseJvmChmod()
+    {
+        return useJvmChmod;
+    }
+
+    public boolean isIgnorePermissions()
+    {
+        return ignorePermissions;
+    }
 }

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/mojos/AbstractDirectoryMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/mojos/AbstractDirectoryMojo.java?rev=1002228&r1=1002227&r2=1002228&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/mojos/AbstractDirectoryMojo.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/mojos/AbstractDirectoryMojo.java Tue Sep 28 15:51:25 2010
@@ -84,7 +84,7 @@ public abstract class AbstractDirectoryM
 
         try
         {
-            archiver.createArchive( assembly, fullName, "dir", this, useJvmChmod );
+            archiver.createArchive( assembly, fullName, "dir", this );
         }
         catch ( final ArchiveCreationException e )
         {

Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiverTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiverTest.java?rev=1002228&r1=1002227&r2=1002228&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiverTest.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiverTest.java Tue Sep 28 15:51:25 2010
@@ -117,7 +117,7 @@ public class DefaultAssemblyArchiverTest
         mm.replayAll();
 
         final DefaultAssemblyArchiver archiver = createSubject( macMgr, null, null );
-        archiver.createArchive( new Assembly(), "full-name", "zip", configSource, false );
+        archiver.createArchive( new Assembly(), "full-name", "zip", configSource );
 
         mm.verifyAll();
     }
@@ -191,6 +191,9 @@ public class DefaultAssemblyArchiverTest
         configSource.isUpdateOnly();
         csControl.setReturnValue( false, MockControl.ZERO_OR_MORE );
 
+        configSource.isIgnorePermissions();
+        csControl.setReturnValue( true, MockControl.ZERO_OR_MORE );
+
         final Assembly assembly = new Assembly();
         assembly.setId( "id" );
 
@@ -210,7 +213,7 @@ public class DefaultAssemblyArchiverTest
 
         final DefaultAssemblyArchiver subject = createSubject( macMgr, Collections.singletonList( phase ), null );
 
-        subject.createArchive( assembly, "full-name", "zip", configSource, false );
+        subject.createArchive( assembly, "full-name", "zip", configSource );
 
         mm.verifyAll();
     }
@@ -263,6 +266,9 @@ public class DefaultAssemblyArchiverTest
         configSource.getLocalRepository();
         configCtl.setReturnValue( lr, MockControl.ZERO_OR_MORE );
 
+        configSource.isIgnorePermissions();
+        configCtl.setReturnValue( true, MockControl.ZERO_OR_MORE );
+
         mm.add( configCtl );
 
         mm.replayAll();
@@ -270,7 +276,7 @@ public class DefaultAssemblyArchiverTest
         final DefaultAssemblyArchiver subject =
             createSubject( macArchiverManager, new ArrayList<AssemblyArchiverPhase>(), null );
 
-        subject.createArchiver( "dummy", false, "finalName", configSource, null,false );
+        subject.createArchiver( "dummy", false, "finalName", configSource, null );
 
         assertEquals( simpleConfig, archiver.getSimpleConfig() );
 
@@ -313,6 +319,9 @@ public class DefaultAssemblyArchiverTest
         configSource.isUpdateOnly();
         configCtl.setReturnValue( false, MockControl.ZERO_OR_MORE );
 
+        configSource.isIgnorePermissions();
+        configCtl.setReturnValue( true, MockControl.ZERO_OR_MORE );
+
         mm.add( configCtl );
 
         mm.replayAll();
@@ -320,7 +329,7 @@ public class DefaultAssemblyArchiverTest
         final DefaultAssemblyArchiver subject =
             createSubject( macArchiverManager, new ArrayList<AssemblyArchiverPhase>(), null );
 
-        subject.createArchiver( "tar", false, "finalName", configSource, null, false );
+        subject.createArchiver( "tar", false, "finalName", configSource, null );
 
         assertNull( ttArchiver.compressionMethod );
         assertEquals( TarLongFileMode.FAIL, ttArchiver.longFileMode.getValue() );
@@ -361,6 +370,9 @@ public class DefaultAssemblyArchiverTest
         configSource.isUpdateOnly();
         configCtl.setReturnValue( false, MockControl.ZERO_OR_MORE );
 
+        configSource.isIgnorePermissions();
+        configCtl.setReturnValue( true, MockControl.ZERO_OR_MORE );
+
         mm.add( configCtl );
 
         mm.replayAll();
@@ -368,7 +380,7 @@ public class DefaultAssemblyArchiverTest
         final DefaultAssemblyArchiver subject =
             createSubject( macArchiverManager, new ArrayList<AssemblyArchiverPhase>(), null );
 
-        subject.createArchiver( "war", false, null, configSource, null, false );
+        subject.createArchiver( "war", false, null, configSource, null );
 
         assertFalse( twArchiver.ignoreWebxml );
     }
@@ -400,6 +412,9 @@ public class DefaultAssemblyArchiverTest
         configSource.isUpdateOnly();
         configCtl.setReturnValue( false, MockControl.ZERO_OR_MORE );
 
+        configSource.isIgnorePermissions();
+        configCtl.setReturnValue( true, MockControl.ZERO_OR_MORE );
+
         mm.add( configCtl );
 
         mm.replayAll();
@@ -407,7 +422,7 @@ public class DefaultAssemblyArchiverTest
         final DefaultAssemblyArchiver subject =
             createSubject( macArchiverManager, new ArrayList<AssemblyArchiverPhase>(), null );
 
-        subject.createArchiver( "zip", false, null, configSource, null, false );
+        subject.createArchiver( "zip", false, null, configSource, null );
     }
 
     // TODO: Re-implement these tests on the createArchiver(..) method. For now, they're no big loss.
@@ -706,6 +721,10 @@ public class DefaultAssemblyArchiverTest
             archiver.setForced( false );
             archiverControl.setMatcher( MockControl.ALWAYS_MATCHER );
             archiverControl.setVoidCallable( MockControl.ZERO_OR_MORE );
+
+            archiver.setIgnorePermissions( false );
+            archiverControl.setMatcher( MockControl.ALWAYS_MATCHER );
+            archiverControl.setVoidCallable( MockControl.ZERO_OR_MORE );
         }
 
         // void expectSetArchiverFilters()
@@ -807,9 +826,11 @@ public class DefaultAssemblyArchiverTest
     {
 
         private String simpleConfig;
-        
+
         private boolean useJvmChmod;
 
+        private boolean ignorePermissions;
+
         public void setSimpleConfig( final String simpleConfig )
         {
             this.simpleConfig = simpleConfig;
@@ -1003,11 +1024,21 @@ public class DefaultAssemblyArchiverTest
             return useJvmChmod;
         }
 
-        public void setUseJvmChmod( boolean useJvmChmod )
+        public void setUseJvmChmod( final boolean useJvmChmod )
         {
             this.useJvmChmod = useJvmChmod;
         }
 
+        public boolean isIgnorePermissions()
+        {
+            return ignorePermissions;
+        }
+
+        public void setIgnorePermissions( final boolean ignorePermissions )
+        {
+            this.ignorePermissions = ignorePermissions;
+        }
+
     }
 
 }

Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/filter/ComponentsXmlArchiverFileFilterTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/filter/ComponentsXmlArchiverFileFilterTest.java?rev=1002228&r1=1002227&r2=1002228&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/filter/ComponentsXmlArchiverFileFilterTest.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/filter/ComponentsXmlArchiverFileFilterTest.java Tue Sep 28 15:51:25 2010
@@ -71,12 +71,14 @@ public class ComponentsXmlArchiverFileFi
     }
 
     @Override
-    public void tearDown() throws IOException
+    public void tearDown()
+        throws IOException
     {
         fileManager.cleanUp();
     }
 
-    public void testAddComponentsXml_ShouldAddComponentWithoutRoleHint() throws IOException, XmlPullParserException
+    public void testAddComponentsXml_ShouldAddComponentWithoutRoleHint()
+        throws IOException, XmlPullParserException
     {
         final Reader reader =
             writeComponentsXml( Collections.singletonList( new ComponentDef( "role", null, "org.apache.maven.Impl" ) ) );
@@ -94,7 +96,8 @@ public class ComponentsXmlArchiverFileFi
                                                            .getValue() );
     }
 
-    public void testAddComponentsXml_ShouldAddComponentWithRoleHint() throws IOException, XmlPullParserException
+    public void testAddComponentsXml_ShouldAddComponentWithRoleHint()
+        throws IOException, XmlPullParserException
     {
         final Reader reader =
             writeComponentsXml( Collections.singletonList( new ComponentDef( "role", "hint", "org.apache.maven.Impl" ) ) );
@@ -113,7 +116,8 @@ public class ComponentsXmlArchiverFileFi
                                                            .getValue() );
     }
 
-    public void testAddComponentsXml_ShouldAddTwoComponentsWithRoleHints() throws IOException, XmlPullParserException
+    public void testAddComponentsXml_ShouldAddTwoComponentsWithRoleHints()
+        throws IOException, XmlPullParserException
     {
         final List<ComponentDef> defs = new ArrayList<ComponentDef>();
 
@@ -199,7 +203,8 @@ public class ComponentsXmlArchiverFileFi
         assertEquals( "impl", ( (Text) implementation.selectSingleNode( doc ) ).getText() );
     }
 
-    public void testAddToArchive_ShouldWriteTwoComponentToFile() throws IOException, ArchiverException, JDOMException
+    public void testAddToArchive_ShouldWriteTwoComponentToFile()
+        throws IOException, ArchiverException, JDOMException
     {
         filter.components = new LinkedHashMap<String, Xpp3Dom>();
 
@@ -320,7 +325,8 @@ public class ComponentsXmlArchiverFileFi
         return dom;
     }
 
-    private Reader writeComponentsXml( final List<ComponentDef> componentDefs ) throws IOException
+    private Reader writeComponentsXml( final List<ComponentDef> componentDefs )
+        throws IOException
     {
         final StringWriter writer = new StringWriter();
 
@@ -384,15 +390,19 @@ public class ComponentsXmlArchiverFileFi
         private File inputFile;
 
         private String destFileName;
-        
+
         private boolean useJvmChmod;
 
-        public void addDirectory( final File directory ) throws ArchiverException
+        private boolean ignorePermissions;
+
+        public void addDirectory( final File directory )
+            throws ArchiverException
         {
             throw new UnsupportedOperationException( "not supported" );
         }
 
-        public void addDirectory( final File directory, final String prefix ) throws ArchiverException
+        public void addDirectory( final File directory, final String prefix )
+            throws ArchiverException
         {
             throw new UnsupportedOperationException( "not supported" );
         }
@@ -404,12 +414,14 @@ public class ComponentsXmlArchiverFileFi
         }
 
         public void addDirectory( final File directory, final String prefix, final String[] includes,
-                                  final String[] excludes ) throws ArchiverException
+                                  final String[] excludes )
+            throws ArchiverException
         {
             throw new UnsupportedOperationException( "not supported" );
         }
 
-        public void addFile( final File inputFile, final String destFileName ) throws ArchiverException
+        public void addFile( final File inputFile, final String destFileName )
+            throws ArchiverException
         {
             this.inputFile = inputFile;
             this.destFileName = destFileName;
@@ -431,7 +443,8 @@ public class ComponentsXmlArchiverFileFi
             throw new UnsupportedOperationException( "not supported" );
         }
 
-        public void createArchive() throws ArchiverException, IOException
+        public void createArchive()
+            throws ArchiverException, IOException
         {
             throw new UnsupportedOperationException( "not supported" );
         }
@@ -482,12 +495,14 @@ public class ComponentsXmlArchiverFileFi
             throw new UnsupportedOperationException( "not supported" );
         }
 
-        public void addArchivedFileSet( final File archiveFile ) throws ArchiverException
+        public void addArchivedFileSet( final File archiveFile )
+            throws ArchiverException
         {
             throw new UnsupportedOperationException( "not supported" );
         }
 
-        public void addArchivedFileSet( final File archiveFile, final String prefix ) throws ArchiverException
+        public void addArchivedFileSet( final File archiveFile, final String prefix )
+            throws ArchiverException
         {
             throw new UnsupportedOperationException( "not supported" );
         }
@@ -499,7 +514,8 @@ public class ComponentsXmlArchiverFileFi
         }
 
         public void addArchivedFileSet( final File archiveFile, final String prefix, final String[] includes,
-                                        final String[] excludes ) throws ArchiverException
+                                        final String[] excludes )
+            throws ArchiverException
         {
             throw new UnsupportedOperationException( "not supported" );
         }
@@ -523,12 +539,14 @@ public class ComponentsXmlArchiverFileFi
         {
         }
 
-        public void addArchivedFileSet( final ArchivedFileSet fileSet ) throws ArchiverException
+        public void addArchivedFileSet( final ArchivedFileSet fileSet )
+            throws ArchiverException
         {
             throw new UnsupportedOperationException( "not supported" );
         }
 
-        public void addFileSet( final FileSet fileSet ) throws ArchiverException
+        public void addFileSet( final FileSet fileSet )
+            throws ArchiverException
         {
             throw new UnsupportedOperationException( "not supported" );
         }
@@ -539,22 +557,26 @@ public class ComponentsXmlArchiverFileFi
             throw new UnsupportedOperationException( "not supported" );
         }
 
-        public void addResources( final PlexusIoResourceCollection resources ) throws ArchiverException
+        public void addResources( final PlexusIoResourceCollection resources )
+            throws ArchiverException
         {
             throw new UnsupportedOperationException( "not supported" );
         }
 
-        public ResourceIterator getResources() throws ArchiverException
+        public ResourceIterator getResources()
+            throws ArchiverException
         {
             return new ResourceIterator()
             {
 
-                public boolean hasNext() throws ArchiverException
+                public boolean hasNext()
+                    throws ArchiverException
                 {
                     return false;
                 }
 
-                public ArchiveEntry next() throws ArchiverException
+                public ArchiveEntry next()
+                    throws ArchiverException
                 {
                     throw new NoSuchElementException();
                 }
@@ -606,10 +628,20 @@ public class ComponentsXmlArchiverFileFi
             return useJvmChmod;
         }
 
-        public void setUseJvmChmod( boolean useJvmChmod )
+        public void setUseJvmChmod( final boolean useJvmChmod )
         {
             this.useJvmChmod = useJvmChmod;
         }
+
+        public boolean isIgnorePermissions()
+        {
+            return ignorePermissions;
+        }
+
+        public void setIgnorePermissions( final boolean ignorePermissions )
+        {
+            this.ignorePermissions = ignorePermissions;
+        }
     }
 
 }

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=1002228&r1=1002227&r2=1002228&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 Tue Sep 28 15:51:25 2010
@@ -173,4 +173,14 @@ public class ConfigSourceStub
         return false;
     }
 
+    public boolean isIgnorePermissions()
+    {
+        return true;
+    }
+
+    public boolean isUseJvmChmod()
+    {
+        return true;
+    }
+
 }

Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/testutils/TrackingArchiverStub.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/testutils/TrackingArchiverStub.java?rev=1002228&r1=1002227&r2=1002228&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/testutils/TrackingArchiverStub.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/testutils/TrackingArchiverStub.java Tue Sep 28 15:51:25 2010
@@ -52,9 +52,11 @@ public class TrackingArchiverStub
     public final List<Addition> added = new ArrayList<Addition>();
 
     public boolean created;
-    
+
     private boolean useJvmChmod;
 
+    private boolean ignorePermissions;
+
     public void createArchive()
         throws ArchiverException, IOException
     {
@@ -369,8 +371,18 @@ public class TrackingArchiverStub
         return useJvmChmod;
     }
 
-    public void setUseJvmChmod( boolean useJvmChmod )
+    public void setUseJvmChmod( final boolean useJvmChmod )
     {
         this.useJvmChmod = useJvmChmod;
     }
+
+    public boolean isIgnorePermissions()
+    {
+        return ignorePermissions;
+    }
+
+    public void setIgnorePermissions( final boolean ignorePermissions )
+    {
+        this.ignorePermissions = ignorePermissions;
+    }
 }