You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2017/01/27 13:14:23 UTC

[2/2] maven-archetype git commit: [ARCHETYPE-515] Migrate plugin to Maven3

[ARCHETYPE-515] Migrate plugin to Maven3

Squashed commit of the following:

commit e1e6fff59037ba20a479cd1b1dcaa750bf6d1cd0
Author: rfscholte <rf...@apache.org>
Date:   Fri Jan 27 14:08:13 2017 +0100

    clean up dependencies

commit ffe813f486916b4d2d8ae249a64a818978f5bfc6
Author: rfscholte <rf...@apache.org>
Date:   Thu Jan 26 17:23:29 2017 +0100

    maven-compat now always has test scope

commit fa1a96680c77814f88cf5dc8b18227ab1e01ed87
Author: rfscholte <rf...@apache.org>
Date:   Thu Jan 26 17:07:33 2017 +0100

    Replace maven-compat classes in IntegrationTestMojo

commit 401832a7f95a508ad7ee6032950dd4df447ffb59
Author: rfscholte <rf...@apache.org>
Date:   Thu Jan 26 12:39:50 2017 +0100

    archetype-common main sources freed from maven-compat

commit d2ad8a7dde8ae5a7a64b2e6bb0aabfeb6cc6d7ad
Author: rfscholte <rf...@apache.org>
Date:   Thu Jan 26 12:15:04 2017 +0100

    Replace maven-compat class in DefaultArchetypeRegistryManager

commit 59e729068331b87fb68ec57c44a7d1d01f431b49
Author: rfscholte <rf...@apache.org>
Date:   Thu Jan 26 11:42:42 2017 +0100

    Replace maven-compat classes in DefaultDownloader

commit 08060f0ebd1e452d865ee11c0f66d36aef26e275
Author: rfscholte <rf...@apache.org>
Date:   Wed Jan 25 16:05:23 2017 +0100

    Maven 3.0 dependencies + maven-compat

commit 9415a13838fe4f3dbf82efc7cd064e7a27a4cfd4
Author: rfscholte <rf...@apache.org>
Date:   Wed Jan 25 12:19:11 2017 +0100

    Move parent to proper location

commit fff235b7df4c13f18a1b348649334d8b11dced65
Author: rfscholte <rf...@apache.org>
Date:   Wed Jan 25 00:20:50 2017 +0100

    [ARCHETYPE-515] Migrate plugin to Maven3
    stop using legacy repository layout


Project: http://git-wip-us.apache.org/repos/asf/maven-archetype/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven-archetype/commit/624f9aff
Tree: http://git-wip-us.apache.org/repos/asf/maven-archetype/tree/624f9aff
Diff: http://git-wip-us.apache.org/repos/asf/maven-archetype/diff/624f9aff

Branch: refs/heads/master
Commit: 624f9affdc27c8efe6443e03e89259dbe51d08dd
Parents: 9857d34
Author: rfscholte <rf...@apache.org>
Authored: Fri Jan 27 14:13:54 2017 +0100
Committer: rfscholte <rf...@apache.org>
Committed: Fri Jan 27 14:13:54 2017 +0100

----------------------------------------------------------------------
 archetype-common/pom.xml                        |  46 +++++-
 .../archetype/ArchetypeGenerationRequest.java   |  14 ++
 .../common/ArchetypeArtifactManager.java        |  30 ++--
 .../common/DefaultArchetypeArtifactManager.java |  46 +++---
 .../common/DefaultArchetypeRegistryManager.java |  31 ++--
 .../creator/FilesetArchetypeCreator.java        |  57 ++++----
 .../archetype/downloader/DefaultDownloader.java |  84 +++++------
 .../maven/archetype/downloader/Downloader.java  |   9 +-
 .../generator/DefaultArchetypeGenerator.java    |   5 +-
 .../archetype/old/DefaultOldArchetype.java      |   9 +-
 .../RemoteCatalogArchetypeDataSource.java       | 141 +++++++++++++++++--
 .../DefaultArchetypeGeneratorTest.java          |  10 ++
 .../maven/archetype/old/ArchetypeTest.java      |  37 +++--
 .../archetype/test/ArchetypeGenerationTest.java |  10 ++
 ...ternalCatalogArchetypesVerificationTest.java |  11 ++
 ...rchetype-quickstart-1.0-alpha-1-SNAPSHOT.jar | Bin 3624 -> 0 bytes
 ...rchetype-quickstart-1.0-alpha-1-SNAPSHOT.pom |  26 ----
 ...-quickstart-1.0-alpha-1-SNAPSHOT.version.txt |   1 -
 .../maven-archetypes-1.0-alpha-1-SNAPSHOT.pom   |  33 -----
 ...-archetypes-1.0-alpha-1-SNAPSHOT.version.txt |   1 -
 ...rchetype-quickstart-1.0-alpha-1-SNAPSHOT.jar | Bin 0 -> 3624 bytes
 ...rchetype-quickstart-1.0-alpha-1-SNAPSHOT.pom |  26 ++++
 .../maven-archetypes-1.0-alpha-1-SNAPSHOT.pom   |  33 +++++
 .../maven-archetype-1.0-alpha-1-SNAPSHOT.pom    |  23 +++
 archetype-packaging/pom.xml                     |   7 -
 archetype-testing/archetype-final/pom.xml       |  33 ++---
 .../creator/DefaultArchetypeCreatorIT.java      |  29 ++--
 .../archetype/test/ArchetyperRoundtripIT.java   |  35 +++--
 .../test/ArchetyperRoundtripWithProxyIT.java    |  41 ++++--
 .../archetype/test/RoundtripMultiModuleIT.java  |  36 +++--
 archetype-testing/archetype-proxy/pom.xml       |   6 -
 archetype-testing/archetype-repository/pom.xml  |   6 -
 maven-archetype-plugin/pom.xml                  |  52 +++----
 .../mojos/CreateProjectFromArchetypeMojo.java   |  13 +-
 .../archetype/mojos/IntegrationTestMojo.java    |  46 +++---
 .../archetype/mojos/MavenArchetypeMojo.java     |  14 +-
 .../DefaultArchetypeGenerationConfigurator.java |  20 +--
 ...ultArchetypeGenerationConfigurator2Test.java |  15 +-
 ...aultArchetypeGenerationConfiguratorTest.java |  11 +-
 pom.xml                                         |  60 ++++++--
 40 files changed, 718 insertions(+), 389 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-common/pom.xml
----------------------------------------------------------------------
diff --git a/archetype-common/pom.xml b/archetype-common/pom.xml
index f32533f..0c9c7cb 100644
--- a/archetype-common/pom.xml
+++ b/archetype-common/pom.xml
@@ -43,12 +43,14 @@
 
   <dependencies>
     <dependency>
-      <groupId>org.apache.maven.archetype</groupId>
-      <artifactId>archetype-catalog</artifactId>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-compat</artifactId>
+      <scope>test</scope>
     </dependency>
+  
     <dependency>
       <groupId>org.apache.maven.archetype</groupId>
-      <artifactId>archetype-packaging</artifactId>
+      <artifactId>archetype-catalog</artifactId>
     </dependency>
     <dependency>
       <groupId>org.apache.maven.archetype</groupId>
@@ -81,15 +83,27 @@
     </dependency>
     <dependency>
       <groupId>org.apache.maven</groupId>
-      <artifactId>maven-project</artifactId>
+      <artifactId>maven-core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-artifact</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-settings</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-settings-builder</artifactId>
     </dependency>
     <dependency>
       <groupId>org.apache.maven.shared</groupId>
       <artifactId>maven-invoker</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.codehaus.plexus</groupId>
-      <artifactId>plexus-container-default</artifactId>
+      <groupId>org.apache.maven.shared</groupId>
+      <artifactId>maven-artifact-transfer</artifactId>
     </dependency>
     <dependency>
       <groupId>org.codehaus.plexus</groupId>
@@ -113,11 +127,31 @@
       <artifactId>velocity</artifactId>
     </dependency>
     <dependency>
+      <groupId>org.apache.maven.wagon</groupId>
+      <artifactId>wagon-provider-api</artifactId>
+    </dependency>
+    
+    <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
       <scope>test</scope>
     </dependency>
 
+    <dependency>
+      <groupId>org.sonatype.aether</groupId>
+      <artifactId>aether-connector-file</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.sonatype.aether</groupId>
+      <artifactId>aether-connector-wagon</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.wagon</groupId>
+      <artifactId>wagon-http</artifactId>
+      <scope>test</scope>
+    </dependency>
 
     <dependency>
       <groupId>org.mortbay.jetty</groupId>

http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-common/src/main/java/org/apache/maven/archetype/ArchetypeGenerationRequest.java
----------------------------------------------------------------------
diff --git a/archetype-common/src/main/java/org/apache/maven/archetype/ArchetypeGenerationRequest.java b/archetype-common/src/main/java/org/apache/maven/archetype/ArchetypeGenerationRequest.java
index dc3a1b9..a3d63cf 100644
--- a/archetype-common/src/main/java/org/apache/maven/archetype/ArchetypeGenerationRequest.java
+++ b/archetype-common/src/main/java/org/apache/maven/archetype/ArchetypeGenerationRequest.java
@@ -21,6 +21,7 @@ package org.apache.maven.archetype;
 
 import org.apache.maven.archetype.catalog.Archetype;
 import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.project.ProjectBuildingRequest;
 import org.apache.maven.settings.Mirror;
 import org.apache.maven.settings.Proxy;
 import org.apache.maven.settings.Server;
@@ -33,6 +34,8 @@ import java.util.Properties;
 /** @author Jason van Zyl */
 public class ArchetypeGenerationRequest
 {
+    private ProjectBuildingRequest projectBuildingRequest;
+    
     private boolean offline;
 
     private boolean interactiveMode;
@@ -96,6 +99,17 @@ public class ArchetypeGenerationRequest
         this.archetypeRepository = archetype.getRepository();
     }
 
+    public ProjectBuildingRequest getProjectBuildingRequest()
+    {
+        return projectBuildingRequest;
+    }
+    
+    public ArchetypeGenerationRequest setProjectBuildingRequest( ProjectBuildingRequest projectBuildingRequest )
+    {
+        this.projectBuildingRequest = projectBuildingRequest;
+        return this;
+    }
+    
     public String getArchetypeGroupId()
     {
         return archetypeGroupId;

http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-common/src/main/java/org/apache/maven/archetype/common/ArchetypeArtifactManager.java
----------------------------------------------------------------------
diff --git a/archetype-common/src/main/java/org/apache/maven/archetype/common/ArchetypeArtifactManager.java b/archetype-common/src/main/java/org/apache/maven/archetype/common/ArchetypeArtifactManager.java
index b89d64b..1577115 100644
--- a/archetype-common/src/main/java/org/apache/maven/archetype/common/ArchetypeArtifactManager.java
+++ b/archetype-common/src/main/java/org/apache/maven/archetype/common/ArchetypeArtifactManager.java
@@ -23,7 +23,7 @@ import org.apache.maven.archetype.exception.UnknownArchetype;
 import org.apache.maven.archetype.metadata.ArchetypeDescriptor;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.model.Model;
-
+import org.apache.maven.project.ProjectBuildingRequest;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 
 import java.io.File;
@@ -40,10 +40,11 @@ public interface ArchetypeArtifactManager
         throws XmlPullParserException, UnknownArchetype, IOException;
 
     /**
+     * @param buildingRequest TODO
      */
     File getArchetypeFile( String groupId, String artifactId, String version,
                            ArtifactRepository archetypeRepository, ArtifactRepository localRepository,
-                           List<ArtifactRepository> repositories )
+                           List<ArtifactRepository> repositories, ProjectBuildingRequest buildingRequest )
         throws UnknownArchetype;
 
     /**
@@ -61,25 +62,29 @@ public interface ArchetypeArtifactManager
     boolean isFileSetArchetype( File archetypeFile );
 
     /**
+     * @param buildingRequest TODO
      */
     boolean isFileSetArchetype( String groupId, String artifactId, String version,
                                 ArtifactRepository archetypeRepository, ArtifactRepository localRepository,
-                                List<ArtifactRepository> repositories );
+                                List<ArtifactRepository> repositories, ProjectBuildingRequest buildingRequest );
 
     /**
      */
     boolean isOldArchetype( File archetypeFile );
 
     /**
+     * @param buildingRequest TODO
      */
     boolean isOldArchetype( String groupId, String artifactId, String version, ArtifactRepository archetypeRepository,
-                            ArtifactRepository localRepository, List<ArtifactRepository> repositories );
+                            ArtifactRepository localRepository, List<ArtifactRepository> repositories,
+                            ProjectBuildingRequest buildingRequest );
 
     /**
+     * @param buildingRequest TODO
      */
     boolean exists( String archetypeGroupId, String archetypeArtifactId, String archetypeVersion,
                     ArtifactRepository archetypeRepository, ArtifactRepository localRepository,
-                    List<ArtifactRepository> repos );
+                    List<ArtifactRepository> repos, ProjectBuildingRequest buildingRequest );
 
     /**
      * Get the archetype file's post-generation script content, read as UTF-8 content.
@@ -98,11 +103,13 @@ public interface ArchetypeArtifactManager
         throws UnknownArchetype;
 
     /**
+     * @param buildingRequest TODO
      */
     ArchetypeDescriptor getFileSetArchetypeDescriptor( String groupId, String artifactId, String version,
                                                        ArtifactRepository archetypeRepository,
                                                        ArtifactRepository localRepository,
-                                                       List<ArtifactRepository> repositories )
+                                                       List<ArtifactRepository> repositories,
+                                                       ProjectBuildingRequest buildingRequest )
         throws UnknownArchetype;
 
     /**
@@ -116,9 +123,14 @@ public interface ArchetypeArtifactManager
         throws UnknownArchetype;
 
     /**
+     * @param buildingRequest TODO
      */
-    org.apache.maven.archetype.old.descriptor.ArchetypeDescriptor getOldArchetypeDescriptor(
-            String groupId, String artifactId, String version, ArtifactRepository archetypeRepository,
-            ArtifactRepository localRepository, List<ArtifactRepository> repositories )
+    org.apache.maven.archetype.old.descriptor.ArchetypeDescriptor getOldArchetypeDescriptor( String groupId,
+                                                                     String artifactId,
+                                                                     String version,
+                                                                     ArtifactRepository archetypeRepository,
+                                                                     ArtifactRepository localRepository,
+                                                                     List<ArtifactRepository> repositories,
+                                                                     ProjectBuildingRequest buildingRequest )
         throws UnknownArchetype;
 }

http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-common/src/main/java/org/apache/maven/archetype/common/DefaultArchetypeArtifactManager.java
----------------------------------------------------------------------
diff --git a/archetype-common/src/main/java/org/apache/maven/archetype/common/DefaultArchetypeArtifactManager.java b/archetype-common/src/main/java/org/apache/maven/archetype/common/DefaultArchetypeArtifactManager.java
index c91e3ad..3ba4435 100644
--- a/archetype-common/src/main/java/org/apache/maven/archetype/common/DefaultArchetypeArtifactManager.java
+++ b/archetype-common/src/main/java/org/apache/maven/archetype/common/DefaultArchetypeArtifactManager.java
@@ -29,7 +29,7 @@ import org.apache.maven.archetype.metadata.io.xpp3.ArchetypeDescriptorXpp3Reader
 import org.apache.maven.archetype.old.descriptor.ArchetypeDescriptorBuilder;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.model.Model;
-
+import org.apache.maven.project.ProjectBuildingRequest;
 import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
@@ -70,7 +70,7 @@ public class DefaultArchetypeArtifactManager
 
     public File getArchetypeFile( final String groupId, final String artifactId, final String version,
                                   ArtifactRepository archetypeRepository, final ArtifactRepository localRepository,
-                                  final List<ArtifactRepository> repositories )
+                                  final List<ArtifactRepository> repositories, ProjectBuildingRequest buildingRequest )
         throws UnknownArchetype
     {
         try
@@ -81,7 +81,7 @@ public class DefaultArchetypeArtifactManager
             {
                 archetype =
                     downloader.download( groupId, artifactId, version, archetypeRepository, localRepository,
-                                         repositories );
+                                         repositories, buildingRequest );
 
                 setArchetype( groupId, artifactId, version, archetype );
             }
@@ -203,12 +203,12 @@ public class DefaultArchetypeArtifactManager
 
     public boolean isFileSetArchetype( String groupId, String artifactId, String version,
                                        ArtifactRepository archetypeRepository, ArtifactRepository localRepository,
-                                       List<ArtifactRepository> repositories )
+                                       List<ArtifactRepository> repositories, ProjectBuildingRequest buildingRequest )
     {
         try
         {
             File archetypeFile = getArchetypeFile( groupId, artifactId, version, archetypeRepository,
-                                                   localRepository, repositories );
+                                                   localRepository, repositories, buildingRequest );
 
             return isFileSetArchetype( archetypeFile );
         }
@@ -251,12 +251,12 @@ public class DefaultArchetypeArtifactManager
 
     public boolean isOldArchetype( String groupId, String artifactId, String version,
                                    ArtifactRepository archetypeRepository, ArtifactRepository localRepository,
-                                   List<ArtifactRepository> repositories )
+                                   List<ArtifactRepository> repositories, ProjectBuildingRequest buildingRequest )
     {
         try
         {
             File archetypeFile = getArchetypeFile( groupId, artifactId, version, archetypeRepository,
-                                                   localRepository, repositories );
+                                                   localRepository, repositories, buildingRequest );
 
             return isOldArchetype( archetypeFile );
         }
@@ -269,7 +269,7 @@ public class DefaultArchetypeArtifactManager
 
     public boolean exists( String archetypeGroupId, String archetypeArtifactId, String archetypeVersion,
                            ArtifactRepository archetypeRepository, ArtifactRepository localRepository,
-                           List<ArtifactRepository> remoteRepositories )
+                           List<ArtifactRepository> remoteRepositories, ProjectBuildingRequest buildingRequest )
     {
         try
         {
@@ -278,7 +278,7 @@ public class DefaultArchetypeArtifactManager
             {
                 archetype =
                     downloader.download( archetypeGroupId, archetypeArtifactId, archetypeVersion, archetypeRepository,
-                                         localRepository, remoteRepositories );
+                                         localRepository, remoteRepositories, buildingRequest );
                 setArchetype( archetypeGroupId, archetypeArtifactId, archetypeVersion, archetype );
             }
 
@@ -343,13 +343,17 @@ public class DefaultArchetypeArtifactManager
         }
     }
 
-    public org.apache.maven.archetype.metadata.ArchetypeDescriptor getFileSetArchetypeDescriptor(
-            String groupId, String artifactId, String version, ArtifactRepository archetypeRepository,
-            ArtifactRepository localRepository, List<ArtifactRepository> repositories )
+    public org.apache.maven.archetype.metadata.ArchetypeDescriptor getFileSetArchetypeDescriptor( String groupId,
+                                                                          String artifactId,
+                                                                          String version,
+                                                                          ArtifactRepository archetypeRepository,
+                                                                          ArtifactRepository localRepository,
+                                                                          List<ArtifactRepository> repositories,
+                                                                          ProjectBuildingRequest buildingRequest )
         throws UnknownArchetype
     {
-        File archetypeFile =
-            getArchetypeFile( groupId, artifactId, version, archetypeRepository, localRepository, repositories );
+        File archetypeFile = getArchetypeFile( groupId, artifactId, version, archetypeRepository, localRepository,
+                                               repositories, buildingRequest );
 
         return getFileSetArchetypeDescriptor( archetypeFile );
     }
@@ -415,13 +419,17 @@ public class DefaultArchetypeArtifactManager
         }
     }
 
-    public org.apache.maven.archetype.old.descriptor.ArchetypeDescriptor getOldArchetypeDescriptor(
-            String groupId, String artifactId, String version, ArtifactRepository archetypeRepository,
-            ArtifactRepository localRepository, List<ArtifactRepository> repositories )
+    public org.apache.maven.archetype.old.descriptor.ArchetypeDescriptor getOldArchetypeDescriptor( String groupId,
+                                                                            String artifactId,
+                                                                            String version,
+                                                                            ArtifactRepository archetypeRepository,
+                                                                            ArtifactRepository localRepository,
+                                                                            List<ArtifactRepository> repositories,
+                                                                            ProjectBuildingRequest buildingRequest )
         throws UnknownArchetype
     {
-        File archetypeFile =
-            getArchetypeFile( groupId, artifactId, version, archetypeRepository, localRepository, repositories );
+        File archetypeFile = getArchetypeFile( groupId, artifactId, version, archetypeRepository, localRepository,
+                                               repositories, buildingRequest );
 
         return getOldArchetypeDescriptor( archetypeFile );
     }

http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-common/src/main/java/org/apache/maven/archetype/common/DefaultArchetypeRegistryManager.java
----------------------------------------------------------------------
diff --git a/archetype-common/src/main/java/org/apache/maven/archetype/common/DefaultArchetypeRegistryManager.java b/archetype-common/src/main/java/org/apache/maven/archetype/common/DefaultArchetypeRegistryManager.java
index 81cff67..14a2944 100644
--- a/archetype-common/src/main/java/org/apache/maven/archetype/common/DefaultArchetypeRegistryManager.java
+++ b/archetype-common/src/main/java/org/apache/maven/archetype/common/DefaultArchetypeRegistryManager.java
@@ -19,12 +19,20 @@ package org.apache.maven.archetype.common;
  * under the License.
  */
 
+import java.io.File;
+import java.io.IOException;
+import java.io.Reader;
+import java.io.Writer;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
 import org.apache.maven.archetype.registry.ArchetypeRegistry;
 import org.apache.maven.archetype.registry.io.xpp3.ArchetypeRegistryXpp3Reader;
 import org.apache.maven.archetype.registry.io.xpp3.ArchetypeRegistryXpp3Writer;
 import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.artifact.repository.ArtifactRepositoryFactory;
 import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
+import org.apache.maven.artifact.repository.MavenArtifactRepository;
 import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
 import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.component.annotations.Requirement;
@@ -35,24 +43,11 @@ import org.codehaus.plexus.util.StringUtils;
 import org.codehaus.plexus.util.WriterFactory;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 
-import java.io.File;
-import java.io.IOException;
-import java.io.Reader;
-import java.io.Writer;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
 @Component( role = ArchetypeRegistryManager.class )
 public class DefaultArchetypeRegistryManager
     extends AbstractLogEnabled
     implements ArchetypeRegistryManager
 {
-    /**
-     * Used to create ArtifactRepository objects given the urls of the remote repositories.
-     */
-    @Requirement
-    private ArtifactRepositoryFactory artifactRepositoryFactory;
 
     /**
      * Determines whether the layout is legacy or not.
@@ -176,6 +171,8 @@ public class DefaultArchetypeRegistryManager
      */
     public ArtifactRepository createRepository( String url, String repositoryId )
     {
+        
+        
         // snapshots vs releases
         // offline = to turning the update policy off
 
@@ -190,9 +187,9 @@ public class DefaultArchetypeRegistryManager
 
         ArtifactRepositoryPolicy releasesPolicy =
             new ArtifactRepositoryPolicy( true, updatePolicyFlag, checksumPolicyFlag );
-
-        return artifactRepositoryFactory.createArtifactRepository( repositoryId, url, defaultArtifactRepositoryLayout,
-                                                                   snapshotsPolicy, releasesPolicy );
+        
+        return new MavenArtifactRepository( repositoryId, url, defaultArtifactRepositoryLayout, snapshotsPolicy,
+                                            releasesPolicy );
     }
 
     public ArchetypeRegistry getDefaultArchetypeRegistry()

http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-common/src/main/java/org/apache/maven/archetype/creator/FilesetArchetypeCreator.java
----------------------------------------------------------------------
diff --git a/archetype-common/src/main/java/org/apache/maven/archetype/creator/FilesetArchetypeCreator.java b/archetype-common/src/main/java/org/apache/maven/archetype/creator/FilesetArchetypeCreator.java
index 576d33b..828af40 100644
--- a/archetype-common/src/main/java/org/apache/maven/archetype/creator/FilesetArchetypeCreator.java
+++ b/archetype-common/src/main/java/org/apache/maven/archetype/creator/FilesetArchetypeCreator.java
@@ -19,6 +19,26 @@ package org.apache.maven.archetype.creator;
  * under the License.
  */
 
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.Reader;
+import java.io.Writer;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.maven.archetype.ArchetypeCreationRequest;
 import org.apache.maven.archetype.ArchetypeCreationResult;
@@ -44,9 +64,11 @@ import org.apache.maven.model.Plugin;
 import org.apache.maven.model.PluginManagement;
 import org.apache.maven.model.Profile;
 import org.apache.maven.model.Resource;
+import org.apache.maven.project.DefaultProjectBuildingRequest;
 import org.apache.maven.project.MavenProject;
-import org.apache.maven.project.MavenProjectBuilder;
+import org.apache.maven.project.ProjectBuilder;
 import org.apache.maven.project.ProjectBuildingException;
+import org.apache.maven.project.ProjectBuildingRequest;
 import org.apache.maven.shared.invoker.DefaultInvocationRequest;
 import org.apache.maven.shared.invoker.InvocationRequest;
 import org.apache.maven.shared.invoker.InvocationResult;
@@ -63,26 +85,6 @@ import org.codehaus.plexus.util.WriterFactory;
 import org.codehaus.plexus.util.xml.Xpp3Dom;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.Reader;
-import java.io.Writer;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
-
 /**
  * Create a 2.x Archetype project from a project. Since 2.0-alpha-5, an integration-test named "basic" is created along
  * the archetype itself to provide immediate test when building the archetype.
@@ -102,7 +104,7 @@ public class FilesetArchetypeCreator
     private PomManager pomManager;
 
     @Requirement
-    private MavenProjectBuilder projectBuilder;
+    private ProjectBuilder projectBuilder;
     
     @Requirement
     private Invoker invoker;
@@ -430,8 +432,11 @@ public class FilesetArchetypeCreator
 
             try
             {
-                MavenProject p =
-                    projectBuilder.buildFromRepository( pa, project.getRemoteArtifactRepositories(), localRepository );
+                ProjectBuildingRequest buildingRequest = new DefaultProjectBuildingRequest();
+                buildingRequest.setLocalRepository( localRepository );
+                buildingRequest.setRemoteRepositories( project.getRemoteArtifactRepositories() );
+                
+                MavenProject p = projectBuilder.build( pa, buildingRequest ).getProject();
 
                 if ( p.getDistributionManagement() != null )
                 {
@@ -440,10 +445,8 @@ public class FilesetArchetypeCreator
 
                 if ( p.getBuildExtensions() != null )
                 {
-                    for ( Iterator<Extension> i = p.getBuildExtensions().iterator(); i.hasNext(); )
+                    for ( Extension be : p.getBuildExtensions() )
                     {
-                        Extension be = i.next();
-
                         model.getBuild().addExtension( be );
                     }
                 }

http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-common/src/main/java/org/apache/maven/archetype/downloader/DefaultDownloader.java
----------------------------------------------------------------------
diff --git a/archetype-common/src/main/java/org/apache/maven/archetype/downloader/DefaultDownloader.java b/archetype-common/src/main/java/org/apache/maven/archetype/downloader/DefaultDownloader.java
index 7d8cb08..8cb6e5e 100644
--- a/archetype-common/src/main/java/org/apache/maven/archetype/downloader/DefaultDownloader.java
+++ b/archetype-common/src/main/java/org/apache/maven/archetype/downloader/DefaultDownloader.java
@@ -19,19 +19,19 @@ package org.apache.maven.archetype.downloader;
  * under the License.
  */
 
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
 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.ArtifactNotFoundException;
-import org.apache.maven.artifact.resolver.ArtifactResolutionException;
-import org.apache.maven.artifact.resolver.ArtifactResolver;
+import org.apache.maven.project.ProjectBuildingRequest;
+import org.apache.maven.shared.artifact.DefaultArtifactCoordinate;
+import org.apache.maven.shared.artifact.resolve.ArtifactResolver;
+import org.apache.maven.shared.artifact.resolve.ArtifactResolverException;
 import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.component.annotations.Requirement;
 
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
 /**
  * @author Jason van Zyl
  */
@@ -42,17 +42,21 @@ public class DefaultDownloader
     @Requirement
     private ArtifactResolver artifactResolver;
 
-    @Requirement
-    private ArtifactFactory artifactFactory;
-
     public File download( String groupId, String artifactId, String version, ArtifactRepository archetypeRepository,
-                          ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories )
+                          ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories,
+                          ProjectBuildingRequest buildingRequest )
         throws DownloadException, DownloadNotFoundException
    {
-        Artifact artifact =
-            artifactFactory.createArtifact( groupId, artifactId, version, Artifact.SCOPE_RUNTIME, "jar" );
-        Artifact artifactPom =
-            artifactFactory.createArtifact( groupId, artifactId, version, Artifact.SCOPE_RUNTIME, "pom" );
+        DefaultArtifactCoordinate jarCoordinate = new DefaultArtifactCoordinate();
+        jarCoordinate.setGroupId( groupId );
+        jarCoordinate.setArtifactId( artifactId );
+        jarCoordinate.setVersion( version );
+        
+        DefaultArtifactCoordinate pomCoordinate = new DefaultArtifactCoordinate();
+        pomCoordinate.setGroupId( groupId );
+        pomCoordinate.setArtifactId( artifactId );
+        pomCoordinate.setVersion( version );
+        pomCoordinate.setExtension( "pom" );
 
         List<ArtifactRepository> repositories = new ArrayList<ArtifactRepository>( remoteRepositories );
         if ( repositories.isEmpty() && archetypeRepository != null )
@@ -65,54 +69,50 @@ public class DefaultDownloader
         }
 
         ArtifactRepository localRepo = localRepository;
+        
+        buildingRequest.setLocalRepository( localRepo );
+        buildingRequest.setRemoteRepositories( repositories );
+
+        Artifact artifact;
         try
         {
-            artifactResolver.resolve( artifact, repositories, localRepo );
-        }
-        catch ( ArtifactResolutionException e )
-        {
-            throw new DownloadException( "Error downloading " + artifact.getId() + ".", e );
+            artifact = artifactResolver.resolveArtifact( buildingRequest, jarCoordinate ).getArtifact();
         }
-        catch ( ArtifactNotFoundException e )
+        catch ( ArtifactResolverException e )
         {
-            throw new DownloadNotFoundException( "Requested " + artifact.getId() + " download does not exist.", e );
+            throw new DownloadException( "Error downloading " + jarCoordinate + ".", e );
         }
+
+        // still required???
         try
         {
-            artifactResolver.resolve( artifactPom, repositories, localRepo );
+            artifactResolver.resolveArtifact( buildingRequest, pomCoordinate );
         }
-        catch ( ArtifactResolutionException e )
+        catch ( ArtifactResolverException e )
         {
             throw new DownloadException( "Error downloading POM for " + artifact.getId() + ".", e );
         }
-        catch ( ArtifactNotFoundException e )
-        {
-            throw new DownloadNotFoundException( "Requested " + artifact.getId()
-                                                 + " download's POM does not exist.", e );
-        }
 
         return artifact.getFile();
     }
 
     public File downloadOld( String groupId, String artifactId, String version, ArtifactRepository archetypeRepository,
-                             ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories )
+                             ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories,
+                             ProjectBuildingRequest buildingRequest )
         throws DownloadException, DownloadNotFoundException
     {
-        Artifact artifact =
-            artifactFactory.createArtifact( groupId, artifactId, version, Artifact.SCOPE_RUNTIME, "jar" );
+        DefaultArtifactCoordinate jarCoordinate = new DefaultArtifactCoordinate();
+        jarCoordinate.setGroupId( groupId );
+        jarCoordinate.setArtifactId( artifactId );
+        jarCoordinate.setVersion( version );
+        
         try
         {
-            artifactResolver.resolve( artifact, remoteRepositories, localRepository );
-        }
-        catch ( ArtifactResolutionException e )
-        {
-            throw new DownloadException( "Error downloading " + artifact.getId() + ".", e );
+            return artifactResolver.resolveArtifact( buildingRequest, jarCoordinate ).getArtifact().getFile();
         }
-        catch ( ArtifactNotFoundException e )
+        catch ( ArtifactResolverException e )
         {
-            throw new DownloadNotFoundException( "Requested " + artifact.getId() + " download does not exist.", e );
+            throw new DownloadException( "Error downloading " + jarCoordinate + ".", e );
         }
-
-        return artifact.getFile();
     }
 }

http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-common/src/main/java/org/apache/maven/archetype/downloader/Downloader.java
----------------------------------------------------------------------
diff --git a/archetype-common/src/main/java/org/apache/maven/archetype/downloader/Downloader.java b/archetype-common/src/main/java/org/apache/maven/archetype/downloader/Downloader.java
index 80842bf..c499664 100644
--- a/archetype-common/src/main/java/org/apache/maven/archetype/downloader/Downloader.java
+++ b/archetype-common/src/main/java/org/apache/maven/archetype/downloader/Downloader.java
@@ -20,6 +20,7 @@ package org.apache.maven.archetype.downloader;
  */
 
 import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.project.ProjectBuildingRequest;
 
 import java.io.File;
 import java.util.List;
@@ -29,13 +30,13 @@ import java.util.List;
  */
 public interface Downloader
 {
-    String ROLE = Downloader.class.getName();
-
     File download( String groupId, String artifactId, String version, ArtifactRepository archetypeRepository,
-                   ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories )
+                   ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories,
+                   ProjectBuildingRequest buildingRequest )
         throws DownloadException, DownloadNotFoundException;
 
     File downloadOld( String groupId, String artifactId, String version, ArtifactRepository archetypeRepository,
-                      ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories )
+                      ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories,
+                      ProjectBuildingRequest buildingRequest )
         throws DownloadException, DownloadNotFoundException;
 }

http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultArchetypeGenerator.java
----------------------------------------------------------------------
diff --git a/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultArchetypeGenerator.java b/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultArchetypeGenerator.java
index b8fd61b..9d60978 100644
--- a/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultArchetypeGenerator.java
+++ b/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultArchetypeGenerator.java
@@ -79,7 +79,8 @@ public class DefaultArchetypeGenerator
         }
 
         if ( !archetypeArtifactManager.exists( request.getArchetypeGroupId(), request.getArchetypeArtifactId(),
-                                               request.getArchetypeVersion(), remoteRepo, localRepository, repos ) )
+                                               request.getArchetypeVersion(), remoteRepo, localRepository, repos,
+                                               request.getProjectBuildingRequest() ) )
         {
             throw new UnknownArchetype( "The desired archetype does not exist (" + request.getArchetypeGroupId() + ":"
                 + request.getArchetypeArtifactId() + ":" + request.getArchetypeVersion() + ")" );
@@ -88,7 +89,7 @@ public class DefaultArchetypeGenerator
         File archetypeFile =
             archetypeArtifactManager.getArchetypeFile( request.getArchetypeGroupId(), request.getArchetypeArtifactId(),
                                                        request.getArchetypeVersion(), remoteRepo, localRepository,
-                                                       repos );
+                                                       repos, request.getProjectBuildingRequest() );
         return archetypeFile;
     }
 

http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-common/src/main/java/org/apache/maven/archetype/old/DefaultOldArchetype.java
----------------------------------------------------------------------
diff --git a/archetype-common/src/main/java/org/apache/maven/archetype/old/DefaultOldArchetype.java b/archetype-common/src/main/java/org/apache/maven/archetype/old/DefaultOldArchetype.java
index 5b6b746..5dca83e 100644
--- a/archetype-common/src/main/java/org/apache/maven/archetype/old/DefaultOldArchetype.java
+++ b/archetype-common/src/main/java/org/apache/maven/archetype/old/DefaultOldArchetype.java
@@ -111,9 +111,12 @@ public class DefaultOldArchetype
         // Download the archetype
         // ----------------------------------------------------------------------
 
-        File archetypeFile = archetypeArtifactManager.getArchetypeFile(
-                request.getArchetypeGroupId(), request.getArchetypeArtifactId(), request.getArchetypeVersion(),
-                archetypeRepository, request.getLocalRepository(), request.getRemoteArtifactRepositories() );
+        File archetypeFile =
+            archetypeArtifactManager.getArchetypeFile( request.getArchetypeGroupId(), request.getArchetypeArtifactId(),
+                                                       request.getArchetypeVersion(), archetypeRepository,
+                                                       request.getLocalRepository(),
+                                                       request.getRemoteArtifactRepositories(),
+                                                       request.getProjectBuildingRequest() );
 
         createArchetype( request, archetypeFile );
     }

http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-common/src/main/java/org/apache/maven/archetype/source/RemoteCatalogArchetypeDataSource.java
----------------------------------------------------------------------
diff --git a/archetype-common/src/main/java/org/apache/maven/archetype/source/RemoteCatalogArchetypeDataSource.java b/archetype-common/src/main/java/org/apache/maven/archetype/source/RemoteCatalogArchetypeDataSource.java
index 1e5838f..bc38d20 100644
--- a/archetype-common/src/main/java/org/apache/maven/archetype/source/RemoteCatalogArchetypeDataSource.java
+++ b/archetype-common/src/main/java/org/apache/maven/archetype/source/RemoteCatalogArchetypeDataSource.java
@@ -19,9 +19,23 @@ package org.apache.maven.archetype.source;
  * under the License.
  */
 
+import java.io.File;
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+
 import org.apache.maven.archetype.catalog.Archetype;
 import org.apache.maven.archetype.catalog.ArchetypeCatalog;
-import org.apache.maven.artifact.manager.WagonManager;
+import org.apache.maven.execution.MavenExecutionRequest;
+import org.apache.maven.execution.MavenSession;
+import org.apache.maven.plugin.LegacySupport;
+import org.apache.maven.settings.Proxy;
+import org.apache.maven.settings.Server;
+import org.apache.maven.settings.crypto.DefaultSettingsDecryptionRequest;
+import org.apache.maven.settings.crypto.SettingsDecrypter;
+import org.apache.maven.settings.crypto.SettingsDecryptionResult;
+import org.apache.maven.wagon.UnsupportedProtocolException;
 import org.apache.maven.wagon.Wagon;
 import org.apache.maven.wagon.WagonException;
 import org.apache.maven.wagon.authentication.AuthenticationInfo;
@@ -31,10 +45,6 @@ import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.util.ReaderFactory;
 
-import java.io.File;
-import java.io.IOException;
-import java.util.Properties;
-
 /**
  * @author Jason van Zyl
  */
@@ -43,7 +53,13 @@ public class RemoteCatalogArchetypeDataSource
     extends CatalogArchetypeDataSource
 {
     @Requirement
-    private WagonManager wagonManager;
+    private Map<String, Wagon> wagons;
+    
+    @Requirement
+    private LegacySupport legacySupport;
+
+    @Requirement
+    private SettingsDecrypter settingsDecrypter;
 
     public static final String REPOSITORY_PROPERTY = "repository";
 
@@ -107,10 +123,10 @@ public class RemoteCatalogArchetypeDataSource
 
         // We use wagon to take advantage of a Proxy that has already been setup in a Maven environment.
         Repository wagonRepository = new Repository( REPOSITORY_ID, repositoryPath );
-        AuthenticationInfo authInfo = wagonManager.getAuthenticationInfo( wagonRepository.getId() );
-        ProxyInfo proxyInfo = wagonManager.getProxy( wagonRepository.getProtocol() );
+        AuthenticationInfo authInfo = getAuthenticationInfo( wagonRepository.getId() );
+        ProxyInfo proxyInfo = getProxy( wagonRepository.getProtocol() );
 
-        Wagon wagon = wagonManager.getWagon( wagonRepository );
+        Wagon wagon = getWagon( wagonRepository );
 
         File catalog = File.createTempFile( "archetype-catalog", ".xml" );
         try
@@ -139,4 +155,111 @@ public class RemoteCatalogArchetypeDataSource
         }
     }
 
+    // 
+    
+    private Wagon getWagon( Repository repository )
+        throws UnsupportedProtocolException
+    {
+        return getWagon( repository.getProtocol() );
+    }
+
+    private Wagon getWagon( String protocol )
+        throws UnsupportedProtocolException
+    {
+        if ( protocol == null )
+        {
+            throw new UnsupportedProtocolException( "Unspecified protocol" );
+        }
+
+        String hint = protocol.toLowerCase( java.util.Locale.ENGLISH );
+
+        Wagon wagon = wagons.get( hint );
+        if ( wagon == null )
+        {
+            throw new UnsupportedProtocolException( "Cannot find wagon which supports the requested protocol: "
+                + protocol );
+        }
+
+        return wagon;
+    }
+    
+    private AuthenticationInfo getAuthenticationInfo( String id )
+    {
+        MavenSession session = legacySupport.getSession();
+
+        if ( session != null && id != null )
+        {
+            MavenExecutionRequest request = session.getRequest();
+
+            if ( request != null )
+            {
+                List<Server> servers = request.getServers();
+
+                if ( servers != null )
+                {
+                    for ( Server server : servers )
+                    {
+                        if ( id.equalsIgnoreCase( server.getId() ) )
+                        {
+                            SettingsDecryptionResult result =
+                                settingsDecrypter.decrypt( new DefaultSettingsDecryptionRequest( server ) );
+                            server = result.getServer();
+
+                            AuthenticationInfo authInfo = new AuthenticationInfo();
+                            authInfo.setUserName( server.getUsername() );
+                            authInfo.setPassword( server.getPassword() );
+                            authInfo.setPrivateKey( server.getPrivateKey() );
+                            authInfo.setPassphrase( server.getPassphrase() );
+
+                            return authInfo;
+                        }
+                    }
+                }
+            }
+        }
+
+        // empty one to prevent NPE
+       return new AuthenticationInfo();
+    }
+
+    private ProxyInfo getProxy( String protocol )
+    {
+        MavenSession session = legacySupport.getSession();
+
+        if ( session != null && protocol != null )
+        {
+            MavenExecutionRequest request = session.getRequest();
+
+            if ( request != null )
+            {
+                List<Proxy> proxies = request.getProxies();
+
+                if ( proxies != null )
+                {
+                    for ( Proxy proxy : proxies )
+                    {
+                        if ( proxy.isActive() && protocol.equalsIgnoreCase( proxy.getProtocol() ) )
+                        {
+                            SettingsDecryptionResult result =
+                                settingsDecrypter.decrypt( new DefaultSettingsDecryptionRequest( proxy ) );
+                            proxy = result.getProxy();
+
+                            ProxyInfo proxyInfo = new ProxyInfo();
+                            proxyInfo.setHost( proxy.getHost() );
+                            proxyInfo.setType( proxy.getProtocol() );
+                            proxyInfo.setPort( proxy.getPort() );
+                            proxyInfo.setNonProxyHosts( proxy.getNonProxyHosts() );
+                            proxyInfo.setUserName( proxy.getUsername() );
+                            proxyInfo.setPassword( proxy.getPassword() );
+
+                            return proxyInfo;
+                        }
+                    }
+                }
+            }
+        }
+
+        return null;
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-common/src/test/java/org/apache/maven/archetype/generator/DefaultArchetypeGeneratorTest.java
----------------------------------------------------------------------
diff --git a/archetype-common/src/test/java/org/apache/maven/archetype/generator/DefaultArchetypeGeneratorTest.java b/archetype-common/src/test/java/org/apache/maven/archetype/generator/DefaultArchetypeGeneratorTest.java
index f901be6..94ee058 100644
--- a/archetype-common/src/test/java/org/apache/maven/archetype/generator/DefaultArchetypeGeneratorTest.java
+++ b/archetype-common/src/test/java/org/apache/maven/archetype/generator/DefaultArchetypeGeneratorTest.java
@@ -30,10 +30,14 @@ import org.apache.maven.model.Plugin;
 import org.apache.maven.model.ReportPlugin;
 import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
 import org.apache.maven.plugin.testing.AbstractMojoTestCase;
+import org.apache.maven.project.DefaultProjectBuildingRequest;
+import org.apache.maven.project.ProjectBuildingRequest;
+import org.apache.maven.repository.internal.MavenRepositorySystemSession;
 import org.codehaus.plexus.util.FileUtils;
 import org.codehaus.plexus.util.IOUtil;
 import org.codehaus.plexus.util.ReaderFactory;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
+import org.sonatype.aether.impl.internal.SimpleLocalRepositoryManager;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -554,6 +558,12 @@ public class DefaultArchetypeGeneratorTest
         request.setPackage( "file.value.package" );
 
         request.setProperties( ADDITIONAL_PROPERTIES );
+        
+        ProjectBuildingRequest buildingRequest = new DefaultProjectBuildingRequest();
+        MavenRepositorySystemSession repositorySession = new MavenRepositorySystemSession();
+        repositorySession.setLocalRepositoryManager( new SimpleLocalRepositoryManager( localRepository.getBasedir() ) );
+        buildingRequest.setRepositorySession( repositorySession );
+        request.setProjectBuildingRequest( buildingRequest );
 
         return request;
     }

http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-common/src/test/java/org/apache/maven/archetype/old/ArchetypeTest.java
----------------------------------------------------------------------
diff --git a/archetype-common/src/test/java/org/apache/maven/archetype/old/ArchetypeTest.java b/archetype-common/src/test/java/org/apache/maven/archetype/old/ArchetypeTest.java
index 6ef915e..fd4cfdd 100644
--- a/archetype-common/src/test/java/org/apache/maven/archetype/old/ArchetypeTest.java
+++ b/archetype-common/src/test/java/org/apache/maven/archetype/old/ArchetypeTest.java
@@ -1,5 +1,17 @@
 package org.apache.maven.archetype.old;
 
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.StringReader;
+import java.io.StringWriter;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 /*
  * Copyright 2004-2006 The Apache Software Foundation.
  *
@@ -27,6 +39,9 @@ import org.apache.maven.artifact.resolver.ArtifactResolutionException;
 import org.apache.maven.artifact.resolver.ArtifactResolver;
 import org.apache.maven.model.Model;
 import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
+import org.apache.maven.project.DefaultProjectBuildingRequest;
+import org.apache.maven.project.ProjectBuildingRequest;
+import org.apache.maven.repository.internal.MavenRepositorySystemSession;
 import org.apache.velocity.VelocityContext;
 import org.apache.velocity.context.Context;
 import org.codehaus.plexus.PlexusTestCase;
@@ -34,18 +49,7 @@ import org.codehaus.plexus.util.FileUtils;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 import org.codehaus.plexus.velocity.VelocityComponent;
 import org.dom4j.DocumentException;
-
-import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
-import java.io.StringReader;
-import java.io.StringWriter;
-import java.net.URL;
-import java.net.URLClassLoader;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import org.sonatype.aether.impl.internal.SimpleLocalRepositoryManager;
 
 /**
  * @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
@@ -66,7 +70,7 @@ public class ArchetypeTest
         // ----------------------------------------------------------------------
 
         ArtifactRepositoryLayout layout =
-            (ArtifactRepositoryLayout) getContainer().lookup( ArtifactRepositoryLayout.ROLE, "legacy" );
+            (ArtifactRepositoryLayout) getContainer().lookup( ArtifactRepositoryLayout.ROLE );
 
         String mavenRepoLocal = getTestFile( "target/local-repository" ).toURI().toURL().toString();
 
@@ -79,8 +83,15 @@ public class ArchetypeTest
         ArtifactRepository remoteRepository = new DefaultArtifactRepository( "remote", mavenRepoRemote, layout );
 
         remoteRepositories.add( remoteRepository );
+        
+        ProjectBuildingRequest buildingRequest = new DefaultProjectBuildingRequest();
+        buildingRequest.setRemoteRepositories( remoteRepositories );
+        MavenRepositorySystemSession repositorySession = new MavenRepositorySystemSession();
+        repositorySession.setLocalRepositoryManager( new SimpleLocalRepositoryManager( localRepository.getBasedir() ) );
+        buildingRequest.setRepositorySession( repositorySession );
 
         ArchetypeGenerationRequest request = new ArchetypeGenerationRequest()
+            .setProjectBuildingRequest( buildingRequest )
             .setPackage( "org.apache.maven.quickstart" )
             .setGroupId( "maven" )
             .setArtifactId( "quickstart" )

http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-common/src/test/java/org/apache/maven/archetype/test/ArchetypeGenerationTest.java
----------------------------------------------------------------------
diff --git a/archetype-common/src/test/java/org/apache/maven/archetype/test/ArchetypeGenerationTest.java b/archetype-common/src/test/java/org/apache/maven/archetype/test/ArchetypeGenerationTest.java
index 0c40c1d..7c26d0f 100644
--- a/archetype-common/src/test/java/org/apache/maven/archetype/test/ArchetypeGenerationTest.java
+++ b/archetype-common/src/test/java/org/apache/maven/archetype/test/ArchetypeGenerationTest.java
@@ -24,6 +24,9 @@ import org.apache.maven.archetype.ArchetypeGenerationResult;
 import org.apache.maven.archetype.ArchetypeManager;
 import org.apache.maven.archetype.common.ArchetypeRegistryManager;
 import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.project.DefaultProjectBuildingRequest;
+import org.apache.maven.project.ProjectBuildingRequest;
+import org.apache.maven.repository.internal.MavenRepositorySystemSession;
 import org.codehaus.plexus.PlexusTestCase;
 
 import java.io.File;
@@ -32,6 +35,7 @@ import java.util.Properties;
 import org.apache.maven.archetype.catalog.Archetype;
 import org.apache.maven.archetype.catalog.ArchetypeCatalog;
 import org.codehaus.plexus.util.FileUtils;
+import org.sonatype.aether.impl.internal.SimpleLocalRepositoryManager;
 
 /** @author Jason van Zyl */
 public class ArchetypeGenerationTest
@@ -94,6 +98,12 @@ public class ArchetypeGenerationTest
         archetypeRequiredProperties.setProperty( "property-without-default-3", "some-value-3" );
         archetypeRequiredProperties.setProperty( "property-without-default-4", "some-value-4" );
         agr.setProperties( archetypeRequiredProperties );
+        
+        ProjectBuildingRequest buildingRequest = new DefaultProjectBuildingRequest();
+        MavenRepositorySystemSession repositorySession = new MavenRepositorySystemSession();
+        repositorySession.setLocalRepositoryManager( new SimpleLocalRepositoryManager( localRepository.getBasedir() ) );
+        buildingRequest.setRepositorySession( repositorySession );
+        agr.setProjectBuildingRequest( buildingRequest );
 
         // Then generate away!
 

http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-common/src/test/java/org/apache/maven/archetype/test/InternalCatalogArchetypesVerificationTest.java
----------------------------------------------------------------------
diff --git a/archetype-common/src/test/java/org/apache/maven/archetype/test/InternalCatalogArchetypesVerificationTest.java b/archetype-common/src/test/java/org/apache/maven/archetype/test/InternalCatalogArchetypesVerificationTest.java
index e357353..a40e4cc 100644
--- a/archetype-common/src/test/java/org/apache/maven/archetype/test/InternalCatalogArchetypesVerificationTest.java
+++ b/archetype-common/src/test/java/org/apache/maven/archetype/test/InternalCatalogArchetypesVerificationTest.java
@@ -28,8 +28,12 @@ import org.apache.maven.archetype.catalog.Archetype;
 import org.apache.maven.archetype.catalog.ArchetypeCatalog;
 import org.apache.maven.archetype.common.ArchetypeRegistryManager;
 import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.project.DefaultProjectBuildingRequest;
+import org.apache.maven.project.ProjectBuildingRequest;
+import org.apache.maven.repository.internal.MavenRepositorySystemSession;
 import org.codehaus.plexus.PlexusTestCase;
 import org.codehaus.plexus.util.FileUtils;
+import org.sonatype.aether.impl.internal.SimpleLocalRepositoryManager;
 
 /**
  *
@@ -81,6 +85,13 @@ public class InternalCatalogArchetypesVerificationTest
                 .setPackage( "com.acme" )
                 .setOutputDirectory( outputDirectory.getPath() )
                 .setLocalRepository( localRepository );
+            
+            ProjectBuildingRequest buildingRequest = new DefaultProjectBuildingRequest();
+            MavenRepositorySystemSession repositorySession = new MavenRepositorySystemSession();
+            repositorySession.setLocalRepositoryManager( new SimpleLocalRepositoryManager( localRepository.getBasedir() ) );
+            buildingRequest.setRepositorySession( repositorySession );
+            request.setProjectBuildingRequest( buildingRequest );
+
             ArchetypeGenerationResult generationResult = archetype.generateProjectFromArchetype( request );
             
             assertTrue ( "Archetype wasn't generated successfully", generationResult.getCause() == null );

http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-common/src/test/repository/org.apache.maven.archetypes/jars/maven-archetype-quickstart-1.0-alpha-1-SNAPSHOT.jar
----------------------------------------------------------------------
diff --git a/archetype-common/src/test/repository/org.apache.maven.archetypes/jars/maven-archetype-quickstart-1.0-alpha-1-SNAPSHOT.jar b/archetype-common/src/test/repository/org.apache.maven.archetypes/jars/maven-archetype-quickstart-1.0-alpha-1-SNAPSHOT.jar
deleted file mode 100644
index a1851ba..0000000
Binary files a/archetype-common/src/test/repository/org.apache.maven.archetypes/jars/maven-archetype-quickstart-1.0-alpha-1-SNAPSHOT.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-common/src/test/repository/org.apache.maven.archetypes/poms/maven-archetype-quickstart-1.0-alpha-1-SNAPSHOT.pom
----------------------------------------------------------------------
diff --git a/archetype-common/src/test/repository/org.apache.maven.archetypes/poms/maven-archetype-quickstart-1.0-alpha-1-SNAPSHOT.pom b/archetype-common/src/test/repository/org.apache.maven.archetypes/poms/maven-archetype-quickstart-1.0-alpha-1-SNAPSHOT.pom
deleted file mode 100644
index ee21329..0000000
--- a/archetype-common/src/test/repository/org.apache.maven.archetypes/poms/maven-archetype-quickstart-1.0-alpha-1-SNAPSHOT.pom
+++ /dev/null
@@ -1,26 +0,0 @@
-<!--
-  ~ Copyright 2004-2006 The Apache Software Foundation.
-  ~
-  ~ Licensed 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.
-  -->
-
-<project>
-  <parent>
-    <artifactId>maven-archetypes</artifactId>
-    <groupId>org.apache.maven.archetypes</groupId>
-    <version>1.0-alpha-1-SNAPSHOT</version>
-  </parent>
-  <modelVersion>4.0.0</modelVersion>
-  <artifactId>maven-archetype-quickstart</artifactId>
-  <version>1.0-alpha-1-SNAPSHOT</version>
-</project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-common/src/test/repository/org.apache.maven.archetypes/poms/maven-archetype-quickstart-1.0-alpha-1-SNAPSHOT.version.txt
----------------------------------------------------------------------
diff --git a/archetype-common/src/test/repository/org.apache.maven.archetypes/poms/maven-archetype-quickstart-1.0-alpha-1-SNAPSHOT.version.txt b/archetype-common/src/test/repository/org.apache.maven.archetypes/poms/maven-archetype-quickstart-1.0-alpha-1-SNAPSHOT.version.txt
deleted file mode 100644
index 33f4519..0000000
--- a/archetype-common/src/test/repository/org.apache.maven.archetypes/poms/maven-archetype-quickstart-1.0-alpha-1-SNAPSHOT.version.txt
+++ /dev/null
@@ -1 +0,0 @@
-1.0-alpha-1-SNAPSHOT
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-common/src/test/repository/org.apache.maven.archetypes/poms/maven-archetypes-1.0-alpha-1-SNAPSHOT.pom
----------------------------------------------------------------------
diff --git a/archetype-common/src/test/repository/org.apache.maven.archetypes/poms/maven-archetypes-1.0-alpha-1-SNAPSHOT.pom b/archetype-common/src/test/repository/org.apache.maven.archetypes/poms/maven-archetypes-1.0-alpha-1-SNAPSHOT.pom
deleted file mode 100644
index 74dda84..0000000
--- a/archetype-common/src/test/repository/org.apache.maven.archetypes/poms/maven-archetypes-1.0-alpha-1-SNAPSHOT.pom
+++ /dev/null
@@ -1,33 +0,0 @@
-<!--
-  ~ Copyright 2004-2006 The Apache Software Foundation.
-  ~
-  ~ Licensed 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.
-  -->
-
-<model>
-  <parent>
-    <artifactId>maven-archetype</artifactId>
-    <groupId>org.apache.maven</groupId>
-    <version>1.0-alpha-1-SNAPSHOT</version>
-  </parent>
-  <modelVersion>4.0.0</modelVersion>
-  <groupId>org.apache.maven.archetypes</groupId>
-  <artifactId>maven-archetypes</artifactId>
-  <packaging>pom</packaging>
-  <version>1.0-alpha-1-SNAPSHOT</version>
-  <modules>
-    <module>maven-archetype-mojo</module>
-    <module>maven-archetype-quickstart</module>
-    <module>maven-archetype-webapp</module>
-  </modules>
-</model>

http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-common/src/test/repository/org.apache.maven.archetypes/poms/maven-archetypes-1.0-alpha-1-SNAPSHOT.version.txt
----------------------------------------------------------------------
diff --git a/archetype-common/src/test/repository/org.apache.maven.archetypes/poms/maven-archetypes-1.0-alpha-1-SNAPSHOT.version.txt b/archetype-common/src/test/repository/org.apache.maven.archetypes/poms/maven-archetypes-1.0-alpha-1-SNAPSHOT.version.txt
deleted file mode 100644
index 33f4519..0000000
--- a/archetype-common/src/test/repository/org.apache.maven.archetypes/poms/maven-archetypes-1.0-alpha-1-SNAPSHOT.version.txt
+++ /dev/null
@@ -1 +0,0 @@
-1.0-alpha-1-SNAPSHOT
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-common/src/test/repository/org/apache/maven/archetypes/maven-archetype-quickstart/1.0-alpha-1-SNAPSHOT/maven-archetype-quickstart-1.0-alpha-1-SNAPSHOT.jar
----------------------------------------------------------------------
diff --git a/archetype-common/src/test/repository/org/apache/maven/archetypes/maven-archetype-quickstart/1.0-alpha-1-SNAPSHOT/maven-archetype-quickstart-1.0-alpha-1-SNAPSHOT.jar b/archetype-common/src/test/repository/org/apache/maven/archetypes/maven-archetype-quickstart/1.0-alpha-1-SNAPSHOT/maven-archetype-quickstart-1.0-alpha-1-SNAPSHOT.jar
new file mode 100644
index 0000000..a1851ba
Binary files /dev/null and b/archetype-common/src/test/repository/org/apache/maven/archetypes/maven-archetype-quickstart/1.0-alpha-1-SNAPSHOT/maven-archetype-quickstart-1.0-alpha-1-SNAPSHOT.jar differ

http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-common/src/test/repository/org/apache/maven/archetypes/maven-archetype-quickstart/1.0-alpha-1-SNAPSHOT/maven-archetype-quickstart-1.0-alpha-1-SNAPSHOT.pom
----------------------------------------------------------------------
diff --git a/archetype-common/src/test/repository/org/apache/maven/archetypes/maven-archetype-quickstart/1.0-alpha-1-SNAPSHOT/maven-archetype-quickstart-1.0-alpha-1-SNAPSHOT.pom b/archetype-common/src/test/repository/org/apache/maven/archetypes/maven-archetype-quickstart/1.0-alpha-1-SNAPSHOT/maven-archetype-quickstart-1.0-alpha-1-SNAPSHOT.pom
new file mode 100644
index 0000000..ee21329
--- /dev/null
+++ b/archetype-common/src/test/repository/org/apache/maven/archetypes/maven-archetype-quickstart/1.0-alpha-1-SNAPSHOT/maven-archetype-quickstart-1.0-alpha-1-SNAPSHOT.pom
@@ -0,0 +1,26 @@
+<!--
+  ~ Copyright 2004-2006 The Apache Software Foundation.
+  ~
+  ~ Licensed 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.
+  -->
+
+<project>
+  <parent>
+    <artifactId>maven-archetypes</artifactId>
+    <groupId>org.apache.maven.archetypes</groupId>
+    <version>1.0-alpha-1-SNAPSHOT</version>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+  <artifactId>maven-archetype-quickstart</artifactId>
+  <version>1.0-alpha-1-SNAPSHOT</version>
+</project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-common/src/test/repository/org/apache/maven/archetypes/maven-archetypes/1.0-alpha-1-SNAPSHOT/maven-archetypes-1.0-alpha-1-SNAPSHOT.pom
----------------------------------------------------------------------
diff --git a/archetype-common/src/test/repository/org/apache/maven/archetypes/maven-archetypes/1.0-alpha-1-SNAPSHOT/maven-archetypes-1.0-alpha-1-SNAPSHOT.pom b/archetype-common/src/test/repository/org/apache/maven/archetypes/maven-archetypes/1.0-alpha-1-SNAPSHOT/maven-archetypes-1.0-alpha-1-SNAPSHOT.pom
new file mode 100644
index 0000000..74dda84
--- /dev/null
+++ b/archetype-common/src/test/repository/org/apache/maven/archetypes/maven-archetypes/1.0-alpha-1-SNAPSHOT/maven-archetypes-1.0-alpha-1-SNAPSHOT.pom
@@ -0,0 +1,33 @@
+<!--
+  ~ Copyright 2004-2006 The Apache Software Foundation.
+  ~
+  ~ Licensed 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.
+  -->
+
+<model>
+  <parent>
+    <artifactId>maven-archetype</artifactId>
+    <groupId>org.apache.maven</groupId>
+    <version>1.0-alpha-1-SNAPSHOT</version>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.maven.archetypes</groupId>
+  <artifactId>maven-archetypes</artifactId>
+  <packaging>pom</packaging>
+  <version>1.0-alpha-1-SNAPSHOT</version>
+  <modules>
+    <module>maven-archetype-mojo</module>
+    <module>maven-archetype-quickstart</module>
+    <module>maven-archetype-webapp</module>
+  </modules>
+</model>

http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-common/src/test/repository/org/apache/maven/maven-archetype/1.0-alpha-1-SNAPSHOT/maven-archetype-1.0-alpha-1-SNAPSHOT.pom
----------------------------------------------------------------------
diff --git a/archetype-common/src/test/repository/org/apache/maven/maven-archetype/1.0-alpha-1-SNAPSHOT/maven-archetype-1.0-alpha-1-SNAPSHOT.pom b/archetype-common/src/test/repository/org/apache/maven/maven-archetype/1.0-alpha-1-SNAPSHOT/maven-archetype-1.0-alpha-1-SNAPSHOT.pom
new file mode 100644
index 0000000..54351ae
--- /dev/null
+++ b/archetype-common/src/test/repository/org/apache/maven/maven-archetype/1.0-alpha-1-SNAPSHOT/maven-archetype-1.0-alpha-1-SNAPSHOT.pom
@@ -0,0 +1,23 @@
+<!--
+  ~ Copyright 2004-2006 The Apache Software Foundation.
+  ~
+  ~ Licensed 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.
+  -->
+
+<model>
+  <modelVersion>4.0.0</modelVersion>
+  <artifactId>maven-archetype</artifactId>
+  <groupId>org.apache.maven</groupId>
+  <version>1.0-alpha-1-SNAPSHOT</version>
+  <packaging>pom</packaging>
+</model>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-packaging/pom.xml
----------------------------------------------------------------------
diff --git a/archetype-packaging/pom.xml b/archetype-packaging/pom.xml
index 813171b..b95eff8 100644
--- a/archetype-packaging/pom.xml
+++ b/archetype-packaging/pom.xml
@@ -33,11 +33,4 @@
   <name>Maven Archetype Packaging</name>
   <description>'maven-archetype' packaging configuration for archetypes.</description>
 
-  <dependencies>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <scope>test</scope>
-    </dependency>
-  </dependencies>
 </project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-testing/archetype-final/pom.xml
----------------------------------------------------------------------
diff --git a/archetype-testing/archetype-final/pom.xml b/archetype-testing/archetype-final/pom.xml
index 5420802..46a06de 100644
--- a/archetype-testing/archetype-final/pom.xml
+++ b/archetype-testing/archetype-final/pom.xml
@@ -40,6 +40,16 @@
 
   <dependencies>
     <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-compat</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-core</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
       <scope>test</scope>
@@ -63,24 +73,6 @@
       <scope>test</scope>
     </dependency>
     <dependency>
-      <groupId>org.codehaus.cargo</groupId>
-      <artifactId>cargo-core-api-container</artifactId>
-      <version>${cargoVersion}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.codehaus.cargo</groupId>
-      <artifactId>cargo-core-api-generic</artifactId>
-      <version>${cargoVersion}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.codehaus.cargo</groupId>
-      <artifactId>cargo-core-container-jetty</artifactId>
-      <version>${cargoVersion}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
       <groupId>org.mortbay.jetty</groupId>
       <artifactId>jetty</artifactId>
       <version>6.1.11</version>
@@ -96,6 +88,11 @@
       <artifactId>wagon-http</artifactId>
       <scope>test</scope>
     </dependency>
+    <dependency>
+      <groupId>org.sonatype.aether</groupId>
+      <artifactId>aether-connector-wagon</artifactId>
+      <scope>test</scope>
+    </dependency>
 
     <dependency>
       <groupId>${project.groupId}</groupId>

http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-testing/archetype-final/src/test/java/org/apache/maven/archetype/creator/DefaultArchetypeCreatorIT.java
----------------------------------------------------------------------
diff --git a/archetype-testing/archetype-final/src/test/java/org/apache/maven/archetype/creator/DefaultArchetypeCreatorIT.java b/archetype-testing/archetype-final/src/test/java/org/apache/maven/archetype/creator/DefaultArchetypeCreatorIT.java
index bd21568..06663f3 100644
--- a/archetype-testing/archetype-final/src/test/java/org/apache/maven/archetype/creator/DefaultArchetypeCreatorIT.java
+++ b/archetype-testing/archetype-final/src/test/java/org/apache/maven/archetype/creator/DefaultArchetypeCreatorIT.java
@@ -25,9 +25,13 @@ import org.apache.maven.archetype.common.Constants;
 import org.apache.maven.artifact.repository.DefaultArtifactRepository;
 import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
 import org.apache.maven.plugin.testing.AbstractMojoTestCase;
+import org.apache.maven.project.DefaultProjectBuildingRequest;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.project.MavenProjectBuilder;
-import org.apache.maven.project.MavenProjectBuildingResult;
+import org.apache.maven.project.ProjectBuilder;
+import org.apache.maven.project.ProjectBuildingRequest;
+import org.apache.maven.project.ProjectBuildingResult;
+//import org.apache.maven.project.MavenProjectBuildingResult;
 import org.codehaus.plexus.util.FileUtils;
 import org.codehaus.plexus.util.PropertyUtils;
 import org.codehaus.plexus.util.StringUtils;
@@ -53,7 +57,7 @@ public class DefaultArchetypeCreatorIT
     {
         System.out.println( ">>>>>> testCreateFilesetArchetype( \"" + project + "\" )" );
         
-        MavenProjectBuilder builder = (MavenProjectBuilder) lookup( MavenProjectBuilder.ROLE );
+        ProjectBuilder builder = lookup( ProjectBuilder.class );
 
         File projectFile = getProjectFile( project );
 
@@ -71,23 +75,10 @@ public class DefaultArchetypeCreatorIT
 
         Properties p = PropertyUtils.loadProperties( propertyFile );
 
-        MavenProject mavenProject = null;
-
-        {
-            Object result = builder.buildWithDependencies( projectFile, localRepository, null );
-            if ( result instanceof MavenProject )
-            { // Using Maven 2.0.x / x >= 7
-                mavenProject = (MavenProject) result;
-            }
-            else if ( result instanceof MavenProjectBuildingResult )
-            { // Using Maven 3
-                mavenProject = ( (MavenProjectBuildingResult) result ).getProject();
-            }
-            else
-            {
-                fail( "Wrong result class" );
-            }
-        }
+        ProjectBuildingRequest buildingRequest = new DefaultProjectBuildingRequest();
+        buildingRequest.setLocalRepository( localRepository );
+        
+        MavenProject mavenProject = builder.build( projectFile, buildingRequest ).getProject();
 
         FilesetArchetypeCreator instance =
             (FilesetArchetypeCreator) lookup( ArchetypeCreator.class.getName(), "fileset" );

http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-testing/archetype-final/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripIT.java
----------------------------------------------------------------------
diff --git a/archetype-testing/archetype-final/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripIT.java b/archetype-testing/archetype-final/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripIT.java
index 139d78e..12ff295 100644
--- a/archetype-testing/archetype-final/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripIT.java
+++ b/archetype-testing/archetype-final/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripIT.java
@@ -1,5 +1,10 @@
 package org.apache.maven.archetype.test;
 
+import java.io.File;
+import java.io.FileWriter;
+import java.io.Writer;
+import java.util.Properties;
+
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -31,20 +36,21 @@ import org.apache.maven.archetype.catalog.io.xpp3.ArchetypeCatalogXpp3Writer;
 import org.apache.maven.archetype.common.ArchetypeRegistryManager;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.model.Model;
+import org.apache.maven.model.building.ModelProblem;
 import org.apache.maven.project.DefaultProjectBuilderConfiguration;
+import org.apache.maven.project.DefaultProjectBuildingRequest;
 import org.apache.maven.project.MavenProject;
-import org.apache.maven.project.MavenProjectBuilder;
+import org.apache.maven.project.ProjectBuilder;
+import org.apache.maven.project.ProjectBuildingRequest;
+import org.apache.maven.project.ProjectBuildingResult;
 import org.apache.maven.project.interpolation.ModelInterpolator;
+import org.apache.maven.repository.internal.MavenRepositorySystemSession;
 import org.codehaus.plexus.PlexusTestCase;
 import org.codehaus.plexus.util.FileUtils;
 import org.codehaus.plexus.util.StringUtils;
 import org.mortbay.jetty.Server;
 import org.mortbay.jetty.webapp.WebAppContext;
-
-import java.io.File;
-import java.io.FileWriter;
-import java.io.Writer;
-import java.util.Properties;
+import org.sonatype.aether.impl.internal.SimpleLocalRepositoryManager;
 
 /**
  * @author Jason van Zyl
@@ -61,7 +67,7 @@ public class ArchetyperRoundtripIT
 
         ArchetypeRegistryManager registryManager = (ArchetypeRegistryManager) lookup( ArchetypeRegistryManager.ROLE );
 
-        MavenProjectBuilder projectBuilder = (MavenProjectBuilder) lookup( MavenProjectBuilder.ROLE );
+        ProjectBuilder projectBuilder = lookup( ProjectBuilder.class );
 
         ArtifactRepository localRepository = registryManager.createRepository( new File( getBasedir(),
                                                                                          "target" + File.separator
@@ -101,7 +107,12 @@ public class ArchetyperRoundtripIT
         // (2) create an archetype from the project
         File pom = new File( workingProject, "pom.xml" );
 
-        MavenProject project = projectBuilder.build( pom, localRepository, null );
+        ProjectBuildingRequest buildingRequest = new DefaultProjectBuildingRequest();
+        MavenRepositorySystemSession repositorySession = new MavenRepositorySystemSession();
+        repositorySession.setLocalRepositoryManager( new SimpleLocalRepositoryManager( localRepository.getBasedir() ) );
+        buildingRequest.setRepositorySession( repositorySession );
+
+        MavenProject project = projectBuilder.build( pom, buildingRequest ).getProject();
 
         Properties properties = new Properties();
         properties.setProperty( "someProperty", "someValue" );
@@ -126,7 +137,11 @@ public class ArchetyperRoundtripIT
                                                      "target" + File.separator + "generated-sources" + File.separator
                                                          + "archetype" );
         File generatedArchetypePom = new File( generatedArchetypeDirectory, "pom.xml" );
-        MavenProject generatedArchetypeProject = projectBuilder.build( generatedArchetypePom, localRepository, null );
+        
+        ProjectBuildingResult buildingResult = projectBuilder.build( generatedArchetypePom, buildingRequest );
+        
+        MavenProject generatedArchetypeProject = projectBuilder.build( generatedArchetypePom, buildingRequest ).getProject();
+        
         ModelInterpolator modelInterpolator = (ModelInterpolator)lookup( ModelInterpolator.ROLE );
         Model generatedArchetypeModel = modelInterpolator.interpolate( generatedArchetypeProject.getModel(), generatedArchetypePom.getParentFile(), new DefaultProjectBuilderConfiguration(), true );
 
@@ -174,7 +189,7 @@ public class ArchetyperRoundtripIT
                 setGroupId( "com.mycompany" ).setArtifactId( "myapp" ).setVersion( "1.0-SNAPSHOT" ).
                 setPackage( "com.mycompany.myapp" ).setProperties( properties ).
                 setOutputDirectory( outputDirectory ).setLocalRepository( localRepository ).
-                setArchetypeRepository( "http://localhost:" + port + "/repo/" );
+                setArchetypeRepository( "http://localhost:" + port + "/repo/" ).setProjectBuildingRequest( buildingRequest );
         ArchetypeGenerationResult generationResult = archetype.generateProjectFromArchetype( agr );
 
         if ( generationResult.getCause() != null )