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 );