Author: rfscholte Date: Sun Jun 28 21:24:45 2015 New Revision: 1688074 URL: http://svn.apache.org/r1688074 Log: [MDEP-494] Remove/replace Maven2 specific code goals extending AbstractFromConfigurationMojo are now using ArtifactResolver from maven-artifact-transfer
Modified: maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/fromConfiguration/AbstractFromConfigurationMojo.java maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/AbstractDependencyMojoTestCase.java maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/fromConfiguration/TestCopyMojo.java maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/fromConfiguration/TestIncludeExcludeUnpackMojo.java maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/fromConfiguration/TestUnpackMojo.java maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/testUtils/DependencyArtifactStubFactory.java Modified: maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/fromConfiguration/AbstractFromConfigurationMojo.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/fromConfiguration/AbstractFromConfigurationMojo.java?rev=1688074&r1=1688073&r2=1688074&view=diff ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/fromConfiguration/AbstractFromConfigurationMojo.java (original) +++ maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/fromConfiguration/AbstractFromConfigurationMojo.java Sun Jun 28 21:24:45 2015 @@ -26,8 +26,6 @@ import java.util.List; import org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.artifact.repository.ArtifactRepositoryFactory; -import org.apache.maven.artifact.resolver.ArtifactNotFoundException; -import org.apache.maven.artifact.resolver.ArtifactResolutionException; import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException; import org.apache.maven.artifact.versioning.VersionRange; import org.apache.maven.model.Dependency; @@ -38,8 +36,13 @@ import org.apache.maven.plugin.dependenc import org.apache.maven.plugin.dependency.utils.filters.ArtifactItemFilter; import org.apache.maven.plugins.annotations.Component; import org.apache.maven.plugins.annotations.Parameter; +import org.apache.maven.project.DefaultProjectBuildingRequest; import org.apache.maven.project.MavenProject; +import org.apache.maven.project.ProjectBuildingRequest; import org.apache.maven.shared.artifact.filter.collection.ArtifactFilterException; +import org.apache.maven.shared.artifact.repository.RepositoryManager; +import org.apache.maven.shared.artifact.resolve.ArtifactResolver; +import org.apache.maven.shared.artifact.resolve.ArtifactResolverException; import org.codehaus.plexus.util.StringUtils; /** @@ -109,6 +112,12 @@ public abstract class AbstractFromConfig @Parameter private File localRepositoryDirectory; + @Component + private ArtifactResolver artifactResolver; + + @Component + private RepositoryManager repositoryManager; + /** * To host and cache localRepositoryDirectory */ @@ -252,16 +261,27 @@ public abstract class AbstractFromConfig * artifactResolutionResult.getArtifactResolutionNodes().iterator(); while ( iter.hasNext() ) { * ResolutionNode node = (ResolutionNode) iter.next(); artifact = node.getArtifact(); } */ + + ProjectBuildingRequest buildingRequest; + + if ( localRepositoryDirectory != null ) + { + buildingRequest = + repositoryManager.setLocalRepositoryBasedir( session.getProjectBuildingRequest(), + localRepositoryDirectory ); + } + else + { + buildingRequest = new DefaultProjectBuildingRequest( session.getProjectBuildingRequest() ); + } + + buildingRequest.setRemoteRepositories( remoteRepos ); - resolver.resolve( artifact, remoteRepos, getLocal() ); - } - catch ( ArtifactResolutionException e ) - { - throw new MojoExecutionException( "Unable to resolve artifact.", e ); + artifact = artifactResolver.resolveArtifact( buildingRequest, artifact ); } - catch ( ArtifactNotFoundException e ) + catch ( ArtifactResolverException e ) { - throw new MojoExecutionException( "Unable to find artifact.", e ); + throw new MojoExecutionException( "Unable to find/resolve artifact.", e ); } return artifact; Modified: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/AbstractDependencyMojoTestCase.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/AbstractDependencyMojoTestCase.java?rev=1688074&r1=1688073&r2=1688074&view=diff ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/AbstractDependencyMojoTestCase.java (original) +++ maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/AbstractDependencyMojoTestCase.java Sun Jun 28 21:24:45 2015 @@ -40,19 +40,25 @@ public abstract class AbstractDependency { super(); } - + protected void setUp( String testDirStr, boolean createFiles ) throws Exception { + setUp( testDirStr, createFiles, true ); + } + + protected void setUp( String testDirStr, boolean createFiles, boolean flattenedPath ) + throws Exception + { // required for mojo lookups to work super.setUp(); - testDir = new File( getBasedir(), "target" + File.separatorChar + "unit-tests" + File.separatorChar - + testDirStr + File.separatorChar ); + testDir = + new File( getBasedir(), "target" + File.separatorChar + "unit-tests" + File.separatorChar + testDirStr + + File.separatorChar ); DependencyTestUtils.removeDirectory( testDir ); assertFalse( testDir.exists() ); - stubFactory = new DependencyArtifactStubFactory( this.testDir, createFiles ); - + stubFactory = new DependencyArtifactStubFactory( this.testDir, createFiles, flattenedPath ); } protected void tearDown() Modified: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/fromConfiguration/TestCopyMojo.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/fromConfiguration/TestCopyMojo.java?rev=1688074&r1=1688073&r2=1688074&view=diff ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/fromConfiguration/TestCopyMojo.java (original) +++ maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/fromConfiguration/TestCopyMojo.java Sun Jun 28 21:24:45 2015 @@ -20,12 +20,14 @@ package org.apache.maven.plugin.dependen */ import java.io.File; +import java.io.IOException; import java.util.ArrayList; import java.util.Collection; import java.util.List; import org.apache.maven.artifact.Artifact; -import org.apache.maven.artifact.repository.ArtifactRepository; +import org.apache.maven.artifact.versioning.VersionRange; +import org.apache.maven.execution.MavenSession; import org.apache.maven.model.Dependency; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.dependency.AbstractDependencyMojoTestCase; @@ -34,13 +36,18 @@ import org.apache.maven.plugin.dependenc import org.apache.maven.plugin.testing.stubs.StubArtifactRepository; import org.apache.maven.plugin.testing.stubs.StubArtifactResolver; import org.apache.maven.project.MavenProject; +import org.sonatype.aether.impl.internal.SimpleLocalRepositoryManager; +import org.sonatype.aether.util.DefaultRepositorySystemSession; public class TestCopyMojo extends AbstractDependencyMojoTestCase { - CopyMojo mojo; - + + private File localRepoDir; + + SimpleLocalRepositoryManager lrm; + public TestCopyMojo() { super(); @@ -49,7 +56,7 @@ public class TestCopyMojo protected void setUp() throws Exception { - super.setUp( "copy", false ); + super.setUp( "copy", false, false ); File testPom = new File( getBasedir(), "target/test-classes/unit/copy-test/plugin-config.xml" ); mojo = (CopyMojo) lookupMojo( "copy", testPom ); @@ -62,7 +69,25 @@ public class TestCopyMojo // init classifier things mojo.setFactory( DependencyTestUtils.getArtifactFactory() ); mojo.setResolver( new StubArtifactResolver( stubFactory, false, false ) ); - mojo.setLocal( new StubArtifactRepository( this.testDir.getAbsolutePath() ) ); + + MavenSession session = newMavenSession( mojo.getProject() ); + setVariableValueToObject( mojo, "session", session ); + + DefaultRepositorySystemSession repoSession = (DefaultRepositorySystemSession) session.getRepositorySession(); + +// ArtifactRepository repo = new StubArtifactRepository( stubFactory.getWorkingDir().getAbsolutePath() ) { +// @Override +// public String pathOf( Artifact artifact ) +// { +// return ArtifactStubFactory.getFormattedFileName( artifact, false ); +// } +// }; +// mojo.setLocal( repo ); + + localRepoDir = stubFactory.getWorkingDir(); + + lrm = new SimpleLocalRepositoryManager( localRepoDir ); + repoSession.setLocalRepositoryManager( lrm ); } public ArtifactItem getSingleArtifactItem( boolean removeVersion, boolean useBaseVersion ) @@ -73,7 +98,7 @@ public class TestCopyMojo } public void testGetArtifactItems() - throws MojoExecutionException + throws Exception { ArtifactItem item = new ArtifactItem(); @@ -83,9 +108,9 @@ public class TestCopyMojo item.setVersion( "1.0" ); List<ArtifactItem> list = new ArrayList<ArtifactItem>( 1 ); - list.add( item ); + list.add( createArtifact( item ) ); - mojo.setArtifactItems( list ); + mojo.setArtifactItems( createArtifactItemArtifacts( list ) ); ArtifactItem result = getSingleArtifactItem( false, false ); assertEquals( mojo.getOutputDirectory(), result.getOutputDirectory() ); @@ -124,7 +149,7 @@ public class TestCopyMojo { List<ArtifactItem> list = stubFactory.getArtifactItems( stubFactory.getClassifiedArtifacts() ); - mojo.setArtifactItems( list ); + mojo.setArtifactItems( createArtifactItemArtifacts( list ) ); mojo.execute(); @@ -143,7 +168,7 @@ public class TestCopyMojo item.setBaseVersion( "1.0-SNAPSHOT" ); list.add(item); - mojo.setArtifactItems( list ); + mojo.setArtifactItems( createArtifactItemArtifacts( list ) ); mojo.setUseBaseVersion(true); mojo.execute(); @@ -180,7 +205,7 @@ public class TestCopyMojo item.setOverWrite( "false" ); } - mojo.setArtifactItems( list ); + mojo.setArtifactItems( createArtifactItemArtifacts( list ) ); mojo.execute(); assertFilesExist( list, true ); @@ -193,7 +218,7 @@ public class TestCopyMojo ArtifactItem item = list.get( 0 ); item.setOutputDirectory( new File( mojo.getOutputDirectory(), "testOverride" ) ); - mojo.setArtifactItems( list ); + mojo.setArtifactItems( createArtifactItemArtifacts( list ) ); mojo.execute(); @@ -204,11 +229,12 @@ public class TestCopyMojo throws Exception { List<ArtifactItem> list = stubFactory.getArtifactItems( stubFactory.getClassifiedArtifacts() ); + ArtifactItem item = list.get( 0 ); item.setOutputDirectory( new File( mojo.getOutputDirectory(), "testOverride" ) ); mojo.setStripVersion( true ); - mojo.setArtifactItems( list ); + mojo.setArtifactItems( createArtifactItemArtifacts( list ) ); mojo.execute(); assertEquals( DependencyUtil.getFormattedFileName( item.getArtifact(), true ), item.getDestFileName() ); @@ -220,11 +246,12 @@ public class TestCopyMojo throws Exception { List<ArtifactItem> list = stubFactory.getArtifactItems( stubFactory.getClassifiedArtifacts() ); + ArtifactItem item = list.get( 0 ); item.setOutputDirectory( new File( mojo.getOutputDirectory(), "testOverride" ) ); mojo.setStripClassifier( true ); - mojo.setArtifactItems( list ); + mojo.setArtifactItems( createArtifactItemArtifacts( list ) ); mojo.execute(); assertEquals( DependencyUtil.getFormattedFileName( item.getArtifact(), false, false, false, true ), item.getDestFileName() ); @@ -237,7 +264,7 @@ public class TestCopyMojo { List<ArtifactItem> list = stubFactory.getArtifactItems( stubFactory.getReleaseAndSnapshotArtifacts() ); mojo.setStripVersion( true ); - mojo.setArtifactItems( list ); + mojo.setArtifactItems( createArtifactItemArtifacts( list ) ); mojo.execute(); @@ -249,7 +276,7 @@ public class TestCopyMojo { List<ArtifactItem> list = stubFactory.getArtifactItems( stubFactory.getReleaseAndSnapshotArtifacts() ); - mojo.setArtifactItems( list ); + mojo.setArtifactItems( createArtifactItemArtifacts( list ) ); mojo.execute(); @@ -319,7 +346,7 @@ public class TestCopyMojo mojo.setArtifactItems( list ); MavenProject project = mojo.getProject(); - project.setDependencies( getDependencyList( item ) ); + project.setDependencies( createDependencyArtifacts( getDependencyList( item ) ) ); mojo.execute(); this.assertFileExists( item, true ); @@ -337,10 +364,16 @@ public class TestCopyMojo item.setType( "type" ); MavenProject project = mojo.getProject(); - project.setDependencies( getDependencyList( item ) ); - + project.setDependencies( createDependencyArtifacts( getDependencyList( item ) ) ); + + // ensure dependency exists item.setClassifier( "sources" ); item.setType( "jar" ); + + // pre-create item + item.setVersion( "2.1" ); + createArtifact( item ); + item.setVersion( null ); List<ArtifactItem> list = new ArrayList<ArtifactItem>(); list.add( item ); @@ -366,7 +399,7 @@ public class TestCopyMojo mojo.setArtifactItems( list ); MavenProject project = mojo.getProject(); - project.setDependencies( getDependencyList( item ) ); + project.setDependencies( createDependencyArtifacts( getDependencyList( item ) ) ); mojo.execute(); this.assertFileExists( item, true ); @@ -421,7 +454,7 @@ public class TestCopyMojo mojo.setArtifactItems( list ); - project.getDependencyManagement().setDependencies( getDependencyMgtList( item ) ); + project.getDependencyManagement().setDependencies( createDependencyArtifacts( getDependencyMgtList( item ) ) ); mojo.execute(); @@ -454,9 +487,15 @@ public class TestCopyMojo mojo.setArtifactItems( list ); - project.getDependencyManagement().setDependencies( getDependencyMgtList( item ) ); + project.getDependencyManagement().setDependencies( createDependencyArtifacts( getDependencyMgtList( item ) ) ); item.setType( "jar" ); + + // pre-create item + item.setVersion( "3.1" ); + createArtifact( item ); + item.setVersion( null ); + mojo.execute(); this.assertFileExists( item, true ); @@ -488,7 +527,7 @@ public class TestCopyMojo mojo.setArtifactItems( list ); - project.getDependencyManagement().setDependencies( getDependencyMgtList( item ) ); + project.getDependencyManagement().setDependencies( createDependencyArtifacts( getDependencyMgtList( item ) ) ); mojo.execute(); @@ -535,14 +574,7 @@ public class TestCopyMojo } catch ( MojoExecutionException e ) { - if ( are ) - { - assertEquals( "Unable to resolve artifact.", e.getMessage() ); - } - else - { - assertEquals( "Unable to find artifact.", e.getMessage() ); - } + assertEquals( "Unable to find/resolve artifact.", e.getMessage() ); } } @@ -711,29 +743,60 @@ public class TestCopyMojo public void testCopyFileWithOverideLocalRepo() throws Exception { + final File localRepo = stubFactory.getWorkingDir(); + List<ArtifactItem> list = stubFactory.getArtifactItems( stubFactory.getClassifiedArtifacts() ); mojo.setArtifactItems( list ); - ArtifactRepository local = new StubArtifactRepository( this.testDir.getAbsolutePath() ) - { - @Override - public String getId() - { - return "ID"; - } - }; - mojo.setLocal( local ); + mojo.setLocal( null ); File execLocalRepo = new File( this.testDir.getAbsolutePath(), "executionLocalRepo" ); assertFalse( execLocalRepo.exists() ); + stubFactory.setWorkingDir( execLocalRepo ); + createArtifactItemArtifacts( list ); + + assertFalse( "default local repo should not exist", localRepo.exists() ); + mojo.setLocalRepositoryDirectory( execLocalRepo ); - assertEquals( execLocalRepo.getAbsolutePath(), mojo.getLocal().getBasedir() ); mojo.execute(); assertFilesExist( list, true ); } + private List<Dependency> createDependencyArtifacts( List<Dependency> items ) throws IOException { + stubFactory.setCreateFiles( true ); + for ( Dependency item : items ) + { + String classifier = "".equals( item.getClassifier() ) ? null : item.getClassifier(); + stubFactory.createArtifact( item.getGroupId(), item.getArtifactId(), + VersionRange.createFromVersion( item.getVersion() ), null, + item.getType(), classifier, item.isOptional() ); + } + return items; + } + + private List<ArtifactItem> createArtifactItemArtifacts( List<ArtifactItem> items ) + throws IOException + { + for ( ArtifactItem item : items ) + { + createArtifact( item ); + } + return items; + } + + private ArtifactItem createArtifact( ArtifactItem item ) throws IOException + { + stubFactory.setCreateFiles( true ); + + String classifier = "".equals( item.getClassifier() ) ? null : item.getClassifier(); + String version = item.getVersion() != null ? item.getVersion() : item.getBaseVersion(); + stubFactory.createArtifact( item.getGroupId(), item.getArtifactId(), + version, null, + item.getType(), classifier ); + return item; + } } Modified: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/fromConfiguration/TestIncludeExcludeUnpackMojo.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/fromConfiguration/TestIncludeExcludeUnpackMojo.java?rev=1688074&r1=1688073&r2=1688074&view=diff ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/fromConfiguration/TestIncludeExcludeUnpackMojo.java (original) +++ maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/fromConfiguration/TestIncludeExcludeUnpackMojo.java Sun Jun 28 21:24:45 2015 @@ -25,12 +25,19 @@ import java.util.Collection; import java.util.List; import org.apache.maven.artifact.Artifact; +import org.apache.maven.artifact.repository.ArtifactRepository; +import org.apache.maven.artifact.repository.LegacyLocalRepositoryManager; +import org.apache.maven.execution.MavenSession; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.dependency.AbstractDependencyMojoTestCase; import org.apache.maven.plugin.dependency.testUtils.DependencyTestUtils; import org.apache.maven.plugin.dependency.utils.markers.UnpackFileMarkerHandler; +import org.apache.maven.plugin.testing.ArtifactStubFactory; +import org.apache.maven.plugin.testing.stubs.StubArtifactRepository; import org.apache.maven.plugin.testing.stubs.StubArtifactResolver; import org.codehaus.plexus.archiver.manager.ArchiverManager; +import org.sonatype.aether.RepositorySystem; +import org.sonatype.aether.util.DefaultRepositorySystemSession; public class TestIncludeExcludeUnpackMojo extends AbstractDependencyMojoTestCase @@ -74,6 +81,23 @@ public class TestIncludeExcludeUnpackMoj mojo.setResolver( new StubArtifactResolver( stubFactory, false, false ) ); mojo.setMarkersDirectory( new File( this.testDir, "markers" ) ); mojo.setArtifactItems( list ); + + MavenSession session = newMavenSession( mojo.getProject() ); + setVariableValueToObject( mojo, "session", session ); + + DefaultRepositorySystemSession repoSession = (DefaultRepositorySystemSession) session.getRepositorySession(); + + ArtifactRepository repo = new StubArtifactRepository( stubFactory.getWorkingDir().getAbsolutePath() ) { + @Override + public String pathOf( Artifact artifact ) + { + return ArtifactStubFactory.getFormattedFileName( artifact, false ); + } + }; + mojo.setLocal( repo ); + RepositorySystem repoSystem = lookup( RepositorySystem.class ); + + repoSession.setLocalRepositoryManager( LegacyLocalRepositoryManager.wrap( repo, repoSystem ) ); } protected void tearDown() Modified: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/fromConfiguration/TestUnpackMojo.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/fromConfiguration/TestUnpackMojo.java?rev=1688074&r1=1688073&r2=1688074&view=diff ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/fromConfiguration/TestUnpackMojo.java (original) +++ maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/fromConfiguration/TestUnpackMojo.java Sun Jun 28 21:24:45 2015 @@ -28,16 +28,22 @@ import java.util.List; import org.apache.commons.lang.time.DateFormatUtils; import org.apache.maven.artifact.Artifact; +import org.apache.maven.artifact.repository.ArtifactRepository; +import org.apache.maven.artifact.repository.LegacyLocalRepositoryManager; import org.apache.maven.artifact.versioning.VersionRange; +import org.apache.maven.execution.MavenSession; import org.apache.maven.model.Dependency; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.dependency.AbstractDependencyMojoTestCase; import org.apache.maven.plugin.dependency.testUtils.DependencyArtifactStubFactory; import org.apache.maven.plugin.dependency.testUtils.DependencyTestUtils; import org.apache.maven.plugin.dependency.utils.markers.UnpackFileMarkerHandler; +import org.apache.maven.plugin.testing.ArtifactStubFactory; import org.apache.maven.plugin.testing.stubs.StubArtifactRepository; import org.apache.maven.plugin.testing.stubs.StubArtifactResolver; import org.apache.maven.project.MavenProject; +import org.sonatype.aether.RepositorySystem; +import org.sonatype.aether.util.DefaultRepositorySystemSession; public class TestUnpackMojo extends AbstractDependencyMojoTestCase @@ -74,8 +80,25 @@ public class TestUnpackMojo mojo.setFactory( DependencyTestUtils.getArtifactFactory() ); mojo.setResolver( new StubArtifactResolver( stubFactory, false, false ) ); - mojo.setLocal( new StubArtifactRepository( this.testDir.getAbsolutePath() ) ); + // mojo.setLocal( new StubArtifactRepository( this.testDir.getAbsolutePath() ) ); mojo.setUseJvmChmod( true ); + + MavenSession session = newMavenSession( mojo.getProject() ); + setVariableValueToObject( mojo, "session", session ); + + DefaultRepositorySystemSession repoSession = (DefaultRepositorySystemSession) session.getRepositorySession(); + + ArtifactRepository repo = new StubArtifactRepository( stubFactory.getWorkingDir().getAbsolutePath() ) { + @Override + public String pathOf( Artifact artifact ) + { + return ArtifactStubFactory.getFormattedFileName( artifact, false ); + } + }; + mojo.setLocal( repo ); + RepositorySystem repoSystem = lookup( RepositorySystem.class ); + + repoSession.setLocalRepositoryManager( LegacyLocalRepositoryManager.wrap( repo, repoSystem ) ); } public ArtifactItem getSingleArtifactItem( boolean removeVersion ) @@ -86,7 +109,7 @@ public class TestUnpackMojo } public void testGetArtifactItems() - throws MojoExecutionException + throws Exception { ArtifactItem item = new ArtifactItem(); @@ -96,7 +119,7 @@ public class TestUnpackMojo item.setVersion( "1.0" ); ArrayList<ArtifactItem> list = new ArrayList<ArtifactItem>( 1 ); - list.add( item ); + list.add( createArtifact( item ) ); mojo.setArtifactItems( list ); @@ -391,14 +414,7 @@ public class TestUnpackMojo } catch ( MojoExecutionException e ) { - if ( are ) - { - assertEquals( "Unable to resolve artifact.", e.getMessage() ); - } - else - { - assertEquals( "Unable to find artifact.", e.getMessage() ); - } + assertEquals( "Unable to find/resolve artifact.", e.getMessage() ); } } @@ -605,4 +621,13 @@ public class TestUnpackMojo art.getType(), classifier, art.isOptional() ); return art; } + + private ArtifactItem createArtifact( ArtifactItem item ) throws IOException + { + String classifier = "".equals( item.getClassifier() ) ? null : item.getClassifier(); + stubFactory.createArtifact( item.getGroupId(), item.getArtifactId(), + item.getVersion(), null, + item.getType(), classifier ); + return item; + } } Modified: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/testUtils/DependencyArtifactStubFactory.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/testUtils/DependencyArtifactStubFactory.java?rev=1688074&r1=1688073&r2=1688074&view=diff ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/testUtils/DependencyArtifactStubFactory.java (original) +++ maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/testUtils/DependencyArtifactStubFactory.java Sun Jun 28 21:24:45 2015 @@ -20,18 +20,29 @@ package org.apache.maven.plugin.dependen */ import java.io.File; +import java.io.IOException; import java.util.ArrayList; import java.util.Collection; import java.util.List; import org.apache.maven.artifact.Artifact; +import org.apache.maven.artifact.ArtifactUtils; +import org.apache.maven.artifact.versioning.VersionRange; import org.apache.maven.plugin.dependency.fromConfiguration.ArtifactItem; import org.apache.maven.plugin.testing.ArtifactStubFactory; public class DependencyArtifactStubFactory extends ArtifactStubFactory { - + private boolean flattenedPath = true; + + public DependencyArtifactStubFactory( File theWorkingDir, boolean theCreateFiles, boolean flattenedPath ) + { + this( theWorkingDir, theCreateFiles ); + this.flattenedPath = flattenedPath; + } + + /** * @param theWorkingDir * @param theCreateFiles @@ -56,4 +67,32 @@ public class DependencyArtifactStubFacto } return list; } + + @Override + public Artifact createArtifact( String groupId, String artifactId, VersionRange versionRange, String scope, + String type, String classifier, boolean optional ) + throws IOException + { + File workingDir = getWorkingDir(); + + if ( !flattenedPath ) + { + StringBuilder path = new StringBuilder( 128 ); + + path.append( groupId.replace( '.', '/' ) ).append( '/' ); + + path.append( artifactId ).append( '/' ); + + path.append( ArtifactUtils.toSnapshotVersion( versionRange.getRecommendedVersion().toString() ) ); + + // don't use flatten directories, won't happen at runtime + setWorkingDir( new File( workingDir, path.toString() ) ); + } + + Artifact artifact = super.createArtifact( groupId, artifactId, versionRange, scope, type, classifier, optional ); + + setWorkingDir( workingDir ); + + return artifact; + } }