This is an automated email from the ASF dual-hosted git repository.

sjaranowski pushed a commit to branch ARCHETYPE-655
in repository https://gitbox.apache.org/repos/asf/maven-archetype.git

commit f1801dd00de1c48567b34f71461ed743ce5d4d4b
Author: Slawomir Jaranowski <s.jaranow...@gmail.com>
AuthorDate: Fri Sep 13 20:22:18 2024 +0200

    [ARCHETYPE-655] Get rid of Wagon API to download catalogs
---
 archetype-common/pom.xml                           |   4 -
 .../maven/archetype/ArchetypeCreationRequest.java  |  50 +--
 .../archetype/ArchetypeGenerationRequest.java      |  27 +-
 .../apache/maven/archetype/ArchetypeManager.java   |  16 +-
 .../maven/archetype/DefaultArchetypeManager.java   |  23 +-
 .../common/DefaultArchetypeArtifactManager.java    |   7 +-
 .../archetype/creator/FilesetArchetypeCreator.java |  20 +-
 .../archetype/downloader/DefaultDownloader.java    |   2 +-
 .../archetype/downloader/DownloadException.java    |   7 -
 .../downloader/DownloadNotFoundException.java      |  36 ---
 .../maven/archetype/downloader/Downloader.java     |   2 +-
 .../generator/DefaultArchetypeGenerator.java       |  16 +-
 .../maven/archetype/old/DefaultOldArchetype.java   |   2 +-
 .../archetype/source/ArchetypeDataSource.java      |  11 +-
 .../source/InternalCatalogArchetypeDataSource.java |  17 +-
 .../source/LocalCatalogArchetypeDataSource.java    |  25 +-
 .../source/RemoteCatalogArchetypeDataSource.java   | 349 +++------------------
 .../generator/DefaultArchetypeGeneratorTest.java   |  24 +-
 .../apache/maven/archetype/old/ArchetypeTest.java  |  91 ++----
 .../LocalCatalogArchetypeDataSourceTest.java       |   6 +-
 .../archetype/test/ArchetypeGenerationTest.java    |  41 +--
 .../InternalCatalogArchetypesVerificationTest.java |  46 +--
 .../mojos/CreateArchetypeFromProjectMojo.java      |  13 +-
 .../mojos/CreateProjectFromArchetypeMojo.java      |   4 +-
 .../maven/archetype/mojos/IntegrationTestMojo.java |   5 +-
 .../archetype/mojos/UpdateLocalCatalogMojo.java    |   2 +-
 .../DefaultArchetypeGenerationConfigurator.java    |  25 +-
 .../ui/generation/DefaultArchetypeSelector.java    |  22 +-
 ...efaultArchetypeGenerationConfigurator2Test.java |   5 -
 ...DefaultArchetypeGenerationConfiguratorTest.java |   4 -
 pom.xml                                            |  12 -
 31 files changed, 189 insertions(+), 725 deletions(-)

diff --git a/archetype-common/pom.xml b/archetype-common/pom.xml
index 9d950fb1..d0ba7596 100644
--- a/archetype-common/pom.xml
+++ b/archetype-common/pom.xml
@@ -112,10 +112,6 @@
       <groupId>org.apache.velocity</groupId>
       <artifactId>velocity-engine-core</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.apache.maven.wagon</groupId>
-      <artifactId>wagon-provider-api</artifactId>
-    </dependency>
     <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
diff --git 
a/archetype-common/src/main/java/org/apache/maven/archetype/ArchetypeCreationRequest.java
 
b/archetype-common/src/main/java/org/apache/maven/archetype/ArchetypeCreationRequest.java
index 9bba301b..3e3f4a28 100644
--- 
a/archetype-common/src/main/java/org/apache/maven/archetype/ArchetypeCreationRequest.java
+++ 
b/archetype-common/src/main/java/org/apache/maven/archetype/ArchetypeCreationRequest.java
@@ -23,20 +23,15 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Properties;
 
-import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.project.MavenProject;
-import org.apache.maven.project.ProjectBuildingRequest;
 
 /** @author Jason van Zyl */
 public class ArchetypeCreationRequest {
-    private ProjectBuildingRequest projectBuildingRequest;
 
-    private ArtifactRepository localRepository;
+    private File localRepositoryBasedir;
 
     private MavenProject project;
 
-    //    private File propertyFile;
-
     private List<String> languages = new ArrayList<>();
 
     private List<String> filtereds = new ArrayList<>();
@@ -65,27 +60,15 @@ public class ArchetypeCreationRequest {
 
     public ArchetypeCreationRequest setPostPhase(String postPhase) {
         this.postPhase = postPhase;
-
         return this;
     }
 
-    public ArtifactRepository getLocalRepository() {
-        return localRepository;
+    public File getLocalRepositoryBasedir() {
+        return localRepositoryBasedir;
     }
 
-    public ArchetypeCreationRequest setLocalRepository(ArtifactRepository 
localRepository) {
-        this.localRepository = localRepository;
-
-        return this;
-    }
-
-    public ProjectBuildingRequest getProjectBuildingRequest() {
-        return projectBuildingRequest;
-    }
-
-    public ArchetypeCreationRequest 
setProjectBuildingRequest(ProjectBuildingRequest projectBuildingRequest) {
-        this.projectBuildingRequest = projectBuildingRequest;
-
+    public ArchetypeCreationRequest setLocalRepositoryBasedir(File 
localRepository) {
+        this.localRepositoryBasedir = localRepository;
         return this;
     }
 
@@ -95,29 +78,15 @@ public class ArchetypeCreationRequest {
 
     public ArchetypeCreationRequest setProject(MavenProject project) {
         this.project = project;
-
         return this;
     }
 
-    //    public File getPropertyFile()
-    //    {
-    //        return propertyFile;
-    //    }
-    //
-    //    public ArchetypeCreationRequest setPropertyFile( File propertyFile )
-    //    {
-    //        this.propertyFile = propertyFile;
-    //
-    //        return this;
-    //    }
-
     public List<String> getLanguages() {
         return languages;
     }
 
     public ArchetypeCreationRequest setLanguages(List<String> languages) {
         this.languages = languages;
-
         return this;
     }
 
@@ -127,7 +96,6 @@ public class ArchetypeCreationRequest {
 
     public ArchetypeCreationRequest setFiltereds(List<String> filtereds) {
         this.filtereds = filtereds;
-
         return this;
     }
 
@@ -137,7 +105,6 @@ public class ArchetypeCreationRequest {
 
     public ArchetypeCreationRequest setDefaultEncoding(String defaultEncoding) 
{
         this.defaultEncoding = defaultEncoding;
-
         return this;
     }
 
@@ -147,7 +114,6 @@ public class ArchetypeCreationRequest {
 
     public ArchetypeCreationRequest setPreserveCData(boolean preserveCData) {
         this.preserveCData = preserveCData;
-
         return this;
     }
 
@@ -157,7 +123,6 @@ public class ArchetypeCreationRequest {
 
     public ArchetypeCreationRequest setKeepParent(boolean keepParent) {
         this.keepParent = keepParent;
-
         return this;
     }
 
@@ -167,7 +132,6 @@ public class ArchetypeCreationRequest {
 
     public ArchetypeCreationRequest setPartialArchetype(boolean 
partialArchetype) {
         this.partialArchetype = partialArchetype;
-
         return this;
     }
 
@@ -177,7 +141,6 @@ public class ArchetypeCreationRequest {
 
     public ArchetypeCreationRequest setProperties(Properties properties) {
         this.properties = properties;
-
         return this;
     }
 
@@ -187,7 +150,6 @@ public class ArchetypeCreationRequest {
 
     public ArchetypeCreationRequest setPackageName(String packageName) {
         this.packageName = packageName;
-
         return this;
     }
 
@@ -197,7 +159,6 @@ public class ArchetypeCreationRequest {
 
     public ArchetypeCreationRequest setOutputDirectory(File outputDirectory) {
         this.outputDirectory = outputDirectory;
-
         return this;
     }
 
@@ -207,7 +168,6 @@ public class ArchetypeCreationRequest {
 
     public ArchetypeCreationRequest setSettingsFile(File settingsFile) {
         this.settingsFile = settingsFile;
-
         return this;
     }
 }
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 9c46a560..3a229831 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
@@ -23,12 +23,13 @@ import java.util.List;
 import java.util.Properties;
 
 import org.apache.maven.archetype.catalog.Archetype;
-import org.apache.maven.project.ProjectBuildingRequest;
+import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.repository.RemoteRepository;
 
 /** @author Jason van Zyl */
 public class ArchetypeGenerationRequest {
-    private ProjectBuildingRequest projectBuildingRequest;
+
+    private RepositorySystemSession repositorySession;
 
     private boolean interactiveMode;
 
@@ -87,12 +88,12 @@ public class ArchetypeGenerationRequest {
         this.archetypeRepository = archetype.getRepository();
     }
 
-    public ProjectBuildingRequest getProjectBuildingRequest() {
-        return projectBuildingRequest;
+    public RepositorySystemSession getRepositorySession() {
+        return repositorySession;
     }
 
-    public ArchetypeGenerationRequest 
setProjectBuildingRequest(ProjectBuildingRequest projectBuildingRequest) {
-        this.projectBuildingRequest = projectBuildingRequest;
+    public ArchetypeGenerationRequest 
setRepositorySession(RepositorySystemSession repoSession) {
+        this.repositorySession = repoSession;
         return this;
     }
 
@@ -102,7 +103,6 @@ public class ArchetypeGenerationRequest {
 
     public ArchetypeGenerationRequest setArchetypeGroupId(String 
archetypeGroupId) {
         this.archetypeGroupId = archetypeGroupId;
-
         return this;
     }
 
@@ -112,7 +112,6 @@ public class ArchetypeGenerationRequest {
 
     public ArchetypeGenerationRequest setArchetypeArtifactId(String 
archetypeArtifactId) {
         this.archetypeArtifactId = archetypeArtifactId;
-
         return this;
     }
 
@@ -122,7 +121,6 @@ public class ArchetypeGenerationRequest {
 
     public ArchetypeGenerationRequest setArchetypeVersion(String 
archetypeVersion) {
         this.archetypeVersion = archetypeVersion;
-
         return this;
     }
 
@@ -132,7 +130,6 @@ public class ArchetypeGenerationRequest {
 
     public ArchetypeGenerationRequest setArchetypeGoals(String archetypeGoals) 
{
         this.archetypeGoals = archetypeGoals;
-
         return this;
     }
 
@@ -142,7 +139,6 @@ public class ArchetypeGenerationRequest {
 
     public ArchetypeGenerationRequest setArchetypeName(String archetypeName) {
         this.archetypeName = archetypeName;
-
         return this;
     }
 
@@ -175,7 +171,6 @@ public class ArchetypeGenerationRequest {
 
     public ArchetypeGenerationRequest setArtifactId(String artifactId) {
         this.artifactId = artifactId;
-
         return this;
     }
 
@@ -185,7 +180,6 @@ public class ArchetypeGenerationRequest {
 
     public ArchetypeGenerationRequest setGroupId(String groupId) {
         this.groupId = groupId;
-
         return this;
     }
 
@@ -195,7 +189,6 @@ public class ArchetypeGenerationRequest {
 
     public ArchetypeGenerationRequest setVersion(String version) {
         this.version = version;
-
         return this;
     }
 
@@ -205,7 +198,6 @@ public class ArchetypeGenerationRequest {
 
     public ArchetypeGenerationRequest setPackage(String packageName) {
         this.packageName = packageName;
-
         return this;
     }
 
@@ -225,7 +217,6 @@ public class ArchetypeGenerationRequest {
 
     public ArchetypeGenerationRequest setOutputDirectory(String 
outputDirectory) {
         this.outputDirectory = outputDirectory;
-
         return this;
     }
 
@@ -235,7 +226,6 @@ public class ArchetypeGenerationRequest {
 
     public ArchetypeGenerationRequest setInteractiveMode(boolean 
interactiveMode) {
         this.interactiveMode = interactiveMode;
-
         return this;
     }
 
@@ -245,7 +235,6 @@ public class ArchetypeGenerationRequest {
 
     public ArchetypeGenerationRequest setAskForDefaultPropertyValues(boolean 
askForDefaultPropertyValues) {
         this.askForDefaultPropertyValues = askForDefaultPropertyValues;
-
         return this;
     }
 
@@ -255,7 +244,6 @@ public class ArchetypeGenerationRequest {
 
     public ArchetypeGenerationRequest 
setRemoteArtifactRepositories(List<RemoteRepository> 
remoteArtifactRepositories) {
         this.remoteArtifactRepositories = remoteArtifactRepositories;
-
         return this;
     }
 
@@ -265,7 +253,6 @@ public class ArchetypeGenerationRequest {
 
     public ArchetypeGenerationRequest setFilter(String filter) {
         this.filter = filter;
-
         return this;
     }
 }
diff --git 
a/archetype-common/src/main/java/org/apache/maven/archetype/ArchetypeManager.java
 
b/archetype-common/src/main/java/org/apache/maven/archetype/ArchetypeManager.java
index 866e4d8b..62c881de 100644
--- 
a/archetype-common/src/main/java/org/apache/maven/archetype/ArchetypeManager.java
+++ 
b/archetype-common/src/main/java/org/apache/maven/archetype/ArchetypeManager.java
@@ -20,11 +20,13 @@ package org.apache.maven.archetype;
 
 import java.io.File;
 import java.io.IOException;
+import java.util.List;
 
 import org.apache.maven.archetype.catalog.Archetype;
 import org.apache.maven.archetype.catalog.ArchetypeCatalog;
 import org.apache.maven.artifact.DependencyResolutionRequiredException;
-import org.apache.maven.project.ProjectBuildingRequest;
+import org.eclipse.aether.RepositorySystemSession;
+import org.eclipse.aether.repository.RemoteRepository;
 
 /** @author Jason van Zyl */
 public interface ArchetypeManager {
@@ -60,19 +62,21 @@ public interface ArchetypeManager {
      * if path is a file, it used as is.
      * if path is a directory, archetype-catalog.xml is appended to it.
      *
-     * @param buildingRequest the catalog file path or directory containing 
the catalog file.
+     * @param repositorySession
      * @return the catalog.
      */
-    ArchetypeCatalog getLocalCatalog(ProjectBuildingRequest buildingRequest);
+    ArchetypeCatalog getLocalCatalog(RepositorySystemSession 
repositorySession);
 
     /**
      * Gives the catalog of archetypes located at
      * <code>https://repo.maven.apache.org/maven2/archetype-catalog.xml</code>.
-     * @param buildingRequest TODO
      *
+     * @param repositorySession
+     * @param remoteRepositories
      * @return the catalog.
      */
-    ArchetypeCatalog getRemoteCatalog(ProjectBuildingRequest buildingRequest);
+    ArchetypeCatalog getRemoteCatalog(
+            RepositorySystemSession repositorySession, List<RemoteRepository> 
remoteRepositories);
 
     /**
      * Creates a jar file for an archetype.
@@ -89,5 +93,5 @@ public interface ArchetypeManager {
     File archiveArchetype(File archetypeDirectory, File outputDirectory, 
String finalName)
             throws DependencyResolutionRequiredException, IOException;
 
-    File updateLocalCatalog(ProjectBuildingRequest buildingRequest, Archetype 
archetype);
+    File updateLocalCatalog(RepositorySystemSession repositorySystemSession, 
Archetype archetype);
 }
diff --git 
a/archetype-common/src/main/java/org/apache/maven/archetype/DefaultArchetypeManager.java
 
b/archetype-common/src/main/java/org/apache/maven/archetype/DefaultArchetypeManager.java
index 3d0a2590..44e429dc 100644
--- 
a/archetype-common/src/main/java/org/apache/maven/archetype/DefaultArchetypeManager.java
+++ 
b/archetype-common/src/main/java/org/apache/maven/archetype/DefaultArchetypeManager.java
@@ -26,6 +26,7 @@ import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.IOException;
+import java.util.List;
 import java.util.Map;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipOutputStream;
@@ -36,10 +37,10 @@ import org.apache.maven.archetype.creator.ArchetypeCreator;
 import org.apache.maven.archetype.generator.ArchetypeGenerator;
 import org.apache.maven.archetype.source.ArchetypeDataSource;
 import org.apache.maven.archetype.source.ArchetypeDataSourceException;
-import org.apache.maven.artifact.DependencyResolutionRequiredException;
-import org.apache.maven.project.ProjectBuildingRequest;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 import org.codehaus.plexus.util.IOUtil;
+import org.eclipse.aether.RepositorySystemSession;
+import org.eclipse.aether.repository.RemoteRepository;
 
 /**
  * @author Jason van Zyl
@@ -77,8 +78,7 @@ public class DefaultArchetypeManager extends 
AbstractLogEnabled implements Arche
     }
 
     @Override
-    public File archiveArchetype(File archetypeDirectory, File 
outputDirectory, String finalName)
-            throws DependencyResolutionRequiredException, IOException {
+    public File archiveArchetype(File archetypeDirectory, File 
outputDirectory, String finalName) throws IOException {
         File jarFile = new File(outputDirectory, finalName + ".jar");
 
         zip(archetypeDirectory, jarFile);
@@ -144,29 +144,30 @@ public class DefaultArchetypeManager extends 
AbstractLogEnabled implements Arche
         try {
             ArchetypeDataSource source = 
archetypeSources.get("internal-catalog");
 
-            return source.getArchetypeCatalog(null);
+            return source.getArchetypeCatalog(null, null);
         } catch (ArchetypeDataSourceException e) {
             return new ArchetypeCatalog();
         }
     }
 
     @Override
-    public ArchetypeCatalog getLocalCatalog(ProjectBuildingRequest 
buildingRequest) {
+    public ArchetypeCatalog getLocalCatalog(RepositorySystemSession 
repositorySession) {
         try {
             ArchetypeDataSource source = archetypeSources.get("catalog");
 
-            return source.getArchetypeCatalog(buildingRequest);
+            return source.getArchetypeCatalog(repositorySession, null);
         } catch (ArchetypeDataSourceException e) {
             return new ArchetypeCatalog();
         }
     }
 
     @Override
-    public ArchetypeCatalog getRemoteCatalog(ProjectBuildingRequest 
buildingRequest) {
+    public ArchetypeCatalog getRemoteCatalog(
+            RepositorySystemSession repositorySession, List<RemoteRepository> 
remoteRepositories) {
         try {
             ArchetypeDataSource source = 
archetypeSources.get("remote-catalog");
 
-            return source.getArchetypeCatalog(buildingRequest);
+            return source.getArchetypeCatalog(repositorySession, 
remoteRepositories);
         } catch (ArchetypeDataSourceException e) {
             getLogger().warn("failed to download from remote", e);
             return new ArchetypeCatalog();
@@ -174,11 +175,11 @@ public class DefaultArchetypeManager extends 
AbstractLogEnabled implements Arche
     }
 
     @Override
-    public File updateLocalCatalog(ProjectBuildingRequest buildingRequest, 
Archetype archetype) {
+    public File updateLocalCatalog(RepositorySystemSession 
repositorySystemSession, Archetype archetype) {
         try {
             ArchetypeDataSource source = archetypeSources.get("catalog");
 
-            return source.updateCatalog(buildingRequest, archetype);
+            return source.updateCatalog(repositorySystemSession, archetype);
         } catch (ArchetypeDataSourceException e) {
             getLogger().warn("failed to update catalog", e);
         }
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 e2dfe823..3325640f 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
@@ -39,7 +39,6 @@ import java.util.zip.ZipFile;
 
 import org.apache.commons.io.IOUtils;
 import org.apache.maven.archetype.downloader.DownloadException;
-import org.apache.maven.archetype.downloader.DownloadNotFoundException;
 import org.apache.maven.archetype.downloader.Downloader;
 import org.apache.maven.archetype.exception.UnknownArchetype;
 import org.apache.maven.archetype.metadata.ArchetypeDescriptor;
@@ -80,7 +79,7 @@ public class DefaultArchetypeArtifactManager extends 
AbstractLogEnabled implemen
                 setArchetype(groupId, artifactId, version, archetype);
             }
             return archetype;
-        } catch (DownloadNotFoundException | DownloadException ex) {
+        } catch (DownloadException ex) {
             throw new UnknownArchetype(ex);
         }
     }
@@ -180,7 +179,7 @@ public class DefaultArchetypeArtifactManager extends 
AbstractLogEnabled implemen
             }
 
             return archetype.exists();
-        } catch (DownloadException | DownloadNotFoundException e) {
+        } catch (DownloadException e) {
             getLogger()
                     .debug(
                             "Archetype " + archetypeGroupId + ":" + 
archetypeArtifactId + ":" + archetypeVersion
@@ -301,8 +300,6 @@ public class DefaultArchetypeArtifactManager extends 
AbstractLogEnabled implemen
 
             ArchetypeDescriptorBuilder builder = new 
ArchetypeDescriptorBuilder();
             return builder.build(reader);
-        } catch (IOException | XmlPullParserException ex) {
-            throw ex;
         }
     }
 
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 0cdf60dc..021b6cc6 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
@@ -51,7 +51,6 @@ import org.apache.maven.archetype.common.PomManager;
 import org.apache.maven.archetype.common.util.FileCharsetDetector;
 import org.apache.maven.archetype.common.util.ListScanner;
 import org.apache.maven.archetype.common.util.PathUtils;
-import org.apache.maven.archetype.exception.TemplateCreationException;
 import org.apache.maven.archetype.metadata.ArchetypeDescriptor;
 import org.apache.maven.archetype.metadata.FileSet;
 import org.apache.maven.archetype.metadata.ModuleDescriptor;
@@ -66,7 +65,6 @@ import org.apache.maven.model.PluginManagement;
 import org.apache.maven.model.Profile;
 import org.apache.maven.model.Resource;
 import org.apache.maven.project.MavenProject;
-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;
@@ -133,8 +131,7 @@ public class FilesetArchetypeCreator extends 
AbstractLogEnabled implements Arche
         getLogger().debug("Creating archetype in " + outputDirectory);
 
         try {
-            File archetypePomFile = createArchetypeProjectPom(
-                    project, request.getProjectBuildingRequest(), 
configurationProperties, outputDirectory);
+            File archetypePomFile = createArchetypeProjectPom(project, 
configurationProperties, outputDirectory);
 
             File archetypeResourcesDirectory = new File(outputDirectory, 
getTemplateOutputDirectory());
 
@@ -285,11 +282,8 @@ public class FilesetArchetypeCreator extends 
AbstractLogEnabled implements Arche
             InvocationRequest internalRequest = new DefaultInvocationRequest();
             internalRequest.setPomFile(archetypePomFile);
             internalRequest.setUserSettingsFile(request.getSettingsFile());
-            
internalRequest.setGoals(Collections.singletonList(request.getPostPhase()));
-            if (request.getLocalRepository() != null) {
-                internalRequest.setLocalRepositoryDirectory(
-                        new File(request.getLocalRepository().getBasedir()));
-            }
+            internalRequest.addArg(request.getPostPhase());
+            
internalRequest.setLocalRepositoryDirectory(request.getLocalRepositoryBasedir());
 
             String httpsProtocols = System.getProperty("https.protocols");
             if (httpsProtocols != null) {
@@ -379,12 +373,8 @@ public class FilesetArchetypeCreator extends 
AbstractLogEnabled implements Arche
     /**
      * Create the archetype project pom.xml file, that will be used to build 
the archetype.
      */
-    private File createArchetypeProjectPom(
-            MavenProject project,
-            ProjectBuildingRequest buildingRequest,
-            Properties configurationProperties,
-            File projectDir)
-            throws TemplateCreationException, IOException {
+    private File createArchetypeProjectPom(MavenProject project, Properties 
configurationProperties, File projectDir)
+            throws IOException {
         Model model = new Model();
         model.setModelVersion("4.0.0");
         // these values should be retrieved from the request with sensible 
defaults
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 4df53e2e..6f89df03 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
@@ -50,7 +50,7 @@ public class DefaultDownloader implements Downloader {
             String version,
             List<RemoteRepository> remoteRepositories,
             RepositorySystemSession repositorySystemSession)
-            throws DownloadException, DownloadNotFoundException {
+            throws DownloadException {
 
         DefaultArtifact artifact = new DefaultArtifact(groupId, artifactId, 
"", "jar", version);
 
diff --git 
a/archetype-common/src/main/java/org/apache/maven/archetype/downloader/DownloadException.java
 
b/archetype-common/src/main/java/org/apache/maven/archetype/downloader/DownloadException.java
index 8cd10092..0596f119 100644
--- 
a/archetype-common/src/main/java/org/apache/maven/archetype/downloader/DownloadException.java
+++ 
b/archetype-common/src/main/java/org/apache/maven/archetype/downloader/DownloadException.java
@@ -22,15 +22,8 @@ package org.apache.maven.archetype.downloader;
  * @author Jason van Zyl
  */
 public class DownloadException extends Exception {
-    public DownloadException(String string) {
-        super(string);
-    }
 
     public DownloadException(String string, Throwable throwable) {
         super(string, throwable);
     }
-
-    public DownloadException(Throwable throwable) {
-        super(throwable);
-    }
 }
diff --git 
a/archetype-common/src/main/java/org/apache/maven/archetype/downloader/DownloadNotFoundException.java
 
b/archetype-common/src/main/java/org/apache/maven/archetype/downloader/DownloadNotFoundException.java
deleted file mode 100644
index e5ebeac0..00000000
--- 
a/archetype-common/src/main/java/org/apache/maven/archetype/downloader/DownloadNotFoundException.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.apache.maven.archetype.downloader;
-
-/**
- * @author Jason van Zyl
- */
-public class DownloadNotFoundException extends Exception {
-    public DownloadNotFoundException(String string) {
-        super(string);
-    }
-
-    public DownloadNotFoundException(String string, Throwable throwable) {
-        super(string, throwable);
-    }
-
-    public DownloadNotFoundException(Throwable throwable) {
-        super(throwable);
-    }
-}
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 9d15066d..b7440c7a 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
@@ -34,5 +34,5 @@ public interface Downloader {
             String version,
             List<RemoteRepository> remoteRepositories,
             RepositorySystemSession repositorySystemSession)
-            throws DownloadException, DownloadNotFoundException;
+            throws DownloadException;
 }
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 e8550faf..3c0b272d 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
@@ -36,7 +36,6 @@ import 
org.apache.maven.archetype.exception.ArchetypeNotDefined;
 import org.apache.maven.archetype.exception.InvalidPackaging;
 import org.apache.maven.archetype.exception.UnknownArchetype;
 import org.apache.maven.archetype.old.OldArchetype;
-import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 import org.codehaus.plexus.util.StringUtils;
 import org.eclipse.aether.RepositorySystem;
@@ -47,11 +46,6 @@ import org.eclipse.aether.repository.RepositoryPolicy;
 @Named
 @Singleton
 public class DefaultArchetypeGenerator extends AbstractLogEnabled implements 
ArchetypeGenerator {
-    /**
-     * Determines whether the layout is legacy or not.
-     */
-    @Inject
-    private ArtifactRepositoryLayout defaultArtifactRepositoryLayout;
 
     @Inject
     private ArchetypeArtifactManager archetypeArtifactManager;
@@ -74,8 +68,7 @@ public class DefaultArchetypeGenerator extends 
AbstractLogEnabled implements Arc
 
         RemoteRepository remoteRepo = null;
         if (request != null && request.getArchetypeRepository() != null) {
-            RepositorySystemSession repositorySession =
-                    request.getProjectBuildingRequest().getRepositorySession();
+            RepositorySystemSession repositorySession = 
request.getRepositorySession();
             remoteRepo = createRepository(
                     repositorySession, request.getArchetypeRepository(), 
request.getArchetypeArtifactId() + "-repo");
 
@@ -87,18 +80,17 @@ public class DefaultArchetypeGenerator extends 
AbstractLogEnabled implements Arc
                 request.getArchetypeArtifactId(),
                 request.getArchetypeVersion(),
                 repos,
-                request.getProjectBuildingRequest().getRepositorySession())) {
+                request.getRepositorySession())) {
             throw new UnknownArchetype("The desired archetype does not exist 
(" + request.getArchetypeGroupId() + ":"
                     + request.getArchetypeArtifactId() + ":" + 
request.getArchetypeVersion() + ")");
         }
 
-        File archetypeFile = archetypeArtifactManager.getArchetypeFile(
+        return archetypeArtifactManager.getArchetypeFile(
                 request.getArchetypeGroupId(),
                 request.getArchetypeArtifactId(),
                 request.getArchetypeVersion(),
                 repos,
-                request.getProjectBuildingRequest().getRepositorySession());
-        return archetypeFile;
+                request.getRepositorySession());
     }
 
     private void generateArchetype(ArchetypeGenerationRequest request, File 
archetypeFile) throws ArchetypeException {
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 e08a5c51..470ca4af 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
@@ -114,7 +114,7 @@ public class DefaultOldArchetype extends AbstractLogEnabled 
implements OldArchet
                 request.getArchetypeArtifactId(),
                 request.getArchetypeVersion(),
                 request.getRemoteArtifactRepositories(),
-                request.getProjectBuildingRequest().getRepositorySession());
+                request.getRepositorySession());
 
         createArchetype(request, archetypeFile);
     }
diff --git 
a/archetype-common/src/main/java/org/apache/maven/archetype/source/ArchetypeDataSource.java
 
b/archetype-common/src/main/java/org/apache/maven/archetype/source/ArchetypeDataSource.java
index 86b62590..aa837fd0 100644
--- 
a/archetype-common/src/main/java/org/apache/maven/archetype/source/ArchetypeDataSource.java
+++ 
b/archetype-common/src/main/java/org/apache/maven/archetype/source/ArchetypeDataSource.java
@@ -19,10 +19,12 @@
 package org.apache.maven.archetype.source;
 
 import java.io.File;
+import java.util.List;
 
 import org.apache.maven.archetype.catalog.Archetype;
 import org.apache.maven.archetype.catalog.ArchetypeCatalog;
-import org.apache.maven.project.ProjectBuildingRequest;
+import org.eclipse.aether.RepositorySystemSession;
+import org.eclipse.aether.repository.RemoteRepository;
 
 /**
  * Sources we can get Archetypes from. This may be the local registry, a Wiki, 
or,
@@ -36,7 +38,10 @@ import org.apache.maven.project.ProjectBuildingRequest;
 public interface ArchetypeDataSource {
     String ARCHETYPE_CATALOG_FILENAME = "archetype-catalog.xml";
 
-    ArchetypeCatalog getArchetypeCatalog(ProjectBuildingRequest 
buildingRequest) throws ArchetypeDataSourceException;
+    ArchetypeCatalog getArchetypeCatalog(
+            RepositorySystemSession repositorySession, List<RemoteRepository> 
remoteRepositories)
+            throws ArchetypeDataSourceException;
 
-    File updateCatalog(ProjectBuildingRequest buildingRequest, Archetype 
archetype) throws ArchetypeDataSourceException;
+    File updateCatalog(RepositorySystemSession repositorySession, Archetype 
archetype)
+            throws ArchetypeDataSourceException;
 }
diff --git 
a/archetype-common/src/main/java/org/apache/maven/archetype/source/InternalCatalogArchetypeDataSource.java
 
b/archetype-common/src/main/java/org/apache/maven/archetype/source/InternalCatalogArchetypeDataSource.java
index 19d10dbf..9b5c4515 100644
--- 
a/archetype-common/src/main/java/org/apache/maven/archetype/source/InternalCatalogArchetypeDataSource.java
+++ 
b/archetype-common/src/main/java/org/apache/maven/archetype/source/InternalCatalogArchetypeDataSource.java
@@ -25,11 +25,13 @@ import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.Reader;
+import java.util.List;
 
 import org.apache.maven.archetype.catalog.Archetype;
 import org.apache.maven.archetype.catalog.ArchetypeCatalog;
-import org.apache.maven.project.ProjectBuildingRequest;
-import org.codehaus.plexus.util.ReaderFactory;
+import org.codehaus.plexus.util.xml.XmlStreamReader;
+import org.eclipse.aether.RepositorySystemSession;
+import org.eclipse.aether.repository.RemoteRepository;
 
 /**
  * @author Jason van Zyl
@@ -39,12 +41,11 @@ import org.codehaus.plexus.util.ReaderFactory;
 public class InternalCatalogArchetypeDataSource extends 
CatalogArchetypeDataSource {
 
     @Override
-    public ArchetypeCatalog getArchetypeCatalog(ProjectBuildingRequest 
buildingRequest)
+    public ArchetypeCatalog getArchetypeCatalog(
+            RepositorySystemSession repositorySession, List<RemoteRepository> 
remoteRepositories)
             throws ArchetypeDataSourceException {
-        try {
-            InputStream in = 
getClass().getClassLoader().getResourceAsStream(ARCHETYPE_CATALOG_FILENAME);
-            Reader reader = ReaderFactory.newXmlReader(in);
-
+        try (InputStream in = 
getClass().getClassLoader().getResourceAsStream(ARCHETYPE_CATALOG_FILENAME);
+                Reader reader = new XmlStreamReader(in)) {
             return readCatalog(reader);
         } catch (IOException e) {
             throw new ArchetypeDataSourceException("Error reading archetype 
catalog.", e);
@@ -52,7 +53,7 @@ public class InternalCatalogArchetypeDataSource extends 
CatalogArchetypeDataSour
     }
 
     @Override
-    public File updateCatalog(ProjectBuildingRequest buildingRequest, 
Archetype archetype)
+    public File updateCatalog(RepositorySystemSession repositorySession, 
Archetype archetype)
             throws ArchetypeDataSourceException {
         throw new ArchetypeDataSourceException("Not supported yet.");
     }
diff --git 
a/archetype-common/src/main/java/org/apache/maven/archetype/source/LocalCatalogArchetypeDataSource.java
 
b/archetype-common/src/main/java/org/apache/maven/archetype/source/LocalCatalogArchetypeDataSource.java
index cefcb04a..55d8069f 100644
--- 
a/archetype-common/src/main/java/org/apache/maven/archetype/source/LocalCatalogArchetypeDataSource.java
+++ 
b/archetype-common/src/main/java/org/apache/maven/archetype/source/LocalCatalogArchetypeDataSource.java
@@ -24,22 +24,24 @@ import javax.inject.Singleton;
 import java.io.File;
 import java.io.FileNotFoundException;
 import java.io.IOException;
+import java.io.Reader;
 import java.util.Iterator;
+import java.util.List;
 
 import org.apache.maven.archetype.catalog.Archetype;
 import org.apache.maven.archetype.catalog.ArchetypeCatalog;
-import org.apache.maven.project.ProjectBuildingRequest;
-import org.codehaus.plexus.util.ReaderFactory;
+import org.codehaus.plexus.util.xml.XmlStreamReader;
+import org.eclipse.aether.RepositorySystemSession;
+import org.eclipse.aether.repository.RemoteRepository;
 
 @Named("catalog")
 @Singleton
 public class LocalCatalogArchetypeDataSource extends 
CatalogArchetypeDataSource {
 
     @Override
-    public File updateCatalog(ProjectBuildingRequest buildingRequest, 
Archetype archetype)
+    public File updateCatalog(RepositorySystemSession repositorySession, 
Archetype archetype)
             throws ArchetypeDataSourceException {
-        File localRepo =
-                
buildingRequest.getRepositorySession().getLocalRepository().getBasedir();
+        File localRepo = repositorySession.getLocalRepository().getBasedir();
 
         File catalogFile = new File(localRepo, ARCHETYPE_CATALOG_FILENAME);
 
@@ -47,9 +49,9 @@ public class LocalCatalogArchetypeDataSource extends 
CatalogArchetypeDataSource
 
         ArchetypeCatalog catalog;
         if (catalogFile.exists()) {
-            try {
+            try (Reader reader = new XmlStreamReader(catalogFile)) {
                 getLogger().debug("Reading catalog to be updated: " + 
catalogFile);
-                catalog = readCatalog(ReaderFactory.newXmlReader(catalogFile));
+                catalog = readCatalog(reader);
             } catch (FileNotFoundException ex) {
                 getLogger().debug("Catalog file don't exist");
                 catalog = new ArchetypeCatalog();
@@ -87,10 +89,11 @@ public class LocalCatalogArchetypeDataSource extends 
CatalogArchetypeDataSource
     }
 
     @Override
-    public ArchetypeCatalog getArchetypeCatalog(ProjectBuildingRequest 
buildingRequest)
+    public ArchetypeCatalog getArchetypeCatalog(
+            RepositorySystemSession repositorySession, List<RemoteRepository> 
remoteRepositories)
             throws ArchetypeDataSourceException {
-        File localRepo =
-                
buildingRequest.getRepositorySession().getLocalRepository().getBasedir();
+
+        File localRepo = repositorySession.getLocalRepository().getBasedir();
 
         File catalogFile = new File(localRepo, ARCHETYPE_CATALOG_FILENAME);
 
@@ -101,7 +104,7 @@ public class LocalCatalogArchetypeDataSource extends 
CatalogArchetypeDataSource
 
         if (catalogFile.exists()) {
             try {
-                return readCatalog(ReaderFactory.newXmlReader(catalogFile));
+                return readCatalog(new XmlStreamReader(catalogFile));
             } catch (FileNotFoundException e) {
                 throw new ArchetypeDataSourceException("The specific archetype 
catalog does not exist.", e);
             } catch (IOException e) {
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 f77afb87..d85c1517 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
@@ -24,29 +24,19 @@ import javax.inject.Singleton;
 
 import java.io.File;
 import java.io.IOException;
+import java.util.Collections;
 import java.util.List;
-import java.util.Map;
 
 import org.apache.maven.archetype.catalog.Archetype;
 import org.apache.maven.archetype.catalog.ArchetypeCatalog;
-import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.execution.MavenExecutionRequest;
-import org.apache.maven.execution.MavenSession;
-import org.apache.maven.plugin.LegacySupport;
-import org.apache.maven.project.ProjectBuildingRequest;
-import org.apache.maven.settings.Mirror;
-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;
-import org.apache.maven.wagon.proxy.ProxyInfo;
-import org.apache.maven.wagon.repository.Repository;
-import org.codehaus.plexus.util.ReaderFactory;
+import org.codehaus.plexus.util.xml.XmlStreamReader;
+import org.eclipse.aether.RepositorySystem;
+import org.eclipse.aether.RepositorySystemSession;
+import org.eclipse.aether.metadata.DefaultMetadata;
+import org.eclipse.aether.metadata.Metadata;
+import org.eclipse.aether.repository.RemoteRepository;
+import org.eclipse.aether.resolution.MetadataRequest;
+import org.eclipse.aether.resolution.MetadataResult;
 
 /**
  * @author Jason van Zyl
@@ -54,19 +44,9 @@ import org.codehaus.plexus.util.ReaderFactory;
 @Named("remote-catalog")
 @Singleton
 public class RemoteCatalogArchetypeDataSource extends 
CatalogArchetypeDataSource implements ArchetypeDataSource {
-    @Inject
-    private Map<String, Wagon> wagons;
-
-    @Inject
-    private LegacySupport legacySupport;
 
     @Inject
-    private SettingsDecrypter settingsDecrypter;
-
-    //    Should be used for mirror/proxy/authentication
-    //    available since M3.2.3
-    //    @Requirement
-    //    private MavenRepositorySystem;
+    private RepositorySystem repositorySystem;
 
     /**
      * Id of the repository used to download catalog file. Proxy or 
authentication info can
@@ -77,303 +57,56 @@ public class RemoteCatalogArchetypeDataSource extends 
CatalogArchetypeDataSource
     public static final String CENTRAL_REPOSITORY_ID = "central";
 
     @Override
-    public ArchetypeCatalog getArchetypeCatalog(ProjectBuildingRequest 
buildingRequest)
-            throws ArchetypeDataSourceException {
-        // With M3 artifactRepositories are already injected with their 
mirror, including the new id
-        // First look for mirrorId of both 'central' and 'archetype'
-        final String archetypeRepoId;
-        Mirror archetypeMirror = getMirror(ARCHETYPE_REPOSITORY_ID);
-        if (archetypeMirror != null) {
-            archetypeRepoId = archetypeMirror.getId();
-        } else {
-            archetypeRepoId = ARCHETYPE_REPOSITORY_ID;
-        }
-
-        final String centralRepoId;
-        Mirror centralMirror = getMirror(CENTRAL_REPOSITORY_ID);
-        if (centralMirror != null) {
-            centralRepoId = centralMirror.getId();
-        } else {
-            centralRepoId = CENTRAL_REPOSITORY_ID;
-        }
-
-        ArtifactRepository centralRepository = null;
-        ArtifactRepository archetypeRepository = null;
-        for (ArtifactRepository remoteRepository : 
buildingRequest.getRemoteRepositories()) {
-            if (archetypeRepoId.equals(remoteRepository.getId())) {
-                archetypeRepository = remoteRepository;
-                break;
-            } else if (centralRepoId.equals(remoteRepository.getId())) {
-                centralRepository = remoteRepository;
-            }
-        }
-
-        if (archetypeRepository == null) {
-            archetypeRepository = centralRepository;
-        }
-
-        try {
-            return downloadCatalog(archetypeRepository);
-        } catch (IOException e) {
-            throw new ArchetypeDataSourceException(e);
-        } catch (WagonException e) {
-            throw new ArchetypeDataSourceException(e);
-        }
-    }
-
-    @Override
-    public File updateCatalog(ProjectBuildingRequest buildingRequest, 
Archetype archetype)
+    public ArchetypeCatalog getArchetypeCatalog(
+            RepositorySystemSession repositorySession, List<RemoteRepository> 
remoteRepositories)
             throws ArchetypeDataSourceException {
-        throw new ArchetypeDataSourceException("Not supported yet.");
-    }
-
-    private ArchetypeCatalog downloadCatalog(ArtifactRepository repository)
-            throws WagonException, IOException, ArchetypeDataSourceException {
-        getLogger().debug("Searching for remote catalog: " + 
repository.getUrl() + "/" + ARCHETYPE_CATALOG_FILENAME);
-
-        // We use wagon to take advantage of a Proxy that has already been 
setup in a Maven environment.
-        Repository wagonRepository = new Repository(repository.getId(), 
repository.getUrl());
-
-        AuthenticationInfo authInfo = 
getAuthenticationInfo(wagonRepository.getId());
-        ProxyInfo proxyInfo = getProxy(wagonRepository.getProtocol());
-
-        Wagon wagon = getWagon(wagonRepository);
-
-        File catalog = File.createTempFile("archetype-catalog", ".xml");
-        try {
-            wagon.connect(wagonRepository, authInfo, proxyInfo);
-            wagon.get(ARCHETYPE_CATALOG_FILENAME, catalog);
-
-            return readCatalog(ReaderFactory.newXmlReader(catalog));
-        } finally {
-            disconnectWagon(wagon);
-            catalog.delete();
-        }
-    }
-
-    private void disconnectWagon(Wagon wagon) {
-        try {
-            wagon.disconnect();
-        } catch (Exception e) {
-            getLogger().warn("Problem disconnecting from wagon - ignoring: " + 
e.getMessage());
-        }
-    }
-
-    //
-
-    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();
+        MetadataRequest request = new MetadataRequest();
+        request.setRepository(getRemoteRepo(remoteRepositories));
+        request.setMetadata(new DefaultMetadata(ARCHETYPE_CATALOG_FILENAME, 
Metadata.Nature.RELEASE));
 
-            if (request != null) {
-                List<Server> servers = request.getServers();
+        MetadataResult metadataResult = repositorySystem
+                .resolveMetadata(repositorySession, 
Collections.singletonList(request))
+                .get(0);
 
-                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;
-                        }
-                    }
-                }
+        if (metadataResult.isResolved()) {
+            try {
+                return readCatalog(
+                        new 
XmlStreamReader(metadataResult.getMetadata().getFile()));
+            } catch (IOException e) {
+                throw new ArchetypeDataSourceException(e);
             }
+        } else {
+            throw new 
ArchetypeDataSourceException(metadataResult.getException());
         }
-
-        return null;
     }
 
-    private Mirror getMirror(String repoId) {
-        MavenSession session = legacySupport.getSession();
-
-        MavenExecutionRequest request = null;
+    private RemoteRepository getRemoteRepo(List<RemoteRepository> 
remoteRepositories) {
 
-        if (session != null) {
-            request = session.getRequest();
+        if (remoteRepositories == null || remoteRepositories.isEmpty()) {
+            return null;
         }
 
-        if (request != null) {
-            return getMirror(repoId, request.getMirrors());
-        }
-
-        return null;
-    }
-
-    private static final String WILDCARD = "*";
-
-    private static final String EXTERNAL_WILDCARD = "external:*";
-
-    private Mirror getMirror(String repoId, List<Mirror> mirrors) {
-        if (repoId != null && mirrors != null) {
-            for (Mirror mirror : mirrors) {
-                if (repoId.equals(mirror.getMirrorOf())) {
-                    return mirror;
-                }
+        for (RemoteRepository remoteRepository : remoteRepositories) {
+            if (ARCHETYPE_REPOSITORY_ID.equals(remoteRepository.getId())) {
+                return remoteRepository;
             }
 
-            for (Mirror mirror : mirrors) {
-                if (matchPattern(repoId, mirror.getMirrorOf())) {
-                    return mirror;
-                }
+            if (CENTRAL_REPOSITORY_ID.equals(remoteRepository.getId())) {
+                return remoteRepository;
             }
-        }
-
-        return null;
-    }
 
-    /**
-     * This method checks if the pattern matches the originalRepository. Valid 
patterns: * =
-     * everything external:* = everything not on the localhost and not file 
based. repo,repo1 = repo
-     * or repo1 *,!repo1 = everything except repo1
-     *
-     * @param originalId to compare for a match.
-     * @param pattern used for match. Currently only '*' is supported.
-     * @return true if the repository is a match to this pattern.
-     */
-    static boolean matchPattern(String originalId, String pattern) {
-        boolean result = false;
-
-        // simple checks first to short circuit processing below.
-        if (WILDCARD.equals(pattern) || pattern.equals(originalId)) {
-            result = true;
-        } else {
-            // process the list
-            String[] repos = pattern.split(",");
-            for (String repo : repos) {
-                // see if this is a negative match
-                if (repo.length() > 1 && repo.startsWith("!")) {
-                    if (repo.substring(1).equals(originalId)) {
-                        // explicitly exclude. Set result and stop processing.
-                        result = false;
-                        break;
-                    }
-                }
-                // check for exact match
-                else if (repo.equals(originalId)) {
-                    result = true;
-                    break;
-                }
-                // check for external:*
-                else if (EXTERNAL_WILDCARD.equals(repo)) {
-                    result = true;
-                    // don't stop processing in case a future segment 
explicitly excludes this repo
-                } else if (WILDCARD.equals(repo)) {
-                    result = true;
-                    // don't stop processing in case a future segment 
explicitly excludes this repo
-                }
+            if (getRemoteRepo(remoteRepository.getMirroredRepositories()) != 
null) {
+                return remoteRepository;
             }
         }
-        return result;
-    }
 
-    static boolean matchesLayout(ArtifactRepository repository, Mirror mirror) 
{
-        return matchesLayout(repository.getLayout().getId(), 
mirror.getMirrorOfLayouts());
+        return null;
     }
 
-    /**
-     * Checks whether the layouts configured for a mirror match with the 
layout of the repository.
-     *
-     * @param repoLayout The layout of the repository, may be {@code null}.
-     * @param mirrorLayout The layouts supported by the mirror, may be {@code 
null}.
-     * @return {@code true} if the layouts associated with the mirror match 
the layout of the original repository,
-     *         {@code false} otherwise.
-     */
-    static boolean matchesLayout(String repoLayout, String mirrorLayout) {
-        boolean result = false;
-
-        // simple checks first to short circuit processing below.
-        if ((mirrorLayout == null || mirrorLayout.isEmpty()) || 
WILDCARD.equals(mirrorLayout)) {
-            result = true;
-        } else if (mirrorLayout.equals(repoLayout)) {
-            result = true;
-        } else {
-            // process the list
-            String[] layouts = mirrorLayout.split(",");
-            for (String layout : layouts) {
-                // see if this is a negative match
-                if (layout.length() > 1 && layout.startsWith("!")) {
-                    if (layout.substring(1).equals(repoLayout)) {
-                        // explicitly exclude. Set result and stop processing.
-                        result = false;
-                        break;
-                    }
-                }
-                // check for exact match
-                else if (layout.equals(repoLayout)) {
-                    result = true;
-                    break;
-                } else if (WILDCARD.equals(layout)) {
-                    result = true;
-                    // don't stop processing in case a future segment 
explicitly excludes this repo
-                }
-            }
-        }
-
-        return result;
+    @Override
+    public File updateCatalog(RepositorySystemSession repositorySession, 
Archetype archetype)
+            throws ArchetypeDataSourceException {
+        throw new ArchetypeDataSourceException("Not supported yet.");
     }
 }
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 1a0b9447..5bc61059 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
@@ -28,14 +28,9 @@ import java.util.Properties;
 
 import org.apache.maven.archetype.ArchetypeGenerationRequest;
 import org.apache.maven.archetype.ArchetypeGenerationResult;
-import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.artifact.repository.DefaultArtifactRepository;
-import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
 import org.apache.maven.model.Model;
 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.codehaus.plexus.component.repository.exception.ComponentLookupException;
 import org.codehaus.plexus.util.FileUtils;
 import org.codehaus.plexus.util.ReaderFactory;
@@ -75,7 +70,7 @@ public class DefaultArchetypeGeneratorTest extends 
AbstractMojoTestCase {
         ADDITIONAL_PROPERTIES.setProperty("property_underscored-2", "prop2");
     }
 
-    ArtifactRepository localRepository;
+    String localRepository;
 
     String remoteRepository;
 
@@ -504,14 +499,11 @@ public class DefaultArchetypeGeneratorTest extends 
AbstractMojoTestCase {
     protected void setUp() throws Exception {
         super.setUp();
 
-        String repositories = new File(getBasedir(), 
"target/test-classes/repositories")
-                .toURI()
-                .toString();
+        File repositories = new File(getBasedir(), 
"target/test-classes/repositories");
 
-        localRepository =
-                new DefaultArtifactRepository("local", repositories + 
"/local", new DefaultRepositoryLayout());
+        localRepository = new File(repositories, "local").toString();
 
-        remoteRepository = repositories + "central";
+        remoteRepository = new File(repositories, 
"central").toURI().toString();
 
         generator = (ArchetypeGenerator) lookup(ArchetypeGenerator.ROLE);
         assertNotNull(generator);
@@ -541,15 +533,13 @@ public class DefaultArchetypeGeneratorTest extends 
AbstractMojoTestCase {
 
         request.setProperties(ADDITIONAL_PROPERTIES);
 
-        ProjectBuildingRequest buildingRequest = new 
DefaultProjectBuildingRequest();
         DefaultRepositorySystemSession repositorySession = new 
DefaultRepositorySystemSession();
         RepositorySystem repositorySystem = lookup(RepositorySystem.class);
-        LocalRepositoryManager localRepositoryManager = 
repositorySystem.newLocalRepositoryManager(
-                repositorySession, new 
LocalRepository(localRepository.getBasedir()));
+        LocalRepositoryManager localRepositoryManager =
+                repositorySystem.newLocalRepositoryManager(repositorySession, 
new LocalRepository(localRepository));
         repositorySession.setLocalRepositoryManager(localRepositoryManager);
-        buildingRequest.setRepositorySession(repositorySession);
-        request.setProjectBuildingRequest(buildingRequest);
 
+        request.setRepositorySession(repositorySession);
         return request;
     }
 
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 b3cc3c50..82a1f48e 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
@@ -30,21 +30,10 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.maven.RepositoryUtils;
 import org.apache.maven.archetype.ArchetypeGenerationRequest;
 import org.apache.maven.archetype.exception.InvalidPackaging;
-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.repository.DefaultArtifactRepository;
-import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
-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.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.velocity.VelocityContext;
 import org.apache.velocity.context.Context;
 import org.codehaus.plexus.ContainerConfiguration;
@@ -54,8 +43,15 @@ import 
org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 import org.codehaus.plexus.velocity.VelocityComponent;
 import org.eclipse.aether.DefaultRepositorySystemSession;
 import org.eclipse.aether.RepositorySystem;
+import org.eclipse.aether.RepositorySystemSession;
+import org.eclipse.aether.artifact.Artifact;
+import org.eclipse.aether.artifact.DefaultArtifact;
 import org.eclipse.aether.repository.LocalRepository;
 import org.eclipse.aether.repository.LocalRepositoryManager;
+import org.eclipse.aether.repository.RemoteRepository;
+import org.eclipse.aether.repository.RepositoryPolicy;
+import org.eclipse.aether.resolution.ArtifactRequest;
+import org.eclipse.aether.resolution.ArtifactResult;
 
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.xmlunit.matchers.CompareMatcher.isIdenticalTo;
@@ -79,34 +75,27 @@ public class ArchetypeTest extends PlexusTestCase {
         // This needs to be encapsulated in a maven test case.
         // 
----------------------------------------------------------------------
 
-        ArtifactRepositoryLayout layout =
-                (ArtifactRepositoryLayout) 
getContainer().lookup(ArtifactRepositoryLayout.ROLE);
-
         String mavenRepoLocal =
-                
getTestFile("target/local-repository").toURI().toURL().toString();
-
-        ArtifactRepository localRepository = new 
DefaultArtifactRepository("local", mavenRepoLocal, layout);
-
-        List<ArtifactRepository> remoteRepositories = new ArrayList<>();
+                
getTestFile("target/local-repository").toURI().toURL().getFile();
 
         String mavenRepoRemote =
                 getTestFile("src/test/repository").toURI().toURL().toString();
 
-        ArtifactRepository remoteRepository = new 
DefaultArtifactRepository("remote", mavenRepoRemote, layout);
+        RemoteRepository remoteRepository = new 
RemoteRepository.Builder("remote", "default", mavenRepoRemote)
+                .setReleasePolicy(new RepositoryPolicy())
+                .setSnapshotPolicy(new RepositoryPolicy())
+                .build();
 
+        List<RemoteRepository> remoteRepositories = new ArrayList<>();
         remoteRepositories.add(remoteRepository);
 
-        ProjectBuildingRequest buildingRequest = new 
DefaultProjectBuildingRequest();
-        buildingRequest.setRemoteRepositories(remoteRepositories);
         DefaultRepositorySystemSession repositorySession = new 
DefaultRepositorySystemSession();
         RepositorySystem repositorySystem = lookup(RepositorySystem.class);
-        LocalRepositoryManager localRepositoryManager = 
repositorySystem.newLocalRepositoryManager(
-                repositorySession, new 
LocalRepository(localRepository.getBasedir()));
+        LocalRepositoryManager localRepositoryManager =
+                repositorySystem.newLocalRepositoryManager(repositorySession, 
new LocalRepository(mavenRepoLocal));
         repositorySession.setLocalRepositoryManager(localRepositoryManager);
-        buildingRequest.setRepositorySession(repositorySession);
 
         ArchetypeGenerationRequest request = new ArchetypeGenerationRequest()
-                .setProjectBuildingRequest(buildingRequest)
                 .setPackage("org.apache.maven.quickstart")
                 .setGroupId("maven")
                 .setArtifactId("quickstart")
@@ -114,9 +103,9 @@ public class ArchetypeTest extends PlexusTestCase {
                 .setArchetypeGroupId("org.apache.maven.archetypes")
                 .setArchetypeArtifactId("maven-archetype-quickstart")
                 .setArchetypeVersion("1.0-alpha-1-SNAPSHOT")
-                
.setRemoteArtifactRepositories(RepositoryUtils.toRepos(remoteRepositories))
+                .setRemoteArtifactRepositories(remoteRepositories)
+                .setRepositorySession(repositorySession)
                 .setOutputDirectory(getTestFile("target").getAbsolutePath());
-        // parameters.put( "name", "jason" );
 
         archetype.createArchetype(request);
 
@@ -142,20 +131,15 @@ public class ArchetypeTest extends PlexusTestCase {
         // Validate POM generation
         // 
----------------------------------------------------------------------
 
-        ArtifactFactory artifactFactory = (ArtifactFactory) 
lookup(ArtifactFactory.class.getName());
-        Artifact archetypeArtifact = artifactFactory.createArtifact(
-                request.getArchetypeGroupId(),
-                request.getArchetypeArtifactId(),
-                request.getArchetypeVersion(),
-                Artifact.SCOPE_RUNTIME,
-                "jar");
+        Artifact archetypeArtifact = new DefaultArtifact(
+                request.getArchetypeGroupId(), 
request.getArchetypeArtifactId(), "jar", request.getArchetypeVersion());
 
         StringWriter writer = new StringWriter();
 
         ClassLoader old = Thread.currentThread().getContextClassLoader();
 
         Thread.currentThread()
-                
.setContextClassLoader(getContextClassloader(archetypeArtifact, 
localRepository, remoteRepositories));
+                
.setContextClassLoader(getContextClassloader(archetypeArtifact, 
repositorySession, remoteRepositories));
 
         try {
             VelocityComponent velocity = (VelocityComponent) 
lookup(VelocityComponent.class.getName());
@@ -188,9 +172,7 @@ public class ArchetypeTest extends PlexusTestCase {
             MavenXpp3Reader reader = new MavenXpp3Reader();
 
             generatedModel = reader.read(pomReader);
-        } catch (IOException e) {
-            throw new ArchetypeTemplateProcessingException("Error reading 
generated POM", e);
-        } catch (XmlPullParserException e) {
+        } catch (IOException | XmlPullParserException e) {
             throw new ArchetypeTemplateProcessingException("Error reading 
generated POM", e);
         }
         assertEquals(
@@ -225,30 +207,15 @@ public class ArchetypeTest extends PlexusTestCase {
 
     // Gets the classloader for this artifact's file.
     private ClassLoader getContextClassloader(
-            Artifact archetypeArtifact, ArtifactRepository localRepository, 
List<ArtifactRepository> remoteRepositories)
+            Artifact archetypeArtifact,
+            RepositorySystemSession repositorySystemSession,
+            List<RemoteRepository> remoteRepositories)
             throws Exception {
-        ArtifactResolver artifactResolver = (ArtifactResolver) 
lookup(ArtifactResolver.class.getName());
-        try {
-            artifactResolver.resolve(archetypeArtifact, remoteRepositories, 
localRepository);
-        } catch (ArtifactResolutionException e) {
-            throw new ArchetypeDescriptorException("Error attempting to 
download archetype: " + e.getMessage(), e);
-        } catch (ArtifactNotFoundException e) {
-            throw new ArchetypeNotFoundException("OldArchetype does not exist: 
" + e.getMessage(), e);
-        }
-
-        URLClassLoader archetypeJarLoader;
-        try {
-            URL[] urls = new URL[1];
-
-            urls[0] = archetypeArtifact.getFile().toURI().toURL();
-
-            archetypeJarLoader = new URLClassLoader(urls);
-        } catch (IOException e) {
-            throw new ArchetypeDescriptorException(
-                    "Error reading the " + OldArchetype.ARCHETYPE_DESCRIPTOR + 
" descriptor.", e);
-        }
-
-        return archetypeJarLoader;
+        RepositorySystem repositorySystem = lookup(RepositorySystem.class);
+        ArtifactRequest request = new ArtifactRequest(archetypeArtifact, 
remoteRepositories, null);
+        ArtifactResult artifactResult = 
repositorySystem.resolveArtifact(repositorySystemSession, request);
+        URL[] urls = new URL[] 
{artifactResult.getArtifact().getFile().toURI().toURL()};
+        return new URLClassLoader(urls);
     }
 
     public void testAddModuleToParentPOM() throws Exception {
diff --git 
a/archetype-common/src/test/java/org/apache/maven/archetype/source/LocalCatalogArchetypeDataSourceTest.java
 
b/archetype-common/src/test/java/org/apache/maven/archetype/source/LocalCatalogArchetypeDataSourceTest.java
index e1290438..8e10f370 100644
--- 
a/archetype-common/src/test/java/org/apache/maven/archetype/source/LocalCatalogArchetypeDataSourceTest.java
+++ 
b/archetype-common/src/test/java/org/apache/maven/archetype/source/LocalCatalogArchetypeDataSourceTest.java
@@ -43,8 +43,6 @@ import org.apache.maven.archetype.ArchetypeManager;
 import org.apache.maven.archetype.catalog.Archetype;
 import org.apache.maven.archetype.catalog.ArchetypeCatalog;
 import org.apache.maven.archetype.catalog.io.xpp3.ArchetypeCatalogXpp3Writer;
-import org.apache.maven.project.DefaultProjectBuildingRequest;
-import org.apache.maven.project.ProjectBuildingRequest;
 import org.codehaus.plexus.ContainerConfiguration;
 import org.codehaus.plexus.PlexusTestCase;
 import org.eclipse.aether.DefaultRepositorySystemSession;
@@ -85,14 +83,12 @@ public class LocalCatalogArchetypeDataSourceTest extends 
PlexusTestCase {
         ArchetypeManager archetype = lookup(ArchetypeManager.class);
         RepositorySystem repositorySystem = lookup(RepositorySystem.class);
 
-        ProjectBuildingRequest buildingRequest = new 
DefaultProjectBuildingRequest();
         DefaultRepositorySystemSession repositorySession = new 
DefaultRepositorySystemSession();
         LocalRepositoryManager localRepositoryManager = 
repositorySystem.newLocalRepositoryManager(
                 repositorySession, new 
LocalRepository(getTestFile("target/test-classes/repositories/test-catalog")));
         repositorySession.setLocalRepositoryManager(localRepositoryManager);
-        buildingRequest.setRepositorySession(repositorySession);
 
-        ArchetypeCatalog result = archetype.getLocalCatalog(buildingRequest);
+        ArchetypeCatalog result = archetype.getLocalCatalog(repositorySession);
 
         assertEquals(1, result.getArchetypes().size());
         assertEquals("groupId", result.getArchetypes().get(0).getGroupId());
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 5cf4c091..537cc795 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
@@ -26,12 +26,6 @@ import org.apache.maven.archetype.ArchetypeGenerationResult;
 import org.apache.maven.archetype.ArchetypeManager;
 import org.apache.maven.archetype.catalog.Archetype;
 import org.apache.maven.archetype.catalog.ArchetypeCatalog;
-import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
-import org.apache.maven.artifact.repository.MavenArtifactRepository;
-import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
-import org.apache.maven.project.DefaultProjectBuildingRequest;
-import org.apache.maven.project.ProjectBuildingRequest;
 import org.codehaus.plexus.ContainerConfiguration;
 import org.codehaus.plexus.PlexusTestCase;
 import org.codehaus.plexus.util.FileUtils;
@@ -51,26 +45,13 @@ public class ArchetypeGenerationTest extends PlexusTestCase 
{
     public void testProjectGenerationFromAnArchetype() throws Exception {
         ArchetypeManager archetype = (ArchetypeManager) 
lookup(ArchetypeManager.ROLE);
 
-        // In the embedder the localRepository will be retrieved from the 
embedder itself and users won't
-        // have to go through this muck.
-
-        ArtifactRepository localRepository = createRepository(
-                new File(getBasedir(), 
"target/test-classes/repositories/local")
-                        .toURI()
-                        .toURL()
-                        .toExternalForm(),
-                "local-repo");
-
-        ProjectBuildingRequest buildingRequest = new 
DefaultProjectBuildingRequest();
         DefaultRepositorySystemSession repositorySession = new 
DefaultRepositorySystemSession();
         RepositorySystem repositorySystem = lookup(RepositorySystem.class);
         LocalRepositoryManager localRepositoryManager = 
repositorySystem.newLocalRepositoryManager(
                 repositorySession, new 
LocalRepository("target/test-classes/repositories/central"));
         repositorySession.setLocalRepositoryManager(localRepositoryManager);
 
-        buildingRequest.setRepositorySession(repositorySession);
-
-        ArchetypeCatalog catalog = archetype.getLocalCatalog(buildingRequest);
+        ArchetypeCatalog catalog = 
archetype.getLocalCatalog(repositorySession);
 
         System.err.println("archetypes => " + catalog.getArchetypes());
         // Here I am just grabbing a OldArchetype but in a UI you would take 
the OldArchetype objects and present
@@ -96,11 +77,11 @@ public class ArchetypeGenerationTest extends PlexusTestCase 
{
 
         ArchetypeGenerationRequest agr = new 
ArchetypeGenerationRequest(selection)
                 .setOutputDirectory(outputDirectory.getAbsolutePath())
-                //                .setLocalRepository(localRepository)
                 .setGroupId(groupId)
                 .setArtifactId(artifactId)
                 .setVersion(version)
-                .setPackage(packageName);
+                .setPackage(packageName)
+                .setRepositorySession(repositorySession);
 
         Properties archetypeRequiredProperties = new Properties();
         archetypeRequiredProperties.setProperty("property-with-default-1", 
"value-1");
@@ -114,7 +95,6 @@ public class ArchetypeGenerationTest extends PlexusTestCase {
         archetypeRequiredProperties.setProperty("property_underscored_1", 
"prop1");
         archetypeRequiredProperties.setProperty("property_underscored-2", 
"prop2");
         agr.setProperties(archetypeRequiredProperties);
-        agr.setProjectBuildingRequest(buildingRequest);
 
         // Then generate away!
 
@@ -125,19 +105,4 @@ public class ArchetypeGenerationTest extends 
PlexusTestCase {
             fail(result.getCause().getMessage());
         }
     }
-
-    private ArtifactRepository createRepository(String url, String 
repositoryId) {
-        String updatePolicyFlag = 
ArtifactRepositoryPolicy.UPDATE_POLICY_ALWAYS;
-
-        String checksumPolicyFlag = 
ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN;
-
-        ArtifactRepositoryPolicy snapshotsPolicy =
-                new ArtifactRepositoryPolicy(true, updatePolicyFlag, 
checksumPolicyFlag);
-
-        ArtifactRepositoryPolicy releasesPolicy =
-                new ArtifactRepositoryPolicy(true, updatePolicyFlag, 
checksumPolicyFlag);
-
-        return new MavenArtifactRepository(
-                repositoryId, url, new DefaultRepositoryLayout(), 
snapshotsPolicy, releasesPolicy);
-    }
 }
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 ad32db85..6eec8e99 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
@@ -25,12 +25,6 @@ import org.apache.maven.archetype.ArchetypeGenerationResult;
 import org.apache.maven.archetype.ArchetypeManager;
 import org.apache.maven.archetype.catalog.Archetype;
 import org.apache.maven.archetype.catalog.ArchetypeCatalog;
-import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
-import org.apache.maven.artifact.repository.MavenArtifactRepository;
-import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
-import org.apache.maven.project.DefaultProjectBuildingRequest;
-import org.apache.maven.project.ProjectBuildingRequest;
 import org.codehaus.plexus.ContainerConfiguration;
 import org.codehaus.plexus.PlexusTestCase;
 import org.codehaus.plexus.util.FileUtils;
@@ -52,12 +46,6 @@ public class InternalCatalogArchetypesVerificationTest 
extends PlexusTestCase {
     }
 
     public void testInternalCatalog() throws Exception {
-        ArtifactRepository localRepository = createRepository(
-                new File(getBasedir(), 
"target/test-classes/repositories/local")
-                        .toURI()
-                        .toURL()
-                        .toExternalForm(),
-                "local-repo");
 
         File outputDirectory = new File(getBasedir(), 
"target/internal-archetypes-projects");
         outputDirectory.mkdirs();
@@ -81,22 +69,19 @@ public class InternalCatalogArchetypesVerificationTest 
extends PlexusTestCase {
                 ar.setRepository(CENTRAL);
             }
 
+            DefaultRepositorySystemSession repositorySession = new 
DefaultRepositorySystemSession();
+            RepositorySystem repositorySystem = lookup(RepositorySystem.class);
+            LocalRepositoryManager localRepositoryManager = 
repositorySystem.newLocalRepositoryManager(
+                    repositorySession, new 
LocalRepository("target/test-classes/repositories/local"));
+            
repositorySession.setLocalRepositoryManager(localRepositoryManager);
+
             ArchetypeGenerationRequest request = new 
ArchetypeGenerationRequest(ar)
                     .setGroupId("org.apache.maven.archetype.test")
                     .setArtifactId("archetype" + count)
                     .setVersion("1.0-SNAPSHOT")
                     .setPackage("com.acme")
-                    .setOutputDirectory(outputDirectory.getPath());
-            //                    .setLocalRepository(localRepository);
-
-            ProjectBuildingRequest buildingRequest = new 
DefaultProjectBuildingRequest();
-            DefaultRepositorySystemSession repositorySession = new 
DefaultRepositorySystemSession();
-            RepositorySystem repositorySystem = lookup(RepositorySystem.class);
-            LocalRepositoryManager localRepositoryManager = 
repositorySystem.newLocalRepositoryManager(
-                    repositorySession, new 
LocalRepository(localRepository.getBasedir()));
-            
repositorySession.setLocalRepositoryManager(localRepositoryManager);
-            buildingRequest.setRepositorySession(repositorySession);
-            request.setProjectBuildingRequest(buildingRequest);
+                    .setOutputDirectory(outputDirectory.getPath())
+                    .setRepositorySession(repositorySession);
 
             ArchetypeGenerationResult generationResult = 
archetype.generateProjectFromArchetype(request);
 
@@ -105,19 +90,4 @@ public class InternalCatalogArchetypesVerificationTest 
extends PlexusTestCase {
             count++;
         }
     }
-
-    private ArtifactRepository createRepository(String url, String 
repositoryId) {
-        String updatePolicyFlag = 
ArtifactRepositoryPolicy.UPDATE_POLICY_ALWAYS;
-
-        String checksumPolicyFlag = 
ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN;
-
-        ArtifactRepositoryPolicy snapshotsPolicy =
-                new ArtifactRepositoryPolicy(true, updatePolicyFlag, 
checksumPolicyFlag);
-
-        ArtifactRepositoryPolicy releasesPolicy =
-                new ArtifactRepositoryPolicy(true, updatePolicyFlag, 
checksumPolicyFlag);
-
-        return new MavenArtifactRepository(
-                repositoryId, url, new DefaultRepositoryLayout(), 
snapshotsPolicy, releasesPolicy);
-    }
 }
diff --git 
a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateArchetypeFromProjectMojo.java
 
b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateArchetypeFromProjectMojo.java
index 527f650b..dbd76efd 100644
--- 
a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateArchetypeFromProjectMojo.java
+++ 
b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateArchetypeFromProjectMojo.java
@@ -30,7 +30,6 @@ import org.apache.maven.archetype.ArchetypeCreationResult;
 import org.apache.maven.archetype.ArchetypeManager;
 import org.apache.maven.archetype.common.Constants;
 import org.apache.maven.archetype.ui.creation.ArchetypeCreationConfigurator;
-import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.execution.MavenSession;
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecutionException;
@@ -144,9 +143,6 @@ public class CreateArchetypeFromProjectMojo extends 
AbstractMojo {
     @Parameter(property = "archetype.preserveCData")
     private boolean preserveCData = false;
 
-    @Parameter(defaultValue = "${localRepository}", readonly = true)
-    private ArtifactRepository localRepository;
-
     /**
      * POMs in archetype are created with their initial parent.
      * This property is ignored when preserveCData is true.
@@ -223,9 +219,6 @@ public class CreateArchetypeFromProjectMojo extends 
AbstractMojo {
     @Parameter(defaultValue = "${session}", readonly = true, required = true)
     private MavenSession session;
 
-    //    @Parameter( defaultValue = "${session.settings}", readonly = true, 
required = true )
-    //    private File settingsXml;
-
     @Override
     public void execute() throws MojoExecutionException, MojoFailureException {
         Properties executionProperties = session.getExecutionProperties();
@@ -237,7 +230,7 @@ public class CreateArchetypeFromProjectMojo extends 
AbstractMojo {
             List<String> languages = getLanguages(archetypeLanguages, 
propertyFile);
 
             Properties properties = configurator.configureArchetypeCreation(
-                    project, Boolean.valueOf(interactive), 
executionProperties, propertyFile, languages);
+                    project, interactive, executionProperties, propertyFile, 
languages);
 
             List<String> filtereds = 
getFilteredExtensions(archetypeFilteredExtentions, propertyFile);
 
@@ -250,8 +243,8 @@ public class CreateArchetypeFromProjectMojo extends 
AbstractMojo {
                     /* This should be correctly handled */ 
.setPreserveCData(preserveCData)
                     .setKeepParent(keepParent)
                     .setPartialArchetype(partialArchetype)
-                    .setLocalRepository(localRepository)
-                    
.setProjectBuildingRequest(session.getProjectBuildingRequest())
+                    .setLocalRepositoryBasedir(
+                            
session.getRepositorySession().getLocalRepository().getBasedir())
                     /* this should be resolved and asked for user to verify */ 
.setPackageName(packageName)
                     .setPostPhase(archetypePostPhase)
                     .setOutputDirectory(outputDirectory)
diff --git 
a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateProjectFromArchetypeMojo.java
 
b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateProjectFromArchetypeMojo.java
index a46123f0..6cc53e07 100644
--- 
a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateProjectFromArchetypeMojo.java
+++ 
b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateProjectFromArchetypeMojo.java
@@ -173,9 +173,9 @@ public class CreateProjectFromArchetypeMojo extends 
AbstractMojo implements Cont
                 .setArchetypeVersion(archetypeVersion)
                 .setOutputDirectory(outputDirectory.getAbsolutePath())
                 
.setRemoteArtifactRepositories(project.getRemoteProjectRepositories())
+                .setRepositorySession(session.getRepositorySession())
                 .setFilter(filter)
-                .setAskForDefaultPropertyValues(askForDefaultPropertyValues)
-                
.setProjectBuildingRequest(session.getProjectBuildingRequest());
+                .setAskForDefaultPropertyValues(askForDefaultPropertyValues);
 
         try {
             if (interactiveMode.booleanValue()) {
diff --git 
a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/IntegrationTestMojo.java
 
b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/IntegrationTestMojo.java
index 7561f301..9f79f30f 100644
--- 
a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/IntegrationTestMojo.java
+++ 
b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/IntegrationTestMojo.java
@@ -43,7 +43,6 @@ import org.apache.maven.archetype.ArchetypeGenerationRequest;
 import org.apache.maven.archetype.ArchetypeGenerationResult;
 import org.apache.maven.archetype.common.Constants;
 import org.apache.maven.archetype.downloader.DownloadException;
-import org.apache.maven.archetype.downloader.DownloadNotFoundException;
 import org.apache.maven.archetype.downloader.Downloader;
 import org.apache.maven.archetype.exception.ArchetypeNotConfigured;
 import org.apache.maven.archetype.generator.ArchetypeGenerator;
@@ -538,7 +537,7 @@ public class IntegrationTestMojo extends AbstractMojo {
         File archetypeFile;
         try {
             archetypeFile = getArchetypeFile(groupId, artifactId, version);
-        } catch (DownloadNotFoundException | DownloadException e) {
+        } catch (DownloadException e) {
             throw new MojoExecutionException("Could not resolve archetype 
artifact ", e);
         }
         Properties archetypeProperties = 
getProperties(archetypePomPropertiesFile);
@@ -549,7 +548,7 @@ public class IntegrationTestMojo extends AbstractMojo {
     }
 
     private File getArchetypeFile(String groupId, String artifactId, String 
version)
-            throws DownloadNotFoundException, DownloadException {
+            throws DownloadException {
         return downloader.download(
                 groupId, artifactId, version, 
project.getRemoteProjectRepositories(), session.getRepositorySession());
     }
diff --git 
a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/UpdateLocalCatalogMojo.java
 
b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/UpdateLocalCatalogMojo.java
index 1a03d2bd..127d1d57 100644
--- 
a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/UpdateLocalCatalogMojo.java
+++ 
b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/UpdateLocalCatalogMojo.java
@@ -70,7 +70,7 @@ public class UpdateLocalCatalogMojo extends AbstractMojo {
             archetype.setDescription(project.getName());
         }
 
-        File catalog = 
manager.updateLocalCatalog(session.getProjectBuildingRequest(), archetype);
+        File catalog = 
manager.updateLocalCatalog(session.getRepositorySession(), archetype);
         if (catalog != null) {
             getLog().info("Updated local archetypes catalog " + catalog);
         }
diff --git 
a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeGenerationConfigurator.java
 
b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeGenerationConfigurator.java
index 5eb7844c..186700b5 100644
--- 
a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeGenerationConfigurator.java
+++ 
b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeGenerationConfigurator.java
@@ -43,11 +43,9 @@ import 
org.apache.maven.archetype.exception.ArchetypeGenerationConfigurationFail
 import org.apache.maven.archetype.exception.ArchetypeNotConfigured;
 import org.apache.maven.archetype.exception.ArchetypeNotDefined;
 import org.apache.maven.archetype.exception.UnknownArchetype;
-import org.apache.maven.archetype.old.OldArchetype;
 import org.apache.maven.archetype.ui.ArchetypeConfiguration;
 import org.apache.maven.archetype.ui.ArchetypeDefinition;
 import org.apache.maven.archetype.ui.ArchetypeFactory;
-import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
 import org.apache.velocity.Template;
 import org.apache.velocity.VelocityContext;
 import org.apache.velocity.context.Context;
@@ -72,8 +70,6 @@ import org.eclipse.aether.repository.RepositoryPolicy;
 @Singleton
 public class DefaultArchetypeGenerationConfigurator extends AbstractLogEnabled
         implements ArchetypeGenerationConfigurator {
-    @Inject
-    OldArchetype oldArchetype;
 
     @Inject
     private ArchetypeArtifactManager archetypeArtifactManager;
@@ -87,12 +83,6 @@ public class DefaultArchetypeGenerationConfigurator extends 
AbstractLogEnabled
     @Inject
     private VelocityComponent velocity;
 
-    /**
-     * Determines whether the layout is legacy or not.
-     */
-    @Inject
-    private ArtifactRepositoryLayout defaultArtifactRepositoryLayout;
-
     @Inject
     private RepositorySystem repositorySystem;
 
@@ -121,8 +111,7 @@ public class DefaultArchetypeGenerationConfigurator extends 
AbstractLogEnabled
             }
         }
         if (request.getArchetypeRepository() != null) {
-            RepositorySystemSession repositorySession =
-                    request.getProjectBuildingRequest().getRepositorySession();
+            RepositorySystemSession repositorySession = 
request.getRepositorySession();
             RemoteRepository archetypeRepository =
                     createRepository(repositorySession, 
request.getArchetypeRepository(), ad.getArtifactId() + "-repo");
             repositories.add(archetypeRepository);
@@ -132,11 +121,7 @@ public class DefaultArchetypeGenerationConfigurator 
extends AbstractLogEnabled
         }
 
         if (!archetypeArtifactManager.exists(
-                ad.getGroupId(),
-                ad.getArtifactId(),
-                ad.getVersion(),
-                repositories,
-                request.getProjectBuildingRequest().getRepositorySession())) {
+                ad.getGroupId(), ad.getArtifactId(), ad.getVersion(), 
repositories, request.getRepositorySession())) {
             throw new UnknownArchetype("The desired archetype does not exist 
(" + ad.getGroupId() + ":"
                     + ad.getArtifactId() + ":" + ad.getVersion() + ")");
         }
@@ -146,11 +131,7 @@ public class DefaultArchetypeGenerationConfigurator 
extends AbstractLogEnabled
         ArchetypeConfiguration archetypeConfiguration;
 
         File archetypeFile = archetypeArtifactManager.getArchetypeFile(
-                ad.getGroupId(),
-                ad.getArtifactId(),
-                ad.getVersion(),
-                repositories,
-                request.getProjectBuildingRequest().getRepositorySession());
+                ad.getGroupId(), ad.getArtifactId(), ad.getVersion(), 
repositories, request.getRepositorySession());
         if (archetypeArtifactManager.isFileSetArchetype(archetypeFile)) {
             org.apache.maven.archetype.metadata.ArchetypeDescriptor 
archetypeDescriptor =
                     
archetypeArtifactManager.getFileSetArchetypeDescriptor(archetypeFile);
diff --git 
a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeSelector.java
 
b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeSelector.java
index dab4f3ea..00c68022 100644
--- 
a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeSelector.java
+++ 
b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeSelector.java
@@ -22,7 +22,6 @@ import javax.inject.Inject;
 import javax.inject.Named;
 import javax.inject.Singleton;
 
-import java.io.IOException;
 import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.List;
@@ -32,14 +31,12 @@ import org.apache.commons.lang3.StringUtils;
 import org.apache.maven.archetype.ArchetypeGenerationRequest;
 import org.apache.maven.archetype.ArchetypeManager;
 import org.apache.maven.archetype.catalog.Archetype;
-import org.apache.maven.archetype.exception.ArchetypeNotDefined;
 import org.apache.maven.archetype.exception.ArchetypeSelectionFailure;
-import org.apache.maven.archetype.exception.UnknownArchetype;
-import org.apache.maven.archetype.exception.UnknownGroup;
 import org.apache.maven.archetype.ui.ArchetypeDefinition;
-import org.apache.maven.project.ProjectBuildingRequest;
 import org.codehaus.plexus.components.interactivity.PrompterException;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
+import org.eclipse.aether.RepositorySystemSession;
+import org.eclipse.aether.repository.RemoteRepository;
 
 @Named("default")
 @Singleton
@@ -58,8 +55,7 @@ public class DefaultArchetypeSelector extends 
AbstractLogEnabled implements Arch
 
     @Override
     public void selectArchetype(ArchetypeGenerationRequest request, Boolean 
interactiveMode, String catalogs)
-            throws ArchetypeNotDefined, UnknownArchetype, UnknownGroup, 
IOException, PrompterException,
-                    ArchetypeSelectionFailure {
+            throws PrompterException, ArchetypeSelectionFailure {
         ArchetypeDefinition definition = new ArchetypeDefinition(request);
 
         if (definition.isDefined() && 
StringUtils.isNotEmpty(request.getArchetypeRepository())) {
@@ -67,7 +63,8 @@ public class DefaultArchetypeSelector extends 
AbstractLogEnabled implements Arch
             return;
         }
 
-        Map<String, List<Archetype>> archetypes = 
getArchetypesByCatalog(request.getProjectBuildingRequest(), catalogs);
+        Map<String, List<Archetype>> archetypes = getArchetypesByCatalog(
+                request.getRepositorySession(), 
request.getRemoteArtifactRepositories(), catalogs);
 
         if (StringUtils.isNotBlank(request.getFilter())) {
             // applying some filtering depending on filter parameter
@@ -154,7 +151,7 @@ public class DefaultArchetypeSelector extends 
AbstractLogEnabled implements Arch
     }
 
     private Map<String, List<Archetype>> getArchetypesByCatalog(
-            ProjectBuildingRequest buildingRequest, String catalogs) {
+            RepositorySystemSession repositorySession, List<RemoteRepository> 
remoteRepositories, String catalogs) {
         if (catalogs == null) {
             throw new NullPointerException("Catalogs cannot be null");
         }
@@ -167,10 +164,11 @@ public class DefaultArchetypeSelector extends 
AbstractLogEnabled implements Arch
             } else if ("local".equalsIgnoreCase(catalog)) {
                 archetypes.put(
                         "local",
-                        
archetypeManager.getLocalCatalog(buildingRequest).getArchetypes());
+                        
archetypeManager.getLocalCatalog(repositorySession).getArchetypes());
             } else if ("remote".equalsIgnoreCase(catalog)) {
-                List<Archetype> archetypesFromRemote =
-                        
archetypeManager.getRemoteCatalog(buildingRequest).getArchetypes();
+                List<Archetype> archetypesFromRemote = archetypeManager
+                        .getRemoteCatalog(repositorySession, 
remoteRepositories)
+                        .getArchetypes();
 
                 if (!archetypesFromRemote.isEmpty()) {
                     archetypes.put("remote", archetypesFromRemote);
diff --git 
a/maven-archetype-plugin/src/test/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeGenerationConfigurator2Test.java
 
b/maven-archetype-plugin/src/test/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeGenerationConfigurator2Test.java
index 5bece149..d507a54f 100644
--- 
a/maven-archetype-plugin/src/test/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeGenerationConfigurator2Test.java
+++ 
b/maven-archetype-plugin/src/test/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeGenerationConfigurator2Test.java
@@ -25,7 +25,6 @@ import org.apache.maven.archetype.ArchetypeGenerationRequest;
 import org.apache.maven.archetype.common.ArchetypeArtifactManager;
 import org.apache.maven.archetype.metadata.ArchetypeDescriptor;
 import org.apache.maven.archetype.metadata.RequiredProperty;
-import org.apache.maven.project.DefaultProjectBuildingRequest;
 import org.codehaus.plexus.ContainerConfiguration;
 import org.codehaus.plexus.PlexusTestCase;
 import org.easymock.EasyMock;
@@ -111,7 +110,6 @@ public class DefaultArchetypeGenerationConfigurator2Test 
extends PlexusTestCase
         request.setArchetypeGroupId("archetypeGroupId");
         request.setArchetypeArtifactId("archetypeArtifactId");
         request.setArchetypeVersion("archetypeVersion");
-        request.setProjectBuildingRequest(new DefaultProjectBuildingRequest());
         Properties properties = new Properties();
         properties.setProperty("groupName", "myGroupName");
         properties.setProperty("serviceName", "myServiceName");
@@ -129,7 +127,6 @@ public class DefaultArchetypeGenerationConfigurator2Test 
extends PlexusTestCase
         request.setArchetypeGroupId("archetypeGroupId");
         request.setArchetypeArtifactId("archetypeArtifactId");
         request.setArchetypeVersion("archetypeVersion");
-        request.setProjectBuildingRequest(new DefaultProjectBuildingRequest());
         Properties properties = new Properties();
 
         EasyMock.expect(queryer.getPropertyValue(eq("groupName"), anyString(), 
isNull()))
@@ -169,7 +166,6 @@ public class DefaultArchetypeGenerationConfigurator2Test 
extends PlexusTestCase
         request.setArchetypeGroupId("archetypeGroupId");
         request.setArchetypeArtifactId("archetypeArtifactId");
         request.setArchetypeVersion("archetypeVersion");
-        request.setProjectBuildingRequest(new DefaultProjectBuildingRequest());
         Properties properties = new Properties();
 
         EasyMock.expect(queryer.getPropertyValue(eq("groupName"), anyString(), 
isNull()))
@@ -209,7 +205,6 @@ public class DefaultArchetypeGenerationConfigurator2Test 
extends PlexusTestCase
         request.setArchetypeGroupId("archetypeGroupId");
         request.setArchetypeArtifactId("archetypeArtifactId");
         request.setArchetypeVersion("archetypeVersion");
-        request.setProjectBuildingRequest(new DefaultProjectBuildingRequest());
         Properties properties = new Properties();
 
         EasyMock.expect(queryer.getPropertyValue(eq("groupName"), anyString(), 
isNull()))
diff --git 
a/maven-archetype-plugin/src/test/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeGenerationConfiguratorTest.java
 
b/maven-archetype-plugin/src/test/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeGenerationConfiguratorTest.java
index f452b2f9..07bf672a 100644
--- 
a/maven-archetype-plugin/src/test/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeGenerationConfiguratorTest.java
+++ 
b/maven-archetype-plugin/src/test/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeGenerationConfiguratorTest.java
@@ -28,7 +28,6 @@ import 
org.apache.maven.archetype.exception.ArchetypeNotConfigured;
 import org.apache.maven.archetype.exception.ArchetypeNotDefined;
 import org.apache.maven.archetype.exception.UnknownArchetype;
 import org.apache.maven.archetype.old.descriptor.ArchetypeDescriptor;
-import org.apache.maven.project.DefaultProjectBuildingRequest;
 import org.codehaus.plexus.ContainerConfiguration;
 import org.codehaus.plexus.PlexusTestCase;
 import org.codehaus.plexus.components.interactivity.PrompterException;
@@ -87,7 +86,6 @@ public class DefaultArchetypeGenerationConfiguratorTest 
extends PlexusTestCase {
         request.setArchetypeGroupId("archetypeGroupId");
         request.setArchetypeArtifactId("archetypeArtifactId");
         request.setArchetypeVersion("archetypeVersion");
-        request.setProjectBuildingRequest(new DefaultProjectBuildingRequest());
         Properties properties = new Properties();
         properties.setProperty("groupId", "preset-groupId");
         properties.setProperty("artifactId", "preset-artifactId");
@@ -109,7 +107,6 @@ public class DefaultArchetypeGenerationConfiguratorTest 
extends PlexusTestCase {
         request.setArchetypeGroupId("archetypeGroupId");
         request.setArchetypeArtifactId("archetypeArtifactId");
         request.setArchetypeVersion("archetypeVersion");
-        request.setProjectBuildingRequest(new DefaultProjectBuildingRequest());
         Properties properties = new Properties();
         properties.setProperty("groupId", "preset-groupId");
         properties.setProperty("artifactId", "preset-artifactId");
@@ -129,7 +126,6 @@ public class DefaultArchetypeGenerationConfiguratorTest 
extends PlexusTestCase {
         request.setArchetypeGroupId("archetypeGroupId");
         request.setArchetypeArtifactId("archetypeArtifactId");
         request.setArchetypeVersion("archetypeVersion");
-        request.setProjectBuildingRequest(new DefaultProjectBuildingRequest());
         Properties properties = new Properties();
         properties.setProperty("artifactId", "preset-artifactId");
 
diff --git a/pom.xml b/pom.xml
index 6d8b20bb..6b465063 100644
--- a/pom.xml
+++ b/pom.xml
@@ -73,7 +73,6 @@
     
<maven.archetype.scm.devConnection>scm:git:https://gitbox.apache.org/repos/asf/maven-archetype.git</maven.archetype.scm.devConnection>
     <mavenVersion>3.6.3</mavenVersion>
     <resolverVersion>1.4.1</resolverVersion>
-    <wagonVersion>3.3.3</wagonVersion>
     <!-- provided by Maven core -->
     <javaVersion>8</javaVersion>
     <netbeans.hint.useExternalMaven>true</netbeans.hint.useExternalMaven>
@@ -190,17 +189,6 @@
         <artifactId>maven-plugin-testing-harness</artifactId>
         <version>3.3.0</version>
       </dependency>
-      <dependency>
-        <groupId>org.apache.maven.wagon</groupId>
-        <artifactId>wagon-provider-api</artifactId>
-        <version>${wagonVersion}</version>
-        <scope>provided</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.maven.wagon</groupId>
-        <artifactId>wagon-http</artifactId>
-        <version>${wagonVersion}</version>
-      </dependency>
       <dependency>
         <groupId>org.apache.maven.resolver</groupId>
         <artifactId>maven-resolver-api</artifactId>

Reply via email to