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/23 23:01:38 UTC

svn commit: r1633948 [16/21] - in /maven/plugins/branches/MASSEMBLY-704: ./ integration-test-archetype/ integration-test-archetype/src/main/resources/META-INF/maven/ integration-test-archetype/src/main/resources/archetype-resources/ integration-test-ar...

Modified: maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/AssemblyProxyArchiver.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/AssemblyProxyArchiver.java?rev=1633948&r1=1633947&r2=1633948&view=diff
==============================================================================
--- maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/AssemblyProxyArchiver.java (original)
+++ maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/AssemblyProxyArchiver.java Thu Oct 23 21:01:23 2014
@@ -20,6 +20,7 @@ package org.apache.maven.plugin.assembly
  */
 
 import org.apache.maven.plugin.assembly.filter.ContainerDescriptorHandler;
+import org.codehaus.plexus.archiver.ArchiveEntry;
 import org.codehaus.plexus.archiver.ArchiveFinalizer;
 import org.codehaus.plexus.archiver.ArchivedFileSet;
 import org.codehaus.plexus.archiver.Archiver;
@@ -35,6 +36,7 @@ import org.codehaus.plexus.components.io
 import org.codehaus.plexus.components.io.resources.PlexusIoResourceCollection;
 import org.codehaus.plexus.logging.Logger;
 
+import javax.annotation.Nonnull;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
@@ -53,7 +55,7 @@ import java.util.Set;
  * <li>prefixing (where all paths have a set global prefix prepended before addition)</li>
  * <li>duplication checks on archive additions (for archive-file path + prefix)</li>
  * </ul>
- * 
+ *
  * @author jdcasey
  * @version $Id$
  */
@@ -86,15 +88,13 @@ public class AssemblyProxyArchiver
 
     public AssemblyProxyArchiver( final String rootPrefix, final Archiver delegate,
                                   final List<ContainerDescriptorHandler> containerDescriptorHandlers,
-                                  final List<FileSelector> extraSelectors,
-                                  final List<ArchiveFinalizer> extraFinalizers, final File assemblyWorkDir,
-                                  final Logger logger, final boolean dryRun )
+                                  final List<FileSelector> extraSelectors, final List<ArchiveFinalizer> extraFinalizers,
+                                  final File assemblyWorkDir, final Logger logger, final boolean dryRun )
     {
         this.rootPrefix = rootPrefix;
         this.delegate = delegate;
 
-        assemblyWorkPath = assemblyWorkDir.getAbsolutePath()
-                                          .replace( '\\', '/' );
+        assemblyWorkPath = assemblyWorkDir.getAbsolutePath().replace( '\\', '/' );
 
         this.logger = logger;
         this.dryRun = dryRun;
@@ -106,7 +106,7 @@ public class AssemblyProxyArchiver
 
         final List<FileSelector> selectors = new ArrayList<FileSelector>();
 
-        final boolean isFinalizerEnabled = ( delegate instanceof FinalizerEnabled );
+        FinalizerEnabled finalizer = ( delegate instanceof FinalizerEnabled ) ? (FinalizerEnabled) delegate : null;
 
         if ( containerDescriptorHandlers != null )
         {
@@ -114,9 +114,9 @@ public class AssemblyProxyArchiver
             {
                 selectors.add( handler );
 
-                if ( isFinalizerEnabled )
+                if ( finalizer != null )
                 {
-                    ( (FinalizerEnabled) delegate ).addArchiveFinalizer( handler );
+                    finalizer.addArchiveFinalizer( handler );
                 }
             }
         }
@@ -129,11 +129,11 @@ public class AssemblyProxyArchiver
             }
         }
 
-        if ( ( extraFinalizers != null ) && isFinalizerEnabled )
+        if ( ( extraFinalizers != null ) && finalizer != null )
         {
             for ( ArchiveFinalizer extraFinalizer : extraFinalizers )
             {
-                ( (FinalizerEnabled) delegate ).addArchiveFinalizer( extraFinalizer );
+                finalizer.addArchiveFinalizer( extraFinalizer );
             }
         }
 
@@ -143,9 +143,11 @@ public class AssemblyProxyArchiver
         }
     }
 
-    public void addArchivedFileSet( final File archiveFile, final String prefix, final String[] includes,
+    /**
+     * {@inheritDoc}
+     */
+    public void addArchivedFileSet( final @Nonnull File archiveFile, final String prefix, final String[] includes,
                                     final String[] excludes )
-        throws ArchiverException
     {
         final String archiveKey = getArchiveKey( archiveFile, prefix );
         if ( seenPaths.contains( archiveKey ) )
@@ -204,7 +206,10 @@ public class AssemblyProxyArchiver
         }
     }
 
-    public void addArchivedFileSet( final File archiveFile, final String prefix )
+    /**
+     * {@inheritDoc}
+     */
+    public void addArchivedFileSet( final @Nonnull File archiveFile, final String prefix )
         throws ArchiverException
     {
         final String archiveKey = getArchiveKey( archiveFile, prefix );
@@ -241,6 +246,9 @@ public class AssemblyProxyArchiver
         }
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public void addArchivedFileSet( final File archiveFile, final String[] includes, final String[] excludes )
         throws ArchiverException
     {
@@ -280,7 +288,10 @@ public class AssemblyProxyArchiver
         }
     }
 
-    public void addArchivedFileSet( final File archiveFile )
+    /**
+     * {@inheritDoc}
+     */
+    public void addArchivedFileSet( final @Nonnull File archiveFile )
         throws ArchiverException
     {
         final String archiveKey = getArchiveKey( archiveFile, "" );
@@ -317,7 +328,10 @@ public class AssemblyProxyArchiver
         }
     }
 
-    public void addDirectory( final File directory, final String prefix, final String[] includes,
+    /**
+     * {@inheritDoc}
+     */
+    public void addDirectory( final @Nonnull File directory, final String prefix, final String[] includes,
                               final String[] excludes )
         throws ArchiverException
     {
@@ -349,7 +363,61 @@ public class AssemblyProxyArchiver
         }
     }
 
-    public void addDirectory( final File directory, final String prefix )
+    /**
+     * {@inheritDoc}
+     */
+    public void addSymlink( String symlinkName, String symlinkDestination )
+        throws ArchiverException
+    {
+        inPublicApi.set( Boolean.TRUE );
+        try
+        {
+            if ( dryRun )
+            {
+                debug( "DRY RUN: Skipping delegated call to: " + getMethodName() );
+            }
+            else
+            {
+                delegate.addSymlink( symlinkName, symlinkDestination );
+            }
+        }
+        finally
+        {
+            inPublicApi.set( null );
+        }
+
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public void addSymlink( String symlinkName, int permissions, String symlinkDestination )
+        throws ArchiverException
+    {
+        inPublicApi.set( Boolean.TRUE );
+        try
+        {
+            if ( dryRun )
+            {
+                debug( "DRY RUN: Skipping delegated call to: " + getMethodName() );
+            }
+            else
+            {
+                delegate.addSymlink( symlinkName, permissions, symlinkDestination );
+            }
+
+        }
+        finally
+        {
+            inPublicApi.set( null );
+        }
+
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public void addDirectory( final @Nonnull File directory, final String prefix )
         throws ArchiverException
     {
         inPublicApi.set( Boolean.TRUE );
@@ -378,7 +446,10 @@ public class AssemblyProxyArchiver
         }
     }
 
-    public void addDirectory( final File directory, final String[] includes, final String[] excludes )
+    /**
+     * {@inheritDoc}
+     */
+    public void addDirectory( final @Nonnull File directory, final String[] includes, final String[] excludes )
         throws ArchiverException
     {
         inPublicApi.set( Boolean.TRUE );
@@ -409,7 +480,10 @@ public class AssemblyProxyArchiver
         }
     }
 
-    public void addDirectory( final File directory )
+    /**
+     * {@inheritDoc}
+     */
+    public void addDirectory( final @Nonnull File directory )
         throws ArchiverException
     {
         inPublicApi.set( Boolean.TRUE );
@@ -438,7 +512,10 @@ public class AssemblyProxyArchiver
         }
     }
 
-    public void addFile( final File inputFile, final String destFileName, final int permissions )
+    /**
+     * {@inheritDoc}
+     */
+    public void addFile( final @Nonnull File inputFile, final @Nonnull String destFileName, final int permissions )
         throws ArchiverException
     {
         if ( acceptFile( inputFile ) )
@@ -464,7 +541,10 @@ public class AssemblyProxyArchiver
         }
     }
 
-    public void addFile( final File inputFile, final String destFileName )
+    /**
+     * {@inheritDoc}
+     */
+    public void addFile( final @Nonnull File inputFile, final @Nonnull String destFileName )
         throws ArchiverException
     {
         if ( acceptFile( inputFile ) )
@@ -490,6 +570,9 @@ public class AssemblyProxyArchiver
         }
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public void createArchive()
         throws ArchiverException, IOException
     {
@@ -512,6 +595,9 @@ public class AssemblyProxyArchiver
         }
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public int getDefaultDirectoryMode()
     {
         inPublicApi.set( Boolean.TRUE );
@@ -525,6 +611,9 @@ public class AssemblyProxyArchiver
         }
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public int getDefaultFileMode()
     {
         inPublicApi.set( Boolean.TRUE );
@@ -538,6 +627,9 @@ public class AssemblyProxyArchiver
         }
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public File getDestFile()
     {
         inPublicApi.set( Boolean.TRUE );
@@ -552,7 +644,7 @@ public class AssemblyProxyArchiver
     }
 
     @SuppressWarnings( { "rawtypes", "deprecation" } )
-    public Map getFiles()
+    /** {@inheritDoc} */ public Map<String, ArchiveEntry> getFiles()
     {
         inPublicApi.set( Boolean.TRUE );
         try
@@ -565,6 +657,9 @@ public class AssemblyProxyArchiver
         }
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public boolean getIncludeEmptyDirs()
     {
         inPublicApi.set( Boolean.TRUE );
@@ -578,6 +673,9 @@ public class AssemblyProxyArchiver
         }
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public boolean isForced()
     {
         inPublicApi.set( Boolean.TRUE );
@@ -591,6 +689,9 @@ public class AssemblyProxyArchiver
         }
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public boolean isSupportingForced()
     {
         inPublicApi.set( Boolean.TRUE );
@@ -604,6 +705,9 @@ public class AssemblyProxyArchiver
         }
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public void setDefaultDirectoryMode( final int mode )
     {
         inPublicApi.set( Boolean.TRUE );
@@ -617,6 +721,9 @@ public class AssemblyProxyArchiver
         }
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public void setDefaultFileMode( final int mode )
     {
         inPublicApi.set( Boolean.TRUE );
@@ -630,6 +737,9 @@ public class AssemblyProxyArchiver
         }
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public void setDestFile( final File destFile )
     {
         inPublicApi.set( Boolean.TRUE );
@@ -643,6 +753,9 @@ public class AssemblyProxyArchiver
         }
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public void setForced( final boolean forced )
     {
         inPublicApi.set( Boolean.TRUE );
@@ -657,6 +770,9 @@ public class AssemblyProxyArchiver
         }
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public void setIncludeEmptyDirs( final boolean includeEmptyDirs )
     {
         inPublicApi.set( Boolean.TRUE );
@@ -670,11 +786,18 @@ public class AssemblyProxyArchiver
         }
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public void setDotFileDirectory( final File dotFileDirectory )
     {
-        throw new UnsupportedOperationException( "Undocumented feature of plexus-archiver; this is not yet supported." );
+        throw new UnsupportedOperationException(
+            "Undocumented feature of plexus-archiver; this is not yet supported." );
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public void addArchivedFileSet( final ArchivedFileSet fileSet )
         throws ArchiverException
     {
@@ -708,7 +831,10 @@ public class AssemblyProxyArchiver
         }
     }
 
-    public void addFileSet( final FileSet fileSet )
+    /**
+     * {@inheritDoc}
+     */
+    public void addFileSet( final @Nonnull FileSet fileSet )
         throws ArchiverException
     {
         inPublicApi.set( Boolean.TRUE );
@@ -736,9 +862,7 @@ public class AssemblyProxyArchiver
     private void doAddFileSet( final FileSet fs )
         throws ArchiverException
     {
-        final String fsPath = fs.getDirectory()
-                                .getAbsolutePath()
-                                .replace( '\\', '/' );
+        final String fsPath = fs.getDirectory().getAbsolutePath().replace( '\\', '/' );
 
         if ( fsPath.equals( assemblyWorkPath ) )
         {
@@ -754,8 +878,9 @@ public class AssemblyProxyArchiver
 
             final String workDirExclude = assemblyWorkPath.substring( fsPath.length() + 1 );
 
-            logger.debug( "Adding exclude for assembly working-directory: " + workDirExclude
-                            + "\nFile-Set source directory: " + fsPath );
+            logger.debug(
+                "Adding exclude for assembly working-directory: " + workDirExclude + "\nFile-Set source directory: "
+                    + fsPath );
 
             newEx.add( workDirExclude );
 
@@ -803,7 +928,7 @@ public class AssemblyProxyArchiver
     private boolean acceptFile( final File inputFile )
         throws ArchiverException
     {
-        if ( Boolean.TRUE != inPublicApi.get() )
+        if ( !Boolean.TRUE.equals( inPublicApi.get()) )
         {
             if ( selectors != null )
             {
@@ -862,8 +987,15 @@ public class AssemblyProxyArchiver
             return inputFile.isFile();
         }
 
+        public boolean isSymbolicLink()
+        {
+            return false;
+        }
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public void addResource( final PlexusIoResource resource, final String destFileName, final int permissions )
         throws ArchiverException
     {
@@ -878,6 +1010,9 @@ public class AssemblyProxyArchiver
         }
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public void addResources( final PlexusIoResourceCollection resources )
         throws ArchiverException
     {
@@ -892,17 +1027,28 @@ public class AssemblyProxyArchiver
         }
     }
 
-    public ResourceIterator getResources()
+    /**
+     * {@inheritDoc}
+     */
+    public
+    @Nonnull
+    ResourceIterator getResources()
         throws ArchiverException
     {
         return delegate.getResources();
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public String getDuplicateBehavior()
     {
         return delegate.getDuplicateBehavior();
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public void setDuplicateBehavior( final String duplicate )
     {
         inPublicApi.set( Boolean.TRUE );
@@ -916,26 +1062,41 @@ public class AssemblyProxyArchiver
         }
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public int getDirectoryMode()
     {
         return delegate.getDirectoryMode();
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public int getFileMode()
     {
         return delegate.getFileMode();
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public int getOverrideDirectoryMode()
     {
         return delegate.getOverrideDirectoryMode();
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public int getOverrideFileMode()
     {
         return delegate.getOverrideFileMode();
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public void setDirectoryMode( final int mode )
     {
         inPublicApi.set( Boolean.TRUE );
@@ -949,6 +1110,9 @@ public class AssemblyProxyArchiver
         }
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public void setFileMode( final int mode )
     {
         inPublicApi.set( Boolean.TRUE );
@@ -962,21 +1126,33 @@ public class AssemblyProxyArchiver
         }
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public boolean isUseJvmChmod()
     {
         return useJvmChmod;
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public void setUseJvmChmod( final boolean useJvmChmod )
     {
         this.useJvmChmod = useJvmChmod;
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public boolean isIgnorePermissions()
     {
         return delegate.isIgnorePermissions();
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public void setIgnorePermissions( final boolean ignorePermissions )
     {
         delegate.setIgnorePermissions( ignorePermissions );

Modified: maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/PrefixedArchivedFileSet.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/PrefixedArchivedFileSet.java?rev=1633948&r1=1633947&r2=1633948&view=diff
==============================================================================
--- maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/PrefixedArchivedFileSet.java (original)
+++ maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/PrefixedArchivedFileSet.java Thu Oct 23 21:01:23 2014
@@ -19,28 +19,38 @@ package org.apache.maven.plugin.assembly
  * under the License.
  */
 
+import static org.apache.maven.plugin.assembly.archive.archiver.PrefixedFileSet.combineSelectors;
+
 import org.codehaus.plexus.archiver.ArchivedFileSet;
 import org.codehaus.plexus.components.io.fileselectors.FileSelector;
+import org.codehaus.plexus.components.io.functions.InputStreamTransformer;
 
 import java.io.File;
 
 /**
  * @version $Id$
  */
-public class PrefixedArchivedFileSet
+class PrefixedArchivedFileSet
     implements ArchivedFileSet
 {
 
     private final String rootPrefix;
+
     private final ArchivedFileSet fileSet;
+
     private final FileSelector[] selectors;
 
+    /**
+     * @param fileSet The archived file set.
+     * @param rootPrefix The root prefix.
+     * @param selectors The file selectors.
+     */
     public PrefixedArchivedFileSet( ArchivedFileSet fileSet, String rootPrefix, FileSelector[] selectors )
     {
         this.fileSet = fileSet;
         this.selectors = selectors;
 
-        if ( rootPrefix.length() > 0 && ! rootPrefix.endsWith( "/" ) )
+        if ( rootPrefix.length() > 0 && !rootPrefix.endsWith( "/" ) )
         {
             this.rootPrefix = rootPrefix + "/";
         }
@@ -50,41 +60,31 @@ public class PrefixedArchivedFileSet
         }
     }
 
+    /** {@inheritDoc} */
     public File getArchive()
     {
         return fileSet.getArchive();
     }
 
+    /** {@inheritDoc} */
     public String[] getExcludes()
     {
         return fileSet.getExcludes();
     }
 
+    /** {@inheritDoc} */
     public FileSelector[] getFileSelectors()
     {
-        FileSelector[] sel = fileSet.getFileSelectors();
-        if ( ( sel != null ) && ( selectors != null ) )
-        {
-            FileSelector[] temp = new FileSelector[ sel.length + selectors.length ];
-
-            System.arraycopy( sel, 0, temp, 0, sel.length );
-            System.arraycopy( selectors, 0, temp, sel.length, selectors.length );
-
-            sel = temp;
-        }
-        else if ( ( sel == null ) && ( selectors != null ) )
-        {
-            sel = selectors;
-        }
-
-        return sel;
+        return combineSelectors( fileSet.getFileSelectors(), selectors );
     }
 
+    /** {@inheritDoc} */
     public String[] getIncludes()
     {
         return fileSet.getIncludes();
     }
 
+    /** {@inheritDoc} */
     public String getPrefix()
     {
         String prefix = fileSet.getPrefix();
@@ -103,19 +103,27 @@ public class PrefixedArchivedFileSet
         return rootPrefix + prefix;
     }
 
+    /** {@inheritDoc} */
     public boolean isCaseSensitive()
     {
         return fileSet.isCaseSensitive();
     }
 
+    /** {@inheritDoc} */
     public boolean isIncludingEmptyDirectories()
     {
         return fileSet.isIncludingEmptyDirectories();
     }
 
+    /** {@inheritDoc} */
     public boolean isUsingDefaultExcludes()
     {
         return fileSet.isUsingDefaultExcludes();
     }
 
+    public InputStreamTransformer getStreamTransformer()
+    {
+        return fileSet.getStreamTransformer();
+    }
+
 }

Modified: maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/PrefixedFileSet.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/PrefixedFileSet.java?rev=1633948&r1=1633947&r2=1633948&view=diff
==============================================================================
--- maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/PrefixedFileSet.java (original)
+++ maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/PrefixedFileSet.java Thu Oct 23 21:01:23 2014
@@ -21,13 +21,14 @@ package org.apache.maven.plugin.assembly
 
 import org.codehaus.plexus.archiver.FileSet;
 import org.codehaus.plexus.components.io.fileselectors.FileSelector;
+import org.codehaus.plexus.components.io.functions.InputStreamTransformer;
 
 import java.io.File;
 
 /**
  * @version $Id$
  */
-public class PrefixedFileSet
+class PrefixedFileSet
     implements FileSet
 {
 
@@ -37,6 +38,11 @@ public class PrefixedFileSet
 
     private final FileSelector[] selectors;
 
+    /**
+     * @param fileSet The file set.
+     * @param rootPrefix The root prefix
+     * @param selectors The file selectors.
+     */
     public PrefixedFileSet( final FileSet fileSet, final String rootPrefix, final FileSelector[] selectors )
     {
         this.fileSet = fileSet;
@@ -52,36 +58,47 @@ public class PrefixedFileSet
         }
     }
 
+    /** {@inheritDoc} */
     public String[] getExcludes()
     {
         return fileSet.getExcludes();
     }
 
+    /** {@inheritDoc} */
     public FileSelector[] getFileSelectors()
     {
         FileSelector[] sel = fileSet.getFileSelectors();
-        if ( ( sel != null ) && ( selectors != null ) )
+        final FileSelector[] selectors1 = selectors;
+        return combineSelectors( sel, selectors1 );
+    }
+
+    /** {@inheritDoc} */
+    static FileSelector[] combineSelectors( FileSelector[] first, FileSelector[] second )
+    {
+        if ( ( first != null ) && ( second != null ) )
         {
-            final FileSelector[] temp = new FileSelector[sel.length + selectors.length];
+            final FileSelector[] temp = new FileSelector[first.length + second.length];
 
-            System.arraycopy( sel, 0, temp, 0, sel.length );
-            System.arraycopy( selectors, 0, temp, sel.length, selectors.length );
+            System.arraycopy( first, 0, temp, 0, first.length );
+            System.arraycopy( second, 0, temp, first.length, second.length );
 
-            sel = temp;
+            first = temp;
         }
-        else if ( ( sel == null ) && ( selectors != null ) )
+        else if ( ( first == null ) && ( second != null ) )
         {
-            sel = selectors;
+            first = second;
         }
 
-        return sel;
+        return first;
     }
 
+    /** {@inheritDoc} */
     public String[] getIncludes()
     {
         return fileSet.getIncludes();
     }
 
+    /** {@inheritDoc} */
     public String getPrefix()
     {
         String prefix = fileSet.getPrefix();
@@ -105,24 +122,32 @@ public class PrefixedFileSet
         return rootPrefix + prefix;
     }
 
+    /** {@inheritDoc} */
     public boolean isCaseSensitive()
     {
         return fileSet.isCaseSensitive();
     }
 
+    /** {@inheritDoc} */
     public boolean isIncludingEmptyDirectories()
     {
         return fileSet.isIncludingEmptyDirectories();
     }
 
+    /** {@inheritDoc} */
     public boolean isUsingDefaultExcludes()
     {
         return fileSet.isUsingDefaultExcludes();
     }
 
+    /** {@inheritDoc} */
     public File getDirectory()
     {
         return fileSet.getDirectory();
     }
 
+    public InputStreamTransformer getStreamTransformer()
+    {
+        return fileSet.getStreamTransformer();
+    }
 }

Modified: maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/SarUnArchiver.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/SarUnArchiver.java?rev=1633948&r1=1633947&r2=1633948&view=diff
==============================================================================
--- maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/SarUnArchiver.java (original)
+++ maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/SarUnArchiver.java Thu Oct 23 21:01:23 2014
@@ -26,7 +26,7 @@ import org.codehaus.plexus.archiver.zip.
  * @version $Id$
  * @todo delete this class once the plexus maven plugin can merge a generated components.xml with an existing one.
  */
-public class SarUnArchiver
+class SarUnArchiver
     extends ZipUnArchiver
 {
 

Modified: maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/phase/AssemblyArchiverPhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/phase/AssemblyArchiverPhase.java?rev=1633948&r1=1633947&r2=1633948&view=diff
==============================================================================
--- maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/phase/AssemblyArchiverPhase.java (original)
+++ maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/phase/AssemblyArchiverPhase.java Thu Oct 23 21:01:23 2014
@@ -20,11 +20,10 @@ package org.apache.maven.plugin.assembly
  */
 
 import org.apache.maven.plugin.assembly.AssemblerConfigurationSource;
-import org.apache.maven.plugin.assembly.AssemblyContext;
 import org.apache.maven.plugin.assembly.InvalidAssemblerConfigurationException;
 import org.apache.maven.plugin.assembly.archive.ArchiveCreationException;
 import org.apache.maven.plugin.assembly.format.AssemblyFormattingException;
-import org.apache.maven.plugin.assembly.model.Assembly;
+import org.apache.maven.plugin.assembly.resolved.ResolvedAssembly;
 import org.codehaus.plexus.archiver.Archiver;
 
 /**
@@ -40,16 +39,14 @@ public interface AssemblyArchiverPhase
     /**
      * Handle the associated section of the assembly descriptor.
      * 
-     * @param assembly
-     *            The assembly descriptor to use
-     * @param archiver
-     *            The archiver used to create the assembly archive, to which files/directories/artifacts are added
-     * @param configSource
-     *            The configuration for this assembly build, normally derived from the plugin that launched the assembly
-     *            process.
-     * @param context
+     * @param assembly The assembly descriptor to use
+     * @param archiver The archiver used to create the assembly archive, to which files/directories/artifacts are added
+     * @param configSource The configuration for this assembly build, normally derived from the plugin that launched the
+     *            assembly process.
+     * @throws ArchiveCreationException in case of an archive creation error.
+     * @throws AssemblyFormattingException in case of a assembly formatting exception.
+     * @throws InvalidAssemblerConfigurationException in case of an invalid assembler configuration.
      */
-    void execute( Assembly assembly, Archiver archiver, AssemblerConfigurationSource configSource,
-                  AssemblyContext context )
+    void execute( ResolvedAssembly assembly, Archiver archiver, AssemblerConfigurationSource configSource )
         throws ArchiveCreationException, AssemblyFormattingException, InvalidAssemblerConfigurationException;
 }

Modified: maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhase.java?rev=1633948&r1=1633947&r2=1633948&view=diff
==============================================================================
--- maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhase.java (original)
+++ maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhase.java Thu Oct 23 21:01:23 2014
@@ -20,12 +20,11 @@ package org.apache.maven.plugin.assembly
  */
 
 import org.apache.maven.plugin.assembly.AssemblerConfigurationSource;
-import org.apache.maven.plugin.assembly.AssemblyContext;
 import org.apache.maven.plugin.assembly.InvalidAssemblerConfigurationException;
 import org.apache.maven.plugin.assembly.archive.ArchiveCreationException;
 import org.apache.maven.plugin.assembly.archive.task.AddDependencySetsTask;
 import org.apache.maven.plugin.assembly.format.AssemblyFormattingException;
-import org.apache.maven.plugin.assembly.model.Assembly;
+import org.apache.maven.plugin.assembly.resolved.ResolvedAssembly;
 import org.apache.maven.project.MavenProjectBuilder;
 import org.codehaus.plexus.archiver.Archiver;
 import org.codehaus.plexus.archiver.manager.ArchiverManager;
@@ -51,11 +50,18 @@ public class DependencySetAssemblyPhase
     @Requirement
     private ArchiverManager archiverManager;
 
+    /**
+     * Default constructor.
+     */
     public DependencySetAssemblyPhase()
     {
         // used for plexus init
     }
 
+    /**
+     * @param projectBuilder The Maven Project Builder.
+     * @param logger The Logger.
+     */
     public DependencySetAssemblyPhase( final MavenProjectBuilder projectBuilder, final Logger logger )
     {
         this.projectBuilder = projectBuilder;
@@ -65,12 +71,12 @@ public class DependencySetAssemblyPhase
     /**
      * {@inheritDoc}
      */
-    public void execute( final Assembly assembly, final Archiver archiver,
-                         final AssemblerConfigurationSource configSource, final AssemblyContext context )
+    public void execute( final ResolvedAssembly assembly, final Archiver archiver,
+                         final AssemblerConfigurationSource configSource )
         throws ArchiveCreationException, AssemblyFormattingException, InvalidAssemblerConfigurationException
     {
         final AddDependencySetsTask task =
-            new AddDependencySetsTask( assembly.getDependencySets(), context.getResolvedArtifacts(),
+            new AddDependencySetsTask( assembly.getDependencySets(), assembly.getResolvedDependencySetArtifacts(),
                                        configSource.getProject(), projectBuilder, archiverManager, getLogger() );
 
         task.execute( archiver, configSource );

Modified: maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/phase/FileItemAssemblyPhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/phase/FileItemAssemblyPhase.java?rev=1633948&r1=1633947&r2=1633948&view=diff
==============================================================================
--- maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/phase/FileItemAssemblyPhase.java (original)
+++ maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/phase/FileItemAssemblyPhase.java Thu Oct 23 21:01:23 2014
@@ -20,16 +20,14 @@ package org.apache.maven.plugin.assembly
  */
 
 import java.io.File;
-import java.util.Iterator;
 import java.util.List;
 
 import org.apache.maven.plugin.assembly.AssemblerConfigurationSource;
-import org.apache.maven.plugin.assembly.AssemblyContext;
 import org.apache.maven.plugin.assembly.archive.ArchiveCreationException;
 import org.apache.maven.plugin.assembly.format.AssemblyFormattingException;
 import org.apache.maven.plugin.assembly.format.FileFormatter;
-import org.apache.maven.plugin.assembly.model.Assembly;
 import org.apache.maven.plugin.assembly.model.FileItem;
+import org.apache.maven.plugin.assembly.resolved.ResolvedAssembly;
 import org.apache.maven.plugin.assembly.utils.AssemblyFormatUtils;
 import org.apache.maven.plugin.assembly.utils.TypeConversionUtils;
 import org.codehaus.plexus.archiver.Archiver;
@@ -51,57 +49,68 @@ public class FileItemAssemblyPhase
     /**
      * {@inheritDoc}
      */
-    public void execute( final Assembly assembly, final Archiver archiver,
-                         final AssemblerConfigurationSource configSource, final AssemblyContext context )
+    public void execute( final ResolvedAssembly assembly, final Archiver archiver,
+                         final AssemblerConfigurationSource configSource )
         throws ArchiveCreationException, AssemblyFormattingException
     {
         final List<FileItem> fileList = assembly.getFiles();
         final File basedir = configSource.getBasedir();
 
         final FileFormatter fileFormatter = new FileFormatter( configSource, getLogger() );
-        for (final FileItem fileItem : fileList) {
+        for ( final FileItem fileItem : fileList )
+        {
             final String sourcePath = fileItem.getSource();
 
             // ensure source file is in absolute path for reactor build to work
-            File source = new File(sourcePath);
+            File source = new File( sourcePath );
 
             // save the original sourcefile's name, because filtration may
             // create a temp file with a different name.
             final String sourceName = source.getName();
 
-            if (!source.isAbsolute()) {
-                source = new File(basedir, sourcePath);
+            if ( !source.isAbsolute() )
+            {
+                source = new File( basedir, sourcePath );
             }
 
             source =
-                    fileFormatter.format(source, fileItem.isFiltered(), fileItem.getLineEnding(),
-                            configSource.getEncoding());
+                fileFormatter.format( source, fileItem.isFiltered(), fileItem.getLineEnding(),
+                                      configSource.getEncoding() );
 
             String destName = fileItem.getDestName();
 
-            if (destName == null) {
+            if ( destName == null )
+            {
                 destName = sourceName;
             }
 
             final String outputDirectory =
-                    AssemblyFormatUtils.getOutputDirectory(fileItem.getOutputDirectory(), configSource.getProject(), null,
-                            configSource.getFinalName(), configSource);
+                AssemblyFormatUtils.getOutputDirectory( fileItem.getOutputDirectory(), configSource.getProject(), null,
+                                                        configSource.getFinalName(), configSource );
 
             String target;
 
             // omit the last char if ends with / or \\
-            if (outputDirectory.endsWith("/") || outputDirectory.endsWith("\\")) {
+            if ( outputDirectory.endsWith( "/" ) || outputDirectory.endsWith( "\\" ) )
+            {
                 target = outputDirectory + destName;
-            } else if (outputDirectory.length() < 1) {
+            }
+            else if ( outputDirectory.length() < 1 )
+            {
                 target = destName;
-            } else {
+            }
+            else
+            {
                 target = outputDirectory + "/" + destName;
             }
 
-            try {
-                archiver.addFile(source, target, TypeConversionUtils.modeToInt(fileItem.getFileMode(), getLogger()));
-            } catch (final ArchiverException e) {
-                throw new ArchiveCreationException("Error adding file to archive: " + e.getMessage(), e);
+            try
+            {
+                archiver.addFile( source, target, TypeConversionUtils.modeToInt( fileItem.getFileMode(), getLogger() ) );
+            }
+            catch ( final ArchiverException e )
+            {
+                throw new ArchiveCreationException( "Error adding file to archive: " + e.getMessage(), e );
             }
         }
     }

Modified: maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/phase/FileSetAssemblyPhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/phase/FileSetAssemblyPhase.java?rev=1633948&r1=1633947&r2=1633948&view=diff
==============================================================================
--- maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/phase/FileSetAssemblyPhase.java (original)
+++ maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/phase/FileSetAssemblyPhase.java Thu Oct 23 21:01:23 2014
@@ -22,16 +22,17 @@ package org.apache.maven.plugin.assembly
 import java.util.List;
 
 import org.apache.maven.plugin.assembly.AssemblerConfigurationSource;
-import org.apache.maven.plugin.assembly.AssemblyContext;
 import org.apache.maven.plugin.assembly.archive.ArchiveCreationException;
 import org.apache.maven.plugin.assembly.archive.task.AddFileSetsTask;
 import org.apache.maven.plugin.assembly.format.AssemblyFormattingException;
-import org.apache.maven.plugin.assembly.model.Assembly;
 import org.apache.maven.plugin.assembly.model.FileSet;
+import org.apache.maven.plugin.assembly.resolved.ResolvedAssembly;
 import org.codehaus.plexus.archiver.Archiver;
 import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 
+import javax.annotation.Nonnull;
+
 /**
  * Handles the &lt;fileSets/&gt; top-level section of the assembly descriptor.
  * 
@@ -46,8 +47,8 @@ public class FileSetAssemblyPhase
     /**
      * {@inheritDoc}
      */
-    public void execute( final Assembly assembly, final Archiver archiver,
-                         final AssemblerConfigurationSource configSource, final AssemblyContext context )
+    public void execute( @Nonnull final ResolvedAssembly assembly, final Archiver archiver,
+                         final AssemblerConfigurationSource configSource )
         throws ArchiveCreationException, AssemblyFormattingException
     {
         final List<FileSet> fileSets = assembly.getFileSets();

Modified: maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/phase/ModuleSetAssemblyPhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/phase/ModuleSetAssemblyPhase.java?rev=1633948&r1=1633947&r2=1633948&view=diff
==============================================================================
--- maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/phase/ModuleSetAssemblyPhase.java (original)
+++ maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/phase/ModuleSetAssemblyPhase.java Thu Oct 23 21:01:23 2014
@@ -30,22 +30,25 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
+import javax.annotation.Nonnull;
+
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.ArtifactUtils;
 import org.apache.maven.plugin.assembly.AssemblerConfigurationSource;
-import org.apache.maven.plugin.assembly.AssemblyContext;
 import org.apache.maven.plugin.assembly.InvalidAssemblerConfigurationException;
 import org.apache.maven.plugin.assembly.archive.ArchiveCreationException;
 import org.apache.maven.plugin.assembly.archive.task.AddArtifactTask;
 import org.apache.maven.plugin.assembly.archive.task.AddDependencySetsTask;
 import org.apache.maven.plugin.assembly.archive.task.AddFileSetsTask;
 import org.apache.maven.plugin.assembly.format.AssemblyFormattingException;
-import org.apache.maven.plugin.assembly.model.Assembly;
 import org.apache.maven.plugin.assembly.model.DependencySet;
 import org.apache.maven.plugin.assembly.model.FileSet;
 import org.apache.maven.plugin.assembly.model.ModuleBinaries;
 import org.apache.maven.plugin.assembly.model.ModuleSet;
 import org.apache.maven.plugin.assembly.model.ModuleSources;
+import org.apache.maven.plugin.assembly.resolved.ResolvedAssembly;
+import org.apache.maven.plugin.assembly.resolved.ResolvedModuleSet;
+import org.apache.maven.plugin.assembly.resolved.functions.ResolvedModuleSetConsumer;
 import org.apache.maven.plugin.assembly.utils.AssemblyFormatUtils;
 import org.apache.maven.plugin.assembly.utils.FilterUtils;
 import org.apache.maven.plugin.assembly.utils.ProjectUtils;
@@ -70,8 +73,11 @@ public class ModuleSetAssemblyPhase
     implements AssemblyArchiverPhase
 {
 
-    //TODO: Remove if using something like commons-lang instead.
-    public static final String LINE_SEPARATOR = System.getProperty("line.separator");
+    // TODO: Remove if using something like commons-lang instead.
+    /**
+     * The line separator.
+     */
+    private static final String LINE_SEPARATOR = System.getProperty( "line.separator" );
 
     @Requirement
     private MavenProjectBuilder projectBuilder;
@@ -79,11 +85,18 @@ public class ModuleSetAssemblyPhase
     @Requirement
     private ArchiverManager archiverManager;
 
+    /**
+     * Create an instance.
+     */
     public ModuleSetAssemblyPhase()
     {
         // needed for plexus
     }
 
+    /**
+     * @param projectBuilder The project builder.
+     * @param logger The logger.
+     */
     public ModuleSetAssemblyPhase( final MavenProjectBuilder projectBuilder, final Logger logger )
     {
         this.projectBuilder = projectBuilder;
@@ -93,23 +106,27 @@ public class ModuleSetAssemblyPhase
     /**
      * {@inheritDoc}
      */
-    public void execute( final Assembly assembly, final Archiver archiver,
-                         final AssemblerConfigurationSource configSource, final AssemblyContext context )
+    public void execute( final ResolvedAssembly assembly, final Archiver archiver,
+                         final AssemblerConfigurationSource configSource )
         throws ArchiveCreationException, AssemblyFormattingException, InvalidAssemblerConfigurationException
     {
-        final List<ModuleSet> moduleSets = assembly.getModuleSets();
-
-        for (final ModuleSet moduleSet : moduleSets) {
-            validate(moduleSet, configSource);
+        assembly.forEachResolvedModule( new ResolvedModuleSetConsumer()
+        {
+            public void accept( ResolvedModuleSet resolvedModule )
+                throws ArchiveCreationException, AssemblyFormattingException, InvalidAssemblerConfigurationException
+            {
+                validate( resolvedModule.getModuleSet(), configSource );
 
-            final Set<MavenProject> moduleProjects = getModuleProjects(moduleSet, configSource, getLogger());
+                final Set<MavenProject> moduleProjects =
+                    getModuleProjects( resolvedModule.getModuleSet(), configSource, getLogger() );
 
-            final ModuleSources sources = moduleSet.getSources();
-            addModuleSourceFileSets(sources, moduleProjects, archiver, configSource);
+                final ModuleSources sources = resolvedModule.getModuleSet().getSources();
+                addModuleSourceFileSets( sources, moduleProjects, archiver, configSource );
 
-            final ModuleBinaries binaries = moduleSet.getBinaries();
-            addModuleBinaries(binaries, moduleProjects, archiver, configSource, context);
-        }
+                final ModuleBinaries binaries = resolvedModule.getModuleSet().getBinaries();
+                addModuleBinaries( resolvedModule, binaries, moduleProjects, archiver, configSource );
+            }
+        } );
     }
 
     private void validate( final ModuleSet moduleSet, final AssemblerConfigurationSource configSource )
@@ -153,9 +170,9 @@ public class ModuleSetAssemblyPhase
         }
     }
 
-    protected void addModuleBinaries( final ModuleBinaries binaries, final Set<MavenProject> projects,
-                                      final Archiver archiver, final AssemblerConfigurationSource configSource,
-                                      final AssemblyContext context )
+    void addModuleBinaries( ResolvedModuleSet resolvedModule, final ModuleBinaries binaries,
+                            final Set<MavenProject> projects, final Archiver archiver,
+                            final AssemblerConfigurationSource configSource )
         throws ArchiveCreationException, AssemblyFormattingException, InvalidAssemblerConfigurationException
     {
         if ( binaries == null )
@@ -183,55 +200,66 @@ public class ModuleSetAssemblyPhase
 
         final Map<MavenProject, Artifact> chosenModuleArtifacts = new HashMap<MavenProject, Artifact>();
 
-        for (final MavenProject project : moduleProjects) {
+        for ( final MavenProject project : moduleProjects )
+        {
             Artifact artifact = null;
 
-            if (classifier == null) {
-                getLogger().debug("Processing binary artifact for module project: " + project.getId());
+            if ( classifier == null )
+            {
+                getLogger().debug( "Processing binary artifact for module project: " + project.getId() );
 
                 artifact = project.getArtifact();
-            } else {
-                getLogger().debug("Processing binary attachment: " + classifier + " for module project: "
-                        + project.getId());
+            }
+            else
+            {
+                getLogger().debug( "Processing binary attachment: " + classifier + " for module project: "
+                                       + project.getId() );
 
-                @SuppressWarnings("unchecked")
+                @SuppressWarnings( "unchecked" )
                 final List<Artifact> attachments = project.getAttachedArtifacts();
-                if ((attachments != null) && !attachments.isEmpty()) {
-                    for (final Artifact attachment : attachments) {
-                        if (classifier.equals(attachment.getClassifier())) {
+                if ( ( attachments != null ) && !attachments.isEmpty() )
+                {
+                    for ( final Artifact attachment : attachments )
+                    {
+                        if ( classifier.equals( attachment.getClassifier() ) )
+                        {
                             artifact = attachment;
                             break;
                         }
                     }
                 }
 
-                if (artifact == null) {
-                    throw new InvalidAssemblerConfigurationException("Cannot find attachment with classifier: "
-                            + classifier + " in module project: " + project.getId()
-                            + ". Please exclude this module from the module-set.");
+                if ( artifact == null )
+                {
+                    throw new InvalidAssemblerConfigurationException( "Cannot find attachment with classifier: "
+                        + classifier + " in module project: " + project.getId()
+                        + ". Please exclude this module from the module-set." );
                 }
             }
 
-            chosenModuleArtifacts.put(project, artifact);
-            addModuleArtifact(artifact, project, archiver, configSource, binaries);
+            chosenModuleArtifacts.put( project, artifact );
+            addModuleArtifact( artifact, project, archiver, configSource, binaries );
         }
 
         final List<DependencySet> depSets = getDependencySets( binaries );
 
         if ( depSets != null )
         {
-            for (final DependencySet ds : depSets) {
+            for ( final DependencySet ds : depSets )
+            {
                 // NOTE: Disabling useProjectArtifact flag, since module artifact has already been handled!
-                ds.setUseProjectArtifact(false);
+                ds.setUseProjectArtifact( false );
             }
 
-            //TODO: The following should be moved into a shared component, cause this
-            //test is the same as in maven-enforce rules ReactorModuleConvergence.
+            // TODO: The following should be moved into a shared component, cause this
+            // test is the same as in maven-enforce rules ReactorModuleConvergence.
             List<MavenProject> validateModuleVersions = validateModuleVersions( moduleProjects );
-            if (!validateModuleVersions.isEmpty()) {
-                
-                StringBuilder sb = new StringBuilder().append( "The current modules seemed to be having different versions.");
-                sb.append (LINE_SEPARATOR);
+            if ( !validateModuleVersions.isEmpty() )
+            {
+
+                StringBuilder sb =
+                    new StringBuilder().append( "The current modules seemed to be having different versions." );
+                sb.append( LINE_SEPARATOR );
                 for ( MavenProject mavenProject : validateModuleVersions )
                 {
                     sb.append( " --> " );
@@ -241,27 +269,30 @@ public class ModuleSetAssemblyPhase
                 getLogger().warn( sb.toString() );
             }
 
-            for (final MavenProject moduleProject : moduleProjects) {
-                getLogger().debug("Processing binary dependencies for module project: " + moduleProject.getId());
+            for ( final MavenProject moduleProject : moduleProjects )
+            {
+                getLogger().debug( "Processing binary dependencies for module project: " + moduleProject.getId() );
 
                 final AddDependencySetsTask task =
-                        new AddDependencySetsTask(depSets, context.getResolvedArtifacts(), moduleProject, projectBuilder,
-                                archiverManager, getLogger());
+                    new AddDependencySetsTask( depSets, resolvedModule.getArtifacts(), moduleProject, projectBuilder,
+                                               archiverManager, getLogger() );
 
-                task.setModuleProject(moduleProject);
-                task.setModuleArtifact(chosenModuleArtifacts.get(moduleProject));
-                task.setDefaultOutputDirectory(binaries.getOutputDirectory());
-                task.setDefaultOutputFileNameMapping(binaries.getOutputFileNameMapping());
+                task.setModuleProject( moduleProject );
+                task.setModuleArtifact( chosenModuleArtifacts.get( moduleProject ) );
+                task.setDefaultOutputDirectory( binaries.getOutputDirectory() );
+                task.setDefaultOutputFileNameMapping( binaries.getOutputFileNameMapping() );
 
-                task.execute(archiver, configSource);
+                task.execute( archiver, configSource );
             }
         }
     }
 
-    private List<MavenProject> validateModuleVersions (Set<MavenProject> moduleProjects) {
+    private List<MavenProject> validateModuleVersions( Set<MavenProject> moduleProjects )
+    {
         List<MavenProject> result = new ArrayList<MavenProject>();
 
-        if (moduleProjects != null && !moduleProjects.isEmpty()) {
+        if ( moduleProjects != null && !moduleProjects.isEmpty() )
+        {
             String version = moduleProjects.iterator().next().getVersion();
             getLogger().debug( "First version:" + version );
             for ( MavenProject mavenProject : moduleProjects )
@@ -275,7 +306,7 @@ public class ModuleSetAssemblyPhase
         }
         return result;
     }
-    
+
     public static List<DependencySet> getDependencySets( final ModuleBinaries binaries )
     {
         List<DependencySet> depSets = binaries.getDependencySets();
@@ -321,8 +352,8 @@ public class ModuleSetAssemblyPhase
     // return excludes;
     // }
 
-    protected void addModuleArtifact( final Artifact artifact, final MavenProject project, final Archiver archiver,
-                                      final AssemblerConfigurationSource configSource, final ModuleBinaries binaries )
+    void addModuleArtifact( final Artifact artifact, final MavenProject project, final Archiver archiver,
+                            final AssemblerConfigurationSource configSource, final ModuleBinaries binaries )
         throws ArchiveCreationException, AssemblyFormattingException
     {
         if ( artifact.getFile() == null )
@@ -363,8 +394,8 @@ public class ModuleSetAssemblyPhase
         task.execute( archiver, configSource );
     }
 
-    protected void addModuleSourceFileSets( final ModuleSources sources, final Set<MavenProject> moduleProjects,
-                                            final Archiver archiver, final AssemblerConfigurationSource configSource )
+    void addModuleSourceFileSets( final ModuleSources sources, final Set<MavenProject> moduleProjects,
+                                  final Archiver archiver, final AssemblerConfigurationSource configSource )
         throws ArchiveCreationException, AssemblyFormattingException
     {
         if ( sources == null )
@@ -397,29 +428,31 @@ public class ModuleSetAssemblyPhase
 
         fileSets.addAll( subFileSets );
 
-        for (final MavenProject moduleProject : moduleProjects) {
-            getLogger().info("Processing sources for module project: " + moduleProject.getId());
+        for ( final MavenProject moduleProject : moduleProjects )
+        {
+            getLogger().info( "Processing sources for module project: " + moduleProject.getId() );
 
             final List<FileSet> moduleFileSets = new ArrayList<FileSet>();
 
-            for (final FileSet fileSet : fileSets) {
-                moduleFileSets.add(createFileSet(fileSet, sources, moduleProject, configSource));
+            for ( final FileSet fileSet : fileSets )
+            {
+                moduleFileSets.add( createFileSet( fileSet, sources, moduleProject, configSource ) );
             }
 
-            final AddFileSetsTask task = new AddFileSetsTask(moduleFileSets);
+            final AddFileSetsTask task = new AddFileSetsTask( moduleFileSets );
 
-            task.setProject(moduleProject);
-            task.setModuleProject(moduleProject);
-            task.setLogger(getLogger());
+            task.setProject( moduleProject );
+            task.setModuleProject( moduleProject );
+            task.setLogger( getLogger() );
 
-            task.execute(archiver, configSource);
+            task.execute( archiver, configSource );
         }
     }
 
     /**
      * Determine whether the deprecated file-set configuration directly within the ModuleSources object is present.
      */
-    protected boolean isDeprecatedModuleSourcesConfigPresent( final ModuleSources sources )
+    boolean isDeprecatedModuleSourcesConfigPresent( @Nonnull final ModuleSources sources )
     {
         boolean result = false;
 
@@ -439,8 +472,10 @@ public class ModuleSetAssemblyPhase
         return result;
     }
 
-    protected FileSet createFileSet( final FileSet fileSet, final ModuleSources sources,
-                                     final MavenProject moduleProject, final AssemblerConfigurationSource configSource )
+    @Nonnull
+    FileSet createFileSet( @Nonnull final FileSet fileSet, @Nonnull final ModuleSources sources,
+                           @Nonnull final MavenProject moduleProject,
+                           @Nonnull final AssemblerConfigurationSource configSource )
         throws AssemblyFormattingException
     {
         final FileSet fs = new FileSet();
@@ -478,8 +513,9 @@ public class ModuleSetAssemblyPhase
         {
             @SuppressWarnings( "unchecked" )
             final List<String> modules = moduleProject.getModules();
-            for (final String moduleSubPath : modules) {
-                excludes.add(moduleSubPath + "/**");
+            for ( final String moduleSubPath : modules )
+            {
+                excludes.add( moduleSubPath + "/**" );
             }
         }
 
@@ -527,6 +563,7 @@ public class ModuleSetAssemblyPhase
         return fs;
     }
 
+    @Nonnull
     public static Set<MavenProject> getModuleProjects( final ModuleSet moduleSet,
                                                        final AssemblerConfigurationSource configSource,
                                                        final Logger logger )

Modified: maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/phase/RepositoryAssemblyPhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/phase/RepositoryAssemblyPhase.java?rev=1633948&r1=1633947&r2=1633948&view=diff
==============================================================================
--- maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/phase/RepositoryAssemblyPhase.java (original)
+++ maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/phase/RepositoryAssemblyPhase.java Thu Oct 23 21:01:23 2014
@@ -20,19 +20,17 @@ package org.apache.maven.plugin.assembly
  */
 
 import java.io.File;
-import java.util.Iterator;
 import java.util.List;
 
 import org.apache.maven.plugin.assembly.AssemblerConfigurationSource;
-import org.apache.maven.plugin.assembly.AssemblyContext;
 import org.apache.maven.plugin.assembly.InvalidAssemblerConfigurationException;
 import org.apache.maven.plugin.assembly.archive.ArchiveCreationException;
 import org.apache.maven.plugin.assembly.archive.phase.wrappers.RepoBuilderConfigSourceWrapper;
 import org.apache.maven.plugin.assembly.archive.phase.wrappers.RepoInfoWrapper;
 import org.apache.maven.plugin.assembly.archive.task.AddDirectoryTask;
 import org.apache.maven.plugin.assembly.format.AssemblyFormattingException;
-import org.apache.maven.plugin.assembly.model.Assembly;
 import org.apache.maven.plugin.assembly.model.Repository;
+import org.apache.maven.plugin.assembly.resolved.ResolvedAssembly;
 import org.apache.maven.plugin.assembly.utils.AssemblyFormatUtils;
 import org.apache.maven.plugin.assembly.utils.TypeConversionUtils;
 import org.apache.maven.shared.repository.RepositoryAssembler;
@@ -70,48 +68,56 @@ public class RepositoryAssemblyPhase
     /**
      * {@inheritDoc}
      */
-    public void execute( final Assembly assembly, final Archiver archiver,
-                         final AssemblerConfigurationSource configSource, final AssemblyContext context )
+    @SuppressWarnings( "ResultOfMethodCallIgnored" )
+    public void execute( final ResolvedAssembly assembly, final Archiver archiver,
+                         final AssemblerConfigurationSource configSource )
         throws ArchiveCreationException, AssemblyFormattingException, InvalidAssemblerConfigurationException
     {
         final List<Repository> repositoriesList = assembly.getRepositories();
 
         final File tempRoot = configSource.getTemporaryRootDirectory();
 
-        for (final Repository repository : repositoriesList) {
+        for ( final Repository repository : repositoriesList )
+        {
             final String outputDirectory =
-                    AssemblyFormatUtils.getOutputDirectory(repository.getOutputDirectory(), configSource.getProject(),
-                            null, configSource.getFinalName(), configSource);
+                AssemblyFormatUtils.getOutputDirectory( repository.getOutputDirectory(), configSource.getProject(),
+                                                        null, configSource.getFinalName(), configSource );
 
-            final File repositoryDirectory = new File(tempRoot, outputDirectory);
+            final File repositoryDirectory = new File( tempRoot, outputDirectory );
 
-            if (!repositoryDirectory.exists()) {
+            if ( !repositoryDirectory.exists() )
+            {
                 repositoryDirectory.mkdirs();
             }
 
-            try {
-                getLogger().debug("Assembling repository to: " + repositoryDirectory);
-                repositoryAssembler.buildRemoteRepository(repositoryDirectory, wrap(repository), wrap(configSource));
-                getLogger().debug("Finished assembling repository to: " + repositoryDirectory);
-            } catch (final RepositoryAssemblyException e) {
-                throw new ArchiveCreationException("Failed to assemble repository: " + e.getMessage(), e);
+            try
+            {
+                getLogger().debug( "Assembling repository to: " + repositoryDirectory );
+                repositoryAssembler.buildRemoteRepository( repositoryDirectory, wrap( repository ), wrap( configSource ) );
+                getLogger().debug( "Finished assembling repository to: " + repositoryDirectory );
+            }
+            catch ( final RepositoryAssemblyException e )
+            {
+                throw new ArchiveCreationException( "Failed to assemble repository: " + e.getMessage(), e );
             }
 
-            final AddDirectoryTask task = new AddDirectoryTask(repositoryDirectory);
+            final AddDirectoryTask task = new AddDirectoryTask( repositoryDirectory );
 
-            final int dirMode = TypeConversionUtils.modeToInt(repository.getDirectoryMode(), getLogger());
-            if (dirMode != -1) {
-                task.setDirectoryMode(dirMode);
+            final int dirMode = TypeConversionUtils.modeToInt( repository.getDirectoryMode(), getLogger() );
+            if ( dirMode != -1 )
+            {
+                task.setDirectoryMode( dirMode );
             }
 
-            final int fileMode = TypeConversionUtils.modeToInt(repository.getFileMode(), getLogger());
-            if (fileMode != -1) {
-                task.setFileMode(fileMode);
+            final int fileMode = TypeConversionUtils.modeToInt( repository.getFileMode(), getLogger() );
+            if ( fileMode != -1 )
+            {
+                task.setFileMode( fileMode );
             }
 
-            task.setOutputDirectory(outputDirectory);
+            task.setOutputDirectory( outputDirectory );
 
-            task.execute(archiver, configSource);
+            task.execute( archiver );
         }
     }
 

Modified: maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/phase/wrappers/GroupVersionAlignmentWrapper.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/phase/wrappers/GroupVersionAlignmentWrapper.java?rev=1633948&r1=1633947&r2=1633948&view=diff
==============================================================================
--- maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/phase/wrappers/GroupVersionAlignmentWrapper.java (original)
+++ maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/phase/wrappers/GroupVersionAlignmentWrapper.java Thu Oct 23 21:01:23 2014
@@ -26,27 +26,33 @@ import java.util.List;
 /**
  * @version $Id$
  */
-public class GroupVersionAlignmentWrapper
+class GroupVersionAlignmentWrapper
     implements org.apache.maven.shared.repository.model.GroupVersionAlignment
 {
 
     private final GroupVersionAlignment alignment;
 
+    /**
+     * @param alignment @{link {@link GroupVersionAlignment}
+     */
     public GroupVersionAlignmentWrapper( final GroupVersionAlignment alignment )
     {
         this.alignment = alignment;
     }
 
+    /** {@inheritDoc} */
     public List<String> getExcludes()
     {
         return alignment.getExcludes();
     }
 
+    /** {@inheritDoc} */
     public String getId()
     {
         return alignment.getId();
     }
 
+    /** {@inheritDoc} */
     public String getVersion()
     {
         return alignment.getVersion();

Modified: maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/phase/wrappers/RepoInfoWrapper.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/phase/wrappers/RepoInfoWrapper.java?rev=1633948&r1=1633947&r2=1633948&view=diff
==============================================================================
--- maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/phase/wrappers/RepoInfoWrapper.java (original)
+++ maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/phase/wrappers/RepoInfoWrapper.java Thu Oct 23 21:01:23 2014
@@ -24,7 +24,6 @@ import org.apache.maven.plugin.assembly.
 import org.apache.maven.shared.repository.model.RepositoryInfo;
 
 import java.util.ArrayList;
-import java.util.Iterator;
 import java.util.List;
 
 /**
@@ -38,16 +37,21 @@ public class RepoInfoWrapper
 
     private List<GroupVersionAlignmentWrapper> convertedAlignments;
 
+    /**
+     * @param repo The {@link Repository}
+     */
     public RepoInfoWrapper( final Repository repo )
     {
         this.repo = repo;
     }
 
+    /** {@inheritDoc} */
     public List<String> getExcludes()
     {
         return repo.getExcludes();
     }
 
+    /** {@inheritDoc} */
     public List<GroupVersionAlignmentWrapper> getGroupVersionAlignments()
     {
         final List<GroupVersionAlignment> alignments = repo.getGroupVersionAlignments();
@@ -57,8 +61,9 @@ public class RepoInfoWrapper
             final List<GroupVersionAlignmentWrapper> l =
                 new ArrayList<GroupVersionAlignmentWrapper>( alignments.size() );
 
-            for (final GroupVersionAlignment alignment : alignments) {
-                l.add(new GroupVersionAlignmentWrapper(alignment));
+            for ( final GroupVersionAlignment alignment : alignments )
+            {
+                l.add( new GroupVersionAlignmentWrapper( alignment ) );
             }
 
             convertedAlignments = l;
@@ -67,16 +72,19 @@ public class RepoInfoWrapper
         return convertedAlignments;
     }
 
+    /** {@inheritDoc} */
     public List<String> getIncludes()
     {
         return repo.getIncludes();
     }
 
+    /** {@inheritDoc} */
     public String getScope()
     {
         return repo.getScope();
     }
 
+    /** {@inheritDoc} */
     public boolean isIncludeMetadata()
     {
         return repo.isIncludeMetadata();

Modified: maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddArtifactTask.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddArtifactTask.java?rev=1633948&r1=1633947&r2=1633948&view=diff
==============================================================================
--- maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddArtifactTask.java (original)
+++ maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddArtifactTask.java Thu Oct 23 21:01:23 2014
@@ -40,7 +40,6 @@ import java.util.List;
  * @version $Id$
  */
 public class AddArtifactTask
-    implements ArchiverTask
 {
 
     public static final String[] DEFAULT_INCLUDES_ARRAY = { "**/*" };
@@ -270,21 +269,11 @@ public class AddArtifactTask
         setFileNameMapping( outputFileNameMapping == null ? defaultOutputFileNameMapping : outputFileNameMapping );
     }
 
-    public MavenProject getModuleProject()
-    {
-        return moduleProject;
-    }
-
     public void setModuleProject( final MavenProject moduleProject )
     {
         this.moduleProject = moduleProject;
     }
 
-    public Artifact getModuleArtifact()
-    {
-        return moduleArtifact;
-    }
-
     public void setModuleArtifact( final Artifact moduleArtifact )
     {
         this.moduleArtifact = moduleArtifact;

Modified: maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTask.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTask.java?rev=1633948&r1=1633947&r2=1633948&view=diff
==============================================================================
--- maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTask.java (original)
+++ maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTask.java Thu Oct 23 21:01:23 2014
@@ -54,7 +54,6 @@ import org.codehaus.plexus.logging.Logge
  * @version $Id$
  */
 public class AddDependencySetsTask
-    implements ArchiverTask
 {
 
     private static final List<String> NON_ARCHIVE_DEPENDENCY_TYPES;
@@ -116,13 +115,14 @@ public class AddDependencySetsTask
             logger.debug( "Project " + project.getId() + " has no dependencies. Skipping dependency set addition." );
         }
 
-        for (final DependencySet dependencySet : dependencySets) {
-            addDependencySet(dependencySet, archiver, configSource);
+        for ( final DependencySet dependencySet : dependencySets )
+        {
+            addDependencySet( dependencySet, archiver, configSource );
         }
     }
 
-    protected void addDependencySet( final DependencySet dependencySet, final Archiver archiver,
-                                     final AssemblerConfigurationSource configSource )
+    void addDependencySet( final DependencySet dependencySet, final Archiver archiver,
+                           final AssemblerConfigurationSource configSource )
         throws AssemblyFormattingException, ArchiveCreationException, InvalidAssemblerConfigurationException
     {
         logger.debug( "Processing DependencySet (output=" + dependencySet.getOutputDirectory() + ")" );
@@ -130,7 +130,7 @@ public class AddDependencySetsTask
         if ( !dependencySet.isUseTransitiveDependencies() && dependencySet.isUseTransitiveFiltering() )
         {
             logger.warn( "DependencySet has nonsensical configuration: useTransitiveDependencies == false "
-                            + "AND useTransitiveFiltering == true. Transitive filtering flag will be ignored." );
+                + "AND useTransitiveFiltering == true. Transitive filtering flag will be ignored." );
         }
 
         final Set<Artifact> dependencyArtifacts = resolveDependencyArtifacts( dependencySet );
@@ -148,26 +148,36 @@ public class AddDependencySetsTask
 
         logger.debug( "Adding " + dependencyArtifacts.size() + " dependency artifacts." );
 
-        for (final Artifact depArtifact : dependencyArtifacts) {
+        for ( final Artifact depArtifact : dependencyArtifacts )
+        {
             MavenProject depProject;
-            try {
+            try
+            {
                 depProject =
-                        projectBuilder.buildFromRepository(depArtifact, configSource.getRemoteRepositories(),
-                                configSource.getLocalRepository());
-            } catch (final ProjectBuildingException e) {
-                logger.debug("Error retrieving POM of module-dependency: " + depArtifact.getId() + "; Reason: "
-                        + e.getMessage() + "\n\nBuilding stub project instance.");
-
-                depProject = buildProjectStub(depArtifact);
-            }
-
-            if (NON_ARCHIVE_DEPENDENCY_TYPES.contains(depArtifact.getType())) {
-                addNonArchiveDependency(depArtifact, depProject, dependencySet, archiver, configSource);
-            } else {
-                if (filterContents) {
-                    addFilteredUnpackedArtifact(dependencySet, depArtifact, depProject, archiver, configSource);
-                } else {
-                    addNormalArtifact(dependencySet, depArtifact, depProject, archiver, configSource);
+                    projectBuilder.buildFromRepository( depArtifact, configSource.getRemoteRepositories(),
+                                                        configSource.getLocalRepository() );
+            }
+            catch ( final ProjectBuildingException e )
+            {
+                logger.debug( "Error retrieving POM of module-dependency: " + depArtifact.getId() + "; Reason: "
+                    + e.getMessage() + "\n\nBuilding stub project instance." );
+
+                depProject = buildProjectStub( depArtifact );
+            }
+
+            if ( NON_ARCHIVE_DEPENDENCY_TYPES.contains( depArtifact.getType() ) )
+            {
+                addNonArchiveDependency( depArtifact, depProject, dependencySet, archiver, configSource );
+            }
+            else
+            {
+                if ( filterContents )
+                {
+                    addFilteredUnpackedArtifact( dependencySet, depArtifact, depProject, archiver, configSource );
+                }
+                else
+                {
+                    addNormalArtifact( dependencySet, depArtifact, depProject, archiver, configSource );
                 }
             }
         }
@@ -187,15 +197,16 @@ public class AddDependencySetsTask
             mapping = defaultOutputFileNameMapping;
         }
 
-        if ( ( dir == null || !dir.contains("${")) && ( mapping == null || !mapping.contains("${")) )
+        if ( ( dir == null || !dir.contains( "${" ) ) && ( mapping == null || !mapping.contains( "${" ) ) )
         {
             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: '"
-                            + dir
-                            + "'\nOutput filename mapping: '" + mapping + "'" );
+                + "THIS MAY RESULT IN ONE OR MORE ARTIFACTS BEING OBSCURED!\n\nOutput directory: '"
+                + dir
+                + "'\nOutput filename mapping: '" + mapping + "'" );
         }
     }
 
+    @SuppressWarnings( "ResultOfMethodCallIgnored" )
     private void addFilteredUnpackedArtifact( final DependencySet dependencySet, final Artifact depArtifact,
                                               final MavenProject depProject, final Archiver archiver,
                                               final AssemblerConfigurationSource configSource )
@@ -204,11 +215,7 @@ public class AddDependencySetsTask
         logger.debug( "Adding dependency artifact " + depArtifact.getId() + " after filtering the unpacked contents." );
 
         final StringBuilder sb =
-            new StringBuilder().append( depArtifact.getGroupId() )
-                               .append( "_" )
-                               .append( depArtifact.getArtifactId() )
-                               .append( "_" )
-                               .append( depArtifact.getVersion() );
+            new StringBuilder().append( depArtifact.getGroupId() ).append( "_" ).append( depArtifact.getArtifactId() ).append( "_" ).append( depArtifact.getVersion() );
 
         final String classifier = depArtifact.getClassifier();
         if ( classifier != null )
@@ -222,7 +229,7 @@ public class AddDependencySetsTask
         if ( dir.exists() )
         {
             logger.debug( "NOT unpacking: " + depArtifact.getId() + ". Directory already exists in workdir:\n\t"
-                            + dir.getAbsolutePath() );
+                + dir.getAbsolutePath() );
         }
         else
         {
@@ -236,7 +243,7 @@ public class AddDependencySetsTask
             catch ( final NoSuchArchiverException e )
             {
                 throw new ArchiveCreationException( "Failed to retrieve un-archiver for: " + depArtifact.getId()
-                                + ". Dependency filtering cannot proceed.", e );
+                    + ". Dependency filtering cannot proceed.", e );
             }
 
             unarchiver.setDestDirectory( dir );
@@ -251,7 +258,7 @@ public class AddDependencySetsTask
             catch ( final ArchiverException e )
             {
                 throw new ArchiveCreationException( "Failed to unpack dependency archive: " + depArtifact.getId()
-                                + ". Dependency filtering cannot proceed.", e );
+                    + ". Dependency filtering cannot proceed.", e );
             }
         }
 
@@ -351,7 +358,7 @@ public class AddDependencySetsTask
         return project;
     }
 
-    protected Set<Artifact> resolveDependencyArtifacts( final DependencySet dependencySet )
+    Set<Artifact> resolveDependencyArtifacts( final DependencySet dependencySet )
         throws InvalidAssemblerConfigurationException
     {
         final Set<Artifact> dependencyArtifacts = new LinkedHashSet<Artifact>();
@@ -370,7 +377,7 @@ public class AddDependencySetsTask
             else
             {
                 logger.warn( "Cannot include project artifact: " + projectArtifact
-                                + "; it doesn't have an associated file or directory." );
+                    + "; it doesn't have an associated file or directory." );
             }
         }
 
@@ -380,12 +387,16 @@ public class AddDependencySetsTask
             final List<Artifact> attachments = project.getAttachedArtifacts();
             if ( attachments != null )
             {
-                for (final Artifact attachment : attachments) {
-                    if (attachment.getFile() != null) {
-                        dependencyArtifacts.add(attachment);
-                    } else {
-                        logger.warn("Cannot include attached artifact: " + project.getId() + " for project: "
-                                + project.getId() + "; it doesn't have an associated file or directory.");
+                for ( final Artifact attachment : attachments )
+                {
+                    if ( attachment.getFile() != null )
+                    {
+                        dependencyArtifacts.add( attachment );
+                    }
+                    else
+                    {
+                        logger.warn( "Cannot include attached artifact: " + project.getId() + " for project: "
+                            + project.getId() + "; it doesn't have an associated file or directory." );
                     }
                 }
             }
@@ -409,9 +420,9 @@ public class AddDependencySetsTask
         return dependencyArtifacts;
     }
 
-    protected void addNonArchiveDependency( final Artifact depArtifact, final MavenProject depProject,
-                                            final DependencySet dependencySet, final Archiver archiver,
-                                            final AssemblerConfigurationSource configSource )
+    void addNonArchiveDependency( final Artifact depArtifact, final MavenProject depProject,
+                                  final DependencySet dependencySet, final Archiver archiver,
+                                  final AssemblerConfigurationSource configSource )
         throws AssemblyFormattingException, ArchiveCreationException
     {
         final File source = depArtifact.getFile();
@@ -467,31 +478,16 @@ public class AddDependencySetsTask
         return logger;
     }
 
-    public String getDefaultOutputDirectory()
-    {
-        return defaultOutputDirectory;
-    }
-
     public void setDefaultOutputDirectory( final String defaultOutputDirectory )
     {
         this.defaultOutputDirectory = defaultOutputDirectory;
     }
 
-    public String getDefaultOutputFileNameMapping()
-    {
-        return defaultOutputFileNameMapping;
-    }
-
     public void setDefaultOutputFileNameMapping( final String defaultOutputFileNameMapping )
     {
         this.defaultOutputFileNameMapping = defaultOutputFileNameMapping;
     }
 
-    public MavenProject getModuleProject()
-    {
-        return moduleProject;
-    }
-
     public void setModuleProject( final MavenProject moduleProject )
     {
         this.moduleProject = moduleProject;
@@ -501,9 +497,4 @@ public class AddDependencySetsTask
     {
         this.moduleArtifact = moduleArtifact;
     }
-
-    public Artifact getModuleArtifact()
-    {
-        return moduleArtifact;
-    }
 }

Modified: maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDirectoryTask.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDirectoryTask.java?rev=1633948&r1=1633947&r2=1633948&view=diff
==============================================================================
--- maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDirectoryTask.java (original)
+++ maven/plugins/branches/MASSEMBLY-704/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDirectoryTask.java Thu Oct 23 21:01:23 2014
@@ -19,12 +19,12 @@ package org.apache.maven.plugin.assembly
  * under the License.
  */
 
-import org.apache.maven.plugin.assembly.AssemblerConfigurationSource;
 import org.apache.maven.plugin.assembly.archive.ArchiveCreationException;
 import org.apache.maven.plugin.assembly.utils.AssemblyFormatUtils;
 import org.codehaus.plexus.archiver.Archiver;
 import org.codehaus.plexus.archiver.ArchiverException;
 import org.codehaus.plexus.archiver.util.DefaultFileSet;
+import org.codehaus.plexus.components.io.functions.InputStreamTransformer;
 
 import java.io.File;
 import java.util.ArrayList;
@@ -34,11 +34,12 @@ import java.util.List;
  * @version $Id$
  */
 public class AddDirectoryTask
-    implements ArchiverTask
 {
 
     private final File directory;
 
+    private final InputStreamTransformer transformer;
+
     private List<String> includes;
 
     private List<String> excludes;
@@ -51,12 +52,18 @@ public class AddDirectoryTask
 
     private int fileMode = -1;
 
-    public AddDirectoryTask( final File directory )
+    public AddDirectoryTask( final File directory, InputStreamTransformer transformers )
     {
         this.directory = directory;
+
+        this.transformer = transformers;
+    }
+    public AddDirectoryTask( final File directory )
+    {
+        this( directory, null);
     }
 
-    public void execute( final Archiver archiver, final AssemblerConfigurationSource configSource )
+    public void execute( final Archiver archiver )
         throws ArchiveCreationException
     {
         if ( ".".equals( outputDirectory ) )
@@ -66,7 +73,7 @@ public class AddDirectoryTask
         else if ( "..".equals( outputDirectory ) )
         {
             throw new ArchiveCreationException( "Cannot add source directory: " + directory + " to archive-path: "
-                            + outputDirectory + ". All paths must be within the archive root directory." );
+                + outputDirectory + ". All paths must be within the archive root directory." );
         }
 
         final int oldDirMode = archiver.getOverrideDirectoryMode();
@@ -111,16 +118,7 @@ public class AddDirectoryTask
                         int i = 0;
                         for ( String include : includes )
                         {
-                            String value = AssemblyFormatUtils.fixRelativeRefs( include );
-
-                            if ( value.startsWith( "/" ) || value.startsWith( "\\" ) )
-                            {
-                                value = value.substring( 1 );
-                            }
-
-                            includesArray[i] = value;
-
-                            i++;
+                            includesArray[i++] = normalize( include );
                         }
                     }
 
@@ -130,16 +128,7 @@ public class AddDirectoryTask
                     int i = 0;
                     for ( String directoryExclude : directoryExcludes )
                     {
-                        String value = AssemblyFormatUtils.fixRelativeRefs( directoryExclude );
-
-                        if ( value.startsWith( "/" ) || value.startsWith( "\\" ) )
-                        {
-                            value = value.substring( 1 );
-                        }
-
-                        excludesArray[i] = value;
-
-                        i++;
+                        excludesArray[i++] = normalize( directoryExclude );
                     }
 
                     final DefaultFileSet fs = new DefaultFileSet();
@@ -148,6 +137,9 @@ public class AddDirectoryTask
                     fs.setDirectory( directory );
                     fs.setIncludes( includesArray );
                     fs.setExcludes( excludesArray );
+                    if (transformer != null){
+                            fs.setStreamTransformer( transformer );
+                    }
 
                     archiver.addFileSet( fs );
                 }
@@ -171,6 +163,17 @@ public class AddDirectoryTask
         }
     }
 
+    private String normalize( String include )
+    {
+        String value = AssemblyFormatUtils.fixRelativeRefs( include );
+
+        if ( value.startsWith( "/" ) || value.startsWith( "\\" ) )
+        {
+            value = value.substring( 1 );
+        }
+        return value;
+    }
+
     public void setExcludes( final List<String> excludes )
     {
         this.excludes = excludes;