You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by kr...@apache.org on 2014/10/29 06:06:09 UTC

svn commit: r1635042 - in /maven/plugins/trunk/maven-assembly-plugin: ./ src/it/projects/dependency-sets/dependencySet-unpacked-filtered/ src/it/projects/dependency-sets/dependencySet-unpacked-filtered/child2/src/assemble/ src/main/java/org/apache/mave...

Author: krosenvold
Date: Wed Oct 29 05:06:08 2014
New Revision: 1635042

URL: http://svn.apache.org/r1635042
Log:
Reduced filtered/non-filtered to one code path

Added:
    maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/format/ReaderFormatterTest.java
Modified:
    maven/plugins/trunk/maven-assembly-plugin/pom.xml
    maven/plugins/trunk/maven-assembly-plugin/src/it/projects/dependency-sets/dependencySet-unpacked-filtered/child2/src/assemble/bin.xml
    maven/plugins/trunk/maven-assembly-plugin/src/it/projects/dependency-sets/dependencySet-unpacked-filtered/verify.bsh
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhase.java
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/ModuleSetAssemblyPhase.java
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddArtifactTask.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/format/ReaderFormatter.java
    maven/plugins/trunk/maven-assembly-plugin/src/main/mdo/component.mdo
    maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/ModuleSetAssemblyPhaseTest.java
    maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTaskTest.java
    maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddArtifactTask.java
    maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddDependencySetsTask.java

Modified: maven/plugins/trunk/maven-assembly-plugin/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/pom.xml?rev=1635042&r1=1635041&r2=1635042&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/pom.xml (original)
+++ maven/plugins/trunk/maven-assembly-plugin/pom.xml Wed Oct 29 05:06:08 2014
@@ -126,6 +126,12 @@ under the License.
       <groupId>org.codehaus.plexus</groupId>
       <artifactId>plexus-archiver</artifactId>
       <version>2.8.2</version>
+      <exclusions>
+        <exclusion>
+          <groupId>org.codehaus.plexus</groupId>
+          <artifactId>plexus-component-api</artifactId>
+        </exclusion>
+      </exclusions>
     </dependency>
     <dependency>
       <groupId>org.apache.maven.shared</groupId>

Modified: maven/plugins/trunk/maven-assembly-plugin/src/it/projects/dependency-sets/dependencySet-unpacked-filtered/child2/src/assemble/bin.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/projects/dependency-sets/dependencySet-unpacked-filtered/child2/src/assemble/bin.xml?rev=1635042&r1=1635041&r2=1635042&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/projects/dependency-sets/dependencySet-unpacked-filtered/child2/src/assemble/bin.xml (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/projects/dependency-sets/dependencySet-unpacked-filtered/child2/src/assemble/bin.xml Wed Oct 29 05:06:08 2014
@@ -32,7 +32,7 @@ under the License.
         <include>test:child1</include>
       </includes>
       
-      <outputDirectory>/</outputDirectory>
+      <outputDirectory>/zz</outputDirectory>
       <outputFileNameMapping>${artifact.artifactId}</outputFileNameMapping>
       
       <unpack>true</unpack>

Modified: maven/plugins/trunk/maven-assembly-plugin/src/it/projects/dependency-sets/dependencySet-unpacked-filtered/verify.bsh
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/projects/dependency-sets/dependencySet-unpacked-filtered/verify.bsh?rev=1635042&r1=1635041&r2=1635042&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/projects/dependency-sets/dependencySet-unpacked-filtered/verify.bsh (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/projects/dependency-sets/dependencySet-unpacked-filtered/verify.bsh Wed Oct 29 05:06:08 2014
@@ -21,7 +21,7 @@ import java.io.*;
 
 try
 {
-    File f = new File( basedir, "child2/target/child2-1-bin/child1/assembly-resources/test.txt" );
+    File f = new File( basedir, "child2/target/child2-1-bin/zz/assembly-resources/test.txt" );
     
     BufferedReader r = new BufferedReader( new FileReader( f ) );
     if ( r.readLine().equals( "Project Version: 1" ) )

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhase.java?rev=1635042&r1=1635041&r2=1635042&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhase.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhase.java Wed Oct 29 05:06:08 2014
@@ -77,7 +77,7 @@ public class DependencySetAssemblyPhase
     {
         final AddDependencySetsTask task =
             new AddDependencySetsTask( assembly.getDependencySets(), assembly.getResolvedDependencySetArtifacts(),
-                                       configSource.getProject(), projectBuilder, archiverManager, getLogger() );
+                                       configSource.getProject(), projectBuilder, getLogger() );
 
         task.execute( archiver, configSource );
     }

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/ModuleSetAssemblyPhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/ModuleSetAssemblyPhase.java?rev=1635042&r1=1635041&r2=1635042&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/ModuleSetAssemblyPhase.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/ModuleSetAssemblyPhase.java Wed Oct 29 05:06:08 2014
@@ -41,6 +41,7 @@ import org.apache.maven.plugin.assembly.
 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.format.ReaderFormatter;
 import org.apache.maven.plugin.assembly.model.DependencySet;
 import org.apache.maven.plugin.assembly.model.FileSet;
 import org.apache.maven.plugin.assembly.model.ModuleBinaries;
@@ -59,6 +60,7 @@ import org.codehaus.plexus.archiver.Arch
 import org.codehaus.plexus.archiver.manager.ArchiverManager;
 import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.component.annotations.Requirement;
+import org.codehaus.plexus.components.io.functions.InputStreamTransformer;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 import org.codehaus.plexus.logging.Logger;
 
@@ -196,6 +198,7 @@ public class ModuleSetAssemblyPhase
             }
         }
 
+
         final String classifier = binaries.getAttachmentClassifier();
 
         final Map<MavenProject, Artifact> chosenModuleArtifacts = new HashMap<MavenProject, Artifact>();
@@ -275,7 +278,7 @@ public class ModuleSetAssemblyPhase
 
                 final AddDependencySetsTask task =
                     new AddDependencySetsTask( depSets, resolvedModule.getArtifacts(), moduleProject, projectBuilder,
-                                               archiverManager, getLogger() );
+                                               getLogger() );
 
                 task.setModuleProject( moduleProject );
                 task.setModuleArtifact( chosenModuleArtifacts.get( moduleProject ) );

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddArtifactTask.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddArtifactTask.java?rev=1635042&r1=1635041&r2=1635042&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddArtifactTask.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddArtifactTask.java Wed Oct 29 05:06:08 2014
@@ -87,18 +87,13 @@ public class AddArtifactTask
     public void execute( final Archiver archiver, final AssemblerConfigurationSource configSource )
         throws ArchiveCreationException, AssemblyFormattingException
     {
-        // MASSEMBLY-282: We should support adding a project's standard output file as part of an assembly that replaces
-        // it.
         if (artifactIsArchiverDestination(archiver))
         {
-
             artifact.setFile(moveArtifactSomewhereElse(configSource));
         }
 
-        String destDirectory = outputDirectory;
-
-        destDirectory =
-            AssemblyFormatUtils.getOutputDirectory( destDirectory, configSource.getProject(), moduleProject, project,
+        String destDirectory =
+            AssemblyFormatUtils.getOutputDirectory( outputDirectory, configSource.getProject(), moduleProject, project,
                                                     configSource.getFinalName(), configSource );
 
         if ( unpack )
@@ -120,8 +115,6 @@ public class AddArtifactTask
             final int oldDirMode = archiver.getOverrideDirectoryMode();
             final int oldFileMode = archiver.getOverrideFileMode();
 
-            logger.debug( "Unpacking artifact: " + artifact.getId() + " to assembly location: " + outputLocation + "." );
-
             boolean fileModeSet = false;
             boolean dirModeSet = false;
 
@@ -153,7 +146,7 @@ public class AddArtifactTask
                     fs.setIncludes(includesArray);
                     fs.setExcludes(excludesArray);
                     fs.setPrefix( outputLocation);
-//                    fs.setStreamTransformer(transformer);
+                    fs.setStreamTransformer(transformer);
                     archiver.addFileSet(fs);
                 }
                 else
@@ -167,7 +160,7 @@ public class AddArtifactTask
                     afs.setIncludes(includesArray);
                     afs.setExcludes(excludesArray);
                     afs.setPrefix(outputLocation);
-                    //afs.setStreamTransformer(transformer);
+                    afs.setStreamTransformer(transformer);
                     archiver.addArchivedFileSet( afs );
                 }
             }
@@ -191,12 +184,13 @@ public class AddArtifactTask
         }
         else
         {
-            final String fileNameMapping =
+            final String tempMapping =
                 AssemblyFormatUtils.evaluateFileNameMapping( outputFileNameMapping, artifact,
                                                              configSource.getProject(), moduleProject, moduleArtifact,
                                                              project, configSource );
 
-            final String outputLocation = destDirectory + fileNameMapping;
+
+            final String outputLocation = destDirectory + tempMapping;
 
             try
             {

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=1635042&r1=1635041&r2=1635042&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 Wed Oct 29 05:06:08 2014
@@ -19,13 +19,6 @@ package org.apache.maven.plugin.assembly
  * under the License.
  */
 
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Set;
-
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.model.Dependency;
 import org.apache.maven.model.Model;
@@ -35,7 +28,6 @@ import org.apache.maven.plugin.assembly.
 import org.apache.maven.plugin.assembly.format.AssemblyFormattingException;
 import org.apache.maven.plugin.assembly.format.ReaderFormatter;
 import org.apache.maven.plugin.assembly.model.DependencySet;
-import org.apache.maven.plugin.assembly.model.FileSet;
 import org.apache.maven.plugin.assembly.model.UnpackOptions;
 import org.apache.maven.plugin.assembly.utils.AssemblyFormatUtils;
 import org.apache.maven.plugin.assembly.utils.FilterUtils;
@@ -46,12 +38,16 @@ import org.apache.maven.project.ProjectB
 import org.apache.maven.shared.artifact.filter.ScopeArtifactFilter;
 import org.codehaus.plexus.archiver.Archiver;
 import org.codehaus.plexus.archiver.ArchiverException;
-import org.codehaus.plexus.archiver.UnArchiver;
-import org.codehaus.plexus.archiver.manager.ArchiverManager;
-import org.codehaus.plexus.archiver.manager.NoSuchArchiverException;
 import org.codehaus.plexus.components.io.functions.InputStreamTransformer;
 import org.codehaus.plexus.logging.Logger;
 
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Set;
+
 /**
  * @version $Id$
  */
@@ -87,17 +83,14 @@ public class AddDependencySetsTask
 
     private final Set<Artifact> resolvedArtifacts;
 
-    private final ArchiverManager archiverManager;
 
     public AddDependencySetsTask( final List<DependencySet> dependencySets, final Set<Artifact> resolvedArtifacts,
-                                  final MavenProject project, final MavenProjectBuilder projectBuilder,
-                                  final ArchiverManager archiverManager, final Logger logger )
+                                  final MavenProject project, final MavenProjectBuilder projectBuilder, final Logger logger )
     {
         this.dependencySets = dependencySets;
         this.resolvedArtifacts = resolvedArtifacts;
         this.project = project;
         this.projectBuilder = projectBuilder;
-        this.archiverManager = archiverManager;
         this.logger = logger;
     }
 
@@ -137,21 +130,25 @@ public class AddDependencySetsTask
 
         final Set<Artifact> dependencyArtifacts = resolveDependencyArtifacts( dependencySet );
 
-        boolean filterContents = false;
         final UnpackOptions opts = dependencySet.getUnpackOptions();
         if ( dependencySet.isUnpack() && opts != null && ( opts.isFiltered() || opts.getLineEnding() != null ) )
         {
-            filterContents = true;
+            // find out if we can just ditch this empty block
         }
         else if ( dependencyArtifacts.size() > 1 )
         {
             checkMultiArtifactOutputConfig( dependencySet );
         }
-        InputStreamTransformer transformer = dependencySet.isUnpack() && opts != null ? ReaderFormatter.getFileSetTransformers(configSource, opts.isFiltered(),
-                opts.getLineEnding()) : null;
 
         logger.debug( "Adding " + dependencyArtifacts.size() + " dependency artifacts." );
 
+        InputStreamTransformer fileSetTransformers =
+            dependencySet.isUnpack() && dependencySet.getUnpackOptions() != null
+                ? ReaderFormatter.getFileSetTransformers( configSource, dependencySet.getUnpackOptions().isFiltered(),
+                                                          dependencySet.getUnpackOptions().getLineEnding() )
+                : null;
+
+
         for ( final Artifact depArtifact : dependencyArtifacts )
         {
             MavenProject depProject;
@@ -175,14 +172,7 @@ public class AddDependencySetsTask
             }
             else
             {
-                if ( filterContents )
-                {
-                    addFilteredUnpackedArtifact( dependencySet, depArtifact, depProject, archiver, configSource );
-                }
-                else
-                {
-                    addNormalArtifact( dependencySet, depArtifact, depProject, archiver, configSource, transformer );
-                }
+                addNormalArtifact( dependencySet, depArtifact, depProject, archiver, configSource, fileSetTransformers );
             }
         }
     }
@@ -210,113 +200,15 @@ public class AddDependencySetsTask
         }
     }
 
-    @SuppressWarnings( "ResultOfMethodCallIgnored" )
-    private void addFilteredUnpackedArtifact( final DependencySet dependencySet, final Artifact depArtifact,
-                                              final MavenProject depProject, final Archiver archiver,
-                                              final AssemblerConfigurationSource configSource )
-        throws ArchiveCreationException, AssemblyFormattingException
-    {
-        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() );
-
-        final String classifier = depArtifact.getClassifier();
-        if ( classifier != null )
-        {
-            sb.append( "_" ).append( classifier );
-        }
-
-        sb.append( "." ).append( depArtifact.getType() );
-
-        final File dir = new File( configSource.getWorkingDirectory(), sb.toString() );
-        if ( dir.exists() )
-        {
-            logger.debug( "NOT unpacking: " + depArtifact.getId() + ". Directory already exists in workdir:\n\t"
-                + dir.getAbsolutePath() );
-        }
-        else
-        {
-            dir.mkdirs();
-
-            UnArchiver unarchiver;
-            try
-            {
-                unarchiver = archiverManager.getUnArchiver( depArtifact.getFile() );
-            }
-            catch ( final NoSuchArchiverException e )
-            {
-                throw new ArchiveCreationException( "Failed to retrieve un-archiver for: " + depArtifact.getId()
-                    + ". Dependency filtering cannot proceed.", e );
-            }
-
-            unarchiver.setDestDirectory( dir );
-            unarchiver.setOverwrite( true );
-            unarchiver.setSourceFile( depArtifact.getFile() );
-            unarchiver.setIgnorePermissions( configSource.isIgnorePermissions() );
-
-            try
-            {
-                unarchiver.extract();
-            }
-            catch ( final ArchiverException e )
-            {
-                throw new ArchiveCreationException( "Failed to unpack dependency archive: " + depArtifact.getId()
-                    + ". Dependency filtering cannot proceed.", e );
-            }
-        }
-
-        final UnpackOptions opts = dependencySet.getUnpackOptions();
-
-        final FileSet fs = new FileSet();
-        fs.setDirectory( dir.getAbsolutePath() );
-        fs.setDirectoryMode( dependencySet.getDirectoryMode() );
-        fs.setExcludes( opts.getExcludes() );
-        fs.setFileMode( dependencySet.getFileMode() );
-        fs.setFiltered( opts.isFiltered() );
-        fs.setIncludes( opts.getIncludes() );
-
-        String outDir = dependencySet.getOutputDirectory();
-        if ( outDir == null )
-        {
-            outDir = defaultOutputDirectory;
-        }
-
-        // TODO: MASSEMBLY-691 root cause is here!
-
-        String filenameMapping = dependencySet.getOutputFileNameMapping();
-        if ( filenameMapping == null )
-        {
-            filenameMapping = defaultOutputFileNameMapping;
-        }
-
-        filenameMapping =
-            AssemblyFormatUtils.evaluateFileNameMapping( filenameMapping, depArtifact, configSource.getProject(),
-                                                         moduleProject, moduleArtifact, depProject, configSource );
-
-        final String outputLocation = new File( outDir, filenameMapping ).getPath();
-
-        fs.setOutputDirectory( outputLocation );
-
-        fs.setLineEnding( opts.getLineEnding() );
-        fs.setUseDefaultExcludes( opts.isUseDefaultExcludes() );
-
-        final AddFileSetsTask task = new AddFileSetsTask( fs );
-        task.setProject( depProject );
-        task.setModuleProject( moduleProject );
-        task.setLogger( logger );
-
-        task.execute( archiver, configSource );
-    }
-
-    private void addNormalArtifact(final DependencySet dependencySet, final Artifact depArtifact,
-                                   final MavenProject depProject, final Archiver archiver,
-                                   final AssemblerConfigurationSource configSource, InputStreamTransformer transformer)
+    private void addNormalArtifact( final DependencySet dependencySet, final Artifact depArtifact,
+                                    final MavenProject depProject, final Archiver archiver,
+                                    final AssemblerConfigurationSource configSource,
+                                    InputStreamTransformer fileSetTransformers )
         throws AssemblyFormattingException, ArchiveCreationException
     {
         logger.debug( "Adding dependency artifact " + depArtifact.getId() + "." );
 
-        final AddArtifactTask task = new AddArtifactTask( depArtifact, logger, transformer );
+        final AddArtifactTask task = new AddArtifactTask( depArtifact, logger, fileSetTransformers );
 
         task.setProject( depProject );
         task.setModuleProject( moduleProject );
@@ -346,6 +238,7 @@ public class AddDependencySetsTask
         }
 
         task.execute( archiver, configSource );
+
     }
 
     private MavenProject buildProjectStub( final Artifact depArtifact )

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/ReaderFormatter.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/ReaderFormatter.java?rev=1635042&r1=1635041&r2=1635042&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/ReaderFormatter.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/ReaderFormatter.java Wed Oct 29 05:06:08 2014
@@ -51,7 +51,8 @@ public class ReaderFormatter
 
             MavenReaderFilterRequest filterRequest =
                 new MavenReaderFilterRequest( source, true, configSource.getProject(), configSource.getFilters(),
-                                            isPropertiesFile, encoding, configSource.getMavenSession(), null );
+                                              isPropertiesFile, encoding, configSource.getMavenSession(), null );
+            filterRequest.setInjectProjectBuildFilters(true);
             filterRequest.setEscapeString( escapeString );
 
             // if these are NOT set, just use the defaults, which are '${*}' and '@'.
@@ -87,8 +88,10 @@ public class ReaderFormatter
         }
     }
 
-    public static @Nullable
-    InputStreamTransformer getFileSetTransformers( final AssemblerConfigurationSource configSource, final boolean isFiltered, String fileSetLineEnding )
+    public static
+    @Nullable
+    InputStreamTransformer getFileSetTransformers( final AssemblerConfigurationSource configSource,
+                                                   final boolean isFiltered, String fileSetLineEnding )
         throws AssemblyFormattingException
     {
         final String lineEndingHint = fileSetLineEnding;
@@ -106,16 +109,17 @@ public class ReaderFormatter
                     {
                         final String encoding = configSource.getEncoding();
 
-                        Reader source = encoding != null ? new InputStreamReader( inputStream, encoding )
+                        Reader source = encoding != null
+                            ? new InputStreamReader( inputStream, encoding )
                             : new InputStreamReader( inputStream ); // wtf platform encoding ? TODO: Fix this
                         try
                         {
-                            Reader filtered = createReaderFilter( source, plexusIoResource.getName(),
-                                                                                  configSource.getEncoding(),
-                                                                                  configSource.getEscapeString(),
-                                                                                  configSource.getDelimiters(),
-                                                                                  configSource );
-                            final ReaderInputStream readerInputStream = encoding != null ? new ReaderInputStream( filtered, encoding)
+                            Reader filtered =
+                                createReaderFilter( source, plexusIoResource.getName(), configSource.getEncoding(),
+                                                    configSource.getEscapeString(), configSource.getDelimiters(),
+                                                    configSource );
+                            final ReaderInputStream readerInputStream = encoding != null
+                                ? new ReaderInputStream( filtered, encoding )
                                 : new ReaderInputStream( filtered );
 
                             LineEndings lineEnding = LineEndingsUtils.getLineEnding( lineEndingHint );
@@ -129,7 +133,7 @@ public class ReaderFormatter
                         }
                         catch ( AssemblyFormattingException e )
                         {
-                            throw new IOException( e.getMessage());
+                            throw new IOException( e.getMessage() );
                         }
 
                     }

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/mdo/component.mdo
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/mdo/component.mdo?rev=1635042&r1=1635041&r2=1635042&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/mdo/component.mdo (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/mdo/component.mdo Wed Oct 29 05:06:08 2014
@@ -485,6 +485,8 @@
             Sets the mapping pattern for all dependencies included in this
             assembly. Default is ${artifact.artifactId}-${artifact.version}${dashClassifier?}.${artifact.extension}.
             (Since 2.2-beta-2; 2.2-beta-1 uses ${artifactId}-${version}${dashClassifier?}.${extension}).
+            NOTE: If the dependencySet specifies unpack == true, outputFileNameMapping WILL NOT BE USED; in these cases,
+            use outputDirectory.
             See the plugin FAQ for more details about entries usable in the outputFileNameMapping parameter.
           </description>
         </field>

Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/ModuleSetAssemblyPhaseTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/ModuleSetAssemblyPhaseTest.java?rev=1635042&r1=1635041&r2=1635042&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/ModuleSetAssemblyPhaseTest.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/ModuleSetAssemblyPhaseTest.java Wed Oct 29 05:06:08 2014
@@ -54,10 +54,13 @@ import java.util.Set;
 
 import junit.framework.Assert;
 import junit.framework.TestCase;
+import org.easymock.classextension.EasyMock;
 import org.easymock.classextension.EasyMockSupport;
 
 import static java.util.Collections.singleton;
 import static org.apache.maven.plugin.assembly.resolved.ResolvedModuleSet.createResolvedModuleSet;
+import static org.easymock.EasyMock.anyInt;
+import static org.easymock.EasyMock.anyObject;
 
 
 public class ModuleSetAssemblyPhaseTest
@@ -479,168 +482,6 @@ public class ModuleSetAssemblyPhaseTest
         mm.verifyAll();
     }
 
-    public void testAddModuleBinaries_ShouldAddOneModuleArtifactAndWithOneDepArtifact()
-        throws ArchiveCreationException, AssemblyFormattingException, IOException,
-        InvalidAssemblerConfigurationException
-    {
-        final EasyMockSupport mm = new EasyMockSupport();
-
-        final MockAndControlForAddDependencySetsTask macTask = new MockAndControlForAddDependencySetsTask( mm );
-
-        final ArtifactMock artifactMock = new ArtifactMock( mm, "group", "artifact", "version", "jar", false );
-        final File artifactFile = artifactMock.setNewFile();
-
-        macTask.expectCSGetFinalName( "final-name" );
-        macTask.expectGetDestFile( new File( "junk" ) );
-        macTask.expectAddFile( artifactFile, "out/artifact",
-                               TypeConversionUtils.modeToInt( "777", new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) ) );
-        macTask.expectGetSession( null );
-
-        final ModuleBinaries binaries = new ModuleBinaries();
-
-        binaries.setUnpack( false );
-        binaries.setFileMode( "777" );
-        binaries.setOutputDirectory( "out" );
-        binaries.setOutputFileNameMapping( "artifact" );
-
-        final DependencySet ds = new DependencySet();
-        ds.setUseProjectArtifact( false );
-        ds.setOutputDirectory( binaries.getOutputDirectory() );
-        ds.setOutputFileNameMapping( "${artifact.artifactId}" );
-        ds.setFileMode( "777" );
-
-        binaries.addDependencySet( ds );
-
-        final MavenProject project = createProject( "group", "artifact", "version", null );
-        project.setArtifact( artifactMock.getArtifact() );
-
-        final ArtifactMock depArtifactMock = new ArtifactMock( mm, "group", "dep", "1", "jar", false );
-        final File depArtifactFile = depArtifactMock.setNewFile();
-
-        macTask.expectAddFile( depArtifactFile, "out/dep",
-                               TypeConversionUtils.modeToInt( "777", new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) ) );
-
-        final MavenProject depProject = createProject( "group", "dep", "version", null );
-        depProject.setArtifact( depArtifactMock.getArtifact() );
-
-        macTask.expectBuildFromRepository( depProject );
-
-        macTask.expectCSGetRepositories( null, null );
-
-        final Set<MavenProject> projects = singleton( project );
-
-        mm.replayAll();
-
-        final Logger overrideLogger = new ConsoleLogger( Logger.LEVEL_DEBUG, "test" );
-
-        final ModuleSetAssemblyPhase phase = createPhase( overrideLogger, macTask );
-
-        final ResolvedModuleSet rms = ResolvedModuleSet.empty( ).withArtifacts(
-            Collections.singleton( depArtifactMock.getArtifact() ) );
-
-
-        phase.addModuleBinaries( rms, binaries, projects, macTask.archiver, macTask.configSource );
-
-        mm.verifyAll();
-    }
-
-    public void testAddModuleBinaries_ShouldAddOneModuleArtifactAndWithOneDepArtifactUsingImpliedDepSet()
-        throws ArchiveCreationException, AssemblyFormattingException, IOException,
-        InvalidAssemblerConfigurationException
-    {
-        final EasyMockSupport mm = new EasyMockSupport();
-
-        final MockAndControlForAddDependencySetsTask macTask = new MockAndControlForAddDependencySetsTask( mm );
-
-        final ArtifactMock moduleArtifactMock = new ArtifactMock( mm, "group", "artifact", "0", "jar", false );
-        final File moduleArtifactFile = moduleArtifactMock.setNewFile();
-
-        macTask.expectCSGetFinalName( "final-name" );
-        macTask.expectGetDestFile( new File( "junk" ) );
-
-        final int mode = TypeConversionUtils.modeToInt( "777", new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) );
-
-        macTask.expectAddFile( moduleArtifactFile, "out/artifact", mode );
-        macTask.expectGetSession( null );
-
-        final ModuleBinaries binaries = new ModuleBinaries();
-
-        binaries.setUnpack( false );
-        binaries.setFileMode( "777" );
-        binaries.setOutputDirectory( "out" );
-        binaries.setOutputFileNameMapping( "${artifact.artifactId}" );
-        binaries.setIncludeDependencies( true );
-
-        final MavenProject project = createProject( "group", "artifact", "version", null );
-        project.setArtifact( moduleArtifactMock.getArtifact() );
-
-        final ArtifactMock depArtifactMock = new ArtifactMock( mm, "group", "dep", "1", "jar", false );
-        final File depArtifactFile = depArtifactMock.setNewFile();
-
-        macTask.expectAddFile( depArtifactFile, "out/dep", mode );
-
-        final MavenProject depProject = createProject( "group", "dep", "version", null );
-        depProject.setArtifact( depArtifactMock.getArtifact() );
-
-        macTask.expectBuildFromRepository( depProject );
-
-        macTask.expectCSGetRepositories( null, null );
-
-        final Set<MavenProject> projects = singleton( project );
-
-        mm.replayAll();
-
-        final Logger overrideLogger = new ConsoleLogger( Logger.LEVEL_DEBUG, "test" );
-
-        final ModuleSetAssemblyPhase phase = createPhase( overrideLogger, macTask );
-
-        ResolvedModuleSet ms = ResolvedModuleSet.empty().withArtifacts( singleton( depArtifactMock.getArtifact() ) );
-
-        phase.addModuleBinaries( ms, binaries, projects, macTask.archiver, macTask.configSource );
-
-        mm.verifyAll();
-    }
-
-    // public void testCollectExcludesFromQueuedArtifacts_ShouldAddOneExclusion()
-    // {
-    // MockManager mm = new MockManager();
-    //
-    // List excludes = new ArrayList();
-    //
-    // // nothing up this sleeve...
-    // assertTrue( excludes.isEmpty() );
-    //
-    // mm.replayAll();
-    //
-    // Set artifactIds = Collections.singleton( "group:artifact:jar" );
-    //
-    // List result = createPhase( new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ), null )
-    // .collectExcludesFromQueuedArtifacts( artifactIds, excludes );
-    //
-    // assertEquals( 1, result.size() );
-    //
-    // assertEquals( "group:artifact:jar", result.get( 0 ) );
-    //
-    // mm.verifyAll();
-    // }
-    //
-    // public void testCollectExcludesFromQueuedArtifacts_ShouldHandleNullExcludesList()
-    // {
-    // MockManager mm = new MockManager();
-    //
-    // mm.replayAll();
-    //
-    // Set artifactIds = Collections.singleton( "group:artifact:jar" );
-    //
-    // List result = createPhase( new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ), null )
-    // .collectExcludesFromQueuedArtifacts( artifactIds, null );
-    //
-    // assertEquals( 1, result.size() );
-    //
-    // assertEquals( "group:artifact:jar", result.get( 0 ) );
-    //
-    // mm.verifyAll();
-    // }
 
     public void testAddModuleArtifact_ShouldThrowExceptionWhenArtifactFileIsNull()
         throws AssemblyFormattingException, IOException

Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTaskTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTaskTest.java?rev=1635042&r1=1635041&r2=1635042&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTaskTest.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTaskTest.java Wed Oct 29 05:06:08 2014
@@ -110,7 +110,7 @@ public class AddDependencySetsTaskTest
         final AddDependencySetsTask task =
             new AddDependencySetsTask( Collections.singletonList( ds ),
                                        Collections.singleton( depArtifactMock.getArtifact() ), depProject,
-                                       macTask.projectBuilder, macTask.archiverManager, logger );
+                                       macTask.projectBuilder, logger );
 
         task.addDependencySet( ds, macTask.archiver, macTask.configSource );
 
@@ -132,8 +132,7 @@ public class AddDependencySetsTaskTest
         final Logger logger = new ConsoleLogger( Logger.LEVEL_DEBUG, "test" );
 
         final AddDependencySetsTask task =
-            new AddDependencySetsTask( Collections.singletonList( ds ), null, project, macTask.projectBuilder,
-                                       macTask.archiverManager, logger );
+            new AddDependencySetsTask( Collections.singletonList( ds ), null, project, macTask.projectBuilder, logger );
 
         task.addDependencySet( ds, null, macTask.configSource );
 
@@ -182,7 +181,7 @@ public class AddDependencySetsTaskTest
 
         final AddDependencySetsTask task =
             new AddDependencySetsTask( Collections.singletonList( ds ), Collections.singleton( depMock.getArtifact() ),
-                                       project, macTask.projectBuilder, macTask.archiverManager, logger );
+                                       project, macTask.projectBuilder, logger );
 
         task.addDependencySet( ds, macTask.archiver, macTask.configSource );
 
@@ -249,7 +248,7 @@ public class AddDependencySetsTaskTest
         final AddDependencySetsTask task =
             new AddDependencySetsTask( Collections.singletonList( ds ),
                                        Collections.singleton( artifactMock.getArtifact() ), project,
-                                       macTask.projectBuilder, macTask.archiverManager, logger );
+                                       macTask.projectBuilder, logger );
 
         mockManager.replayAll();
 
@@ -278,7 +277,7 @@ public class AddDependencySetsTaskTest
         final AddDependencySetsTask task =
             new AddDependencySetsTask( Collections.singletonList( dependencySet ),
                                        Collections.singleton( artifactMock.getArtifact() ), project,
-                                       macTask.projectBuilder, macTask.archiverManager, logger );
+                                       macTask.projectBuilder, logger );
 
         final Set<Artifact> result = task.resolveDependencyArtifacts( dependencySet );
 
@@ -315,8 +314,7 @@ public class AddDependencySetsTaskTest
         mockManager.replayAll();
 
         final AddDependencySetsTask task =
-            new AddDependencySetsTask( Collections.singletonList( dependencySet ), artifacts, project, null, null,
-                                       logger );
+            new AddDependencySetsTask( Collections.singletonList( dependencySet ), artifacts, project, null, logger );
 
         final Set<Artifact> result = task.resolveDependencyArtifacts( dependencySet );
 
@@ -351,8 +349,7 @@ public class AddDependencySetsTaskTest
         mockManager.replayAll();
 
         final AddDependencySetsTask task =
-            new AddDependencySetsTask( Collections.singletonList( dependencySet ), artifacts, project, null, null,
-                                       logger );
+            new AddDependencySetsTask( Collections.singletonList( dependencySet ), artifacts, project, null, logger );
 
         final Set<Artifact> result = task.resolveDependencyArtifacts( dependencySet );
 

Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddArtifactTask.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddArtifactTask.java?rev=1635042&r1=1635041&r2=1635042&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddArtifactTask.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddArtifactTask.java Wed Oct 29 05:06:08 2014
@@ -32,6 +32,7 @@ import org.codehaus.plexus.archiver.Arch
 import org.easymock.EasyMock;
 import org.easymock.classextension.EasyMockSupport;
 
+import static org.easymock.EasyMock.anyInt;
 import static org.easymock.EasyMock.anyObject;
 import static org.easymock.EasyMock.expect;
 
@@ -129,8 +130,8 @@ public class MockAndControlForAddArtifac
     {
         try
         {
-            archiver.addFile( file, outputLocation, fileMode );
-            EasyMock.expectLastCall().atLeastOnce();
+            archiver.addFile( (File)anyObject(), (String) anyObject(), anyInt() );
+            EasyMock.expectLastCall().anyTimes();
         }
         catch ( final ArchiverException e )
         {

Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddDependencySetsTask.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddDependencySetsTask.java?rev=1635042&r1=1635041&r2=1635042&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddDependencySetsTask.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddDependencySetsTask.java Wed Oct 29 05:06:08 2014
@@ -39,6 +39,7 @@ import org.codehaus.plexus.archiver.mana
 import org.easymock.EasyMock;
 import org.easymock.classextension.EasyMockSupport;
 
+import static org.easymock.EasyMock.anyInt;
 import static org.easymock.EasyMock.anyObject;
 import static org.easymock.EasyMock.expect;
 
@@ -141,6 +142,18 @@ public class MockAndControlForAddDepende
         }
     }
 
+    public void expectAddAnyFile(  )
+    {
+        try
+        {
+            archiver.addFile( (File) anyObject(), (String) anyObject(), anyInt());
+        }
+        catch ( final ArchiverException e )
+        {
+            Assert.fail( "Should never happen." );
+        }
+    }
+
     public void expectGetReactorProjects( final List<MavenProject> projects )
     {
         expect(configSource.getReactorProjects()).andReturn( projects ).anyTimes();

Added: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/format/ReaderFormatterTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/format/ReaderFormatterTest.java?rev=1635042&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/format/ReaderFormatterTest.java (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/format/ReaderFormatterTest.java Wed Oct 29 05:06:08 2014
@@ -0,0 +1,23 @@
+package org.apache.maven.plugin.assembly.format;
+
+import org.apache.maven.plugin.assembly.AssemblerConfigurationSource;
+import org.apache.maven.plugin.assembly.testutils.ConfigSourceStub;
+import org.codehaus.plexus.components.io.functions.InputStreamTransformer;
+import org.junit.Ignore;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+public class ReaderFormatterTest
+{
+
+    @Test
+    @Ignore
+    public void testGetFileSetTransformers()
+        throws Exception
+    {
+        final AssemblerConfigurationSource assemblerConfigurationSource =  new ConfigSourceStub();
+        ReaderFormatter.getFileSetTransformers( assemblerConfigurationSource, true, "\r\n" );
+    }
+
+}
\ No newline at end of file