WIP
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 9bba301..a583d64 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
@@ -26,12 +26,13 @@
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.project.ProjectBuildingRequest;
+import org.eclipse.aether.RepositorySystemSession;
 
 /** @author Jason van Zyl */
 public class ArchetypeCreationRequest {
     private ProjectBuildingRequest projectBuildingRequest;
 
-    private ArtifactRepository localRepository;
+    private RepositorySystemSession repositorySystemSession;
 
     private MavenProject project;
 
@@ -69,13 +70,28 @@
         return this;
     }
 
-    public ArtifactRepository getLocalRepository() {
-        return localRepository;
+    /**
+     * @since TBD
+     */
+    public RepositorySystemSession getRepositorySystemSession() {
+        return repositorySystemSession;
     }
 
-    public ArchetypeCreationRequest setLocalRepository(ArtifactRepository localRepository) {
-        this.localRepository = localRepository;
+    /**
+     * @since TBD
+     */
+    public ArchetypeCreationRequest setRepositorySystemSession(RepositorySystemSession repositorySystemSession) {
+        this.repositorySystemSession = repositorySystemSession;
+        return this;
+    }
 
+    @Deprecated
+    public ArtifactRepository getLocalRepository() {
+        return null;
+    }
+
+    @Deprecated
+    public ArchetypeCreationRequest setLocalRepository(ArtifactRepository localRepository) {
         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 891bb69..de3e7fc 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
@@ -29,11 +29,17 @@
 import org.apache.maven.settings.Proxy;
 import org.apache.maven.settings.Server;
 import org.apache.maven.wagon.events.TransferListener;
+import org.eclipse.aether.RepositorySystemSession;
+import org.eclipse.aether.repository.RemoteRepository;
 
 /** @author Jason van Zyl */
 public class ArchetypeGenerationRequest {
     private ProjectBuildingRequest projectBuildingRequest;
 
+    private RepositorySystemSession repositorySystemSession;
+
+    private List<RemoteRepository> remoteRepositories;
+
     private boolean offline;
 
     private boolean interactiveMode;
@@ -44,10 +50,6 @@
 
     private String outputDirectory;
 
-    private ArtifactRepository localRepository;
-
-    private List<ArtifactRepository> remoteArtifactRepositories;
-
     private Proxy activeProxy;
 
     private List<Server> servers = new ArrayList<>();
@@ -112,6 +114,36 @@
         return this;
     }
 
+    /**
+     * @since TBD
+     */
+    public RepositorySystemSession getRepositorySystemSession() {
+        return repositorySystemSession;
+    }
+
+    /**
+     * @since TBD
+     */
+    public ArchetypeGenerationRequest setRepositorySystemSession(RepositorySystemSession repositorySystemSession) {
+        this.repositorySystemSession = repositorySystemSession;
+        return this;
+    }
+
+    /**
+     * @since TBD
+     */
+    public List<RemoteRepository> getRemoteRepositories() {
+        return remoteRepositories;
+    }
+
+    /**
+     * @since TBD
+     */
+    public ArchetypeGenerationRequest setRemoteRepositories(List<RemoteRepository> remoteRepositories) {
+        this.remoteRepositories = remoteRepositories;
+        return this;
+    }
+
     public String getArchetypeGroupId() {
         return archetypeGroupId;
     }
@@ -235,13 +267,13 @@
         return this;
     }
 
+    @Deprecated
     public ArtifactRepository getLocalRepository() {
-        return localRepository;
+        return null;
     }
 
+    @Deprecated
     public ArchetypeGenerationRequest setLocalRepository(ArtifactRepository localRepository) {
-        this.localRepository = localRepository;
-
         return this;
     }
 
@@ -333,15 +365,14 @@
         return servers;
     }
 
+    @Deprecated
     public List<ArtifactRepository> getRemoteArtifactRepositories() {
-        return remoteArtifactRepositories;
+        return null;
     }
 
-    @SuppressWarnings("checkstyle:linelength")
+    @Deprecated
     public ArchetypeGenerationRequest setRemoteArtifactRepositories(
             List<ArtifactRepository> remoteArtifactRepositories) {
-        this.remoteArtifactRepositories = remoteArtifactRepositories;
-
         return this;
     }
 
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 f04282e..40a111b 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
@@ -290,9 +290,10 @@
             internalRequest.setPomFile(archetypePomFile);
             internalRequest.setUserSettingsFile(request.getSettingsFile());
             internalRequest.setGoals(Collections.singletonList(request.getPostPhase()));
-            if (request.getLocalRepository() != null) {
-                internalRequest.setLocalRepositoryDirectory(
-                        new File(request.getLocalRepository().getBasedir()));
+            if (request.getRepositorySystemSession() != null) {
+                internalRequest.setLocalRepositoryDirectory(request.getRepositorySystemSession()
+                        .getLocalRepository()
+                        .getBasedir());
             }
 
             String httpsProtocols = System.getProperty("https.protocols");
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 02285df..101d2ff 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
@@ -59,8 +59,8 @@
             throws DownloadException, DownloadNotFoundException {
         DefaultArtifact artifact = new DefaultArtifact(groupId, artifactId, "", "jar", version);
         try {
-            ArtifactRequest request =
-                    new ArtifactRequest(artifact, RepositoryUtils.toRepos(remoteRepositories), "archetype");
+            ArtifactRequest request = new ArtifactRequest(
+                    artifact, RepositoryUtils.toRepos(buildingRequest.getRemoteRepositories()), "archetype");
             ArtifactResult result = repositorySystem.resolveArtifact(buildingRequest.getRepositorySession(), request);
             return result.getArtifact().getFile();
         } catch (ArtifactResolutionException e) {
diff --git a/archetype-common/src/test/archetypes/fileset-1.0/archetype-resources/profiles.xml b/archetype-common/src/test/archetypes/fileset-1.0/archetype-resources/profiles.xml
index 834d9c7..209b4c3 100644
--- a/archetype-common/src/test/archetypes/fileset-1.0/archetype-resources/profiles.xml
+++ b/archetype-common/src/test/archetypes/fileset-1.0/archetype-resources/profiles.xml
@@ -2,6 +2,7 @@
 artifactId=${artifactId}
 version=${version}
 package=${package}
+packageInPathFormat=${packageInPathFormat}
 propertyWithoutDefault1=${propertyWithoutDefault1}
 propertyWithoutDefault2=${propertyWithoutDefault2}
 propertyWithoutDefault3=${propertyWithoutDefault3}
diff --git a/archetype-common/src/test/archetypes/fileset-1.0/archetype-resources/subproject/subsubproject/src/main/java/ArbitraryProperty-__property-with-default-1__.java b/archetype-common/src/test/archetypes/fileset-1.0/archetype-resources/subproject/subsubproject/src/main/java/ArbitraryProperty-__propertyWithDefault1__.java
similarity index 100%
rename from archetype-common/src/test/archetypes/fileset-1.0/archetype-resources/subproject/subsubproject/src/main/java/ArbitraryProperty-__property-with-default-1__.java
rename to archetype-common/src/test/archetypes/fileset-1.0/archetype-resources/subproject/subsubproject/src/main/java/ArbitraryProperty-__propertyWithDefault1__.java
diff --git a/archetype-common/src/test/archetypes/fileset-1.0/archetype-resources/subproject/subsubproject/src/main/java/M___artifactId_____property_underscored_1__Test__property_underscored-2____property-with-default-1__.java b/archetype-common/src/test/archetypes/fileset-1.0/archetype-resources/subproject/subsubproject/src/main/java/M___artifactId_____property_underscored_1__Test__property_underscored-2____property-with-default-1__.java
deleted file mode 100644
index 9077927..0000000
--- a/archetype-common/src/test/archetypes/fileset-1.0/archetype-resources/subproject/subsubproject/src/main/java/M___artifactId_____property_underscored_1__Test__property_underscored-2____property-with-default-1__.java
+++ /dev/null
@@ -1,13 +0,0 @@
-groupId=${groupId}
-artifactId=${artifactId}
-version=${version}
-package=${package}
-packageInPathFormat=${packageInPathFormat}
-propertyWithoutDefault1=${propertyWithoutDefault1}
-propertyWithoutDefault2=${propertyWithoutDefault2}
-propertyWithoutDefault3=${propertyWithoutDefault3}
-propertyWithoutDefault4=${propertyWithoutDefault4}
-propertyWithDefault1=${propertyWithDefault1}
-propertyWithDefault2=${propertyWithDefault2}
-propertyWithDefault3=${propertyWithDefault3}
-propertyWithDefault4=${propertyWithDefault4}
\ No newline at end of file
diff --git a/archetype-common/src/test/archetypes/fileset-1.0/archetype-resources/subproject/subsubproject/src/main/java/ArbitraryProperty-__property-with-default-1__.java b/archetype-common/src/test/archetypes/fileset-1.0/archetype-resources/subproject/subsubproject/src/main/java/M___artifactId_____property_underscored_1__Test__property_underscored-2____propertyWithDefault1__.java
similarity index 100%
copy from archetype-common/src/test/archetypes/fileset-1.0/archetype-resources/subproject/subsubproject/src/main/java/ArbitraryProperty-__property-with-default-1__.java
copy to archetype-common/src/test/archetypes/fileset-1.0/archetype-resources/subproject/subsubproject/src/main/java/M___artifactId_____property_underscored_1__Test__property_underscored-2____propertyWithDefault1__.java
diff --git a/archetype-common/src/test/archetypes/fileset-1.0/archetype-resources/subproject/subsubproject/src/main/java/SkipsUndefinedProperty-__undefined-property__-__property-with-default-2__.java b/archetype-common/src/test/archetypes/fileset-1.0/archetype-resources/subproject/subsubproject/src/main/java/SkipsUndefinedProperty-__undefined-property__-__propertyWithDefault2__.java
similarity index 100%
rename from archetype-common/src/test/archetypes/fileset-1.0/archetype-resources/subproject/subsubproject/src/main/java/SkipsUndefinedProperty-__undefined-property__-__property-with-default-2__.java
rename to archetype-common/src/test/archetypes/fileset-1.0/archetype-resources/subproject/subsubproject/src/main/java/SkipsUndefinedProperty-__undefined-property__-__propertyWithDefault2__.java
diff --git a/archetype-common/src/test/archetypes/fileset_with_postscript-1.0/archetype-resources/subproject/subsubproject/src/main/java/ArbitraryProperty-__property-with-default-1__.java b/archetype-common/src/test/archetypes/fileset_with_postscript-1.0/archetype-resources/subproject/subsubproject/src/main/java/ArbitraryProperty-__propertyWithDefault1__.java
similarity index 100%
rename from archetype-common/src/test/archetypes/fileset_with_postscript-1.0/archetype-resources/subproject/subsubproject/src/main/java/ArbitraryProperty-__property-with-default-1__.java
rename to archetype-common/src/test/archetypes/fileset_with_postscript-1.0/archetype-resources/subproject/subsubproject/src/main/java/ArbitraryProperty-__propertyWithDefault1__.java
diff --git a/archetype-common/src/test/archetypes/fileset_with_postscript-1.0/archetype-resources/subproject/subsubproject/src/main/java/SkipsUndefinedProperty-__undefined-property__-__property-with-default-2__.java b/archetype-common/src/test/archetypes/fileset_with_postscript-1.0/archetype-resources/subproject/subsubproject/src/main/java/SkipsUndefinedProperty-__undefined-property__-__propertyWithDefault2__.java
similarity index 100%
rename from archetype-common/src/test/archetypes/fileset_with_postscript-1.0/archetype-resources/subproject/subsubproject/src/main/java/SkipsUndefinedProperty-__undefined-property__-__property-with-default-2__.java
rename to archetype-common/src/test/archetypes/fileset_with_postscript-1.0/archetype-resources/subproject/subsubproject/src/main/java/SkipsUndefinedProperty-__undefined-property__-__propertyWithDefault2__.java
diff --git a/archetype-common/src/test/archetypes/site-1.0/archetype-resources/src/site/apt/test.apt b/archetype-common/src/test/archetypes/site-1.0/archetype-resources/src/site/apt/test.apt
index 9077927..3cf77fd 100644
--- a/archetype-common/src/test/archetypes/site-1.0/archetype-resources/src/site/apt/test.apt
+++ b/archetype-common/src/test/archetypes/site-1.0/archetype-resources/src/site/apt/test.apt
@@ -2,7 +2,6 @@
 artifactId=${artifactId}
 version=${version}
 package=${package}
-packageInPathFormat=${packageInPathFormat}
 propertyWithoutDefault1=${propertyWithoutDefault1}
 propertyWithoutDefault2=${propertyWithoutDefault2}
 propertyWithoutDefault3=${propertyWithoutDefault3}
diff --git a/archetype-common/src/test/archetypes/site-1.0/archetype-resources/src/site/site.xml b/archetype-common/src/test/archetypes/site-1.0/archetype-resources/src/site/site.xml
index 9077927..3cf77fd 100644
--- a/archetype-common/src/test/archetypes/site-1.0/archetype-resources/src/site/site.xml
+++ b/archetype-common/src/test/archetypes/site-1.0/archetype-resources/src/site/site.xml
@@ -2,7 +2,6 @@
 artifactId=${artifactId}
 version=${version}
 package=${package}
-packageInPathFormat=${packageInPathFormat}
 propertyWithoutDefault1=${propertyWithoutDefault1}
 propertyWithoutDefault2=${propertyWithoutDefault2}
 propertyWithoutDefault3=${propertyWithoutDefault3}
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 e6f32e4..1ab717f 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
@@ -24,6 +24,7 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.Reader;
+import java.util.Collections;
 import java.util.Properties;
 
 import org.apache.maven.archetype.ArchetypeGenerationRequest;
@@ -42,6 +43,7 @@
 import org.eclipse.aether.DefaultRepositorySystemSession;
 import org.eclipse.aether.internal.impl.SimpleLocalRepositoryManagerFactory;
 import org.eclipse.aether.repository.LocalRepository;
+import org.eclipse.aether.repository.RemoteRepository;
 
 public class DefaultArchetypeGeneratorTest extends AbstractMojoTestCase {
     // archetypes prepared by antrun execution (see pom.xml) from src/test/archetypes
@@ -407,7 +409,7 @@
         assertTrue(
                 "Exception not correct",
                 result.getCause().getMessage().startsWith("Archetype archetypes:basic:1.0 is not configured")
-                        && result.getCause().getMessage().endsWith("Property property-without-default-4 is missing."));
+                        && result.getCause().getMessage().endsWith("Property propertyWithoutDefault4 is missing."));
     }
 
     public void testGenerateArchetypeWithPostScriptIncluded() throws Exception {
@@ -526,6 +528,8 @@
         projectDirectory = new File(outputDirectory, "file-value");
 
         ArchetypeGenerationRequest request = new ArchetypeGenerationRequest();
+        request.setRemoteRepositories(Collections.singletonList(new RemoteRepository.Builder("central", "default", "\"https://repo.maven.apache.org/maven2\"").build()));
+
         request.setLocalRepository(localRepository);
         request.setArchetypeRepository(remoteRepository);
         request.setOutputDirectory(outputDirectory);
@@ -558,14 +562,14 @@
         assertEquals("file-value", properties.getProperty("artifactId"));
         assertEquals("file-value", properties.getProperty("version"));
         assertEquals("file.value.package", properties.getProperty("package"));
-        assertEquals("file-value", properties.getProperty("property-with-default-1"));
-        assertEquals("file-value", properties.getProperty("property-with-default-2"));
-        assertEquals("file-value", properties.getProperty("property-with-default-3"));
-        assertEquals("file-value", properties.getProperty("property-with-default-4"));
-        assertEquals("file-value", properties.getProperty("property-without-default-1"));
-        assertEquals("file-value", properties.getProperty("property-without-default-2"));
-        assertEquals("file-value", properties.getProperty("property-without-default-3"));
-        assertEquals("file-value", properties.getProperty("property-without-default-4"));
+        assertEquals("file-value", properties.getProperty("propertyWithDefault1"));
+        assertEquals("file-value", properties.getProperty("propertyWithDefault2"));
+        assertEquals("file-value", properties.getProperty("propertyWithDefault3"));
+        assertEquals("file-value", properties.getProperty("propertyWithDefault4"));
+        assertEquals("file-value", properties.getProperty("propertyWithoutDefault1"));
+        assertEquals("file-value", properties.getProperty("propertyWithoutDefault2"));
+        assertEquals("file-value", properties.getProperty("propertyWithoutDefault3"));
+        assertEquals("file-value", properties.getProperty("propertyWithoutDefault4"));
     }
 
     private void assertTemplateContentGeneratedWithFileSetArchetype(String template, String artifactId)
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 81c0a73..1966479 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
@@ -19,18 +19,18 @@
 package org.apache.maven.archetype.test;
 
 import java.io.File;
+import java.util.Collections;
 
 import org.apache.maven.archetype.ArchetypeGenerationRequest;
 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.apache.maven.repository.internal.MavenRepositorySystemUtils;
 import org.codehaus.plexus.ContainerConfiguration;
 import org.codehaus.plexus.PlexusConstants;
 import org.codehaus.plexus.PlexusTestCase;
@@ -52,12 +52,11 @@
     }
 
     public void testInternalCatalog() throws Exception {
-        ArtifactRepository localRepository = createRepository(
-                new File(getBasedir(), "target/test-classes/repositories/local")
-                        .toURI()
-                        .toURL()
-                        .toExternalForm(),
-                "local-repo");
+        DefaultRepositorySystemSession session = MavenRepositorySystemUtils.newSession();
+        session.setLocalRepositoryManager(new SimpleLocalRepositoryManagerFactory()
+                .newInstance(
+                        session,
+                        new LocalRepository(new File(getBasedir(), "target/test-classes/repositories/local"))));
 
         File outputDirectory = new File(getBasedir(), "target/internal-archetypes-projects");
         outputDirectory.mkdirs();
@@ -82,18 +81,21 @@
             }
 
             ArchetypeGenerationRequest request = new ArchetypeGenerationRequest(ar)
+                    .setRepositorySystemSession(session)
                     .setGroupId("org.apache.maven.archetype.test")
                     .setArtifactId("archetype" + count)
                     .setVersion("1.0-SNAPSHOT")
                     .setPackage("com.acme")
-                    .setOutputDirectory(outputDirectory.getPath())
-                    .setLocalRepository(localRepository);
+                    .setOutputDirectory(outputDirectory.getPath());
 
             ProjectBuildingRequest buildingRequest = new DefaultProjectBuildingRequest();
-            DefaultRepositorySystemSession repositorySession = new DefaultRepositorySystemSession();
-            repositorySession.setLocalRepositoryManager(new SimpleLocalRepositoryManagerFactory()
-                    .newInstance(repositorySession, new LocalRepository(localRepository.getBasedir())));
-            buildingRequest.setRepositorySession(repositorySession);
+            buildingRequest.setRepositorySession(session);
+
+            MavenArtifactRepository central = new MavenArtifactRepository();
+            central.setId("central");
+            central.setUrl(CENTRAL);
+            central.setLayout(new DefaultRepositoryLayout());
+            buildingRequest.setRemoteRepositories(Collections.singletonList(central));
             request.setProjectBuildingRequest(buildingRequest);
 
             ArchetypeGenerationResult generationResult = archetype.generateProjectFromArchetype(request);
@@ -103,19 +105,4 @@
             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/archetype-common/src/test/resources/projects/generate-10/archetype.properties.sample b/archetype-common/src/test/resources/projects/generate-10/archetype.properties.sample
index 616fd78..440efb2 100644
--- a/archetype-common/src/test/resources/projects/generate-10/archetype.properties.sample
+++ b/archetype-common/src/test/resources/projects/generate-10/archetype.properties.sample
@@ -24,11 +24,11 @@
 artifactId=file-value
 version=file-value
 package=file.value.package
-property-without-default-1=file-value
-property-without-default-2=file-value
-property-without-default-3=file-value
-property-without-default-4=file-value
-property-with-default-1=file-value
-property-with-default-2=file-value
-property-with-default-3=file-value
-property-with-default-4=file-value
+propertyWithoutDefault1=file-value
+propertyWithoutDefault2=file-value
+propertyWithoutDefault3=file-value
+propertyWithoutDefault4=file-value
+propertyWithDefault1=file-value
+propertyWithDefault2=file-value
+propertyWithDefault3=file-value
+propertyWithDefault4=file-value
diff --git a/archetype-common/src/test/resources/projects/generate-12/archetype.properties.sample b/archetype-common/src/test/resources/projects/generate-12/archetype.properties.sample
index f59f773..fa9e45a 100644
--- a/archetype-common/src/test/resources/projects/generate-12/archetype.properties.sample
+++ b/archetype-common/src/test/resources/projects/generate-12/archetype.properties.sample
@@ -24,13 +24,13 @@
 artifactId=file-value
 version=file-value
 package=file.value.package
-property-without-default-1=file-value
-property-without-default-2=file-value
-property-without-default-3=file-value
-property-without-default-4=file-value
-property-with-default-1=file-value
-property-with-default-2=file-value
-property-with-default-3=file-value
-property-with-default-4=file-value
+propertyWithoutDefault1=file-value
+propertyWithoutDefault2=file-value
+propertyWithoutDefault3=file-value
+propertyWithoutDefault4=file-value
+propertyWithDefault1=file-value
+propertyWithDefault2=file-value
+propertyWithDefault3=file-value
+propertyWithDefault4=file-value
 property_underscored_1=prop1
 property_underscored-2=prop2
diff --git a/archetype-common/src/test/resources/projects/generate-4/archetype.properties.sample b/archetype-common/src/test/resources/projects/generate-4/archetype.properties.sample
index b59538e..886000c 100644
--- a/archetype-common/src/test/resources/projects/generate-4/archetype.properties.sample
+++ b/archetype-common/src/test/resources/projects/generate-4/archetype.properties.sample
@@ -24,11 +24,11 @@
 artifactId=file-value
 version=file-value
 package=file.value.package
-property-without-default-1=file-value
-property-without-default-2=file-value
-property-without-default-3=file-value
-property-without-default-4=file-value
-property-with-default-1=file-value
-property-with-default-2=file-value
-property-with-default-3=file-value
-property-with-default-4=file-value
+propertyWithoutDefault1=file-value
+propertyWithoutDefault2=file-value
+propertyWithoutDefault3=file-value
+propertyWithoutDefault4=file-value
+propertyWithDefault1=file-value
+propertyWithDefault2=file-value
+propertyWithDefault3=file-value
+propertyWithDefault4=file-value
diff --git a/archetype-common/src/test/resources/projects/generate-5/archetype.properties.sample b/archetype-common/src/test/resources/projects/generate-5/archetype.properties.sample
index b59538e..886000c 100644
--- a/archetype-common/src/test/resources/projects/generate-5/archetype.properties.sample
+++ b/archetype-common/src/test/resources/projects/generate-5/archetype.properties.sample
@@ -24,11 +24,11 @@
 artifactId=file-value
 version=file-value
 package=file.value.package
-property-without-default-1=file-value
-property-without-default-2=file-value
-property-without-default-3=file-value
-property-without-default-4=file-value
-property-with-default-1=file-value
-property-with-default-2=file-value
-property-with-default-3=file-value
-property-with-default-4=file-value
+propertyWithoutDefault1=file-value
+propertyWithoutDefault2=file-value
+propertyWithoutDefault3=file-value
+propertyWithoutDefault4=file-value
+propertyWithDefault1=file-value
+propertyWithDefault2=file-value
+propertyWithDefault3=file-value
+propertyWithDefault4=file-value
diff --git a/archetype-common/src/test/resources/projects/generate-7/archetype.properties.sample b/archetype-common/src/test/resources/projects/generate-7/archetype.properties.sample
index b2bed95..807f882 100644
--- a/archetype-common/src/test/resources/projects/generate-7/archetype.properties.sample
+++ b/archetype-common/src/test/resources/projects/generate-7/archetype.properties.sample
@@ -24,11 +24,11 @@
 artifactId=file-value
 version=file-value
 package=file.value.package
-property-without-default-1=file-value
-property-without-default-2=file-value
-property-without-default-3=file-value
-property-without-default-4=file-value
-property-with-default-1=file-value
-property-with-default-2=file-value
-property-with-default-3=file-value
-property-with-default-4=file-value
+propertyWithoutDefault1=file-value
+propertyWithoutDefault2=file-value
+propertyWithoutDefault3=file-value
+propertyWithoutDefault4=file-value
+propertyWithDefault1=file-value
+propertyWithDefault2=file-value
+propertyWithDefault3=file-value
+propertyWithDefault4=file-value
diff --git a/archetype-common/src/test/resources/projects/generate-8/archetype.properties.sample b/archetype-common/src/test/resources/projects/generate-8/archetype.properties.sample
index b2bed95..807f882 100644
--- a/archetype-common/src/test/resources/projects/generate-8/archetype.properties.sample
+++ b/archetype-common/src/test/resources/projects/generate-8/archetype.properties.sample
@@ -24,11 +24,11 @@
 artifactId=file-value
 version=file-value
 package=file.value.package
-property-without-default-1=file-value
-property-without-default-2=file-value
-property-without-default-3=file-value
-property-without-default-4=file-value
-property-with-default-1=file-value
-property-with-default-2=file-value
-property-with-default-3=file-value
-property-with-default-4=file-value
+propertyWithoutDefault1=file-value
+propertyWithoutDefault2=file-value
+propertyWithoutDefault3=file-value
+propertyWithoutDefault4=file-value
+propertyWithDefault1=file-value
+propertyWithDefault2=file-value
+propertyWithDefault3=file-value
+propertyWithDefault4=file-value
diff --git a/archetype-common/src/test/resources/projects/generate-9/archetype.properties.sample b/archetype-common/src/test/resources/projects/generate-9/archetype.properties.sample
index b2bed95..807f882 100644
--- a/archetype-common/src/test/resources/projects/generate-9/archetype.properties.sample
+++ b/archetype-common/src/test/resources/projects/generate-9/archetype.properties.sample
@@ -24,11 +24,11 @@
 artifactId=file-value
 version=file-value
 package=file.value.package
-property-without-default-1=file-value
-property-without-default-2=file-value
-property-without-default-3=file-value
-property-without-default-4=file-value
-property-with-default-1=file-value
-property-with-default-2=file-value
-property-with-default-3=file-value
-property-with-default-4=file-value
+propertyWithoutDefault1=file-value
+propertyWithoutDefault2=file-value
+propertyWithoutDefault3=file-value
+propertyWithoutDefault4=file-value
+propertyWithDefault1=file-value
+propertyWithDefault2=file-value
+propertyWithDefault3=file-value
+propertyWithDefault4=file-value
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 f82730c..f817fa4 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
@@ -20,7 +20,6 @@
 
 import java.io.File;
 import java.util.Arrays;
-import java.util.List;
 import java.util.Properties;
 
 import org.apache.commons.lang3.StringUtils;
@@ -29,7 +28,6 @@
 import org.apache.maven.archetype.ArchetypeManager;
 import org.apache.maven.archetype.ui.generation.ArchetypeGenerationConfigurator;
 import org.apache.maven.archetype.ui.generation.ArchetypeSelector;
-import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.execution.MavenSession;
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.ContextEnabled;
@@ -40,6 +38,7 @@
 import org.apache.maven.plugins.annotations.LifecyclePhase;
 import org.apache.maven.plugins.annotations.Mojo;
 import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.project.MavenProject;
 import org.apache.maven.shared.invoker.DefaultInvocationRequest;
 import org.apache.maven.shared.invoker.InvocationRequest;
 import org.apache.maven.shared.invoker.InvocationResult;
@@ -124,18 +123,6 @@
     private Boolean askForDefaultPropertyValues;
 
     /**
-     * Local Maven repository.
-     */
-    @Parameter(defaultValue = "${localRepository}", readonly = true, required = true)
-    private ArtifactRepository localRepository;
-
-    /**
-     * List of remote repositories used by the resolver.
-     */
-    @Parameter(defaultValue = "${project.remoteArtifactRepositories}", readonly = true, required = true)
-    private List<ArtifactRepository> remoteArtifactRepositories;
-
-    /**
      * User settings used to check the interactiveMode.
      */
     @Parameter(property = "interactiveMode", defaultValue = "${settings.interactiveMode}", required = true)
@@ -144,6 +131,9 @@
     @Parameter(defaultValue = "${basedir}", property = "outputDirectory")
     private File outputDirectory;
 
+    @Parameter(defaultValue = "${project}", readonly = true, required = true)
+    private MavenProject project;
+
     @Parameter(defaultValue = "${session}", readonly = true)
     private MavenSession session;
 
diff --git a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/FileLogger.java b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/FileLogger.java
index 95f61fd..ccce09b 100644
--- a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/FileLogger.java
+++ b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/FileLogger.java
@@ -68,6 +68,6 @@
      * @throws java.io.IOException If the output file could not be created.
      */
     FileLogger(File outputFile, Log log) throws IOException {
-        super(outputFile, log);
+        super(outputFile, log::info);
     }
 }
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 a821ef9..0c5c7c2 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
@@ -44,7 +44,6 @@
 import org.apache.maven.archetype.common.Constants;
 import org.apache.maven.archetype.exception.ArchetypeNotConfigured;
 import org.apache.maven.archetype.generator.ArchetypeGenerator;
-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;
@@ -52,9 +51,7 @@
 import org.apache.maven.plugins.annotations.Component;
 import org.apache.maven.plugins.annotations.Mojo;
 import org.apache.maven.plugins.annotations.Parameter;
-import org.apache.maven.project.DefaultProjectBuildingRequest;
 import org.apache.maven.project.MavenProject;
-import org.apache.maven.project.ProjectBuildingRequest;
 import org.apache.maven.settings.Settings;
 import org.apache.maven.settings.io.xpp3.SettingsXpp3Writer;
 import org.apache.maven.shared.invoker.DefaultInvocationRequest;
@@ -62,11 +59,8 @@
 import org.apache.maven.shared.invoker.InvocationResult;
 import org.apache.maven.shared.invoker.Invoker;
 import org.apache.maven.shared.invoker.MavenInvocationException;
-import org.apache.maven.shared.scriptinterpreter.RunFailureException;
+import org.apache.maven.shared.scriptinterpreter.ScriptException;
 import org.apache.maven.shared.scriptinterpreter.ScriptRunner;
-import org.apache.maven.shared.transfer.artifact.DefaultArtifactCoordinate;
-import org.apache.maven.shared.transfer.artifact.resolve.ArtifactResolver;
-import org.apache.maven.shared.transfer.artifact.resolve.ArtifactResolverException;
 import org.codehaus.plexus.util.FileUtils;
 import org.codehaus.plexus.util.IOUtil;
 import org.codehaus.plexus.util.InterpolationFilterReader;
@@ -74,6 +68,11 @@
 import org.codehaus.plexus.util.StringUtils;
 import org.codehaus.plexus.util.WriterFactory;
 import org.codehaus.plexus.util.introspection.ReflectionValueExtractor;
+import org.eclipse.aether.RepositorySystem;
+import org.eclipse.aether.artifact.DefaultArtifact;
+import org.eclipse.aether.resolution.ArtifactRequest;
+import org.eclipse.aether.resolution.ArtifactResolutionException;
+import org.eclipse.aether.resolution.ArtifactResult;
 
 /**
  * <p>Execute the archetype integration tests, consisting in generating projects from the current archetype and optionally
@@ -142,13 +141,7 @@
     private Invoker invoker;
 
     @Component
-    private ArtifactResolver artifactResolver;
-
-    @Parameter(defaultValue = "${project.remoteArtifactRepositories}", readonly = true, required = true)
-    protected List<ArtifactRepository> remoteRepositories;
-
-    @Parameter(defaultValue = "${localRepository}", readonly = true, required = true)
-    protected ArtifactRepository localRepository;
+    private RepositorySystem repositorySystem;
 
     /**
      * The archetype project to execute the integration tests on.
@@ -546,7 +539,7 @@
         File archetypeFile;
         try {
             archetypeFile = getArchetypeFile(groupId, artifactId, version);
-        } catch (ArtifactResolverException e) {
+        } catch (ArtifactResolutionException e) {
             throw new MojoExecutionException("Could not resolve archetype artifact ", e);
         }
         Properties archetypeProperties = getProperties(archetypePomPropertiesFile);
@@ -556,24 +549,13 @@
         return new File(buildFolder, request.getArtifactId());
     }
 
-    private File getArchetypeFile(String groupId, String artifactId, String version) throws ArtifactResolverException {
-        ProjectBuildingRequest buildingRequest = new DefaultProjectBuildingRequest(session.getProjectBuildingRequest());
-        if (localRepository != null) {
-            buildingRequest = buildingRequest.setLocalRepository(localRepository);
-        }
-        if (remoteRepositories != null && !remoteRepositories.isEmpty()) {
-            buildingRequest = buildingRequest.setRemoteRepositories(remoteRepositories);
-        }
-
-        DefaultArtifactCoordinate coordinate = new DefaultArtifactCoordinate();
-        coordinate.setGroupId(groupId);
-        coordinate.setArtifactId(artifactId);
-        coordinate.setVersion(version);
-
-        return artifactResolver
-                .resolveArtifact(buildingRequest, coordinate)
-                .getArtifact()
-                .getFile();
+    private File getArchetypeFile(String groupId, String artifactId, String version)
+            throws ArtifactResolutionException {
+        DefaultArtifact artifact = new DefaultArtifact(groupId, artifactId, "", "jar", version);
+        ArtifactRequest request =
+                new ArtifactRequest(artifact, project.getRemotePluginRepositories(), "archetype-mojo");
+        ArtifactResult result = repositorySystem.resolveArtifact(session.getRepositorySession(), request);
+        return result.getArtifact().getFile();
     }
 
     private Properties getProperties(File goalFile) throws IOException {
@@ -671,22 +653,15 @@
             getLog().info("No post-archetype-generation goals to invoke.");
         }
         // verify result
-        ScriptRunner scriptRunner = new ScriptRunner(getLog());
+        ScriptRunner scriptRunner = new ScriptRunner();
         scriptRunner.setScriptEncoding(encoding);
 
         Map<String, Object> context = new LinkedHashMap<>();
         context.put("projectDir", basedir);
 
         try {
-            scriptRunner.run(
-                    "post-build script",
-                    goalFile.getParentFile(),
-                    postBuildHookScript,
-                    context,
-                    logger,
-                    "failure post script",
-                    true);
-        } catch (RunFailureException e) {
+            scriptRunner.run("post-build script", goalFile.getParentFile(), postBuildHookScript, context, logger);
+        } catch (ScriptException e) {
             throw new IntegrationTestFailure("post build script failure failure: " + e.getMessage(), e);
         }
     }
diff --git a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/creation/ArchetypeCreationConfigurator.java b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/creation/ArchetypeCreationConfigurator.java
index 90b7093..1803b44 100644
--- a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/creation/ArchetypeCreationConfigurator.java
+++ b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/creation/ArchetypeCreationConfigurator.java
@@ -34,8 +34,6 @@
  * Configurator component to organize steps for archetype creation from a project.
  */
 public interface ArchetypeCreationConfigurator {
-    String ROLE = ArchetypeCreationConfigurator.class.getName();
-
     Properties configureArchetypeCreation(
             MavenProject project,
             Boolean interactiveMode,
diff --git a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/creation/ArchetypeCreationQueryer.java b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/creation/ArchetypeCreationQueryer.java
index a0e0724..d07f2ca 100644
--- a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/creation/ArchetypeCreationQueryer.java
+++ b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/creation/ArchetypeCreationQueryer.java
@@ -27,8 +27,6 @@
  * TODO this interface is bound to its implementation through the prompter exception
  */
 public interface ArchetypeCreationQueryer {
-    String ROLE = ArchetypeCreationQueryer.class.getName();
-
     /**
      */
     String getArchetypeArtifactId(String defaultValue) throws PrompterException;
diff --git a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/generation/ArchetypeGenerationConfigurator.java b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/generation/ArchetypeGenerationConfigurator.java
index 7ead24d..51b4f01 100644
--- a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/generation/ArchetypeGenerationConfigurator.java
+++ b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/generation/ArchetypeGenerationConfigurator.java
@@ -32,8 +32,6 @@
  * Configurator component to organize steps for project generation from an archetype.
  */
 public interface ArchetypeGenerationConfigurator {
-    String ROLE = ArchetypeGenerationConfigurator.class.getName();
-
     void configureArchetype(
             ArchetypeGenerationRequest request, Boolean interactiveMode, Properties commandLineProperties)
             throws ArchetypeNotDefined, UnknownArchetype, ArchetypeNotConfigured, IOException, PrompterException,
diff --git a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/generation/ArchetypeSelectionQueryer.java b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/generation/ArchetypeSelectionQueryer.java
index fa7f647..a2369ba 100644
--- a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/generation/ArchetypeSelectionQueryer.java
+++ b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/generation/ArchetypeSelectionQueryer.java
@@ -31,8 +31,6 @@
  * TODO this interface is bound to its implementation through the prompter exception
  */
 public interface ArchetypeSelectionQueryer {
-    String ROLE = ArchetypeSelectionQueryer.class.getName();
-
     Archetype selectArchetype(Map<String, List<Archetype>> map) throws PrompterException;
 
     boolean confirmSelection(ArchetypeDefinition archetypeDefinition) throws PrompterException;
diff --git a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/generation/ArchetypeSelector.java b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/generation/ArchetypeSelector.java
index 134b35f..6aae7b2 100644
--- a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/generation/ArchetypeSelector.java
+++ b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/generation/ArchetypeSelector.java
@@ -34,8 +34,6 @@
 //      should be validating correctness, and if it so happens we get a crap entry then the generation mechanism
 //      should take care of reporting the error. The selector should not be downloading anything.
 public interface ArchetypeSelector {
-    String ROLE = ArchetypeSelector.class.getName();
-
     void selectArchetype(ArchetypeGenerationRequest request, Boolean interactiveMode, String catalogs)
             throws ArchetypeNotDefined, UnknownArchetype, UnknownGroup, IOException, PrompterException,
                     ArchetypeSelectionFailure;
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 cc7a0af..0d56ee1 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
@@ -18,6 +18,10 @@
  */
 package org.apache.maven.archetype.ui.generation;
 
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 import java.io.IOException;
 import java.io.StringReader;
 import java.io.StringWriter;
@@ -32,13 +36,13 @@
 import java.util.Set;
 
 import org.apache.maven.archetype.ArchetypeGenerationRequest;
+import org.apache.maven.archetype.LoggingSupport;
 import org.apache.maven.archetype.common.ArchetypeArtifactManager;
 import org.apache.maven.archetype.common.Constants;
 import org.apache.maven.archetype.exception.ArchetypeGenerationConfigurationFailure;
 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;
@@ -56,36 +60,34 @@
 import org.apache.velocity.runtime.parser.node.ASTReference;
 import org.apache.velocity.runtime.parser.node.SimpleNode;
 import org.apache.velocity.runtime.visitor.BaseVisitor;
-import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.components.interactivity.PrompterException;
-import org.codehaus.plexus.logging.AbstractLogEnabled;
 import org.codehaus.plexus.util.StringUtils;
 
 // TODO: this seems to have more responsibilities than just a configurator
-@Component(role = ArchetypeGenerationConfigurator.class, hint = "default")
-public class DefaultArchetypeGenerationConfigurator extends AbstractLogEnabled
-        implements ArchetypeGenerationConfigurator {
-    @Requirement
-    OldArchetype oldArchetype;
+@Singleton
+@Named
+public class DefaultArchetypeGenerationConfigurator extends LoggingSupport implements ArchetypeGenerationConfigurator {
+    private final ArchetypeArtifactManager archetypeArtifactManager;
 
-    @Requirement
-    private ArchetypeArtifactManager archetypeArtifactManager;
+    private final ArchetypeFactory archetypeFactory;
 
-    @Requirement
-    private ArchetypeFactory archetypeFactory;
-
-    @Requirement
-    private ArchetypeGenerationQueryer archetypeGenerationQueryer;
+    private final ArchetypeGenerationQueryer archetypeGenerationQueryer;
 
     /**
      * Determines whether the layout is legacy or not.
      */
-    @Requirement
-    private ArtifactRepositoryLayout defaultArtifactRepositoryLayout;
+    private final ArtifactRepositoryLayout defaultArtifactRepositoryLayout;
 
-    public void setArchetypeArtifactManager(ArchetypeArtifactManager archetypeArtifactManager) {
+    @Inject
+    public DefaultArchetypeGenerationConfigurator(
+            ArchetypeArtifactManager archetypeArtifactManager,
+            ArchetypeFactory archetypeFactory,
+            ArchetypeGenerationQueryer archetypeGenerationQueryer,
+            ArtifactRepositoryLayout defaultArtifactRepositoryLayout) {
         this.archetypeArtifactManager = archetypeArtifactManager;
+        this.archetypeFactory = archetypeFactory;
+        this.archetypeGenerationQueryer = archetypeGenerationQueryer;
+        this.defaultArtifactRepositoryLayout = defaultArtifactRepositoryLayout;
     }
 
     @Override
@@ -318,10 +320,6 @@
         }
     }
 
-    void setArchetypeGenerationQueryer(ArchetypeGenerationQueryer archetypeGenerationQueryer) {
-        this.archetypeGenerationQueryer = archetypeGenerationQueryer;
-    }
-
     public static class RequiredPropertyComparator implements Comparator<String> {
         private final ArchetypeConfiguration archetypeConfiguration;
 
@@ -363,9 +361,8 @@
                 String defaultValue = archetypeConfiguration.getDefaultValue(propertyName);
                 if (StringUtils.contains(defaultValue, "${")) {
                     try {
-                        final boolean dumpNamespace = false;
                         SimpleNode node = RuntimeSingleton.parse(
-                                new StringReader(defaultValue), propertyName + ".default", dumpNamespace);
+                                new StringReader(defaultValue), velocityRuntime.getTemplate(propertyName + ".default"));
 
                         node.init(velocityContextAdapter, velocityRuntime);