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;
+    }
  }


Reply via email to