Use org.apache.maven.plugin-testing 2.1
Get rid of deprecated ArtifactFactory

git-svn-id: https://svn.apache.org/repos/asf/maven/plugins/trunk@1748968 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/pom.xml b/pom.xml
index 8369265..4438bb4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -176,14 +176,20 @@
     </dependency>
     <dependency>
       <groupId>org.apache.maven.plugin-testing</groupId>
+      <artifactId>maven-plugin-testing-harness</artifactId>
+      <version>2.1</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.plugin-testing</groupId>
       <artifactId>maven-plugin-testing-tools</artifactId>
-      <version>1.3</version>
+      <version>2.1</version>
       <scope>test</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.maven.plugin-testing</groupId>
       <artifactId>maven-test-tools</artifactId>
-      <version>1.3</version>
+      <version>2.1</version>
       <scope>test</scope>
     </dependency>
     <dependency>
diff --git a/src/main/java/org/apache/maven/plugins/assembly/artifact/DefaultDependencyResolver.java b/src/main/java/org/apache/maven/plugins/assembly/artifact/DefaultDependencyResolver.java
index 7eda4ca..5ce5a51 100644
--- a/src/main/java/org/apache/maven/plugins/assembly/artifact/DefaultDependencyResolver.java
+++ b/src/main/java/org/apache/maven/plugins/assembly/artifact/DefaultDependencyResolver.java
@@ -29,7 +29,6 @@
 import java.util.Set;
 
 import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.factory.ArtifactFactory;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.artifact.resolver.ArtifactResolutionRequest;
 import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
@@ -46,10 +45,13 @@
 import org.apache.maven.plugins.assembly.resolved.AssemblyId;
 import org.apache.maven.plugins.assembly.utils.FilterUtils;
 import org.apache.maven.project.MavenProject;
-import org.apache.maven.project.artifact.InvalidDependencyVersionException;
+import org.apache.maven.project.ProjectBuildingRequest;
 import org.apache.maven.repository.RepositorySystem;
 import org.apache.maven.shared.artifact.filter.resolve.ScopeFilter;
 import org.apache.maven.shared.artifact.filter.resolve.transform.ArtifactIncludeFilterTransformer;
+import org.apache.maven.shared.artifact.resolve.ArtifactResult;
+import org.apache.maven.shared.dependencies.resolve.DependencyResolverException;
+import org.apache.maven.shared.project.DefaultProjectCoordinate;
 import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
@@ -66,9 +68,9 @@
 {
     @Requirement
     private RepositorySystem resolver;
-
+    
     @Requirement
-    private ArtifactFactory factory;
+    private org.apache.maven.shared.dependencies.resolve.DependencyResolver dependencyResolver;
 
     @Override
     public Map<DependencySet, Set<Artifact>> resolveDependencySets( final Assembly assembly, ModuleSet moduleSet,
@@ -86,7 +88,9 @@
             final ResolutionManagementInfo info = new ResolutionManagementInfo( currentProject );
             updateRepositoryResolutionRequirements( assembly, info );
             final AssemblyId assemblyId = AssemblyId.createAssemblyId( assembly );
-            updateDependencySetResolutionRequirements( dependencySet, info, assemblyId, currentProject );
+            updateDependencySetResolutionRequirements( dependencySet, info, assemblyId,
+                                                       configSource.getMavenSession().getProjectBuildingRequest(),
+                                                       currentProject );
             updateModuleSetResolutionRequirements( assemblyId, moduleSet, dependencySet, info, configSource );
 
             resolve( assembly, configSource, result, dependencySet, info );
@@ -144,7 +148,9 @@
             final ResolutionManagementInfo info = new ResolutionManagementInfo( currentProject );
             updateRepositoryResolutionRequirements( assembly, info );
             final AssemblyId assemblyId = AssemblyId.createAssemblyId( assembly );
-            updateDependencySetResolutionRequirements( dependencySet, info, assemblyId, currentProject );
+            updateDependencySetResolutionRequirements( dependencySet, info, assemblyId,
+                                                       configSource.getMavenSession().getProjectBuildingRequest(),
+                                                       currentProject );
 
             resolve( assembly, configSource, result, dependencySet, info );
 
@@ -298,6 +304,7 @@
             if ( binaries.isIncludeDependencies() )
             {
                 updateDependencySetResolutionRequirements( dependencySet, requirements, assemblyId,
+                                                           configSource.getMavenSession().getProjectBuildingRequest(),
                                                            projects.toArray( new MavenProject[projects.size()] ) );
             }
         }
@@ -305,6 +312,7 @@
 
     void updateDependencySetResolutionRequirements( final DependencySet set,
                                                     final ResolutionManagementInfo requirements, AssemblyId assemblyId,
+                                                    ProjectBuildingRequest buildingRequest,
                                                     final MavenProject... projects )
         throws DependencyResolutionException
     {
@@ -316,8 +324,6 @@
         
         requirements.setScopeFilter( scopeFilter );
         
-        ArtifactFilter filter = new ArtifactIncludeFilterTransformer().transform( scopeFilter );
-
         for ( final MavenProject project : projects )
         {
             if ( project == null )
@@ -330,10 +336,26 @@
             {
                 try
                 {
-                    dependencyArtifacts = project.createArtifacts( factory, null, filter );
+                    DefaultProjectCoordinate coordinate = new DefaultProjectCoordinate();
+                    coordinate.setGroupId( project.getGroupId() );
+                    coordinate.setArtifactId( project.getArtifactId() );
+                    coordinate.setVersion( project.getVersion() );
+                    coordinate.setPackaging( project.getPackaging() );
+                    
+                    
+                    Iterable<ArtifactResult> artifactResults =
+                        dependencyResolver.resolveDependencies( buildingRequest, coordinate, scopeFilter );
+                    
+                    dependencyArtifacts = new HashSet<Artifact>();
+                    
+                    for ( ArtifactResult artifactResult : artifactResults )
+                    {
+                        dependencyArtifacts.add( artifactResult.getArtifact() );
+                    }
+                    
                     project.setDependencyArtifacts( dependencyArtifacts );
                 }
-                catch ( final InvalidDependencyVersionException e )
+                catch ( final DependencyResolverException e )
                 {
                     throw new DependencyResolutionException(
                         "Failed to create dependency artifacts for resolution. Assembly: " + assemblyId, e );
diff --git a/src/test/java/org/apache/maven/plugins/assembly/artifact/DefaultDependencyResolverTest.java b/src/test/java/org/apache/maven/plugins/assembly/artifact/DefaultDependencyResolverTest.java
index 32f5622..4d418b4 100644
--- a/src/test/java/org/apache/maven/plugins/assembly/artifact/DefaultDependencyResolverTest.java
+++ b/src/test/java/org/apache/maven/plugins/assembly/artifact/DefaultDependencyResolverTest.java
@@ -1,7 +1,5 @@
 package org.apache.maven.plugins.assembly.artifact;
 
-import static org.easymock.EasyMock.expect;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -21,8 +19,11 @@
  * under the License.
  */
 
+import static org.easymock.EasyMock.expect;
+
 import java.io.File;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 import java.util.Set;
@@ -31,8 +32,15 @@
 import org.apache.maven.artifact.factory.ArtifactFactory;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.artifact.repository.ArtifactRepositoryFactory;
+import org.apache.maven.artifact.repository.LegacyLocalRepositoryManager;
 import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
+import org.apache.maven.execution.DefaultMavenExecutionRequest;
+import org.apache.maven.execution.DefaultMavenExecutionResult;
+import org.apache.maven.execution.MavenExecutionRequest;
+import org.apache.maven.execution.MavenExecutionResult;
+import org.apache.maven.execution.MavenSession;
 import org.apache.maven.model.Model;
+import org.apache.maven.plugin.testing.stubs.StubArtifactRepository;
 import org.apache.maven.plugins.assembly.AssemblerConfigurationSource;
 import org.apache.maven.plugins.assembly.model.Assembly;
 import org.apache.maven.plugins.assembly.model.DependencySet;
@@ -40,11 +48,16 @@
 import org.apache.maven.plugins.assembly.model.ModuleSet;
 import org.apache.maven.plugins.assembly.model.Repository;
 import org.apache.maven.plugins.assembly.resolved.AssemblyId;
+import org.apache.maven.project.DefaultProjectBuildingRequest;
 import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.ProjectBuildingRequest;
+import org.apache.maven.repository.internal.MavenRepositorySystemSession;
 import org.codehaus.plexus.PlexusTestCase;
 import org.codehaus.plexus.logging.Logger;
 import org.codehaus.plexus.logging.console.ConsoleLogger;
 import org.easymock.classextension.EasyMockSupport;
+import org.sonatype.aether.RepositorySystemSession;
+import org.sonatype.aether.repository.LocalRepositoryManager;
 
 public class DefaultDependencyResolverTest
     extends PlexusTestCase
@@ -70,6 +83,22 @@
         repoFactory = lookup( ArtifactRepositoryFactory.class );
         layout = lookup( ArtifactRepositoryLayout.class, "default" );
     }
+    
+    protected MavenSession newMavenSession( MavenProject project )
+    {
+        MavenExecutionRequest request = new DefaultMavenExecutionRequest();
+        MavenExecutionResult result = new DefaultMavenExecutionResult();
+
+        MavenRepositorySystemSession repoSession = new MavenRepositorySystemSession();
+        
+        repoSession.setLocalRepositoryManager( LegacyLocalRepositoryManager.wrap( new StubArtifactRepository( "target/local-repo" ),
+                                                                                  null ) );
+        MavenSession session = new MavenSession( getContainer(), repoSession, request, result );
+        session.setCurrentProject( project );
+        session.setProjects( Arrays.asList( project ) );
+        return session;
+    }
+
 
     public void test_getDependencySetResolutionRequirements()
         throws DependencyResolutionException
@@ -87,10 +116,11 @@
         final ResolutionManagementInfo info = new ResolutionManagementInfo( project );
 
         final Assembly assembly = new Assembly();
-        resolver.updateDependencySetResolutionRequirements( ds1, info,
-                                                                                                              AssemblyId.createAssemblyId(
-                                                                                                                  assembly ),
-                                                                                                              project );
+        
+        ProjectBuildingRequest buildingRequest = newMavenSession( project ).getProjectBuildingRequest();
+        
+        resolver.updateDependencySetResolutionRequirements( ds1, info, AssemblyId.createAssemblyId( assembly ),
+                                                            buildingRequest, project );
 
         assertTrue( info.isResolutionRequired() );
         assertFalse( info.isResolvedTransitively() );
@@ -141,10 +171,12 @@
         allProjects.add( module1b );
         allProjects.add( module2 );
         allProjects.add( module2a );
-
+        
         expect( cs.getReactorProjects() ).andReturn( allProjects ).anyTimes();
 
         expect( cs.getProject() ).andReturn( project ).anyTimes();
+        
+        expect( cs.getMavenSession() ).andReturn( newMavenSession( project ) ).anyTimes();
 
         final ResolutionManagementInfo info = new ResolutionManagementInfo( project );