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 efc2f002 Migrate to JUnit 5, drop usage of TestCase and PlexusTestCase
efc2f002 is described below

commit efc2f00216e21d53694552bef1b9f41efbfc4596
Author: Slawomir Jaranowski <[email protected]>
AuthorDate: Mon Dec 22 23:03:01 2025 +0100

    Migrate to JUnit 5, drop usage of TestCase and PlexusTestCase
---
 archetype-common/pom.xml                           | 30 ++-----
 .../common/TestDefaultArchetypeFilesResolver.java  | 10 ++-
 .../maven/archetype/common/TestPomManager.java     |  6 +-
 .../archetype/common/util/TestListScanner.java     | 10 ++-
 .../archetype/common/util/TestXMLOutputter.java    |  8 +-
 .../generator/DefaultArchetypeGeneratorTest.java   | 91 ++++++++++++----------
 .../apache/maven/archetype/old/ArchetypeTest.java  | 67 ++++++++--------
 .../descriptor/ArchetypeDescriptorBuilderTest.java | 21 ++---
 .../archetype/old/descriptor/ArchetypeXsdTest.java |  7 +-
 .../DefaultRepositoryCrawlerTest.java              | 28 ++++---
 .../LocalCatalogArchetypeDataSourceTest.java       | 30 ++++---
 .../archetype/test/ArchetypeGenerationTest.java    | 24 +++---
 .../InternalCatalogArchetypesVerificationTest.java | 28 ++++---
 maven-archetype-plugin/pom.xml                     | 19 +++--
 ...efaultArchetypeGenerationConfigurator2Test.java | 28 ++++---
 ...DefaultArchetypeGenerationConfiguratorTest.java | 27 ++++---
 .../DefaultArchetypeGenerationQueryerTest.java     | 25 +++---
 .../DefaultArchetypeSelectionQueryerTest.java      | 28 +++----
 .../generation/DefaultArchetypeSelectorTest.java   | 52 +++++--------
 .../generation/RequiredPropertyComparatorTest.java | 10 +--
 pom.xml                                            |  5 --
 21 files changed, 282 insertions(+), 272 deletions(-)

diff --git a/archetype-common/pom.xml b/archetype-common/pom.xml
index f7dd8544..8006af8d 100644
--- a/archetype-common/pom.xml
+++ b/archetype-common/pom.xml
@@ -101,14 +101,6 @@
       <groupId>org.apache.maven</groupId>
       <artifactId>maven-artifact</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-settings</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-settings-builder</artifactId>
-    </dependency>
     <dependency>
       <groupId>org.apache.maven.shared</groupId>
       <artifactId>maven-invoker</artifactId>
@@ -149,31 +141,19 @@
       <artifactId>maven-shared-utils</artifactId>
       <version>3.4.2</version>
     </dependency>
-    <dependency>
-      <groupId>org.eclipse.sisu</groupId>
-      <artifactId>org.eclipse.sisu.plexus</artifactId>
-      <version>0.9.0.M4</version>
-      <scope>provided</scope>
-    </dependency>
     <dependency>
       <groupId>org.apache.velocity</groupId>
       <artifactId>velocity-engine-core</artifactId>
     </dependency>
     <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
+      <groupId>org.junit.jupiter</groupId>
+      <artifactId>junit-jupiter-api</artifactId>
       <scope>test</scope>
-      <exclusions>
-        <exclusion>
-          <groupId>org.hamcrest</groupId>
-          <artifactId>hamcrest-core</artifactId>
-        </exclusion>
-      </exclusions>
     </dependency>
     <dependency>
-      <groupId>org.hamcrest</groupId>
-      <artifactId>hamcrest</artifactId>
-      <version>3.0</version>
+      <groupId>org.codehaus.plexus</groupId>
+      <artifactId>plexus-testing</artifactId>
+      <version>2.0.2</version>
       <scope>test</scope>
     </dependency>
     <dependency>
diff --git 
a/archetype-common/src/test/java/org/apache/maven/archetype/common/TestDefaultArchetypeFilesResolver.java
 
b/archetype-common/src/test/java/org/apache/maven/archetype/common/TestDefaultArchetypeFilesResolver.java
index 01fea495..d15d171c 100644
--- 
a/archetype-common/src/test/java/org/apache/maven/archetype/common/TestDefaultArchetypeFilesResolver.java
+++ 
b/archetype-common/src/test/java/org/apache/maven/archetype/common/TestDefaultArchetypeFilesResolver.java
@@ -21,11 +21,15 @@ package org.apache.maven.archetype.common;
 import java.util.ArrayList;
 import java.util.List;
 
-import junit.framework.TestCase;
 import org.apache.maven.archetype.metadata.FileSet;
+import org.junit.jupiter.api.Test;
 
-public class TestDefaultArchetypeFilesResolver extends TestCase {
-    public void testResourceFiltering() throws Exception {
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+public class TestDefaultArchetypeFilesResolver {
+
+    @Test
+    public void testResourceFiltering() {
         FileSet fileSet = new FileSet();
 
         fileSet.addInclude("**/*.java");
diff --git 
a/archetype-common/src/test/java/org/apache/maven/archetype/common/TestPomManager.java
 
b/archetype-common/src/test/java/org/apache/maven/archetype/common/TestPomManager.java
index b3d2bc66..46eb4a7d 100644
--- 
a/archetype-common/src/test/java/org/apache/maven/archetype/common/TestPomManager.java
+++ 
b/archetype-common/src/test/java/org/apache/maven/archetype/common/TestPomManager.java
@@ -27,10 +27,10 @@ import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 import org.apache.maven.archetype.exception.InvalidPackaging;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
 
 public class TestPomManager {
 
diff --git 
a/archetype-common/src/test/java/org/apache/maven/archetype/common/util/TestListScanner.java
 
b/archetype-common/src/test/java/org/apache/maven/archetype/common/util/TestListScanner.java
index b33eadba..7966eed2 100644
--- 
a/archetype-common/src/test/java/org/apache/maven/archetype/common/util/TestListScanner.java
+++ 
b/archetype-common/src/test/java/org/apache/maven/archetype/common/util/TestListScanner.java
@@ -21,10 +21,15 @@ package org.apache.maven.archetype.common.util;
 import java.util.ArrayList;
 import java.util.List;
 
-import junit.framework.TestCase;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 /** @author <a href="mailto:[email protected]";>Brian Fox</a> */
-public class TestListScanner extends TestCase {
+public class TestListScanner {
+
+    @Test
     public void testUnixPaths() {
         List<String> archetypeResources = new ArrayList<>();
 
@@ -53,6 +58,7 @@ public class TestListScanner extends TestCase {
         assertTrue(result.contains("src/main/java/inner/package/App2.java"));
     }
 
+    @Test
     public void testWindowsPaths() {
         List<String> archetypeResources = new ArrayList<>();
 
diff --git 
a/archetype-common/src/test/java/org/apache/maven/archetype/common/util/TestXMLOutputter.java
 
b/archetype-common/src/test/java/org/apache/maven/archetype/common/util/TestXMLOutputter.java
index 6bbe0097..a6bf5a78 100644
--- 
a/archetype-common/src/test/java/org/apache/maven/archetype/common/util/TestXMLOutputter.java
+++ 
b/archetype-common/src/test/java/org/apache/maven/archetype/common/util/TestXMLOutputter.java
@@ -22,13 +22,17 @@ import java.io.IOException;
 import java.io.StringReader;
 import java.io.StringWriter;
 
-import junit.framework.TestCase;
 import org.jdom2.Document;
 import org.jdom2.JDOMException;
 import org.jdom2.input.SAXBuilder;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 /** @author <a href="mailto:[email protected]";>John Casey</a> */
-public class TestXMLOutputter extends TestCase {
+public class TestXMLOutputter {
+
+    @Test
     public void testOutputDocumentShouldParseAndOutputCDATASectionNoMods() 
throws JDOMException, IOException {
         String content = "<document>" + "<element1>This is some 
text</element1>"
                 + "<description>And then,"
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 4ffe9cae..25ff2700 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
@@ -18,6 +18,8 @@
  */
 package org.apache.maven.archetype.generator;
 
+import javax.inject.Inject;
+
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
@@ -29,9 +31,7 @@ import org.apache.maven.archetype.ArchetypeGenerationRequest;
 import org.apache.maven.archetype.ArchetypeGenerationResult;
 import org.apache.maven.model.Model;
 import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
-import org.codehaus.plexus.ContainerConfiguration;
-import org.codehaus.plexus.PlexusTestCase;
-import 
org.codehaus.plexus.component.repository.exception.ComponentLookupException;
+import org.codehaus.plexus.testing.PlexusTest;
 import org.codehaus.plexus.util.FileUtils;
 import org.codehaus.plexus.util.xml.XmlStreamReader;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
@@ -39,8 +39,19 @@ import org.eclipse.aether.DefaultRepositorySystemSession;
 import org.eclipse.aether.RepositorySystem;
 import org.eclipse.aether.repository.LocalRepository;
 import org.eclipse.aether.repository.LocalRepositoryManager;
-
-public class DefaultArchetypeGeneratorTest extends PlexusTestCase {
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+import static org.codehaus.plexus.testing.PlexusExtension.getBasedir;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.fail;
+
+@PlexusTest
+public class DefaultArchetypeGeneratorTest {
     // archetypes prepared by antrun execution (see pom.xml) from 
src/test/archetypes
     private static final Archetype ARCHETYPE_BASIC = new 
Archetype("archetypes", "basic", "1.0");
 
@@ -70,15 +81,19 @@ public class DefaultArchetypeGeneratorTest extends 
PlexusTestCase {
         ADDITIONAL_PROPERTIES.setProperty("property_underscored-2", "prop2");
     }
 
-    String localRepository;
+    private String localRepository;
 
-    String remoteRepository;
+    private String remoteRepository;
 
-    ArchetypeGenerator generator;
+    @Inject
+    private ArchetypeGenerator generator;
 
-    String outputDirectory;
+    @Inject
+    private RepositorySystem repositorySystem;
 
-    File projectDirectory;
+    private String outputDirectory;
+
+    private File projectDirectory;
 
     private void generateProjectFromArchetype(ArchetypeGenerationRequest 
request) throws Exception {
         ArchetypeGenerationResult result = new ArchetypeGenerationResult();
@@ -102,19 +117,18 @@ public class DefaultArchetypeGeneratorTest extends 
PlexusTestCase {
         return result;
     }
 
-    public void testArchetypeNotDefined() throws Exception {
+    @Test
+    public void testArchetypeNotDefined() {
         Archetype archetype = new Archetype("archetypes", null, "1.0");
 
         ArchetypeGenerationRequest request = 
createArchetypeGenerationRequest("generate-2", archetype);
 
         ArchetypeGenerationResult result = 
generateProjectFromArchetypeWithFailure(request);
 
-        assertEquals(
-                "Exception not correct",
-                "The archetype is not defined",
-                result.getCause().getMessage());
+        assertEquals("The archetype is not defined", 
result.getCause().getMessage(), "Exception not correct");
     }
 
+    @Test
     public void testGenerateArchetypeCompleteWithoutParent() throws Exception {
         ArchetypeGenerationRequest request = 
createArchetypeGenerationRequest("generate-4", ARCHETYPE_BASIC);
 
@@ -140,6 +154,7 @@ public class DefaultArchetypeGeneratorTest extends 
PlexusTestCase {
         assertEquals("file-value", model.getVersion());
     }
 
+    @Test
     public void testGenerateArchetypeCompleteWithParent() throws Exception {
         ArchetypeGenerationRequest request = 
createArchetypeGenerationRequest("generate-5", ARCHETYPE_BASIC);
 
@@ -163,6 +178,7 @@ public class DefaultArchetypeGeneratorTest extends 
PlexusTestCase {
         assertTrue(parentModel.getModules().contains("file-value"));
     }
 
+    @Test
     public void testGenerateArchetypePartialOnChild() throws Exception {
         ArchetypeGenerationRequest request = 
createArchetypeGenerationRequest("generate-8", ARCHETYPE_PARTIAL);
 
@@ -189,6 +205,7 @@ public class DefaultArchetypeGeneratorTest extends 
PlexusTestCase {
         assertFalse(model.getReporting().getPlugins().isEmpty());
     }
 
+    @Test
     public void testGenerateArchetypePartialOnChildDontOverride() throws 
Exception {
         ArchetypeGenerationRequest request = 
createArchetypeGenerationRequest("generate-9", ARCHETYPE_PARTIAL);
 
@@ -214,6 +231,7 @@ public class DefaultArchetypeGeneratorTest extends 
PlexusTestCase {
         assertEquals("1.0", 
model.getReporting().getPlugins().get(0).getVersion());
     }
 
+    @Test
     public void testGenerateArchetypePartialOnParent() throws Exception {
         ArchetypeGenerationRequest request = 
createArchetypeGenerationRequest("generate-7", ARCHETYPE_PARTIAL);
 
@@ -234,6 +252,7 @@ public class DefaultArchetypeGeneratorTest extends 
PlexusTestCase {
         assertFalse(model.getBuild().getPlugins().isEmpty());
     }
 
+    @Test
     public void testGenerateArchetypePartialWithoutPoms() throws Exception {
         ArchetypeGenerationRequest request = 
createArchetypeGenerationRequest("generate-6", ARCHETYPE_PARTIAL);
 
@@ -250,6 +269,7 @@ public class DefaultArchetypeGeneratorTest extends 
PlexusTestCase {
         assertEquals("file-value", model.getVersion());
     }
 
+    @Test
     public void testGenerateArchetypeSite() throws Exception {
         ArchetypeGenerationRequest request = 
createArchetypeGenerationRequest("generate-10", ARCHETYPE_SITE);
 
@@ -269,6 +289,7 @@ public class DefaultArchetypeGeneratorTest extends 
PlexusTestCase {
         assertEquals("file-value", model.getVersion());
     }
 
+    @Test
     public void testGenerateFileSetArchetype() throws Exception {
         ArchetypeGenerationRequest request = 
createArchetypeGenerationRequest("generate-12", ARCHETYPE_FILESET);
 
@@ -351,6 +372,7 @@ public class DefaultArchetypeGeneratorTest extends 
PlexusTestCase {
         assertEquals("file-value", model.getVersion());
     }
 
+    @Test
     public void testGenerateOldArchetype() throws Exception {
         ArchetypeGenerationRequest request = 
createArchetypeGenerationRequest("generate-11", ARCHETYPE_OLD);
 
@@ -371,7 +393,8 @@ public class DefaultArchetypeGeneratorTest extends 
PlexusTestCase {
         assertEquals("file-value", model.getVersion());
     }
 
-    public void testPropertiesNotDefined() throws Exception {
+    @Test
+    public void testPropertiesNotDefined() {
         ArchetypeGenerationRequest request = 
createArchetypeGenerationRequest("generate-3", ARCHETYPE_BASIC);
 
         request.setProperties(new Properties());
@@ -379,11 +402,12 @@ public class DefaultArchetypeGeneratorTest extends 
PlexusTestCase {
         ArchetypeGenerationResult result = 
generateProjectFromArchetypeWithFailure(request);
 
         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 
property-without-default-4 is missing."),
+                "Exception not correct");
     }
 
+    @Test
     public void testGenerateArchetypeWithPostScriptIncluded() throws Exception 
{
         ArchetypeGenerationRequest request =
                 createArchetypeGenerationRequest("generate-13", 
ARCHETYPE_FILESET_WITH_POSTCREATE_SCRIPT);
@@ -401,7 +425,7 @@ public class DefaultArchetypeGeneratorTest extends 
PlexusTestCase {
         
assertTemplateCopiedWithFileSetArchetype("src/main/java/file/value/package/App.ogg");
 
         File templateFile = new File(projectDirectory, 
"src/main/java/file/value/package/ToDelete.java");
-        assertFalse(templateFile + " should have been removed (by 
post-generate.groovy script", templateFile.exists());
+        assertFalse(templateFile.exists(), templateFile + " should have been 
removed (by post-generate.groovy script");
 
         
assertTemplateContentGeneratedWithFileSetArchetype("src/main/resources/App.properties",
 "file-value");
         
assertTemplateContentGeneratedWithFileSetArchetype("src/main/resources/file-value/touch.txt",
 "file-value");
@@ -464,34 +488,14 @@ public class DefaultArchetypeGeneratorTest extends 
PlexusTestCase {
         assertEquals("file-value", model.getVersion());
     }
 
-    @Override
-    protected void tearDown() throws Exception {
-        super.tearDown();
-
-        outputDirectory = null;
-    }
-
-    @Override
-    protected void customizeContainerConfiguration(ContainerConfiguration 
configuration) {
-        configuration.setClassPathScanning("index");
-    }
-
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-
+    @BeforeEach
+    protected void setUp() {
         File repositories = new File(getBasedir(), 
"target/test-classes/repositories");
-
         localRepository = new File(repositories, "local").toString();
-
         remoteRepository = new File(repositories, 
"central").toURI().toString();
-
-        generator = (ArchetypeGenerator) lookup(ArchetypeGenerator.ROLE);
-        assertNotNull(generator);
     }
 
-    private ArchetypeGenerationRequest createArchetypeGenerationRequest(String 
project, Archetype archetype)
-            throws ComponentLookupException {
+    private ArchetypeGenerationRequest createArchetypeGenerationRequest(String 
project, Archetype archetype) {
         outputDirectory = getBasedir() + "/target/test-classes/projects/" + 
project;
 
         projectDirectory = new File(outputDirectory, "file-value");
@@ -512,7 +516,6 @@ public class DefaultArchetypeGeneratorTest extends 
PlexusTestCase {
         request.setProperties(ADDITIONAL_PROPERTIES);
 
         DefaultRepositorySystemSession repositorySession = new 
DefaultRepositorySystemSession();
-        RepositorySystem repositorySystem = lookup(RepositorySystem.class);
         LocalRepositoryManager localRepositoryManager =
                 repositorySystem.newLocalRepositoryManager(repositorySession, 
new LocalRepository(localRepository));
         repositorySession.setLocalRepositoryManager(localRepositoryManager);
@@ -609,7 +612,9 @@ public class DefaultArchetypeGeneratorTest extends 
PlexusTestCase {
 
     private static class Archetype {
         final String groupId;
+
         final String artifactId;
+
         final String version;
 
         Archetype(String groupId, String artifactId, String version) {
diff --git 
a/archetype-common/src/test/java/org/apache/maven/archetype/old/ArchetypeTest.java
 
b/archetype-common/src/test/java/org/apache/maven/archetype/old/ArchetypeTest.java
index 97206250..31a569b6 100644
--- 
a/archetype-common/src/test/java/org/apache/maven/archetype/old/ArchetypeTest.java
+++ 
b/archetype-common/src/test/java/org/apache/maven/archetype/old/ArchetypeTest.java
@@ -18,6 +18,8 @@
  */
 package org.apache.maven.archetype.old;
 
+import javax.inject.Inject;
+
 import java.io.File;
 import java.io.FileReader;
 import java.io.IOException;
@@ -37,8 +39,7 @@ import org.apache.maven.model.Model;
 import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
 import org.apache.velocity.VelocityContext;
 import org.apache.velocity.context.Context;
-import org.codehaus.plexus.ContainerConfiguration;
-import org.codehaus.plexus.PlexusTestCase;
+import org.codehaus.plexus.testing.PlexusTest;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 import org.codehaus.plexus.velocity.VelocityComponent;
 import org.eclipse.aether.DefaultRepositorySystemSession;
@@ -52,22 +53,33 @@ import org.eclipse.aether.repository.RemoteRepository;
 import org.eclipse.aether.repository.RepositoryPolicy;
 import org.eclipse.aether.resolution.ArtifactRequest;
 import org.eclipse.aether.resolution.ArtifactResult;
+import org.junit.jupiter.api.Test;
 
+import static org.codehaus.plexus.testing.PlexusExtension.getTestFile;
 import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.fail;
 import static org.xmlunit.matchers.CompareMatcher.isIdenticalTo;
 
 /**
  * @author <a href="mailto:[email protected]";>Jason van Zyl</a>
  * @version $Id$
  */
-public class ArchetypeTest extends PlexusTestCase {
+@PlexusTest
+public class ArchetypeTest {
+
+    @Inject
     private OldArchetype archetype;
 
-    @Override
-    protected void customizeContainerConfiguration(ContainerConfiguration 
configuration) {
-        configuration.setClassPathScanning("index");
-    }
+    @Inject
+    private RepositorySystem repositorySystem;
+
+    @Inject
+    private VelocityComponent velocity;
 
+    @Test
     public void testArchetype() throws Exception {
         FileUtils.deleteDirectory(getTestFile("target/quickstart"));
 
@@ -90,7 +102,6 @@ public class ArchetypeTest extends PlexusTestCase {
         remoteRepositories.add(remoteRepository);
 
         DefaultRepositorySystemSession repositorySession = new 
DefaultRepositorySystemSession();
-        RepositorySystem repositorySystem = lookup(RepositorySystem.class);
         LocalRepositoryManager localRepositoryManager =
                 repositorySystem.newLocalRepositoryManager(repositorySession, 
new LocalRepository(mavenRepoLocal));
         repositorySession.setLocalRepositoryManager(localRepositoryManager);
@@ -142,8 +153,6 @@ public class ArchetypeTest extends PlexusTestCase {
                 
.setContextClassLoader(getContextClassloader(archetypeArtifact, 
repositorySession, remoteRepositories));
 
         try {
-            VelocityComponent velocity = (VelocityComponent) 
lookup(VelocityComponent.class.getName());
-
             velocity.getEngine()
                     .mergeTemplate(
                             OldArchetype.ARCHETYPE_RESOURCES + "/" + 
OldArchetype.ARCHETYPE_POM,
@@ -176,33 +185,33 @@ public class ArchetypeTest extends PlexusTestCase {
             throw new ArchetypeTemplateProcessingException("Error reading 
generated POM", e);
         }
         assertEquals(
-                "Generated POM ArtifactId is not equivalent to expected 
result.",
                 generatedModel.getArtifactId(),
-                templateModel.getArtifactId());
+                templateModel.getArtifactId(),
+                "Generated POM ArtifactId is not equivalent to expected 
result.");
         assertEquals(
-                "Generated POM GroupId is not equivalent to expected result.",
                 generatedModel.getGroupId(),
-                templateModel.getGroupId());
+                templateModel.getGroupId(),
+                "Generated POM GroupId is not equivalent to expected result.");
         assertEquals(
-                "Generated POM Id is not equivalent to expected result.",
                 generatedModel.getId(),
-                templateModel.getId());
+                templateModel.getId(),
+                "Generated POM Id is not equivalent to expected result.");
         assertEquals(
-                "Generated POM Version is not equivalent to expected result.",
                 generatedModel.getVersion(),
-                templateModel.getVersion());
+                templateModel.getVersion(),
+                "Generated POM Version is not equivalent to expected result.");
         assertEquals(
-                "Generated POM Packaging is not equivalent to expected 
result.",
                 generatedModel.getPackaging(),
-                templateModel.getPackaging());
+                templateModel.getPackaging(),
+                "Generated POM Packaging is not equivalent to expected 
result.");
         assertEquals(
-                "Generated POM Developers is not equivalent to expected 
result.",
                 generatedModel.getDevelopers(),
-                templateModel.getDevelopers());
+                templateModel.getDevelopers(),
+                "Generated POM Developers is not equivalent to expected 
result.");
         assertEquals(
-                "Generated POM Scm is not equivalent to expected result.",
                 generatedModel.getScm(),
-                templateModel.getScm());
+                templateModel.getScm(),
+                "Generated POM Scm is not equivalent to expected result.");
     }
 
     // Gets the classloader for this artifact's file.
@@ -211,13 +220,13 @@ public class ArchetypeTest extends PlexusTestCase {
             RepositorySystemSession repositorySystemSession,
             List<RemoteRepository> remoteRepositories)
             throws Exception {
-        RepositorySystem repositorySystem = lookup(RepositorySystem.class);
         ArtifactRequest request = new ArtifactRequest(archetypeArtifact, 
remoteRepositories, null);
         ArtifactResult artifactResult = 
repositorySystem.resolveArtifact(repositorySystemSession, request);
         URL[] urls = new URL[] 
{artifactResult.getArtifact().getFile().toURI().toURL()};
         return new URLClassLoader(urls);
     }
 
+    @Test
     public void testAddModuleToParentPOM() throws Exception {
         String pom = "<project>\n" + "  <packaging>pom</packaging>\n" + 
"</project>";
 
@@ -365,6 +374,7 @@ public class ArchetypeTest extends PlexusTestCase {
                         .normalizeWhitespace());
     }
 
+    @Test
     public void testAddModuleToParentPOMNoPackaging() throws Exception {
         try {
             String pom = "<project>\n</project>";
@@ -378,6 +388,7 @@ public class ArchetypeTest extends PlexusTestCase {
         }
     }
 
+    @Test
     public void testAddModuleToParentPOMJarPackaging() throws Exception {
         try {
             String pom = "<project>\n  <packaging>jar</packaging>\n</project>";
@@ -390,10 +401,4 @@ public class ArchetypeTest extends PlexusTestCase {
                     e.getLocalizedMessage());
         }
     }
-
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-        archetype = (OldArchetype) lookup(OldArchetype.ROLE);
-    }
 }
diff --git 
a/archetype-common/src/test/java/org/apache/maven/archetype/old/descriptor/ArchetypeDescriptorBuilderTest.java
 
b/archetype-common/src/test/java/org/apache/maven/archetype/old/descriptor/ArchetypeDescriptorBuilderTest.java
index 4efc174f..93b0a06b 100644
--- 
a/archetype-common/src/test/java/org/apache/maven/archetype/old/descriptor/ArchetypeDescriptorBuilderTest.java
+++ 
b/archetype-common/src/test/java/org/apache/maven/archetype/old/descriptor/ArchetypeDescriptorBuilderTest.java
@@ -21,27 +21,19 @@ package org.apache.maven.archetype.old.descriptor;
 import java.io.IOException;
 import java.io.StringReader;
 
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
 
 /**
  * @author <a href="mailto:[email protected]";>Jason van Zyl</a>
  * @version $Id$
  */
-public class ArchetypeDescriptorBuilderTest extends TestCase {
-    public ArchetypeDescriptorBuilderTest(String str) {
-        super(str);
-    }
-
-    public static Test suite() {
-        TestSuite suite = new TestSuite();
-        suite.addTest(new ArchetypeDescriptorBuilderTest("testBuilder"));
-        suite.addTest(new ArchetypeDescriptorBuilderTest("testBuild"));
-        return suite;
-    }
+public class ArchetypeDescriptorBuilderTest {
 
+    @Test
     public void testBuilder() throws Exception {
         String xml = "<archetype>" + "  <id>standard</id>" + "  <sources>" + " 
   <source>source0</source>"
                 + "    <source>source1</source>"
@@ -132,6 +124,7 @@ public class ArchetypeDescriptorBuilderTest extends 
TestCase {
         
assertNotNull(descriptor.getTestResourceDescriptor("testResource1").getEncoding());
     }
 
+    @Test
     public void testBuild() throws IOException, XmlPullParserException {
         String xml = "<archetype>" + "  <id>standard</id>" + "  <sources>"
                 + "    <source encoding=\"utf-8\">source0</source>"
diff --git 
a/archetype-common/src/test/java/org/apache/maven/archetype/old/descriptor/ArchetypeXsdTest.java
 
b/archetype-common/src/test/java/org/apache/maven/archetype/old/descriptor/ArchetypeXsdTest.java
index cc4dfa63..4734872a 100644
--- 
a/archetype-common/src/test/java/org/apache/maven/archetype/old/descriptor/ArchetypeXsdTest.java
+++ 
b/archetype-common/src/test/java/org/apache/maven/archetype/old/descriptor/ArchetypeXsdTest.java
@@ -24,15 +24,18 @@ import javax.xml.parsers.SAXParserFactory;
 import java.io.File;
 import java.io.InputStream;
 
-import org.codehaus.plexus.PlexusTestCase;
+import org.junit.jupiter.api.Test;
 import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
 import org.xml.sax.SAXParseException;
 import org.xml.sax.helpers.DefaultHandler;
 
-public class ArchetypeXsdTest extends PlexusTestCase {
+import static org.codehaus.plexus.testing.PlexusExtension.getBasedir;
+
+public class ArchetypeXsdTest {
     private static final String ARCHETYPE_XSD = "archetype-1.0.0.xsd";
 
+    @Test
     public void testXsd() throws Exception {
         File archetypeXsd = new File(getBasedir(), 
"/target/generated-site/resources/xsd/" + ARCHETYPE_XSD);
 
diff --git 
a/archetype-common/src/test/java/org/apache/maven/archetype/repositorycrawler/DefaultRepositoryCrawlerTest.java
 
b/archetype-common/src/test/java/org/apache/maven/archetype/repositorycrawler/DefaultRepositoryCrawlerTest.java
index 91a62100..728363dc 100644
--- 
a/archetype-common/src/test/java/org/apache/maven/archetype/repositorycrawler/DefaultRepositoryCrawlerTest.java
+++ 
b/archetype-common/src/test/java/org/apache/maven/archetype/repositorycrawler/DefaultRepositoryCrawlerTest.java
@@ -18,34 +18,38 @@
  */
 package org.apache.maven.archetype.repositorycrawler;
 
+import javax.inject.Inject;
+
 import java.io.File;
 
 import org.apache.maven.archetype.catalog.ArchetypeCatalog;
-import org.codehaus.plexus.ContainerConfiguration;
-import org.codehaus.plexus.PlexusTestCase;
+import org.codehaus.plexus.testing.PlexusTest;
+import org.junit.jupiter.api.Test;
+
+import static org.codehaus.plexus.testing.PlexusExtension.getTestFile;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 /**
- * @author  rafale
+ * @author rafale
  */
-public class DefaultRepositoryCrawlerTest extends PlexusTestCase {
+@PlexusTest
+public class DefaultRepositoryCrawlerTest {
 
-    @Override
-    protected void customizeContainerConfiguration(ContainerConfiguration 
configuration) {
-        configuration.setClassPathScanning("index");
-    }
+    @Inject
+    private RepositoryCrawler instance;
 
     /**
      * Test of crawl method, of class DefaultRepositoryCrawler.
      */
-    public void testCrawl() throws Exception {
+    @Test
+    public void testCrawl() {
         File repository = 
getTestFile("target/test-classes/repositories/central");
-        RepositoryCrawler instance = (RepositoryCrawler) 
lookup(RepositoryCrawler.class.getName());
 
         ArchetypeCatalog result = instance.crawl(repository);
         assertTrue(
+                (5 <= result.getArchetypes().size()) && 
(result.getArchetypes().size() <= 8),
                 "result.getArchetypes().size() = " + 
result.getArchetypes().size() + " should be in [5,8], result = "
-                        + result,
-                (5 <= result.getArchetypes().size()) && 
(result.getArchetypes().size() <= 8));
+                        + result);
 
         // TODO: should write to another directory
         //        instance.writeCatalog(result, new File(repository, 
"archetype-catalog.xml"));
diff --git 
a/archetype-common/src/test/java/org/apache/maven/archetype/source/LocalCatalogArchetypeDataSourceTest.java
 
b/archetype-common/src/test/java/org/apache/maven/archetype/source/LocalCatalogArchetypeDataSourceTest.java
index 8e10f370..0f77c955 100644
--- 
a/archetype-common/src/test/java/org/apache/maven/archetype/source/LocalCatalogArchetypeDataSourceTest.java
+++ 
b/archetype-common/src/test/java/org/apache/maven/archetype/source/LocalCatalogArchetypeDataSourceTest.java
@@ -35,6 +35,8 @@ package org.apache.maven.archetype.source;
  *  under the License.
  */
 
+import javax.inject.Inject;
+
 import java.io.File;
 import java.io.FileWriter;
 import java.io.Writer;
@@ -43,23 +45,28 @@ import org.apache.maven.archetype.ArchetypeManager;
 import org.apache.maven.archetype.catalog.Archetype;
 import org.apache.maven.archetype.catalog.ArchetypeCatalog;
 import org.apache.maven.archetype.catalog.io.xpp3.ArchetypeCatalogXpp3Writer;
-import org.codehaus.plexus.ContainerConfiguration;
-import org.codehaus.plexus.PlexusTestCase;
+import org.codehaus.plexus.testing.PlexusTest;
 import org.eclipse.aether.DefaultRepositorySystemSession;
 import org.eclipse.aether.RepositorySystem;
 import org.eclipse.aether.repository.LocalRepository;
 import org.eclipse.aether.repository.LocalRepositoryManager;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 
-public class LocalCatalogArchetypeDataSourceTest extends PlexusTestCase {
+import static org.codehaus.plexus.testing.PlexusExtension.getTestFile;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
-    @Override
-    protected void customizeContainerConfiguration(ContainerConfiguration 
configuration) {
-        configuration.setClassPathScanning("index");
-    }
+@PlexusTest
+public class LocalCatalogArchetypeDataSourceTest {
+
+    @Inject
+    private ArchetypeManager archetype;
+
+    @Inject
+    private RepositorySystem repositorySystem;
 
-    @Override
+    @BeforeEach
     protected void setUp() throws Exception {
-        super.setUp();
 
         File catalogDirectory = 
getTestFile("target/test-classes/repositories/test-catalog");
         catalogDirectory.mkdirs();
@@ -79,9 +86,8 @@ public class LocalCatalogArchetypeDataSourceTest extends 
PlexusTestCase {
         }
     }
 
-    public void testLocalCatalog() throws Exception {
-        ArchetypeManager archetype = lookup(ArchetypeManager.class);
-        RepositorySystem repositorySystem = lookup(RepositorySystem.class);
+    @Test
+    public void testLocalCatalog() {
 
         DefaultRepositorySystemSession repositorySession = new 
DefaultRepositorySystemSession();
         LocalRepositoryManager localRepositoryManager = 
repositorySystem.newLocalRepositoryManager(
diff --git 
a/archetype-common/src/test/java/org/apache/maven/archetype/test/ArchetypeGenerationTest.java
 
b/archetype-common/src/test/java/org/apache/maven/archetype/test/ArchetypeGenerationTest.java
index 1cc2cfb1..f27478b0 100644
--- 
a/archetype-common/src/test/java/org/apache/maven/archetype/test/ArchetypeGenerationTest.java
+++ 
b/archetype-common/src/test/java/org/apache/maven/archetype/test/ArchetypeGenerationTest.java
@@ -18,6 +18,8 @@
  */
 package org.apache.maven.archetype.test;
 
+import javax.inject.Inject;
+
 import java.io.File;
 import java.util.Properties;
 
@@ -26,27 +28,31 @@ 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.codehaus.plexus.ContainerConfiguration;
-import org.codehaus.plexus.PlexusTestCase;
+import org.codehaus.plexus.testing.PlexusTest;
 import org.codehaus.plexus.util.FileUtils;
 import org.eclipse.aether.DefaultRepositorySystemSession;
 import org.eclipse.aether.RepositorySystem;
 import org.eclipse.aether.repository.LocalRepository;
 import org.eclipse.aether.repository.LocalRepositoryManager;
+import org.junit.jupiter.api.Test;
+
+import static org.codehaus.plexus.testing.PlexusExtension.getBasedir;
+import static org.junit.jupiter.api.Assertions.fail;
 
 /** @author Jason van Zyl */
-public class ArchetypeGenerationTest extends PlexusTestCase {
+@PlexusTest
+public class ArchetypeGenerationTest {
 
-    @Override
-    protected void customizeContainerConfiguration(ContainerConfiguration 
configuration) {
-        configuration.setClassPathScanning("index");
-    }
+    @Inject
+    private ArchetypeManager archetype;
+
+    @Inject
+    private RepositorySystem repositorySystem;
 
+    @Test
     public void testProjectGenerationFromAnArchetype() throws Exception {
-        ArchetypeManager archetype = (ArchetypeManager) 
lookup(ArchetypeManager.ROLE);
 
         DefaultRepositorySystemSession repositorySession = new 
DefaultRepositorySystemSession();
-        RepositorySystem repositorySystem = lookup(RepositorySystem.class);
         LocalRepositoryManager localRepositoryManager = 
repositorySystem.newLocalRepositoryManager(
                 repositorySession, new 
LocalRepository("target/test-classes/repositories/central"));
         repositorySession.setLocalRepositoryManager(localRepositoryManager);
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 1eedbfe4..5f50e04e 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
@@ -18,6 +18,8 @@
  */
 package org.apache.maven.archetype.test;
 
+import javax.inject.Inject;
+
 import java.io.File;
 import java.util.Properties;
 
@@ -26,33 +28,38 @@ 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.codehaus.plexus.ContainerConfiguration;
-import org.codehaus.plexus.PlexusTestCase;
+import org.codehaus.plexus.testing.PlexusTest;
 import org.codehaus.plexus.util.FileUtils;
 import org.eclipse.aether.DefaultRepositorySystemSession;
 import org.eclipse.aether.RepositorySystem;
 import org.eclipse.aether.repository.LocalRepository;
 import org.eclipse.aether.repository.LocalRepositoryManager;
+import org.junit.jupiter.api.Test;
+
+import static org.codehaus.plexus.testing.PlexusExtension.getBasedir;
+import static org.junit.jupiter.api.Assertions.assertNull;
 
 /**
  *
  * @author rafale
  */
-public class InternalCatalogArchetypesVerificationTest extends PlexusTestCase {
+@PlexusTest
+public class InternalCatalogArchetypesVerificationTest {
     private static final String CENTRAL = 
"https://repo.maven.apache.org/maven2";;
 
-    @Override
-    protected void customizeContainerConfiguration(ContainerConfiguration 
configuration) {
-        configuration.setClassPathScanning("index");
-    }
+    @Inject
+    private ArchetypeManager archetypeManager;
+
+    @Inject
+    private RepositorySystem repositorySystem;
 
+    @Test
     public void testInternalCatalog() throws Exception {
 
         File outputDirectory = new File(getBasedir(), 
"target/internal-archetypes-projects");
         outputDirectory.mkdirs();
         FileUtils.cleanDirectory(outputDirectory);
 
-        ArchetypeManager archetypeManager = (ArchetypeManager) 
lookup(ArchetypeManager.class.getName());
         ArchetypeCatalog catalog = archetypeManager.getInternalCatalog();
 
         // quickstart has a parameters with defaults ... so it should not be 
needed
@@ -67,7 +74,6 @@ public class InternalCatalogArchetypesVerificationTest 
extends PlexusTestCase {
             archetype.setRepository(CENTRAL);
 
             DefaultRepositorySystemSession repositorySession = new 
DefaultRepositorySystemSession();
-            RepositorySystem repositorySystem = lookup(RepositorySystem.class);
             LocalRepositoryManager localRepositoryManager = 
repositorySystem.newLocalRepositoryManager(
                     repositorySession, new 
LocalRepository("target/test-classes/repositories/local"));
             
repositorySession.setLocalRepositoryManager(localRepositoryManager);
@@ -84,8 +90,8 @@ public class InternalCatalogArchetypesVerificationTest 
extends PlexusTestCase {
             ArchetypeGenerationResult generationResult = 
archetypeManager.generateProjectFromArchetype(request);
 
             assertNull(
-                    "Archetype wasn't generated successfully: " + 
generationResult.getCause(),
-                    generationResult.getCause());
+                    generationResult.getCause(),
+                    "Archetype wasn't generated successfully: " + 
generationResult.getCause());
 
             count++;
         }
diff --git a/maven-archetype-plugin/pom.xml b/maven-archetype-plugin/pom.xml
index 40b92ccd..7398ba4c 100644
--- a/maven-archetype-plugin/pom.xml
+++ b/maven-archetype-plugin/pom.xml
@@ -144,6 +144,10 @@
       <artifactId>commons-collections4</artifactId>
       <version>4.5.0</version>
     </dependency>
+    <dependency>
+      <groupId>commons-io</groupId>
+      <artifactId>commons-io</artifactId>
+    </dependency>
     <dependency>
       <groupId>org.apache.maven.shared</groupId>
       <artifactId>maven-script-interpreter</artifactId>
@@ -151,8 +155,14 @@
     </dependency>
 
     <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
+      <groupId>org.junit.jupiter</groupId>
+      <artifactId>junit-jupiter-api</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.codehaus.plexus</groupId>
+      <artifactId>plexus-testing</artifactId>
+      <version>2.0.2</version>
       <scope>test</scope>
     </dependency>
     <dependency>
@@ -178,11 +188,6 @@
       <version>1</version>
       <scope>provided</scope>
     </dependency>
-    <dependency>
-      <groupId>org.eclipse.sisu</groupId>
-      <artifactId>org.eclipse.sisu.plexus</artifactId>
-      <scope>provided</scope>
-    </dependency>
   </dependencies>
 
   <build>
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 2f064b64..dcd1d221 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
@@ -18,6 +18,8 @@
  */
 package org.apache.maven.archetype.ui.generation;
 
+import javax.inject.Inject;
+
 import java.io.File;
 import java.util.Properties;
 
@@ -25,34 +27,32 @@ import 
org.apache.maven.archetype.ArchetypeGenerationRequest;
 import org.apache.maven.archetype.common.ArchetypeArtifactManager;
 import org.apache.maven.archetype.metadata.ArchetypeDescriptor;
 import org.apache.maven.archetype.metadata.RequiredProperty;
-import org.codehaus.plexus.ContainerConfiguration;
-import org.codehaus.plexus.PlexusTestCase;
+import org.codehaus.plexus.testing.PlexusTest;
 import org.easymock.EasyMock;
 import org.easymock.IAnswer;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 
 import static org.easymock.EasyMock.anyObject;
 import static org.easymock.EasyMock.anyString;
 import static org.easymock.EasyMock.eq;
 import static org.easymock.EasyMock.isNull;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 /**
  * Tests the ability to use variables in default fields in batch mode.
  */
-public class DefaultArchetypeGenerationConfigurator2Test extends 
PlexusTestCase {
+@PlexusTest
+public class DefaultArchetypeGenerationConfigurator2Test {
+
+    @Inject
     private DefaultArchetypeGenerationConfigurator configurator;
+
     private ArchetypeGenerationQueryer queryer;
     private ArchetypeDescriptor descriptor;
 
-    @Override
-    protected void customizeContainerConfiguration(ContainerConfiguration 
configuration) {
-        configuration.setClassPathScanning("index");
-    }
-
-    @Override
+    @BeforeEach
     public void setUp() throws Exception {
-        super.setUp();
-
-        configurator = (DefaultArchetypeGenerationConfigurator) 
lookup(ArchetypeGenerationConfigurator.ROLE);
 
         descriptor = new ArchetypeDescriptor();
         RequiredProperty groupId = new RequiredProperty();
@@ -105,6 +105,7 @@ public class DefaultArchetypeGenerationConfigurator2Test 
extends PlexusTestCase
         configurator.setArchetypeGenerationQueryer(queryer);
     }
 
+    @Test
     public void testJIRA509FileSetArchetypeDefaultsWithVariables() throws 
Exception {
         ArchetypeGenerationRequest request = new ArchetypeGenerationRequest();
         request.setArchetypeGroupId("archetypeGroupId");
@@ -122,6 +123,7 @@ public class DefaultArchetypeGenerationConfigurator2Test 
extends PlexusTestCase
         assertEquals("com.example.myGroupName", request.getPackage());
     }
 
+    @Test
     public void testInteractive() throws Exception {
         ArchetypeGenerationRequest request = new ArchetypeGenerationRequest();
         request.setArchetypeGroupId("archetypeGroupId");
@@ -156,6 +158,7 @@ public class DefaultArchetypeGenerationConfigurator2Test 
extends PlexusTestCase
         assertEquals("com.example.myGroupName", request.getPackage());
     }
 
+    @Test
     public void testArchetype406ComplexCustomPropertyValue() throws Exception {
         RequiredProperty custom = new RequiredProperty();
         custom.setKey("serviceUpper");
@@ -192,6 +195,7 @@ public class DefaultArchetypeGenerationConfigurator2Test 
extends PlexusTestCase
         assertEquals("MYSERVICENAME", 
request.getProperties().get("serviceUpper"));
     }
 
+    @Test
     public void testArchetype618() throws Exception {
         RequiredProperty custom = getRequiredProperty("serviceName");
         custom.setKey("camelArtifact");
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 07bf672a..cf815572 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
@@ -18,6 +18,8 @@
  */
 package org.apache.maven.archetype.ui.generation;
 
+import javax.inject.Inject;
+
 import java.io.File;
 import java.util.Properties;
 
@@ -28,30 +30,28 @@ import 
org.apache.maven.archetype.exception.ArchetypeNotConfigured;
 import org.apache.maven.archetype.exception.ArchetypeNotDefined;
 import org.apache.maven.archetype.exception.UnknownArchetype;
 import org.apache.maven.archetype.old.descriptor.ArchetypeDescriptor;
-import org.codehaus.plexus.ContainerConfiguration;
-import org.codehaus.plexus.PlexusTestCase;
 import org.codehaus.plexus.components.interactivity.PrompterException;
+import org.codehaus.plexus.testing.PlexusTest;
 import org.easymock.EasyMock;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 
 import static org.easymock.EasyMock.anyObject;
 import static org.easymock.EasyMock.eq;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.fail;
 
 /**
  * TODO probably testing a little deep, could just test ArchetypeConfiguration
  */
-public class DefaultArchetypeGenerationConfiguratorTest extends PlexusTestCase 
{
-    private DefaultArchetypeGenerationConfigurator configurator;
+@PlexusTest
+public class DefaultArchetypeGenerationConfiguratorTest {
 
-    @Override
-    protected void customizeContainerConfiguration(ContainerConfiguration 
configuration) {
-        configuration.setClassPathScanning("index");
-    }
+    @Inject
+    private DefaultArchetypeGenerationConfigurator configurator;
 
-    @Override
+    @BeforeEach
     public void setUp() throws Exception {
-        super.setUp();
-
-        configurator = (DefaultArchetypeGenerationConfigurator) 
lookup(ArchetypeGenerationConfigurator.ROLE);
 
         ArchetypeArtifactManager manager = 
EasyMock.createMock(ArchetypeArtifactManager.class);
 
@@ -79,6 +79,7 @@ public class DefaultArchetypeGenerationConfiguratorTest 
extends PlexusTestCase {
         configurator.setArchetypeArtifactManager(manager);
     }
 
+    @Test
     public void testOldArchetypeGeneratedFieldsInRequestBatchMode()
             throws PrompterException, ArchetypeGenerationConfigurationFailure, 
ArchetypeNotConfigured, UnknownArchetype,
                     ArchetypeNotDefined {
@@ -100,6 +101,7 @@ public class DefaultArchetypeGenerationConfiguratorTest 
extends PlexusTestCase {
         assertEquals("preset-gen-package", request.getPackage());
     }
 
+    @Test
     public void testOldArchetypeGeneratedFieldsDefaultsBatchMode()
             throws PrompterException, UnknownArchetype, ArchetypeNotDefined, 
ArchetypeGenerationConfigurationFailure,
                     ArchetypeNotConfigured {
@@ -120,6 +122,7 @@ public class DefaultArchetypeGenerationConfiguratorTest 
extends PlexusTestCase {
     }
 
     // TODO: should test this in interactive mode to check for prompting
+    @Test
     public void testOldArchetypeGeneratedFieldsDefaultsMissingGroupId()
             throws PrompterException, UnknownArchetype, ArchetypeNotDefined, 
ArchetypeGenerationConfigurationFailure {
         ArchetypeGenerationRequest request = new ArchetypeGenerationRequest();
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 65d404a4..5bbbf528 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
@@ -18,30 +18,25 @@
  */
 package org.apache.maven.archetype.ui.generation;
 
+import javax.inject.Inject;
+
 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;
+import org.codehaus.plexus.testing.PlexusTest;
 import org.easymock.EasyMock;
+import org.junit.jupiter.api.Test;
 
-public class DefaultArchetypeGenerationQueryerTest extends PlexusTestCase {
-
-    private DefaultArchetypeGenerationQueryer queryer;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
-    @Override
-    protected void customizeContainerConfiguration(ContainerConfiguration 
configuration) {
-        configuration.setClassPathScanning("index");
-    }
+@PlexusTest
+public class DefaultArchetypeGenerationQueryerTest {
 
-    @Override
-    public void setUp() throws Exception {
-        super.setUp();
-
-        queryer = (DefaultArchetypeGenerationQueryer) 
lookup(ArchetypeGenerationQueryer.class.getName());
-    }
+    @Inject
+    private DefaultArchetypeGenerationQueryer queryer;
 
+    @Test
     public void testPropertyRegexValidationRetry() throws PrompterException {
         Prompter prompter = EasyMock.createMock(Prompter.class);
 
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 17f8df21..ad182d9c 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
@@ -18,6 +18,8 @@
  */
 package org.apache.maven.archetype.ui.generation;
 
+import javax.inject.Inject;
+
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -25,27 +27,21 @@ 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;
+import org.codehaus.plexus.testing.PlexusTest;
 import org.easymock.EasyMock;
+import org.junit.jupiter.api.Test;
 
-public class DefaultArchetypeSelectionQueryerTest extends PlexusTestCase {
-    private DefaultArchetypeSelectionQueryer queryer;
-
-    @Override
-    protected void customizeContainerConfiguration(ContainerConfiguration 
configuration) {
-        configuration.setClassPathScanning("index");
-    }
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
-    @Override
-    public void setUp() throws Exception {
-        super.setUp();
+@PlexusTest
+public class DefaultArchetypeSelectionQueryerTest {
 
-        queryer = (DefaultArchetypeSelectionQueryer) 
lookup(ArchetypeSelectionQueryer.class);
-    }
+    @Inject
+    private DefaultArchetypeSelectionQueryer queryer;
 
+    @Test
     public void testDefaultArchetypeInMapOtherSelection() throws 
PrompterException {
         Map<String, List<Archetype>> map = createDefaultArchetypeCatalog();
 
@@ -69,6 +65,7 @@ public class DefaultArchetypeSelectionQueryerTest extends 
PlexusTestCase {
         assertEquals("set-version", archetype.getVersion());
     }
 
+    @Test
     public void testDefaultArchetypeInMapDefaultSelection() throws 
PrompterException {
         Map<String, List<Archetype>> map = createDefaultArchetypeCatalog();
 
@@ -92,6 +89,7 @@ public class DefaultArchetypeSelectionQueryerTest extends 
PlexusTestCase {
         assertEquals("default-version", archetype.getVersion());
     }
 
+    @Test
     public void testDefaultArchetypeNotInMap() throws PrompterException {
         Map<String, List<Archetype>> map = createDefaultArchetypeCatalog();
 
@@ -115,6 +113,7 @@ public class DefaultArchetypeSelectionQueryerTest extends 
PlexusTestCase {
         assertEquals("set-version", archetype.getVersion());
     }
 
+    @Test
     public void testNoDefaultArchetype() throws PrompterException {
         Map<String, List<Archetype>> map = createDefaultArchetypeCatalog();
 
@@ -135,6 +134,7 @@ public class DefaultArchetypeSelectionQueryerTest extends 
PlexusTestCase {
         assertEquals("set-version", archetype.getVersion());
     }
 
+    @Test
     public void testArchetypeFiltering() throws PrompterException {
         Map<String, List<Archetype>> map = createDefaultArchetypeCatalog();
 
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 53b8a9f2..fb97c1ea 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
@@ -18,40 +18,30 @@
  */
 package org.apache.maven.archetype.ui.generation;
 
-import java.io.IOException;
+import javax.inject.Inject;
+
 import java.util.List;
 import java.util.Map;
 
 import org.apache.maven.archetype.ArchetypeGenerationRequest;
 import org.apache.maven.archetype.catalog.Archetype;
-import org.apache.maven.archetype.exception.ArchetypeNotDefined;
 import org.apache.maven.archetype.exception.ArchetypeSelectionFailure;
-import org.apache.maven.archetype.exception.UnknownArchetype;
-import org.apache.maven.archetype.exception.UnknownGroup;
 import org.apache.maven.archetype.ui.ArchetypeDefinition;
-import org.codehaus.plexus.ContainerConfiguration;
-import org.codehaus.plexus.PlexusTestCase;
 import org.codehaus.plexus.components.interactivity.PrompterException;
+import org.codehaus.plexus.testing.PlexusTest;
 import org.easymock.EasyMock;
+import org.junit.jupiter.api.Test;
 
-public class DefaultArchetypeSelectorTest extends PlexusTestCase {
-    private DefaultArchetypeSelector selector;
-
-    @Override
-    protected void customizeContainerConfiguration(ContainerConfiguration 
configuration) {
-        configuration.setClassPathScanning("index");
-    }
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
-    @Override
-    public void setUp() throws Exception {
-        super.setUp();
+@PlexusTest
+public class DefaultArchetypeSelectorTest {
 
-        selector = (DefaultArchetypeSelector) lookup(ArchetypeSelector.ROLE);
-    }
+    @Inject
+    private DefaultArchetypeSelector selector;
 
-    public void testArchetypeCoordinatesInRequest()
-            throws PrompterException, IOException, UnknownGroup, 
ArchetypeSelectionFailure, UnknownArchetype,
-                    ArchetypeNotDefined {
+    @Test
+    public void testArchetypeCoordinatesInRequest() throws PrompterException, 
ArchetypeSelectionFailure {
         ArchetypeGenerationRequest request = new ArchetypeGenerationRequest();
         request.setArchetypeArtifactId("preset-artifactId");
         request.setArchetypeGroupId("preset-groupId");
@@ -73,9 +63,8 @@ public class DefaultArchetypeSelectorTest extends 
PlexusTestCase {
         assertEquals("preset-version", request.getArchetypeVersion());
     }
 
-    public void testArchetypeArtifactIdInRequest()
-            throws PrompterException, IOException, UnknownGroup, 
ArchetypeSelectionFailure, UnknownArchetype,
-                    ArchetypeNotDefined {
+    @Test
+    public void testArchetypeArtifactIdInRequest() throws PrompterException, 
ArchetypeSelectionFailure {
         ArchetypeGenerationRequest request = new ArchetypeGenerationRequest();
         request.setArchetypeArtifactId("preset-artifactId");
 
@@ -95,9 +84,8 @@ public class DefaultArchetypeSelectorTest extends 
PlexusTestCase {
         assertEquals(DefaultArchetypeSelector.DEFAULT_ARCHETYPE_VERSION, 
request.getArchetypeVersion());
     }
 
-    public void testArchetypeArtifactIdNotInRequest()
-            throws PrompterException, IOException, UnknownGroup, 
ArchetypeSelectionFailure, UnknownArchetype,
-                    ArchetypeNotDefined {
+    @Test
+    public void testArchetypeArtifactIdNotInRequest() throws 
PrompterException, ArchetypeSelectionFailure {
         ArchetypeGenerationRequest request = new ArchetypeGenerationRequest();
 
         ArchetypeSelectionQueryer queryer = 
EasyMock.createMock(ArchetypeSelectionQueryer.class);
@@ -123,9 +111,8 @@ public class DefaultArchetypeSelectorTest extends 
PlexusTestCase {
         assertEquals("set-version", request.getArchetypeVersion());
     }
 
-    public void testArchetypeNotInRequestDefaultsInBatchMode()
-            throws PrompterException, IOException, UnknownGroup, 
ArchetypeSelectionFailure, UnknownArchetype,
-                    ArchetypeNotDefined {
+    @Test
+    public void testArchetypeNotInRequestDefaultsInBatchMode() throws 
PrompterException, ArchetypeSelectionFailure {
         ArchetypeGenerationRequest request = new ArchetypeGenerationRequest();
 
         ArchetypeSelectionQueryer queryer = 
EasyMock.createMock(ArchetypeSelectionQueryer.class);
@@ -144,9 +131,8 @@ public class DefaultArchetypeSelectorTest extends 
PlexusTestCase {
         assertEquals(DefaultArchetypeSelector.DEFAULT_ARCHETYPE_VERSION, 
request.getArchetypeVersion());
     }
 
-    public void testArchetypeNotInRequestDefaults()
-            throws PrompterException, IOException, UnknownGroup, 
ArchetypeSelectionFailure, UnknownArchetype,
-                    ArchetypeNotDefined {
+    @Test
+    public void testArchetypeNotInRequestDefaults() throws PrompterException, 
ArchetypeSelectionFailure {
         ArchetypeGenerationRequest request = new ArchetypeGenerationRequest();
 
         ArchetypeSelectionQueryer queryer = 
EasyMock.createMock(ArchetypeSelectionQueryer.class);
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 ab2484db..4e900c6f 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
@@ -22,18 +22,18 @@ import java.util.Arrays;
 import java.util.List;
 
 import org.apache.maven.archetype.ui.ArchetypeConfiguration;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class RequiredPropertyComparatorTest {
     private DefaultArchetypeGenerationConfigurator.RequiredPropertyComparator 
requiredPropertyComparator;
 
     private ArchetypeConfiguration archetypeConfiguration;
 
-    @Before
-    public void setUp() throws Exception {
+    @BeforeEach
+    public void setUp() {
         archetypeConfiguration = new ArchetypeConfiguration();
         requiredPropertyComparator =
                 new 
DefaultArchetypeGenerationConfigurator.RequiredPropertyComparator(archetypeConfiguration);
diff --git a/pom.xml b/pom.xml
index cdf9ff17..eb3d1d9d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -194,11 +194,6 @@
         <artifactId>commons-lang3</artifactId>
         <version>3.20.0</version>
       </dependency>
-      <dependency>
-        <groupId>junit</groupId>
-        <artifactId>junit</artifactId>
-        <version>4.13.2</version>
-      </dependency>
       <dependency>
         <groupId>org.xmlunit</groupId>
         <artifactId>xmlunit-matchers</artifactId>

Reply via email to