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

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


The following commit(s) were added to refs/heads/master by this push:
     new cc906677 [ARCHETYPE-668] Switch to JSR-330
cc906677 is described below

commit cc906677b5539b538c7ae640d894142ecf57fdc0
Author: Slawomir Jaranowski <s.jaranow...@gmail.com>
AuthorDate: Fri Aug 16 21:27:54 2024 +0200

    [ARCHETYPE-668] Switch to JSR-330
---
 archetype-common/pom.xml                           |  8 ++---
 .../maven/archetype/DefaultArchetypeManager.java   | 17 ++++++----
 .../common/DefaultArchetypeArtifactManager.java    | 13 +++++---
 .../common/DefaultArchetypeFilesResolver.java      |  7 ++--
 .../maven/archetype/common/DefaultPomManager.java  |  6 ++--
 .../archetype/creator/FilesetArchetypeCreator.java | 15 +++++----
 .../archetype/downloader/DefaultDownloader.java    | 11 +++---
 .../generator/DefaultArchetypeGenerator.java       | 17 ++++++----
 .../DefaultFilesetArchetypeGenerator.java          | 16 +++++----
 .../maven/archetype/old/DefaultOldArchetype.java   | 12 ++++---
 .../DefaultRepositoryCrawler.java                  | 11 +++---
 .../source/InternalCatalogArchetypeDataSource.java |  7 ++--
 .../source/LocalCatalogArchetypeDataSource.java    | 11 +++---
 .../source/RemoteCatalogArchetypeDataSource.java   | 15 +++++----
 maven-archetype-plugin/pom.xml                     | 14 +++++---
 .../maven/archetype/ui/ArchetypePrompter.java      | 13 +++++---
 .../archetype/ui/DefaultArchetypeFactory.java      |  7 ++--
 .../DefaultArchetypeCreationConfigurator.java      | 15 +++++----
 .../creation/DefaultArchetypeCreationQueryer.java  | 11 +++---
 .../DefaultArchetypeGenerationConfigurator.java    | 19 ++++++-----
 .../DefaultArchetypeGenerationQueryer.java         | 11 +++---
 .../DefaultArchetypeSelectionQueryer.java          | 13 +++++---
 .../ui/generation/DefaultArchetypeSelector.java    | 13 +++++---
 ...efaultArchetypeGenerationConfigurator2Test.java |  6 ++++
 ...DefaultArchetypeGenerationConfiguratorTest.java |  6 ++++
 .../DefaultArchetypeGenerationQueryerTest.java     |  6 ++++
 .../DefaultArchetypeSelectionQueryerTest.java      |  6 ++++
 .../generation/DefaultArchetypeSelectorTest.java   |  6 ++++
 .../generation/RequiredPropertyComparatorTest.java | 19 +++++++----
 pom.xml                                            | 39 ----------------------
 30 files changed, 218 insertions(+), 152 deletions(-)

diff --git a/archetype-common/pom.xml b/archetype-common/pom.xml
index ab5b7fea..27f8bfb9 100644
--- a/archetype-common/pom.xml
+++ b/archetype-common/pom.xml
@@ -65,10 +65,6 @@
         </exclusion>
       </exclusions>
     </dependency>
-    <dependency>
-      <groupId>org.codehaus.plexus</groupId>
-      <artifactId>plexus-component-annotations</artifactId>
-    </dependency>
     <dependency>
       <groupId>org.jdom</groupId>
       <artifactId>jdom2</artifactId>
@@ -416,6 +412,10 @@
           </systemPropertyVariables>
         </configuration>
       </plugin>
+      <plugin>
+        <groupId>org.eclipse.sisu</groupId>
+        <artifactId>sisu-maven-plugin</artifactId>
+      </plugin>
     </plugins>
   </build>
 </project>
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 97906642..3d0a2590 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
@@ -18,6 +18,10 @@
  */
 package org.apache.maven.archetype;
 
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
@@ -34,23 +38,24 @@ 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.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 import org.codehaus.plexus.util.IOUtil;
 
 /**
  * @author Jason van Zyl
  */
-@Component(role = ArchetypeManager.class)
+@Named
+@Singleton
 public class DefaultArchetypeManager extends AbstractLogEnabled implements 
ArchetypeManager {
-    @Requirement(hint = "fileset")
+
+    @Inject
+    @Named("fileset")
     private ArchetypeCreator creator;
 
-    @Requirement
+    @Inject
     private ArchetypeGenerator generator;
 
-    @Requirement(role = ArchetypeDataSource.class)
+    @Inject
     private Map<String, ArchetypeDataSource> archetypeSources;
 
     @Override
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 bbd5f050..d38b4f3d 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
@@ -18,6 +18,10 @@
  */
 package org.apache.maven.archetype.common;
 
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
@@ -44,18 +48,17 @@ import 
org.apache.maven.archetype.old.descriptor.ArchetypeDescriptorBuilder;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.model.Model;
 import org.apache.maven.project.ProjectBuildingRequest;
-import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 import org.codehaus.plexus.util.ReaderFactory;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 
-@Component(role = ArchetypeArtifactManager.class)
+@Named
+@Singleton
 public class DefaultArchetypeArtifactManager extends AbstractLogEnabled 
implements ArchetypeArtifactManager {
-    @Requirement
+    @Inject
     private Downloader downloader;
 
-    @Requirement
+    @Inject
     private PomManager pomManager;
 
     private Map<String, File> archetypeCache = new TreeMap<>();
diff --git 
a/archetype-common/src/main/java/org/apache/maven/archetype/common/DefaultArchetypeFilesResolver.java
 
b/archetype-common/src/main/java/org/apache/maven/archetype/common/DefaultArchetypeFilesResolver.java
index dbbf0462..1315189d 100644
--- 
a/archetype-common/src/main/java/org/apache/maven/archetype/common/DefaultArchetypeFilesResolver.java
+++ 
b/archetype-common/src/main/java/org/apache/maven/archetype/common/DefaultArchetypeFilesResolver.java
@@ -18,6 +18,9 @@
  */
 package org.apache.maven.archetype.common;
 
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 import java.io.File;
 import java.io.IOException;
 import java.util.ArrayList;
@@ -29,12 +32,12 @@ import java.util.Set;
 import org.apache.maven.archetype.common.util.ListScanner;
 import org.apache.maven.archetype.common.util.PathUtils;
 import org.apache.maven.archetype.metadata.FileSet;
-import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 import org.codehaus.plexus.util.FileUtils;
 import org.codehaus.plexus.util.StringUtils;
 
-@Component(role = ArchetypeFilesResolver.class)
+@Named
+@Singleton
 public class DefaultArchetypeFilesResolver extends AbstractLogEnabled 
implements ArchetypeFilesResolver {
     @Override
     public List<String> getFilesWithExtension(List<String> files, String 
extension) {
diff --git 
a/archetype-common/src/main/java/org/apache/maven/archetype/common/DefaultPomManager.java
 
b/archetype-common/src/main/java/org/apache/maven/archetype/common/DefaultPomManager.java
index b7d63d69..f6bed59e 100644
--- 
a/archetype-common/src/main/java/org/apache/maven/archetype/common/DefaultPomManager.java
+++ 
b/archetype-common/src/main/java/org/apache/maven/archetype/common/DefaultPomManager.java
@@ -18,6 +18,8 @@
  */
 package org.apache.maven.archetype.common;
 
+import javax.inject.Named;
+import javax.inject.Singleton;
 import javax.xml.parsers.ParserConfigurationException;
 import javax.xml.transform.TransformerException;
 
@@ -52,7 +54,6 @@ import org.apache.maven.model.ReportPlugin;
 import org.apache.maven.model.Reporting;
 import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
 import org.apache.maven.model.io.xpp3.MavenXpp3Writer;
-import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 import org.codehaus.plexus.util.FileUtils;
 import org.codehaus.plexus.util.ReaderFactory;
@@ -64,7 +65,8 @@ import org.jdom2.JDOMException;
 import org.jdom2.input.SAXBuilder;
 import org.xml.sax.SAXException;
 
-@Component(role = PomManager.class)
+@Named
+@Singleton
 public class DefaultPomManager extends AbstractLogEnabled implements 
PomManager {
     @Override
     public void addModule(File pom, String artifactId)
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 442b5bcd..0cdf60dc 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
@@ -18,6 +18,10 @@
  */
 package org.apache.maven.archetype.creator;
 
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
@@ -67,8 +71,6 @@ import 
org.apache.maven.shared.invoker.DefaultInvocationRequest;
 import org.apache.maven.shared.invoker.InvocationRequest;
 import org.apache.maven.shared.invoker.InvocationResult;
 import org.apache.maven.shared.invoker.Invoker;
-import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 import org.codehaus.plexus.util.DirectoryScanner;
 import org.codehaus.plexus.util.FileUtils;
@@ -85,18 +87,19 @@ import static org.apache.commons.io.IOUtils.write;
  * Create a 2.x Archetype project from a project. Since 2.0-alpha-5, an 
integration-test named "basic" is created along
  * the archetype itself to provide immediate test when building the archetype.
  */
-@Component(role = ArchetypeCreator.class, hint = "fileset")
+@Named("fileset")
+@Singleton
 public class FilesetArchetypeCreator extends AbstractLogEnabled implements 
ArchetypeCreator {
     private static final String DEFAULT_OUTPUT_DIRECTORY =
             "target" + File.separator + "generated-sources" + File.separator + 
"archetype";
 
-    @Requirement
+    @Inject
     private ArchetypeFilesResolver archetypeFilesResolver;
 
-    @Requirement
+    @Inject
     private PomManager pomManager;
 
-    @Requirement
+    @Inject
     private Invoker invoker;
 
     @Override
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 eef756fa..b45f3589 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
@@ -18,6 +18,10 @@
  */
 package org.apache.maven.archetype.downloader;
 
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 import java.io.File;
 import java.util.ArrayList;
 import java.util.List;
@@ -28,15 +32,14 @@ import org.apache.maven.project.ProjectBuildingRequest;
 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.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
 
 /**
  * @author Jason van Zyl
  */
-@Component(role = Downloader.class)
+@Named
+@Singleton
 public class DefaultDownloader implements Downloader {
-    @Requirement
+    @Inject
     private ArtifactResolver artifactResolver;
 
     @Override
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 2ef3ef75..33d573d7 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
@@ -18,6 +18,10 @@
  */
 package org.apache.maven.archetype.generator;
 
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 import java.io.File;
 import java.util.ArrayList;
 import java.util.List;
@@ -35,26 +39,25 @@ 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.ArtifactRepositoryLayout;
-import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 import org.codehaus.plexus.util.StringUtils;
 
-@Component(role = ArchetypeGenerator.class)
+@Named
+@Singleton
 public class DefaultArchetypeGenerator extends AbstractLogEnabled implements 
ArchetypeGenerator {
     /**
      * Determines whether the layout is legacy or not.
      */
-    @Requirement
+    @Inject
     private ArtifactRepositoryLayout defaultArtifactRepositoryLayout;
 
-    @Requirement
+    @Inject
     private ArchetypeArtifactManager archetypeArtifactManager;
 
-    @Requirement
+    @Inject
     private FilesetArchetypeGenerator filesetGenerator;
 
-    @Requirement
+    @Inject
     private OldArchetype oldArchetype;
 
     private File getArchetypeFile(ArchetypeGenerationRequest request, 
ArtifactRepository localRepository)
diff --git 
a/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultFilesetArchetypeGenerator.java
 
b/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultFilesetArchetypeGenerator.java
index 137cddd3..3263cf2b 100644
--- 
a/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultFilesetArchetypeGenerator.java
+++ 
b/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultFilesetArchetypeGenerator.java
@@ -18,6 +18,9 @@
  */
 package org.apache.maven.archetype.generator;
 
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
 import javax.xml.parsers.ParserConfigurationException;
 import javax.xml.transform.TransformerException;
 
@@ -62,8 +65,6 @@ import org.apache.maven.archetype.metadata.RequiredProperty;
 import org.apache.velocity.VelocityContext;
 import org.apache.velocity.app.Velocity;
 import org.apache.velocity.context.Context;
-import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 import org.codehaus.plexus.util.FileUtils;
 import org.codehaus.plexus.util.IOUtil;
@@ -72,18 +73,19 @@ import 
org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 import org.codehaus.plexus.velocity.VelocityComponent;
 import org.xml.sax.SAXException;
 
-@Component(role = FilesetArchetypeGenerator.class)
+@Named
+@Singleton
 public class DefaultFilesetArchetypeGenerator extends AbstractLogEnabled 
implements FilesetArchetypeGenerator {
-    @Requirement
+    @Inject
     private ArchetypeArtifactManager archetypeArtifactManager;
 
-    @Requirement
+    @Inject
     private ArchetypeFilesResolver archetypeFilesResolver;
 
-    @Requirement
+    @Inject
     private PomManager pomManager;
 
-    @Requirement
+    @Inject
     private VelocityComponent velocity;
 
     /**
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 746e7740..f6a12447 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
@@ -18,6 +18,9 @@
  */
 package org.apache.maven.archetype.old;
 
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
 import javax.xml.parsers.ParserConfigurationException;
 import javax.xml.transform.TransformerException;
 
@@ -56,8 +59,6 @@ import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
 import org.apache.maven.model.io.xpp3.MavenXpp3Writer;
 import org.apache.velocity.VelocityContext;
 import org.apache.velocity.context.Context;
-import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 import org.codehaus.plexus.util.FileUtils;
 import org.codehaus.plexus.util.IOUtil;
@@ -72,7 +73,8 @@ import org.xml.sax.SAXException;
  * @author <a href="mailto:ja...@maven.org";>Jason van Zyl</a>
  * @version $Id$
  */
-@Component(role = OldArchetype.class)
+@Named
+@Singleton
 public class DefaultOldArchetype extends AbstractLogEnabled implements 
OldArchetype {
     private static final String DEFAULT_TEST_RESOURCE_DIR = 
"/src/test/resources";
 
@@ -86,10 +88,10 @@ public class DefaultOldArchetype extends AbstractLogEnabled 
implements OldArchet
     // Components
     // ----------------------------------------------------------------------
 
-    @Requirement
+    @Inject
     private VelocityComponent velocity;
 
-    @Requirement
+    @Inject
     private ArchetypeArtifactManager archetypeArtifactManager;
 
     // ----------------------------------------------------------------------
diff --git 
a/archetype-common/src/main/java/org/apache/maven/archetype/repositorycrawler/DefaultRepositoryCrawler.java
 
b/archetype-common/src/main/java/org/apache/maven/archetype/repositorycrawler/DefaultRepositoryCrawler.java
index c2807473..830d9348 100644
--- 
a/archetype-common/src/main/java/org/apache/maven/archetype/repositorycrawler/DefaultRepositoryCrawler.java
+++ 
b/archetype-common/src/main/java/org/apache/maven/archetype/repositorycrawler/DefaultRepositoryCrawler.java
@@ -18,6 +18,10 @@
  */
 package org.apache.maven.archetype.repositorycrawler;
 
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 import java.io.File;
 import java.io.IOException;
 import java.io.Writer;
@@ -30,8 +34,6 @@ import 
org.apache.maven.archetype.catalog.io.xpp3.ArchetypeCatalogXpp3Writer;
 import org.apache.maven.archetype.common.ArchetypeArtifactManager;
 import org.apache.maven.archetype.exception.UnknownArchetype;
 import org.apache.maven.model.Model;
-import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 import org.codehaus.plexus.util.StringUtils;
 import org.codehaus.plexus.util.WriterFactory;
@@ -40,9 +42,10 @@ import 
org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 /**
  * @author            rafale
  */
-@Component(role = RepositoryCrawler.class)
+@Named
+@Singleton
 public class DefaultRepositoryCrawler extends AbstractLogEnabled implements 
RepositoryCrawler {
-    @Requirement
+    @Inject
     private ArchetypeArtifactManager archetypeArtifactManager;
 
     @Override
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 c2288fe8..19d10dbf 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
@@ -18,6 +18,9 @@
  */
 package org.apache.maven.archetype.source;
 
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
@@ -26,13 +29,13 @@ import java.io.Reader;
 import org.apache.maven.archetype.catalog.Archetype;
 import org.apache.maven.archetype.catalog.ArchetypeCatalog;
 import org.apache.maven.project.ProjectBuildingRequest;
-import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.util.ReaderFactory;
 
 /**
  * @author Jason van Zyl
  */
-@Component(role = ArchetypeDataSource.class, hint = "internal-catalog")
+@Named("internal-catalog")
+@Singleton
 public class InternalCatalogArchetypeDataSource extends 
CatalogArchetypeDataSource {
 
     @Override
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 6d84b9b2..f8a039c4 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
@@ -18,6 +18,10 @@
  */
 package org.apache.maven.archetype.source;
 
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 import java.io.File;
 import java.io.FileNotFoundException;
 import java.io.IOException;
@@ -27,13 +31,12 @@ import org.apache.maven.archetype.catalog.Archetype;
 import org.apache.maven.archetype.catalog.ArchetypeCatalog;
 import org.apache.maven.project.ProjectBuildingRequest;
 import org.apache.maven.shared.transfer.repository.RepositoryManager;
-import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.util.ReaderFactory;
 
-@Component(role = ArchetypeDataSource.class, hint = "catalog")
+@Named("catalog")
+@Singleton
 public class LocalCatalogArchetypeDataSource extends 
CatalogArchetypeDataSource {
-    @Requirement
+    @Inject
     private RepositoryManager repositoryManager;
 
     @Override
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 1f30f7c6..f77afb87 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
@@ -18,6 +18,10 @@
  */
 package org.apache.maven.archetype.source;
 
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 import java.io.File;
 import java.io.IOException;
 import java.util.List;
@@ -42,22 +46,21 @@ 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.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.util.ReaderFactory;
 
 /**
  * @author Jason van Zyl
  */
-@Component(role = ArchetypeDataSource.class, hint = "remote-catalog")
+@Named("remote-catalog")
+@Singleton
 public class RemoteCatalogArchetypeDataSource extends 
CatalogArchetypeDataSource implements ArchetypeDataSource {
-    @Requirement
+    @Inject
     private Map<String, Wagon> wagons;
 
-    @Requirement
+    @Inject
     private LegacySupport legacySupport;
 
-    @Requirement
+    @Inject
     private SettingsDecrypter settingsDecrypter;
 
     //    Should be used for mirror/proxy/authentication
diff --git a/maven-archetype-plugin/pom.xml b/maven-archetype-plugin/pom.xml
index 769a800d..f2f6aeac 100644
--- a/maven-archetype-plugin/pom.xml
+++ b/maven-archetype-plugin/pom.xml
@@ -118,10 +118,6 @@
       <artifactId>maven-plugin-annotations</artifactId>
       <optional>true</optional>
     </dependency>
-    <dependency>
-      <groupId>org.codehaus.plexus</groupId>
-      <artifactId>plexus-component-annotations</artifactId>
-    </dependency>
 
     <dependency>
       <groupId>org.apache.maven.shared</groupId>
@@ -161,6 +157,12 @@
       <version>5.3.0</version>
       <scope>test</scope>
     </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-simple</artifactId>
+      <version>1.7.36</version>
+      <scope>test</scope>
+    </dependency>
   </dependencies>
 
   <build>
@@ -190,6 +192,10 @@
           </execution>
         </executions>
       </plugin>
+      <plugin>
+        <groupId>org.eclipse.sisu</groupId>
+        <artifactId>sisu-maven-plugin</artifactId>
+      </plugin>
     </plugins>
   </build>
 
diff --git 
a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/ArchetypePrompter.java
 
b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/ArchetypePrompter.java
index 2eadb7b6..f340695b 100644
--- 
a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/ArchetypePrompter.java
+++ 
b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/ArchetypePrompter.java
@@ -18,11 +18,13 @@
  */
 package org.apache.maven.archetype.ui;
 
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 import java.io.IOException;
 import java.util.List;
 
-import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.components.interactivity.InputHandler;
 import org.codehaus.plexus.components.interactivity.OutputHandler;
 import org.codehaus.plexus.components.interactivity.Prompter;
@@ -31,13 +33,14 @@ import 
org.codehaus.plexus.components.interactivity.PrompterException;
 /**
  * @author raphaelpieroni
  */
-@Component(role = Prompter.class, hint = "archetype")
+@Named("archetype")
+@Singleton
 public class ArchetypePrompter implements Prompter {
 
-    @Requirement
+    @Inject
     private OutputHandler outputHandler;
 
-    @Requirement
+    @Inject
     private InputHandler inputHandler;
 
     @Override
diff --git 
a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/DefaultArchetypeFactory.java
 
b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/DefaultArchetypeFactory.java
index 631006f4..affd4eae 100644
--- 
a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/DefaultArchetypeFactory.java
+++ 
b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/DefaultArchetypeFactory.java
@@ -18,16 +18,19 @@
  */
 package org.apache.maven.archetype.ui;
 
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 import java.util.Iterator;
 import java.util.Properties;
 
 import org.apache.maven.archetype.common.Constants;
 import org.apache.maven.archetype.metadata.RequiredProperty;
 import org.apache.maven.project.MavenProject;
-import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 
-@Component(role = ArchetypeFactory.class, hint = "default")
+@Named("default")
+@Singleton
 public class DefaultArchetypeFactory extends AbstractLogEnabled implements 
ArchetypeFactory {
     @Override
     public ArchetypeDefinition createArchetypeDefinition(Properties 
properties) {
diff --git 
a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/creation/DefaultArchetypeCreationConfigurator.java
 
b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/creation/DefaultArchetypeCreationConfigurator.java
index 53813d0a..7aa0f529 100644
--- 
a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/creation/DefaultArchetypeCreationConfigurator.java
+++ 
b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/creation/DefaultArchetypeCreationConfigurator.java
@@ -18,6 +18,10 @@
  */
 package org.apache.maven.archetype.ui.creation;
 
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
@@ -38,21 +42,20 @@ 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.project.MavenProject;
-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;
 
-@Component(role = ArchetypeCreationConfigurator.class, hint = "default")
+@Named("default")
+@Singleton
 public class DefaultArchetypeCreationConfigurator extends AbstractLogEnabled 
implements ArchetypeCreationConfigurator {
-    @Requirement
+    @Inject
     private ArchetypeCreationQueryer archetypeCreationQueryer;
 
-    @Requirement
+    @Inject
     private ArchetypeFactory archetypeFactory;
 
-    @Requirement
+    @Inject
     private ArchetypeFilesResolver archetypeFilesResolver;
 
     @Override
diff --git 
a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/creation/DefaultArchetypeCreationQueryer.java
 
b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/creation/DefaultArchetypeCreationQueryer.java
index 70e18de4..500e95e8 100644
--- 
a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/creation/DefaultArchetypeCreationQueryer.java
+++ 
b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/creation/DefaultArchetypeCreationQueryer.java
@@ -18,19 +18,22 @@
  */
 package org.apache.maven.archetype.ui.creation;
 
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 import java.util.Iterator;
 
 import org.apache.maven.archetype.common.Constants;
 import org.apache.maven.archetype.ui.ArchetypeConfiguration;
-import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.components.interactivity.Prompter;
 import org.codehaus.plexus.components.interactivity.PrompterException;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 
-@Component(role = ArchetypeCreationQueryer.class, hint = "default")
+@Named("default")
+@Singleton
 public class DefaultArchetypeCreationQueryer extends AbstractLogEnabled 
implements ArchetypeCreationQueryer {
-    @Requirement
+    @Inject
     private Prompter prompter;
 
     @Override
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 77e9b8d4..120f3a7d 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.File;
 import java.io.IOException;
 import java.io.StringReader;
@@ -57,32 +61,31 @@ import org.apache.velocity.runtime.parser.ParseException;
 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")
+@Named("default")
+@Singleton
 public class DefaultArchetypeGenerationConfigurator extends AbstractLogEnabled
         implements ArchetypeGenerationConfigurator {
-    @Requirement
+    @Inject
     OldArchetype oldArchetype;
 
-    @Requirement
+    @Inject
     private ArchetypeArtifactManager archetypeArtifactManager;
 
-    @Requirement
+    @Inject
     private ArchetypeFactory archetypeFactory;
 
-    @Requirement
+    @Inject
     private ArchetypeGenerationQueryer archetypeGenerationQueryer;
 
     /**
      * Determines whether the layout is legacy or not.
      */
-    @Requirement
+    @Inject
     private ArtifactRepositoryLayout defaultArtifactRepositoryLayout;
 
     public void setArchetypeArtifactManager(ArchetypeArtifactManager 
archetypeArtifactManager) {
diff --git 
a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeGenerationQueryer.java
 
b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeGenerationQueryer.java
index 06b0c2c3..8c4659f2 100644
--- 
a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeGenerationQueryer.java
+++ 
b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeGenerationQueryer.java
@@ -18,18 +18,21 @@
  */
 package org.apache.maven.archetype.ui.generation;
 
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 import java.util.regex.Pattern;
 
 import org.apache.maven.archetype.ui.ArchetypeConfiguration;
-import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.components.interactivity.Prompter;
 import org.codehaus.plexus.components.interactivity.PrompterException;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 
-@Component(role = ArchetypeGenerationQueryer.class, hint = "default")
+@Named("default")
+@Singleton
 public class DefaultArchetypeGenerationQueryer extends AbstractLogEnabled 
implements ArchetypeGenerationQueryer {
-    @Requirement
+    @Inject
     private Prompter prompter;
 
     @Override
diff --git 
a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeSelectionQueryer.java
 
b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeSelectionQueryer.java
index 86a7eef7..6bc551de 100644
--- 
a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeSelectionQueryer.java
+++ 
b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeSelectionQueryer.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.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
@@ -33,15 +37,16 @@ import org.apache.maven.archetype.catalog.Archetype;
 import org.apache.maven.archetype.ui.ArchetypeDefinition;
 import org.apache.maven.artifact.versioning.ArtifactVersion;
 import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
-import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.components.interactivity.Prompter;
 import org.codehaus.plexus.components.interactivity.PrompterException;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 
-@Component(role = ArchetypeSelectionQueryer.class, hint = "default")
+@Named("default")
+@Singleton
 public class DefaultArchetypeSelectionQueryer extends AbstractLogEnabled 
implements ArchetypeSelectionQueryer {
-    @Requirement(hint = "archetype")
+
+    @Inject
+    @Named("archetype")
     private Prompter prompter;
 
     @Override
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 7f431461..a389d7a7 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
@@ -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.util.HashMap;
 import java.util.LinkedHashMap;
@@ -34,12 +38,11 @@ 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.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.components.interactivity.PrompterException;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 
-@Component(role = ArchetypeSelector.class, hint = "default")
+@Named("default")
+@Singleton
 public class DefaultArchetypeSelector extends AbstractLogEnabled implements 
ArchetypeSelector {
     static final String DEFAULT_ARCHETYPE_GROUPID = 
"org.apache.maven.archetypes";
 
@@ -47,10 +50,10 @@ public class DefaultArchetypeSelector extends 
AbstractLogEnabled implements Arch
 
     static final String DEFAULT_ARCHETYPE_ARTIFACTID = 
"maven-archetype-quickstart";
 
-    @Requirement
+    @Inject
     private ArchetypeSelectionQueryer archetypeSelectionQueryer;
 
-    @Requirement
+    @Inject
     private ArchetypeManager archetypeManager;
 
     @Override
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 a6959eeb..8b9ce6f5 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
@@ -31,6 +31,7 @@ import org.apache.maven.archetype.metadata.RequiredProperty;
 import org.apache.maven.archetype.ui.ArchetypeConfiguration;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.project.ProjectBuildingRequest;
+import org.codehaus.plexus.ContainerConfiguration;
 import org.codehaus.plexus.PlexusTestCase;
 import org.easymock.EasyMock;
 import org.easymock.IAnswer;
@@ -43,6 +44,11 @@ public class DefaultArchetypeGenerationConfigurator2Test 
extends PlexusTestCase
     private ArchetypeGenerationQueryer queryer;
     private ArchetypeDescriptor descriptor;
 
+    @Override
+    protected void customizeContainerConfiguration(ContainerConfiguration 
configuration) {
+        configuration.setClassPathScanning("index");
+    }
+
     @Override
     public void setUp() throws Exception {
         super.setUp();
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 98edc596..38e0adc1 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
@@ -35,6 +35,7 @@ import org.apache.maven.archetype.exception.UnknownGroup;
 import org.apache.maven.archetype.old.descriptor.ArchetypeDescriptor;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.project.ProjectBuildingRequest;
+import org.codehaus.plexus.ContainerConfiguration;
 import org.codehaus.plexus.PlexusTestCase;
 import org.codehaus.plexus.components.interactivity.PrompterException;
 import org.easymock.EasyMock;
@@ -45,6 +46,11 @@ import org.easymock.EasyMock;
 public class DefaultArchetypeGenerationConfiguratorTest extends PlexusTestCase 
{
     private DefaultArchetypeGenerationConfigurator configurator;
 
+    @Override
+    protected void customizeContainerConfiguration(ContainerConfiguration 
configuration) {
+        configuration.setClassPathScanning("index");
+    }
+
     @Override
     public void setUp() throws Exception {
         super.setUp();
diff --git 
a/maven-archetype-plugin/src/test/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeGenerationQueryerTest.java
 
b/maven-archetype-plugin/src/test/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeGenerationQueryerTest.java
index b238b455..3b7b113b 100644
--- 
a/maven-archetype-plugin/src/test/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeGenerationQueryerTest.java
+++ 
b/maven-archetype-plugin/src/test/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeGenerationQueryerTest.java
@@ -20,6 +20,7 @@ package org.apache.maven.archetype.ui.generation;
 
 import java.util.regex.Pattern;
 
+import org.codehaus.plexus.ContainerConfiguration;
 import org.codehaus.plexus.PlexusTestCase;
 import org.codehaus.plexus.components.interactivity.Prompter;
 import org.codehaus.plexus.components.interactivity.PrompterException;
@@ -29,6 +30,11 @@ public class DefaultArchetypeGenerationQueryerTest extends 
PlexusTestCase {
 
     private DefaultArchetypeGenerationQueryer queryer;
 
+    @Override
+    protected void customizeContainerConfiguration(ContainerConfiguration 
configuration) {
+        configuration.setClassPathScanning("index");
+    }
+
     @Override
     public void setUp() throws Exception {
         super.setUp();
diff --git 
a/maven-archetype-plugin/src/test/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeSelectionQueryerTest.java
 
b/maven-archetype-plugin/src/test/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeSelectionQueryerTest.java
index 9d4d9e89..922d8358 100644
--- 
a/maven-archetype-plugin/src/test/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeSelectionQueryerTest.java
+++ 
b/maven-archetype-plugin/src/test/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeSelectionQueryerTest.java
@@ -25,6 +25,7 @@ import java.util.Map;
 
 import org.apache.maven.archetype.catalog.Archetype;
 import org.apache.maven.archetype.ui.ArchetypeDefinition;
+import org.codehaus.plexus.ContainerConfiguration;
 import org.codehaus.plexus.PlexusTestCase;
 import org.codehaus.plexus.components.interactivity.Prompter;
 import org.codehaus.plexus.components.interactivity.PrompterException;
@@ -33,6 +34,11 @@ import org.easymock.EasyMock;
 public class DefaultArchetypeSelectionQueryerTest extends PlexusTestCase {
     private DefaultArchetypeSelectionQueryer queryer;
 
+    @Override
+    protected void customizeContainerConfiguration(ContainerConfiguration 
configuration) {
+        configuration.setClassPathScanning("index");
+    }
+
     @Override
     public void setUp() throws Exception {
         super.setUp();
diff --git 
a/maven-archetype-plugin/src/test/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeSelectorTest.java
 
b/maven-archetype-plugin/src/test/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeSelectorTest.java
index 6b2cd743..53b8a9f2 100644
--- 
a/maven-archetype-plugin/src/test/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeSelectorTest.java
+++ 
b/maven-archetype-plugin/src/test/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeSelectorTest.java
@@ -29,6 +29,7 @@ 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.codehaus.plexus.ContainerConfiguration;
 import org.codehaus.plexus.PlexusTestCase;
 import org.codehaus.plexus.components.interactivity.PrompterException;
 import org.easymock.EasyMock;
@@ -36,6 +37,11 @@ import org.easymock.EasyMock;
 public class DefaultArchetypeSelectorTest extends PlexusTestCase {
     private DefaultArchetypeSelector selector;
 
+    @Override
+    protected void customizeContainerConfiguration(ContainerConfiguration 
configuration) {
+        configuration.setClassPathScanning("index");
+    }
+
     @Override
     public void setUp() throws Exception {
         super.setUp();
diff --git 
a/maven-archetype-plugin/src/test/java/org/apache/maven/archetype/ui/generation/RequiredPropertyComparatorTest.java
 
b/maven-archetype-plugin/src/test/java/org/apache/maven/archetype/ui/generation/RequiredPropertyComparatorTest.java
index 106084db..000648c5 100644
--- 
a/maven-archetype-plugin/src/test/java/org/apache/maven/archetype/ui/generation/RequiredPropertyComparatorTest.java
+++ 
b/maven-archetype-plugin/src/test/java/org/apache/maven/archetype/ui/generation/RequiredPropertyComparatorTest.java
@@ -19,24 +19,27 @@
 package org.apache.maven.archetype.ui.generation;
 
 import java.util.Arrays;
-import java.util.Collections;
 import java.util.List;
 
-import junit.framework.TestCase;
 import org.apache.maven.archetype.ui.ArchetypeConfiguration;
+import org.junit.Before;
+import org.junit.Test;
 
-public class RequiredPropertyComparatorTest extends TestCase {
+import static org.junit.Assert.assertEquals;
+
+public class RequiredPropertyComparatorTest {
     private DefaultArchetypeGenerationConfigurator.RequiredPropertyComparator 
requiredPropertyComparator;
 
     private ArchetypeConfiguration archetypeConfiguration;
 
-    @Override
+    @Before
     public void setUp() throws Exception {
         archetypeConfiguration = new ArchetypeConfiguration();
         requiredPropertyComparator =
                 new 
DefaultArchetypeGenerationConfigurator.RequiredPropertyComparator(archetypeConfiguration);
     }
 
+    @Test
     public void testShouldOrderPropertiesWhenReferringEachOther() {
         archetypeConfiguration.addRequiredProperty("prop1");
         archetypeConfiguration.setDefaultProperty("prop1", "${prop2}");
@@ -45,10 +48,11 @@ public class RequiredPropertyComparatorTest extends 
TestCase {
 
         List<String> requiredProperties = 
archetypeConfiguration.getRequiredProperties();
         assertEquals(Arrays.asList("prop1", "prop2"), requiredProperties);
-        Collections.sort(requiredProperties, requiredPropertyComparator);
+        requiredProperties.sort(requiredPropertyComparator);
         assertEquals(Arrays.asList("prop2", "prop1"), requiredProperties);
     }
 
+    @Test
     public void testShouldOrderPropertiesWhenReferringEachOther2() {
         archetypeConfiguration.addRequiredProperty("prop1");
         archetypeConfiguration.setDefaultProperty("prop1", "${prop2}");
@@ -56,10 +60,11 @@ public class RequiredPropertyComparatorTest extends 
TestCase {
 
         List<String> requiredProperties = 
archetypeConfiguration.getRequiredProperties();
         assertEquals(Arrays.asList("prop1", "prop2"), requiredProperties);
-        Collections.sort(requiredProperties, requiredPropertyComparator);
+        requiredProperties.sort(requiredPropertyComparator);
         assertEquals(Arrays.asList("prop2", "prop1"), requiredProperties);
     }
 
+    @Test
     public void testTransitivePropertyReferences() {
         archetypeConfiguration.addRequiredProperty("foo");
         archetypeConfiguration.setDefaultProperty("foo", "${bar}");
@@ -69,7 +74,7 @@ public class RequiredPropertyComparatorTest extends TestCase {
 
         List<String> requiredProperties = 
archetypeConfiguration.getRequiredProperties();
         assertEquals(Arrays.asList("foo", "bar", "baz"), requiredProperties);
-        Collections.sort(requiredProperties, requiredPropertyComparator);
+        requiredProperties.sort(requiredPropertyComparator);
         assertEquals(Arrays.asList("baz", "bar", "foo"), requiredProperties);
     }
 }
diff --git a/pom.xml b/pom.xml
index 94f3093e..c4457cfa 100644
--- a/pom.xml
+++ b/pom.xml
@@ -233,13 +233,6 @@
         <scope>provided</scope>
       </dependency>
 
-      <!-- Deprecated -->
-      <dependency>
-        <groupId>org.codehaus.plexus</groupId>
-        <artifactId>plexus-component-annotations</artifactId>
-        <version>2.2.0</version>
-      </dependency>
-
       <dependency>
         <groupId>org.xmlunit</groupId>
         <artifactId>xmlunit-matchers</artifactId>
@@ -251,13 +244,6 @@
   <build>
     <pluginManagement>
       <plugins>
-        <!-- Deprecated -->
-        <plugin>
-          <groupId>org.codehaus.plexus</groupId>
-          <artifactId>plexus-component-metadata</artifactId>
-          <version>2.2.0</version>
-        </plugin>
-
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-site-plugin</artifactId>
@@ -291,17 +277,6 @@
       </plugins>
     </pluginManagement>
     <plugins>
-      <plugin>
-        <groupId>org.codehaus.plexus</groupId>
-        <artifactId>plexus-component-metadata</artifactId>
-        <executions>
-          <execution>
-            <goals>
-              <goal>generate-metadata</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
       <plugin>
         <groupId>org.apache.rat</groupId>
         <artifactId>apache-rat-plugin</artifactId>
@@ -329,18 +304,4 @@
     </plugins>
   </build>
 
-  <profiles>
-    <profile>
-      <id>reporting</id>
-      <reporting>
-        <plugins>
-          <plugin>
-            <groupId>org.codehaus.plexus</groupId>
-            <artifactId>plexus-maven-plugin</artifactId>
-            <version>1.3.8</version>
-          </plugin>
-        </plugins>
-      </reporting>
-    </profile>
-  </profiles>
 </project>

Reply via email to