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/16 20:25:08 UTC

svn commit: r1632405 - in /maven/plugins/trunk/maven-assembly-plugin/src: main/java/org/apache/maven/plugin/assembly/ main/java/org/apache/maven/plugin/assembly/archive/ main/java/org/apache/maven/plugin/assembly/archive/phase/ main/java/org/apache/mav...

Author: krosenvold
Date: Thu Oct 16 18:25:08 2014
New Revision: 1632405

URL: http://svn.apache.org/r1632405
Log:
Refactored assembly building logic with slightly more powerful building blocks and a little more correctness

Added:
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/resolved/
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/resolved/AssemblyId.java
      - copied, changed from r1632404, maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/AssemblyContext.java
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/resolved/ResolvedAssembly.java
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/resolved/ResolvedModuleSet.java
      - copied, changed from r1632404, maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/DefaultAssemblyContext.java
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/resolved/functions/
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/resolved/functions/ResolvedModuleSetConsumer.java
      - copied, changed from r1632404, maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/DefaultAssemblyContext.java
Removed:
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/AssemblyContext.java
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/DefaultAssemblyContext.java
Modified:
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiver.java
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/AssemblyArchiverPhase.java
    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/FileItemAssemblyPhase.java
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/FileSetAssemblyPhase.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/phase/RepositoryAssemblyPhase.java
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/artifact/DefaultDependencyResolver.java
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/artifact/DependencyResolver.java
    maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiverTest.java
    maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhaseTest.java
    maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/FileItemAssemblyPhaseTest.java
    maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/FileSetAssemblyPhaseTest.java
    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/phase/RepositoryAssemblyPhaseTest.java
    maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/artifact/DefaultDependencyResolverTest.java

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiver.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiver.java?rev=1632405&r1=1632404&r2=1632405&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiver.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiver.java Thu Oct 16 18:25:08 2014
@@ -27,11 +27,11 @@ import java.lang.reflect.Method;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
+import org.apache.maven.artifact.Artifact;
 import org.apache.maven.plugin.DebugConfigurationListener;
 import org.apache.maven.plugin.assembly.AssemblerConfigurationSource;
-import org.apache.maven.plugin.assembly.AssemblyContext;
-import org.apache.maven.plugin.assembly.DefaultAssemblyContext;
 import org.apache.maven.plugin.assembly.InvalidAssemblerConfigurationException;
 import org.apache.maven.plugin.assembly.archive.archiver.AssemblyProxyArchiver;
 import org.apache.maven.plugin.assembly.archive.phase.AssemblyArchiverPhase;
@@ -43,6 +43,9 @@ import org.apache.maven.plugin.assembly.
 import org.apache.maven.plugin.assembly.interpolation.AssemblyExpressionEvaluator;
 import org.apache.maven.plugin.assembly.model.Assembly;
 import org.apache.maven.plugin.assembly.model.ContainerDescriptorHandlerConfig;
+import org.apache.maven.plugin.assembly.model.ModuleSet;
+import org.apache.maven.plugin.assembly.resolved.ResolvedAssembly;
+import org.apache.maven.plugin.assembly.resolved.ResolvedModuleSet;
 import org.apache.maven.plugin.assembly.utils.AssemblyFileUtils;
 import org.apache.maven.plugin.assembly.utils.AssemblyFormatUtils;
 import org.codehaus.plexus.PlexusConstants;
@@ -172,13 +175,27 @@ public class DefaultAssemblyArchiver
 
             archiver.setDestFile( destFile );
 
-            final AssemblyContext context = new DefaultAssemblyContext();
+            List<ResolvedModuleSet> resolvedModuleSets = new ArrayList<ResolvedModuleSet>(  );
+            for ( ModuleSet moduleSet : assembly.getModuleSets() )
+            {
+                resolvedModuleSets.add( dependencyResolver.resolve( assembly, moduleSet, configSource ));
+            }
+
+            // OK, this piece of code contains all the stuff left after I extracted resolvedModuleSets.
+            // this can probably be simplified quite a lot, since the module sets now have their
+            // own artifact resolution.
+            final Set<Artifact> dependencySetArtifacts =
+                dependencyResolver.resolve( assembly, configSource );
+
+            final ResolvedAssembly resolvedAssembly = ResolvedAssembly
+                .create( assembly )
+                .withResolvedModuleSets( resolvedModuleSets )
+                .withDependencySetArtifacts(dependencySetArtifacts);
 
-            dependencyResolver.resolve( assembly, configSource, context );
 
             for ( AssemblyArchiverPhase phase : assemblyPhases )
             {
-                phase.execute( assembly, archiver, configSource, context );
+                phase.execute( resolvedAssembly, archiver, configSource );
             }
 
             archiver.createArchive();

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/AssemblyArchiverPhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/AssemblyArchiverPhase.java?rev=1632405&r1=1632404&r2=1632405&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/AssemblyArchiverPhase.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/AssemblyArchiverPhase.java Thu Oct 16 18:25:08 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;
 
 /**
@@ -39,17 +38,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
+*            The configuration for this assembly build, normally derived from the plugin that launched the assembly
+*            process.
      */
-    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/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=1632405&r1=1632404&r2=1632405&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 Thu Oct 16 18:25:08 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;
@@ -65,12 +64,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/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/FileItemAssemblyPhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/FileItemAssemblyPhase.java?rev=1632405&r1=1632404&r2=1632405&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/FileItemAssemblyPhase.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/FileItemAssemblyPhase.java Thu Oct 16 18:25:08 2014
@@ -23,12 +23,11 @@ import java.io.File;
 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;
@@ -50,8 +49,8 @@ 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();

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/FileSetAssemblyPhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/FileSetAssemblyPhase.java?rev=1632405&r1=1632404&r2=1632405&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/FileSetAssemblyPhase.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/FileSetAssemblyPhase.java Thu Oct 16 18:25:08 2014
@@ -22,12 +22,11 @@ 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;
@@ -46,8 +45,8 @@ public class FileSetAssemblyPhase
     /**
      * {@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<FileSet> fileSets = assembly.getFileSets();

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=1632405&r1=1632404&r2=1632405&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 Thu Oct 16 18:25:08 2014
@@ -35,19 +35,20 @@ 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;
@@ -95,23 +96,26 @@ 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 )
@@ -155,9 +159,8 @@ public class ModuleSetAssemblyPhase
         }
     }
 
-    protected void addModuleBinaries( final ModuleBinaries binaries, final Set<MavenProject> projects,
-                                      final Archiver archiver, final AssemblerConfigurationSource configSource,
-                                      final AssemblyContext context )
+    protected void addModuleBinaries( ResolvedModuleSet resolvedModule, final ModuleBinaries binaries, final Set<MavenProject> projects,
+                                      final Archiver archiver, final AssemblerConfigurationSource configSource )
         throws ArchiveCreationException, AssemblyFormattingException, InvalidAssemblerConfigurationException
     {
         if ( binaries == null )
@@ -247,7 +250,7 @@ public class ModuleSetAssemblyPhase
                 getLogger().debug("Processing binary dependencies for module project: " + moduleProject.getId());
 
                 final AddDependencySetsTask task =
-                        new AddDependencySetsTask(depSets, context.getResolvedArtifacts(), moduleProject, projectBuilder,
+                        new AddDependencySetsTask(depSets, resolvedModule.getArtifacts(), moduleProject, projectBuilder,
                                 archiverManager, getLogger());
 
                 task.setModuleProject(moduleProject);

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/RepositoryAssemblyPhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/RepositoryAssemblyPhase.java?rev=1632405&r1=1632404&r2=1632405&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/RepositoryAssemblyPhase.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/RepositoryAssemblyPhase.java Thu Oct 16 18:25:08 2014
@@ -23,15 +23,14 @@ import java.io.File;
 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;
@@ -69,8 +68,8 @@ public class RepositoryAssemblyPhase
     /**
      * {@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<Repository> repositoriesList = assembly.getRepositories();

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/artifact/DefaultDependencyResolver.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/artifact/DefaultDependencyResolver.java?rev=1632405&r1=1632404&r2=1632405&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/artifact/DefaultDependencyResolver.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/artifact/DefaultDependencyResolver.java Thu Oct 16 18:25:08 2014
@@ -38,7 +38,6 @@ import org.apache.maven.artifact.resolve
 import org.apache.maven.artifact.resolver.MultipleArtifactsNotFoundException;
 import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
 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.phase.ModuleSetAssemblyPhase;
 import org.apache.maven.plugin.assembly.model.Assembly;
@@ -46,6 +45,8 @@ import org.apache.maven.plugin.assembly.
 import org.apache.maven.plugin.assembly.model.ModuleBinaries;
 import org.apache.maven.plugin.assembly.model.ModuleSet;
 import org.apache.maven.plugin.assembly.model.Repository;
+import org.apache.maven.plugin.assembly.resolved.AssemblyId;
+import org.apache.maven.plugin.assembly.resolved.ResolvedModuleSet;
 import org.apache.maven.plugin.assembly.utils.FilterUtils;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.project.artifact.InvalidDependencyVersionException;
@@ -74,41 +75,32 @@ public class DefaultDependencyResolver
     @Requirement
     private ArtifactFactory factory;
 
-    @Requirement
-    private ArtifactCollector collector;
-
     public DefaultDependencyResolver()
     {
         // for plexus init
     }
 
     protected DefaultDependencyResolver( final ArtifactResolver resolver, final ArtifactMetadataSource metadataSource,
-                                         final ArtifactFactory factory, final ArtifactCollector collector,
-                                         final Logger logger )
+                                         final ArtifactFactory factory, final Logger logger )
     {
         this.resolver = resolver;
         this.metadataSource = metadataSource;
         this.factory = factory;
-        this.collector = collector;
-
         enableLogging( logger );
     }
 
-    public void resolve( final Assembly assembly, final AssemblerConfigurationSource configSource,
-                         final AssemblyContext context )
+    public Set<Artifact> resolve( final Assembly assembly, final AssemblerConfigurationSource configSource )
         throws DependencyResolutionException
     {
         final MavenProject currentProject = configSource.getProject();
 
         final ResolutionManagementInfo info = new ResolutionManagementInfo( currentProject );
-        updateRepositoryResolutionRequirements(assembly, info, currentProject);
-        updateDependencySetResolutionRequirements(assembly, assembly.getDependencySets(), info, currentProject);
-        updateModuleSetResolutionRequirements(assembly, info, configSource);
+        updateRepositoryResolutionRequirements( assembly, info );
+        updateDependencySetResolutionRequirements( assembly.getDependencySets(), info,  AssemblyId.createAssemblyId( assembly), currentProject );
 
         if ( !info.isResolutionRequired() )
         {
-            context.setResolvedArtifacts( new HashSet<Artifact>() );
-            return;
+            return new HashSet<Artifact>() ;
         }
 
         final List<ArtifactRepository> repos =
@@ -122,11 +114,48 @@ public class DefaultDependencyResolver
         }
         else
         {
-            getLogger().debug( "Resolving project dependencies ONLY. Transitive dependencies WILL NOT be included in the results." );
+            getLogger().debug(
+                "Resolving project dependencies ONLY. Transitive dependencies WILL NOT be included in the results." );
             artifacts = resolveNonTransitively( assembly, artifacts, configSource, repos );
         }
 
-        context.setResolvedArtifacts( artifacts );
+        return artifacts;
+    }
+
+    public ResolvedModuleSet resolve( final Assembly assembly, ModuleSet moduleSet, final AssemblerConfigurationSource configSource )
+        throws DependencyResolutionException
+    {
+        final MavenProject currentProject = configSource.getProject();
+
+        final ResolutionManagementInfo info = new ResolutionManagementInfo( currentProject );
+        updateRepositoryResolutionRequirements( assembly, info );
+        final AssemblyId assemblyId = AssemblyId.createAssemblyId( assembly );
+        updateDependencySetResolutionRequirements( assembly.getDependencySets(), info, assemblyId, currentProject );
+        updateModuleSetResolutionRequirements( assemblyId, moduleSet, info, configSource );
+
+        ResolvedModuleSet base = ResolvedModuleSet.createResolvedModuleSet( moduleSet );
+        if ( !info.isResolutionRequired() )
+        {
+            return base.withArtifacts( new HashSet<Artifact>());
+        }
+
+        final List<ArtifactRepository> repos =
+            aggregateRemoteArtifactRepositories( configSource.getRemoteRepositories(), info.getEnabledProjects() );
+
+        Set<Artifact> artifacts = info.getArtifacts();
+        if ( info.isResolvedTransitively() )
+        {
+            getLogger().debug( "Resolving project dependencies transitively." );
+            artifacts = resolveTransitively( artifacts, repos, info, configSource );
+        }
+        else
+        {
+            getLogger().debug(
+                "Resolving project dependencies ONLY. Transitive dependencies WILL NOT be included in the results." );
+            artifacts = resolveNonTransitively( assembly, artifacts, configSource, repos );
+        }
+
+        return base.withArtifacts( artifacts);
     }
 
     protected Set<Artifact> resolveNonTransitively( final Assembly assembly, final Set<Artifact> dependencyArtifacts,
@@ -137,22 +166,30 @@ public class DefaultDependencyResolver
 
         final List<Artifact> missing = new ArrayList<Artifact>();
         final Set<Artifact> resolved = new LinkedHashSet<Artifact>();
-        for (final Artifact depArtifact : dependencyArtifacts) {
-            try {
-                resolver.resolve(depArtifact, repos, configSource.getLocalRepository());
-                resolved.add(depArtifact);
-            } catch (final ArtifactResolutionException e) {
-                if (getLogger().isDebugEnabled()) {
-                    getLogger().debug("Failed to resolve: " + depArtifact.getId() + " for assembly: "
-                            + assembly.getId());
+        for ( final Artifact depArtifact : dependencyArtifacts )
+        {
+            try
+            {
+                resolver.resolve( depArtifact, repos, configSource.getLocalRepository() );
+                resolved.add( depArtifact );
+            }
+            catch ( final ArtifactResolutionException e )
+            {
+                if ( getLogger().isDebugEnabled() )
+                {
+                    getLogger().debug(
+                        "Failed to resolve: " + depArtifact.getId() + " for assembly: " + assembly.getId() );
                 }
-                missing.add(depArtifact);
-            } catch (final ArtifactNotFoundException e) {
-                if (getLogger().isDebugEnabled()) {
-                    getLogger().debug("Failed to resolve: " + depArtifact.getId() + " for assembly: "
-                            + assembly.getId());
+                missing.add( depArtifact );
+            }
+            catch ( final ArtifactNotFoundException e )
+            {
+                if ( getLogger().isDebugEnabled() )
+                {
+                    getLogger().debug(
+                        "Failed to resolve: " + depArtifact.getId() + " for assembly: " + assembly.getId() );
                 }
-                missing.add(depArtifact);
+                missing.add( depArtifact );
             }
         }
 
@@ -186,10 +223,9 @@ public class DefaultDependencyResolver
         ArtifactResolutionResult result;
         try
         {
-            result =
-                resolver.resolveTransitively( dependencyArtifacts, project.getArtifact(),
-                                              project.getManagedVersionMap(), localRepository, repos, metadataSource,
-                                              filter );
+            result = resolver.resolveTransitively( dependencyArtifacts, project.getArtifact(),
+                                                   project.getManagedVersionMap(), localRepository, repos,
+                                                   metadataSource, filter );
         }
         catch ( final ArtifactResolutionException e )
         {
@@ -207,9 +243,8 @@ public class DefaultDependencyResolver
         return result.getArtifacts();
     }
 
-    protected void updateRepositoryResolutionRequirements(final Assembly assembly,
-            final ResolutionManagementInfo requirements,
-            final MavenProject... project)
+    protected void updateRepositoryResolutionRequirements( final Assembly assembly,
+                                                           final ResolutionManagementInfo requirements )
     {
         final List<Repository> repositories = assembly.getRepositories();
 
@@ -223,9 +258,9 @@ public class DefaultDependencyResolver
         }
     }
 
-    protected void updateModuleSetResolutionRequirements(final Assembly assembly,
-            final ResolutionManagementInfo requirements,
-            final AssemblerConfigurationSource configSource)
+    protected void updateModuleSetResolutionRequirements( final Assembly assembly,
+                                                          final ResolutionManagementInfo requirements,
+                                                          final AssemblerConfigurationSource configSource )
         throws DependencyResolutionException
     {
         final List<ModuleSet> moduleSets = assembly.getModuleSets();
@@ -234,54 +269,61 @@ public class DefaultDependencyResolver
         {
             for ( final ModuleSet set : moduleSets )
             {
-                final ModuleBinaries binaries = set.getBinaries();
-                if ( binaries != null )
-                {
-                    Set<MavenProject> projects;
-                    try
-                    {
-                        projects = ModuleSetAssemblyPhase.getModuleProjects( set, configSource, getLogger() );
-                    }
-                    catch ( final ArchiveCreationException e )
-                    {
-                        throw new DependencyResolutionException(
-                                                                 "Error determining project-set for moduleSet with binaries.",
-                                                                 e );
-                    }
+                updateModuleSetResolutionRequirements( AssemblyId.createAssemblyId( assembly.getId() ), set,
+                                                       requirements, configSource );
+            }
+        }
+    }
 
-                    if (!projects.isEmpty())
-                    {
-                        for ( final MavenProject p : projects )
-                        {
-                            requirements.enableProjectResolution( p );
-
-                            if ( p.getArtifact() == null )
-                            {
-                                // TODO: such a call in MavenMetadataSource too - packaging not really the intention of
-                                // type
-                                final Artifact artifact =
-                                    factory.createBuildArtifact( p.getGroupId(), p.getArtifactId(), p.getVersion(),
-                                                                 p.getPackaging() );
-                                p.setArtifact( artifact );
-                            }
-                        }
-                    }
+    protected void updateModuleSetResolutionRequirements( AssemblyId assemblyId, ModuleSet set, final ResolutionManagementInfo requirements,
+                                                          final AssemblerConfigurationSource configSource )
+        throws DependencyResolutionException
+    {
+        final ModuleBinaries binaries = set.getBinaries();
+        if ( binaries != null )
+        {
+            Set<MavenProject> projects;
+            try
+            {
+                projects = ModuleSetAssemblyPhase.getModuleProjects( set, configSource, getLogger() );
+            }
+            catch ( final ArchiveCreationException e )
+            {
+                throw new DependencyResolutionException( "Error determining project-set for moduleSet with binaries.",
+                                                         e );
+            }
 
-                    if ( binaries.isIncludeDependencies() )
+            if ( !projects.isEmpty() )
+            {
+                for ( final MavenProject p : projects )
+                {
+                    requirements.enableProjectResolution( p );
+
+                    if ( p.getArtifact() == null )
                     {
-                        updateDependencySetResolutionRequirements(assembly,
-                                ModuleSetAssemblyPhase.getDependencySets(binaries),
-                                requirements, projects.toArray(new MavenProject[projects.size()]));
+                        // TODO: such a call in MavenMetadataSource too - packaging not really the intention of
+                        // type
+                        final Artifact artifact =
+                            factory.createBuildArtifact( p.getGroupId(), p.getArtifactId(), p.getVersion(),
+                                                         p.getPackaging() );
+                        p.setArtifact( artifact );
                     }
                 }
             }
+
+            if ( binaries.isIncludeDependencies() )
+            {
+                updateDependencySetResolutionRequirements( ModuleSetAssemblyPhase.getDependencySets( binaries ),
+                                                           requirements, assemblyId,
+                                                           projects.toArray( new MavenProject[projects.size()] ) );
+            }
         }
     }
 
     @SuppressWarnings( "unchecked" )
-    protected void updateDependencySetResolutionRequirements(final Assembly assembly, final List<DependencySet> depSets,
-            final ResolutionManagementInfo requirements,
-            final MavenProject... projects)
+    protected void updateDependencySetResolutionRequirements( final List<DependencySet> depSets,
+                                                              final ResolutionManagementInfo requirements,
+                                                              AssemblyId assemblyId, final MavenProject... projects )
         throws DependencyResolutionException
     {
         if ( depSets != null && !depSets.isEmpty() )
@@ -314,14 +356,13 @@ public class DefaultDependencyResolver
                     catch ( final InvalidDependencyVersionException e )
                     {
                         throw new DependencyResolutionException(
-                                                                 "Failed to create dependency artifacts for resolution. Assembly: "
-                                                                     + assembly.getId(), e );
+                            "Failed to create dependency artifacts for resolution. Assembly: " + assemblyId, e );
                     }
                 }
 
                 requirements.addArtifacts( dependencyArtifacts );
-                getLogger().debug( "Dependencies for project: " + project.getId() + " are:\n"
-                                       + StringUtils.join( dependencyArtifacts.iterator(), "\n" ) );
+                getLogger().debug( "Dependencies for project: " + project.getId() + " are:\n" + StringUtils.join(
+                    dependencyArtifacts.iterator(), "\n" ) );
             }
         }
     }
@@ -351,8 +392,8 @@ public class DefaultDependencyResolver
     }
 
     @SuppressWarnings( "unchecked" )
-    protected List<ArtifactRepository> aggregateRemoteArtifactRepositories( final List<ArtifactRepository> remoteRepositories,
-                                                                            final Set<MavenProject> projects )
+    protected List<ArtifactRepository> aggregateRemoteArtifactRepositories(
+        final List<ArtifactRepository> remoteRepositories, final Set<MavenProject> projects )
     {
         final List<List<ArtifactRepository>> repoLists = new ArrayList<List<ArtifactRepository>>();
 
@@ -365,12 +406,16 @@ public class DefaultDependencyResolver
         final List<ArtifactRepository> remoteRepos = new ArrayList<ArtifactRepository>();
         final Set<String> encounteredUrls = new HashSet<String>();
 
-        for (final List<ArtifactRepository> repositoryList : repoLists) {
-            if ((repositoryList != null) && !repositoryList.isEmpty()) {
-                for (final ArtifactRepository repo : repositoryList) {
-                    if (!encounteredUrls.contains(repo.getUrl())) {
-                        remoteRepos.add(repo);
-                        encounteredUrls.add(repo.getUrl());
+        for ( final List<ArtifactRepository> repositoryList : repoLists )
+        {
+            if ( ( repositoryList != null ) && !repositoryList.isEmpty() )
+            {
+                for ( final ArtifactRepository repo : repositoryList )
+                {
+                    if ( !encounteredUrls.contains( repo.getUrl() ) )
+                    {
+                        remoteRepos.add( repo );
+                        encounteredUrls.add( repo.getUrl() );
                     }
                 }
             }
@@ -379,54 +424,6 @@ public class DefaultDependencyResolver
         return remoteRepos;
     }
 
-    protected ArtifactResolver getArtifactResolver()
-    {
-        return resolver;
-    }
-
-    protected DefaultDependencyResolver setArtifactResolver( final ArtifactResolver resolver )
-    {
-        this.resolver = resolver;
-
-        return this;
-    }
-
-    protected ArtifactMetadataSource getArtifactMetadataSource()
-    {
-        return metadataSource;
-    }
-
-    protected DefaultDependencyResolver setArtifactMetadataSource( final ArtifactMetadataSource metadataSource )
-    {
-        this.metadataSource = metadataSource;
-
-        return this;
-    }
-
-    protected ArtifactFactory getArtifactFactory()
-    {
-        return factory;
-    }
-
-    protected DefaultDependencyResolver setArtifactFactory( final ArtifactFactory factory )
-    {
-        this.factory = factory;
-
-        return this;
-    }
-
-    protected ArtifactCollector getArtifactCollector()
-    {
-        return collector;
-    }
-
-    protected DefaultDependencyResolver setArtifactCollector( final ArtifactCollector collector )
-    {
-        this.collector = collector;
-
-        return this;
-    }
-
     protected DefaultDependencyResolver setLogger( final Logger logger )
     {
         enableLogging( logger );

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/artifact/DependencyResolver.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/artifact/DependencyResolver.java?rev=1632405&r1=1632404&r2=1632405&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/artifact/DependencyResolver.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/artifact/DependencyResolver.java Thu Oct 16 18:25:08 2014
@@ -19,14 +19,18 @@ package org.apache.maven.plugin.assembly
  * under the License.
  */
 
+import org.apache.maven.artifact.Artifact;
 import org.apache.maven.plugin.assembly.AssemblerConfigurationSource;
-import org.apache.maven.plugin.assembly.AssemblyContext;
 import org.apache.maven.plugin.assembly.model.Assembly;
+import org.apache.maven.plugin.assembly.model.ModuleSet;
+import org.apache.maven.plugin.assembly.resolved.ResolvedModuleSet;
+
+import java.util.Set;
 
 /**
  * Convenience component that aids in the resolution of dependency artifacts, according to various configurations such
  * as transitivity flag and scope.
- * 
+ *
  * @version $Id$
  */
 public interface DependencyResolver
@@ -35,7 +39,10 @@ public interface DependencyResolver
     /**
      * Resolve the project dependencies, according to the supplied configuration.
      */
-    void resolve( Assembly assembly, AssemblerConfigurationSource configSource, AssemblyContext context )
+    Set<Artifact> resolve( Assembly assembly, AssemblerConfigurationSource configSource )
         throws DependencyResolutionException;
 
+    ResolvedModuleSet resolve( final Assembly assembly, ModuleSet moduleSet,
+                           final AssemblerConfigurationSource configSource )
+        throws DependencyResolutionException;
 }
\ No newline at end of file

Copied: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/resolved/AssemblyId.java (from r1632404, maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/AssemblyContext.java)
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/resolved/AssemblyId.java?p2=maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/resolved/AssemblyId.java&p1=maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/AssemblyContext.java&r1=1632404&r2=1632405&rev=1632405&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/AssemblyContext.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/resolved/AssemblyId.java Thu Oct 16 18:25:08 2014
@@ -1,4 +1,4 @@
-package org.apache.maven.plugin.assembly;
+package org.apache.maven.plugin.assembly.resolved;
 
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
@@ -19,13 +19,30 @@ package org.apache.maven.plugin.assembly
  * under the License.
  */
 
-import org.apache.maven.artifact.Artifact;
+import org.apache.maven.plugin.assembly.model.Assembly;
 
-import java.util.Set;
-
-public interface AssemblyContext
+public class AssemblyId
 {
-    void setResolvedArtifacts( Set<Artifact> artifacts );
+    private final String id;
+
+    private AssemblyId( String id )
+    {
+        this.id = id;
+    }
+
+    public static AssemblyId createAssemblyId( String id )
+    {
+        return new AssemblyId( id );
+    }
+
+    public static AssemblyId createAssemblyId( Assembly id )
+    {
+        return new AssemblyId( id.getId() );
+    }
 
-    Set<Artifact> getResolvedArtifacts();
+    @Override
+    public String toString()
+    {
+        return id;
+    }
 }

Added: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/resolved/ResolvedAssembly.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/resolved/ResolvedAssembly.java?rev=1632405&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/resolved/ResolvedAssembly.java (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/resolved/ResolvedAssembly.java Thu Oct 16 18:25:08 2014
@@ -0,0 +1,108 @@
+package org.apache.maven.plugin.assembly.resolved;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.artifact.Artifact;
+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.model.DependencySet;
+import org.apache.maven.plugin.assembly.model.FileItem;
+import org.apache.maven.plugin.assembly.model.FileSet;
+import org.apache.maven.plugin.assembly.model.Repository;
+import org.apache.maven.plugin.assembly.resolved.functions.ResolvedModuleSetConsumer;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+
+public class ResolvedAssembly {
+
+
+	private final Assembly assembly;
+	private final List<ResolvedModuleSet> resolvedModuleSets;
+	private final Set<Artifact>  dependencySetArtifacts;
+
+	public ResolvedAssembly( Assembly assembly, List<ResolvedModuleSet> resolvedModuleSets,
+							 Set<Artifact> dependencySetArtifacts ) {
+		this.assembly = assembly;
+		this.resolvedModuleSets = resolvedModuleSets;
+		this.dependencySetArtifacts = dependencySetArtifacts;
+	}
+
+	public static ResolvedAssembly create(Assembly assembly){
+		return new ResolvedAssembly(assembly, null, null );
+	}
+	
+	public ResolvedAssembly withResolvedModuleSets(Iterable<ResolvedModuleSet> resolvedModuleSets){
+		List<ResolvedModuleSet> resolvedModuleSets1 = new ArrayList<ResolvedModuleSet>(  );
+		for ( ResolvedModuleSet resolvedModuleSet : resolvedModuleSets )
+		{
+			resolvedModuleSets1.add(resolvedModuleSet);
+		}
+		return new ResolvedAssembly( assembly, resolvedModuleSets1, dependencySetArtifacts );
+	}
+
+
+
+	public void forEachResolvedModule(ResolvedModuleSetConsumer resolvedModuleSetConsumer) throws
+		ArchiveCreationException, AssemblyFormattingException, InvalidAssemblerConfigurationException
+	{
+		if (resolvedModuleSets == null) return;
+		for ( ResolvedModuleSet resolvedModuleSet : resolvedModuleSets )
+		{
+			resolvedModuleSetConsumer.accept( resolvedModuleSet);
+		}
+	}
+
+	public Set<Artifact> getResolvedDependencySetArtifacts(){
+		return dependencySetArtifacts;
+	}
+
+	public Assembly getAssembly() {
+		return assembly;
+	}
+
+	public List<DependencySet> getDependencySets()
+	{
+		return assembly.getDependencySets();
+	}
+
+	public List<FileItem> getFiles()
+	{
+		return assembly.getFiles();
+	}
+
+	public List<FileSet> getFileSets()
+	{
+		return assembly.getFileSets();
+	}
+
+	public List<Repository> getRepositories()
+	{
+		return assembly.getRepositories();
+	}
+
+	public ResolvedAssembly withDependencySetArtifacts( final Set<Artifact> dependencySetArtifacts )
+	{
+		return new ResolvedAssembly( assembly, resolvedModuleSets, dependencySetArtifacts );
+	}
+}

Copied: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/resolved/ResolvedModuleSet.java (from r1632404, maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/DefaultAssemblyContext.java)
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/resolved/ResolvedModuleSet.java?p2=maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/resolved/ResolvedModuleSet.java&p1=maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/DefaultAssemblyContext.java&r1=1632404&r2=1632405&rev=1632405&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/DefaultAssemblyContext.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/resolved/ResolvedModuleSet.java Thu Oct 16 18:25:08 2014
@@ -1,4 +1,4 @@
-package org.apache.maven.plugin.assembly;
+package org.apache.maven.plugin.assembly.resolved;
 
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
@@ -20,33 +20,37 @@ package org.apache.maven.plugin.assembly
  */
 
 import org.apache.maven.artifact.Artifact;
+import org.apache.maven.plugin.assembly.model.ModuleSet;
 
 import java.util.Set;
 
-public class DefaultAssemblyContext
-    implements AssemblyContext
-{
-
-    private Set<Artifact> artifacts;
-
-    /**
-     * {@inheritDoc}
-     * 
-     * @see org.apache.maven.plugin.assembly.AssemblyContext#setResolvedArtifacts(java.util.Set)
-     */
-    public void setResolvedArtifacts( final Set<Artifact> artifacts )
-    {
-        this.artifacts = artifacts;
-    }
-
-    /**
-     * {@inheritDoc}
-     * 
-     * @see org.apache.maven.plugin.assembly.AssemblyContext#getResolvedArtifacts()
-     */
-    public Set<Artifact> getResolvedArtifacts()
-    {
-        return artifacts;
-    }
-
+public class ResolvedModuleSet {
+	private final ModuleSet moduleSet;
+	private final Set<Artifact> artifacts;
+
+	private ResolvedModuleSet( ModuleSet moduleSet, Set<Artifact> artifacts ) {
+		this.moduleSet = moduleSet;
+		this.artifacts = artifacts;
+	}
+
+	public static ResolvedModuleSet createResolvedModuleSet(ModuleSet moduleSet) {
+		return new ResolvedModuleSet(moduleSet, null );
+	}
+
+	public static ResolvedModuleSet empty() {
+		return new ResolvedModuleSet(null, null );
+	}
+
+	public ModuleSet getModuleSet() {
+		return moduleSet;
+	}
+
+	public ResolvedModuleSet withArtifacts(Set<Artifact> artifacts ){
+		return new ResolvedModuleSet( moduleSet, artifacts );
+	}
+
+	public Set<Artifact> getArtifacts()
+	{
+		return artifacts;
+	}
 }

Copied: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/resolved/functions/ResolvedModuleSetConsumer.java (from r1632404, maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/DefaultAssemblyContext.java)
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/resolved/functions/ResolvedModuleSetConsumer.java?p2=maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/resolved/functions/ResolvedModuleSetConsumer.java&p1=maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/DefaultAssemblyContext.java&r1=1632404&r2=1632405&rev=1632405&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/DefaultAssemblyContext.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/resolved/functions/ResolvedModuleSetConsumer.java Thu Oct 16 18:25:08 2014
@@ -1,4 +1,4 @@
-package org.apache.maven.plugin.assembly;
+package org.apache.maven.plugin.assembly.resolved.functions;
 
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
@@ -18,35 +18,12 @@ package org.apache.maven.plugin.assembly
  * specific language governing permissions and limitations
  * under the License.
  */
-
-import org.apache.maven.artifact.Artifact;
-
-import java.util.Set;
-
-public class DefaultAssemblyContext
-    implements AssemblyContext
-{
-
-    private Set<Artifact> artifacts;
-
-    /**
-     * {@inheritDoc}
-     * 
-     * @see org.apache.maven.plugin.assembly.AssemblyContext#setResolvedArtifacts(java.util.Set)
-     */
-    public void setResolvedArtifacts( final Set<Artifact> artifacts )
-    {
-        this.artifacts = artifacts;
-    }
-
-    /**
-     * {@inheritDoc}
-     * 
-     * @see org.apache.maven.plugin.assembly.AssemblyContext#getResolvedArtifacts()
-     */
-    public Set<Artifact> getResolvedArtifacts()
-    {
-        return artifacts;
-    }
-
+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.resolved.ResolvedModuleSet;
+
+public interface ResolvedModuleSetConsumer {
+	void accept(ResolvedModuleSet resolvedModule)
+		throws ArchiveCreationException, AssemblyFormattingException, InvalidAssemblerConfigurationException;
 }

Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiverTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiverTest.java?rev=1632405&r1=1632404&r2=1632405&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiverTest.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiverTest.java Thu Oct 16 18:25:08 2014
@@ -19,6 +19,7 @@ package org.apache.maven.plugin.assembly
  * under the License.
  */
 
+import static org.easymock.EasyMock.expect;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNull;
@@ -28,22 +29,23 @@ import java.io.File;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 
 import junit.framework.Assert;
 
+import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.model.Model;
 import org.apache.maven.plugin.assembly.AssemblerConfigurationSource;
-import org.apache.maven.plugin.assembly.AssemblyContext;
-import org.apache.maven.plugin.assembly.DefaultAssemblyContext;
 import org.apache.maven.plugin.assembly.InvalidAssemblerConfigurationException;
 import org.apache.maven.plugin.assembly.archive.phase.AssemblyArchiverPhase;
 import org.apache.maven.plugin.assembly.artifact.DependencyResolutionException;
 import org.apache.maven.plugin.assembly.artifact.DependencyResolver;
 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.plugin.assembly.testutils.MockManager;
 import org.apache.maven.plugin.assembly.testutils.TestFileManager;
 import org.apache.maven.project.MavenProject;
@@ -70,6 +72,7 @@ import org.codehaus.plexus.util.FileUtil
 import org.easymock.MockControl;
 import org.junit.AfterClass;
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 
 public class DefaultAssemblyArchiverTest
@@ -139,7 +142,7 @@ public class DefaultAssemblyArchiverTest
 
         final AssemblyArchiverPhase phase = (AssemblyArchiverPhase) phaseControl.getMock();
 
-        phase.execute( null, null, null, null );
+        phase.execute( null, null, null );
         phaseControl.setMatcher( MockControl.ALWAYS_MATCHER );
 
         final MockControl csControl = MockControl.createControl( AssemblerConfigurationSource.class );
@@ -197,11 +200,9 @@ public class DefaultAssemblyArchiverTest
         final Assembly assembly = new Assembly();
         assembly.setId( "id" );
 
-        final AssemblyContext context = new DefaultAssemblyContext();
-
         try
         {
-            macMgr.dependencyResolver.resolve( assembly, configSource, context );
+            expect( macMgr.dependencyResolver.resolve( assembly, configSource )).andReturn( new HashSet<Artifact>(  ) );
             macMgr.dependencyResolverControl.setMatcher( MockControl.ALWAYS_MATCHER );
         }
         catch ( final DependencyResolutionException e )

Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhaseTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhaseTest.java?rev=1632405&r1=1632404&r2=1632405&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhaseTest.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhaseTest.java Thu Oct 16 18:25:08 2014
@@ -21,7 +21,6 @@ package org.apache.maven.plugin.assembly
 
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.model.Model;
-import org.apache.maven.plugin.assembly.DefaultAssemblyContext;
 import org.apache.maven.plugin.assembly.InvalidAssemblerConfigurationException;
 import org.apache.maven.plugin.assembly.archive.ArchiveCreationException;
 import org.apache.maven.plugin.assembly.archive.task.testutils.ArtifactMock;
@@ -29,6 +28,7 @@ import org.apache.maven.plugin.assembly.
 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.resolved.ResolvedAssembly;
 import org.apache.maven.plugin.assembly.testutils.MockManager;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.project.MavenProjectBuilder;
@@ -101,10 +101,9 @@ public class DependencySetAssemblyPhaseT
 
         mockManager.replayAll();
 
-        final DefaultAssemblyContext context = new DefaultAssemblyContext();
-        context.setResolvedArtifacts( Collections.singleton( artifactMock.getArtifact() ) );
-
-        createPhase( macTask, logger ).execute( assembly, macTask.archiver, macTask.configSource, context );
+        final ResolvedAssembly assembly1 = ResolvedAssembly.create( assembly ).withDependencySetArtifacts(
+            Collections.singleton( artifactMock.getArtifact() ) );
+        createPhase( macTask, logger ).execute( assembly1, macTask.archiver, macTask.configSource );
 
         mockManager.verifyAll();
     }
@@ -135,7 +134,7 @@ public class DependencySetAssemblyPhaseT
 
         mockManager.replayAll();
 
-        createPhase( macTask, logger ).execute( assembly, null, macTask.configSource, new DefaultAssemblyContext() );
+        createPhase( macTask, logger ).execute( ResolvedAssembly.create( assembly), null, macTask.configSource );
 
         mockManager.verifyAll();
     }

Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/FileItemAssemblyPhaseTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/FileItemAssemblyPhaseTest.java?rev=1632405&r1=1632404&r2=1632405&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/FileItemAssemblyPhaseTest.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/FileItemAssemblyPhaseTest.java Thu Oct 16 18:25:08 2014
@@ -27,11 +27,11 @@ import junit.framework.TestCase;
 
 import org.apache.maven.model.Model;
 import org.apache.maven.plugin.assembly.AssemblerConfigurationSource;
-import org.apache.maven.plugin.assembly.DefaultAssemblyContext;
 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.model.FileItem;
+import org.apache.maven.plugin.assembly.resolved.ResolvedAssembly;
 import org.apache.maven.plugin.assembly.testutils.MockManager;
 import org.apache.maven.plugin.assembly.testutils.TestFileManager;
 import org.apache.maven.plugin.assembly.utils.TypeConversionUtils;
@@ -73,7 +73,7 @@ public class FileItemAssemblyPhaseTest
 
         mm.replayAll();
 
-        createPhase( macLogger.logger ).execute( assembly, null, macCS.configSource, new DefaultAssemblyContext() );
+        createPhase( macLogger.logger ).execute( ResolvedAssembly.create( assembly ), null, macCS.configSource );
 
         mm.verifyAll();
     }
@@ -122,8 +122,7 @@ public class FileItemAssemblyPhaseTest
 
         mm.replayAll();
 
-        createPhase( macLogger.logger ).execute( assembly, macArchiver.archiver, macCS.configSource,
-                                                 new DefaultAssemblyContext() );
+        createPhase( macLogger.logger ).execute( ResolvedAssembly.create( assembly), macArchiver.archiver, macCS.configSource );
 
         mm.verifyAll();
     }
@@ -172,8 +171,7 @@ public class FileItemAssemblyPhaseTest
 
         mm.replayAll();
 
-        createPhase( macLogger.logger ).execute( assembly, macArchiver.archiver, macCS.configSource,
-                                                 new DefaultAssemblyContext() );
+        createPhase( macLogger.logger ).execute( ResolvedAssembly.create( assembly), macArchiver.archiver, macCS.configSource );
 
         mm.verifyAll();
     }
@@ -250,8 +248,7 @@ public class FileItemAssemblyPhaseTest
 
         mm.replayAll();
 
-        createPhase( macLogger.logger ).execute( assembly, macArchiver.archiver, macCS.configSource,
-                                                 new DefaultAssemblyContext() );
+        createPhase( macLogger.logger ).execute( ResolvedAssembly.create( assembly), macArchiver.archiver, macCS.configSource );
 
         mm.verifyAll();
     }
@@ -331,8 +328,7 @@ public class FileItemAssemblyPhaseTest
 
         mm.replayAll();
 
-        createPhase( macLogger.logger ).execute( assembly, macArchiver.archiver, macCS.configSource,
-                                                 new DefaultAssemblyContext() );
+        createPhase( macLogger.logger ).execute( ResolvedAssembly.create( assembly), macArchiver.archiver, macCS.configSource );
 
         mm.verifyAll();
     }
@@ -410,8 +406,7 @@ public class FileItemAssemblyPhaseTest
 
         mm.replayAll();
 
-        createPhase( macLogger.logger ).execute( assembly, macArchiver.archiver, macCS.configSource,
-                                                 new DefaultAssemblyContext() );
+        createPhase( macLogger.logger ).execute( ResolvedAssembly.create( assembly), macArchiver.archiver, macCS.configSource );
 
         mm.verifyAll();
     }

Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/FileSetAssemblyPhaseTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/FileSetAssemblyPhaseTest.java?rev=1632405&r1=1632404&r2=1632405&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/FileSetAssemblyPhaseTest.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/FileSetAssemblyPhaseTest.java Thu Oct 16 18:25:08 2014
@@ -25,12 +25,12 @@ import java.io.IOException;
 import junit.framework.TestCase;
 
 import org.apache.maven.model.Model;
-import org.apache.maven.plugin.assembly.DefaultAssemblyContext;
 import org.apache.maven.plugin.assembly.archive.ArchiveCreationException;
 import org.apache.maven.plugin.assembly.archive.task.testutils.MockAndControlForAddFileSetsTask;
 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.apache.maven.plugin.assembly.testutils.MockManager;
 import org.apache.maven.plugin.assembly.testutils.TestFileManager;
 import org.apache.maven.project.MavenProject;
@@ -65,8 +65,7 @@ public class FileSetAssemblyPhaseTest
 
         mockManager.replayAll();
 
-        createPhase( macLogger ).execute( assembly, macTask.archiver, macTask.configSource,
-                                          new DefaultAssemblyContext() );
+        createPhase( macLogger ).execute( ResolvedAssembly.create( assembly ), macTask.archiver, macTask.configSource );
 
         mockManager.verifyAll();
     }
@@ -108,8 +107,7 @@ public class FileSetAssemblyPhaseTest
 
         mockManager.replayAll();
 
-        createPhase( macLogger ).execute( assembly, macTask.archiver, macTask.configSource,
-                                          new DefaultAssemblyContext() );
+        createPhase( macLogger ).execute( ResolvedAssembly.create( assembly), macTask.archiver, macTask.configSource );
 
         mockManager.verifyAll();
     }

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=1632405&r1=1632404&r2=1632405&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 Thu Oct 16 18:25:08 2014
@@ -19,8 +19,8 @@ package org.apache.maven.plugin.assembly
  * under the License.
  */
 
+import org.apache.maven.artifact.Artifact;
 import org.apache.maven.model.Model;
-import org.apache.maven.plugin.assembly.DefaultAssemblyContext;
 import org.apache.maven.plugin.assembly.InvalidAssemblerConfigurationException;
 import org.apache.maven.plugin.assembly.archive.ArchiveCreationException;
 import org.apache.maven.plugin.assembly.archive.task.testutils.ArtifactMock;
@@ -34,6 +34,8 @@ import org.apache.maven.plugin.assembly.
 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.testutils.MockManager;
 import org.apache.maven.plugin.assembly.testutils.TestFileManager;
 import org.apache.maven.plugin.assembly.utils.TypeConversionUtils;
@@ -54,6 +56,10 @@ import java.util.Set;
 import junit.framework.Assert;
 import junit.framework.TestCase;
 
+import static java.util.Collections.singleton;
+import static org.apache.maven.plugin.assembly.resolved.ResolvedModuleSet.createResolvedModuleSet;
+
+
 public class ModuleSetAssemblyPhaseTest
     extends TestCase
 {
@@ -251,7 +257,7 @@ public class ModuleSetAssemblyPhaseTest
         final Assembly assembly = new Assembly();
         assembly.setIncludeBaseDirectory( false );
 
-        createPhase( null, null ).execute( assembly, null, null, new DefaultAssemblyContext() );
+        createPhase( null, null ).execute( ResolvedAssembly.create( assembly), null, null );
     }
 
     public void testExecute_ShouldAddOneModuleSetWithOneModuleInIt()
@@ -303,8 +309,11 @@ public class ModuleSetAssemblyPhaseTest
 
         mm.replayAll();
 
-        createPhase( logger, null ).execute( assembly, macTask.archiver, macTask.configSource,
-                                             new DefaultAssemblyContext() );
+        final ResolvedAssembly ra = ResolvedAssembly.create( assembly ).withDependencySetArtifacts(
+            new HashSet<Artifact>(  ) ).withResolvedModuleSets( Collections.singleton( createResolvedModuleSet( ms ) ) );
+
+        final ModuleSetAssemblyPhase phase = createPhase( logger, null );
+        phase.execute( ra, macTask.archiver, macTask.configSource );
 
         mm.verifyAll();
     }
@@ -312,7 +321,7 @@ public class ModuleSetAssemblyPhaseTest
     public void testAddModuleBinaries_ShouldReturnImmediatelyWhenBinariesIsNull()
         throws ArchiveCreationException, AssemblyFormattingException, InvalidAssemblerConfigurationException
     {
-        createPhase( null, null ).addModuleBinaries( null, null, null, null, new DefaultAssemblyContext() );
+        createPhase( null, null ).addModuleBinaries( null, null, null, null, null );
     }
 
     public void testAddModuleBinaries_ShouldFilterPomModule()
@@ -336,15 +345,14 @@ public class ModuleSetAssemblyPhaseTest
         final ArtifactMock artifactMock = new ArtifactMock( mm, "group", "artifact", "version", "pom", false );
         project.setArtifact( artifactMock.getArtifact() );
 
-        final Set<MavenProject> projects = Collections.singleton( project );
+        final Set<MavenProject> projects = singleton( project );
 
         mm.replayAll();
 
-        createPhase( new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ), null ).addModuleBinaries( binaries,
+        createPhase( new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ), null ).addModuleBinaries( null, binaries,
                                                                                                 projects,
                                                                                                 macTask.archiver,
-                                                                                                macTask.configSource,
-                                                                                                new DefaultAssemblyContext() );
+                                                                                                macTask.configSource );
 
         mm.verifyAll();
     }
@@ -377,14 +385,15 @@ public class ModuleSetAssemblyPhaseTest
         final MavenProject project = createProject( "group", "artifact", "version", null );
         project.addAttachedArtifact( artifactMock.getArtifact() );
 
-        final Set<MavenProject> projects = Collections.singleton( project );
+        final Set<MavenProject> projects = singleton( project );
 
         mm.replayAll();
 
         final Logger logger = new ConsoleLogger( Logger.LEVEL_DEBUG, "test" );
 
-        createPhase( logger, null ).addModuleBinaries( binaries, projects, macTask.archiver, macTask.configSource,
-                                                       new DefaultAssemblyContext() );
+        ResolvedModuleSet rms = ResolvedModuleSet.empty().withArtifacts( Collections.<Artifact>emptySet() );
+
+        createPhase( logger, null ).addModuleBinaries( rms, binaries, projects, macTask.archiver, macTask.configSource );
 
         mm.verifyAll();
     }
@@ -410,7 +419,7 @@ public class ModuleSetAssemblyPhaseTest
         final MavenProject project = createProject( "group", "artifact", "version", null );
         project.setArtifact( artifactMock.getArtifact() );
 
-        final Set<MavenProject> projects = Collections.singleton( project );
+        final Set<MavenProject> projects = singleton( project );
 
         mm.replayAll();
 
@@ -418,8 +427,7 @@ public class ModuleSetAssemblyPhaseTest
 
         try
         {
-            createPhase( logger, null ).addModuleBinaries( binaries, projects, macTask.archiver, macTask.configSource,
-                                                           new DefaultAssemblyContext() );
+            createPhase( logger, null ).addModuleBinaries( null, binaries, projects, macTask.archiver, macTask.configSource );
 
             fail( "Should throw an invalid configuration exception because of module with missing attachment." );
         }
@@ -458,14 +466,15 @@ public class ModuleSetAssemblyPhaseTest
         final MavenProject project = createProject( "group", "artifact", "version", null );
         project.setArtifact( artifactMock.getArtifact() );
 
-        final Set<MavenProject> projects = Collections.singleton( project );
+        final Set<MavenProject> projects = singleton( project );
 
         mm.replayAll();
 
         final Logger logger = new ConsoleLogger( Logger.LEVEL_DEBUG, "test" );
 
-        createPhase( logger, null ).addModuleBinaries( binaries, projects, macTask.archiver, macTask.configSource,
-                                                       new DefaultAssemblyContext() );
+        ResolvedModuleSet ms = ResolvedModuleSet.empty().withArtifacts( Collections.<Artifact>emptySet() );
+
+        createPhase( logger, null ).addModuleBinaries( ms, binaries, projects, macTask.archiver, macTask.configSource );
 
         mm.verifyAll();
     }
@@ -518,7 +527,7 @@ public class ModuleSetAssemblyPhaseTest
 
         macTask.expectCSGetRepositories( null, null );
 
-        final Set<MavenProject> projects = Collections.singleton( project );
+        final Set<MavenProject> projects = singleton( project );
 
         mm.replayAll();
 
@@ -526,10 +535,11 @@ public class ModuleSetAssemblyPhaseTest
 
         final ModuleSetAssemblyPhase phase = createPhase( overrideLogger, macTask );
 
-        final DefaultAssemblyContext context = new DefaultAssemblyContext();
-        context.setResolvedArtifacts( Collections.singleton( depArtifactMock.getArtifact() ) );
+        final ResolvedModuleSet rms = ResolvedModuleSet.empty( ).withArtifacts(
+            Collections.singleton( depArtifactMock.getArtifact() ) );
+
 
-        phase.addModuleBinaries( binaries, projects, macTask.archiver, macTask.configSource, context );
+        phase.addModuleBinaries( rms, binaries, projects, macTask.archiver, macTask.configSource );
 
         mm.verifyAll();
     }
@@ -576,7 +586,7 @@ public class ModuleSetAssemblyPhaseTest
 
         macTask.expectCSGetRepositories( null, null );
 
-        final Set<MavenProject> projects = Collections.singleton( project );
+        final Set<MavenProject> projects = singleton( project );
 
         mm.replayAll();
 
@@ -584,10 +594,9 @@ public class ModuleSetAssemblyPhaseTest
 
         final ModuleSetAssemblyPhase phase = createPhase( overrideLogger, macTask );
 
-        final DefaultAssemblyContext context = new DefaultAssemblyContext();
-        context.setResolvedArtifacts( Collections.singleton( depArtifactMock.getArtifact() ) );
+        ResolvedModuleSet ms = ResolvedModuleSet.empty().withArtifacts( singleton( depArtifactMock.getArtifact() ) );
 
-        phase.addModuleBinaries( binaries, projects, macTask.archiver, macTask.configSource, context );
+        phase.addModuleBinaries( ms, binaries, projects, macTask.archiver, macTask.configSource );
 
         mm.verifyAll();
     }
@@ -723,7 +732,7 @@ public class ModuleSetAssemblyPhaseTest
 
         project.setArtifact( artifactMock.getArtifact() );
 
-        final Set<MavenProject> projects = Collections.singleton( project );
+        final Set<MavenProject> projects = singleton( project );
 
         final ModuleSources sources = new ModuleSources();
 

Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/RepositoryAssemblyPhaseTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/RepositoryAssemblyPhaseTest.java?rev=1632405&r1=1632404&r2=1632405&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/RepositoryAssemblyPhaseTest.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/RepositoryAssemblyPhaseTest.java Thu Oct 16 18:25:08 2014
@@ -28,7 +28,6 @@ import junit.framework.TestCase;
 
 import org.apache.maven.model.Model;
 import org.apache.maven.plugin.assembly.AssemblerConfigurationSource;
-import org.apache.maven.plugin.assembly.DefaultAssemblyContext;
 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;
@@ -36,6 +35,7 @@ import org.apache.maven.plugin.assembly.
 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.testutils.MockManager;
 import org.apache.maven.plugin.assembly.testutils.TestFileManager;
 import org.apache.maven.plugin.assembly.utils.TypeConversionUtils;
@@ -84,10 +84,10 @@ public class RepositoryAssemblyPhaseTest
 
         mm.replayAll();
 
-        createPhase( macRepo.repositoryAssembler, new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) ).execute( assembly,
+        createPhase( macRepo.repositoryAssembler, new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) ).execute( ResolvedAssembly.create(
+                                                                                                                 assembly ),
                                                                                                              macArchiver.archiver,
-                                                                                                             macCS.configSource,
-                                                                                                             new DefaultAssemblyContext() );
+                                                                                                             macCS.configSource );
 
         mm.verifyAll();
     }
@@ -130,10 +130,9 @@ public class RepositoryAssemblyPhaseTest
 
         mm.replayAll();
 
-        createPhase( macRepo.repositoryAssembler, new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) ).execute( assembly,
+        createPhase( macRepo.repositoryAssembler, new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) ).execute( ResolvedAssembly.create( assembly),
                                                                                                              macArchiver.archiver,
-                                                                                                             macCS.configSource,
-                                                                                                             new DefaultAssemblyContext() );
+                                                                                                             macCS.configSource );
 
         mm.verifyAll();
     }

Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/artifact/DefaultDependencyResolverTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/artifact/DefaultDependencyResolverTest.java?rev=1632405&r1=1632404&r2=1632405&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/artifact/DefaultDependencyResolverTest.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/artifact/DefaultDependencyResolverTest.java Thu Oct 16 18:25:08 2014
@@ -40,6 +40,7 @@ import org.apache.maven.plugin.assembly.
 import org.apache.maven.plugin.assembly.model.ModuleBinaries;
 import org.apache.maven.plugin.assembly.model.ModuleSet;
 import org.apache.maven.plugin.assembly.model.Repository;
+import org.apache.maven.plugin.assembly.resolved.AssemblyId;
 import org.apache.maven.plugin.assembly.testutils.MockManager;
 import org.apache.maven.project.MavenProject;
 import org.codehaus.plexus.PlexusTestCase;
@@ -101,9 +102,10 @@ public class DefaultDependencyResolverTe
 
         final ResolutionManagementInfo info = new ResolutionManagementInfo( project );
 
-        new DefaultDependencyResolver( resolver, metadataSource, factory, collector, logger ).updateDependencySetResolutionRequirements(new Assembly(),
-                depSets,
-                info,
+        final Assembly assembly = new Assembly();
+        new DefaultDependencyResolver( resolver, metadataSource, factory, logger ).updateDependencySetResolutionRequirements(
+            depSets,
+                info, AssemblyId.createAssemblyId( assembly),
                 project);
 
         assertTrue( info.isResolutionRequired() );
@@ -202,7 +204,7 @@ public class DefaultDependencyResolverTe
         mm.replayAll();
 
         final DefaultDependencyResolver resolver =
-            new DefaultDependencyResolver( this.resolver, metadataSource, factory, collector, logger );
+            new DefaultDependencyResolver( this.resolver, metadataSource, factory, logger );
         resolver.enableLogging( new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) );
 
         final Assembly assembly = new Assembly();
@@ -257,9 +259,9 @@ public class DefaultDependencyResolverTe
         assembly.setRepositories( repositories );
 
         final ResolutionManagementInfo info = new ResolutionManagementInfo( project );
-        new DefaultDependencyResolver( resolver, metadataSource, factory, collector, logger ).updateRepositoryResolutionRequirements(assembly,
-                info,
-                project);
+        new DefaultDependencyResolver( resolver, metadataSource, factory, logger ).updateRepositoryResolutionRequirements(assembly,
+                info
+        );
 
         assertTrue( info.isResolutionRequired() );
 
@@ -298,7 +300,7 @@ public class DefaultDependencyResolverTe
         project.setRemoteArtifactRepositories( projectRepos );
 
         final List<ArtifactRepository> aggregated =
-            new DefaultDependencyResolver( resolver, metadataSource, factory, collector, logger ).aggregateRemoteArtifactRepositories( externalRepos,
+            new DefaultDependencyResolver( resolver, metadataSource, factory, logger ).aggregateRemoteArtifactRepositories( externalRepos,
                                                                                                                                        Collections.singleton( project ) );
 
         assertRepositoryWithId( er1.getId(), aggregated, true );