You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sl...@apache.org on 2020/05/20 10:24:18 UTC

[maven] 01/01: [MNG-6909] Use CDI to inject objects under tests

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

slachiewicz pushed a commit to branch MNG-6909
in repository https://gitbox.apache.org/repos/asf/maven.git

commit 9e66ded66b06f9efa9ee00d6b254c65fb948a898
Author: Sylwester Lachiewicz <sl...@apache.org>
AuthorDate: Wed May 20 12:11:21 2020 +0200

    [MNG-6909] Use CDI to inject objects under tests
---
 maven-core/pom.xml                                 |  5 +++
 .../maven/AbstractCoreMavenComponentTestCase.java  | 14 ++++---
 .../java/org/apache/maven/DefaultMavenTest.java    |  6 ++-
 .../src/test/java/org/apache/maven/MavenTest.java  | 15 ++------
 .../maven/ProjectDependenciesResolverTest.java     | 12 ++----
 .../maven/lifecycle/DefaultLifecyclesTest.java     |  5 +--
 .../lifecycle/LifecycleExecutorSubModulesTest.java | 45 +++++++---------------
 .../maven/lifecycle/LifecycleExecutorTest.java     | 34 +++-------------
 .../internal/LifecycleDependencyResolverTest.java  | 17 ++------
 .../org/apache/maven/plugin/PluginManagerTest.java | 12 ++----
 .../PluginParameterExpressionEvaluatorTest.java    | 10 ++---
 .../java/org/apache/maven/cli/MavenCliTest.java    | 11 +-----
 12 files changed, 59 insertions(+), 127 deletions(-)

diff --git a/maven-core/pom.xml b/maven-core/pom.xml
index 43a6bee..a2fa73e 100644
--- a/maven-core/pom.xml
+++ b/maven-core/pom.xml
@@ -128,6 +128,11 @@ under the License.
       <artifactId>commons-lang3</artifactId>
     </dependency>
     <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-simple</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
       <groupId>commons-jxpath</groupId>
       <artifactId>commons-jxpath</artifactId>
       <scope>test</scope>
diff --git a/maven-core/src/test/java/org/apache/maven/AbstractCoreMavenComponentTestCase.java b/maven-core/src/test/java/org/apache/maven/AbstractCoreMavenComponentTestCase.java
index 179b8f9..d9530bc 100644
--- a/maven-core/src/test/java/org/apache/maven/AbstractCoreMavenComponentTestCase.java
+++ b/maven-core/src/test/java/org/apache/maven/AbstractCoreMavenComponentTestCase.java
@@ -22,6 +22,7 @@ package org.apache.maven;
 import java.io.File;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collections;
 import java.util.List;
 import java.util.Properties;
 
@@ -45,28 +46,31 @@ import org.apache.maven.project.ProjectBuildingRequest;
 import org.apache.maven.repository.RepositorySystem;
 import org.apache.maven.repository.internal.MavenRepositorySystemUtils;
 import org.codehaus.plexus.ContainerConfiguration;
+import org.codehaus.plexus.DefaultPlexusContainer;
 import org.codehaus.plexus.PlexusConstants;
 import org.codehaus.plexus.PlexusTestCase;
-import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.util.FileUtils;
 import org.eclipse.aether.DefaultRepositorySystemSession;
 import org.eclipse.aether.internal.impl.SimpleLocalRepositoryManagerFactory;
 import org.eclipse.aether.repository.LocalRepository;
 
+import javax.inject.Inject;
+
 public abstract class AbstractCoreMavenComponentTestCase
     extends PlexusTestCase
 {
-    @Requirement
+    @Inject
     protected RepositorySystem repositorySystem;
 
-    @Requirement
+    @Inject
     protected org.apache.maven.project.ProjectBuilder projectBuilder;
 
     protected void setUp()
         throws Exception
     {
-        repositorySystem = lookup( RepositorySystem.class );
-        projectBuilder = lookup( org.apache.maven.project.ProjectBuilder.class );
+        ((DefaultPlexusContainer)getContainer())
+                .addPlexusInjector( Collections.emptyList(),
+                        binder ->  binder.requestInjection( this ) );
     }
 
     @Override
diff --git a/maven-core/src/test/java/org/apache/maven/DefaultMavenTest.java b/maven-core/src/test/java/org/apache/maven/DefaultMavenTest.java
index ab073a6..4dbb488 100644
--- a/maven-core/src/test/java/org/apache/maven/DefaultMavenTest.java
+++ b/maven-core/src/test/java/org/apache/maven/DefaultMavenTest.java
@@ -3,6 +3,8 @@ package org.apache.maven;
 import org.apache.maven.execution.MavenExecutionRequest;
 import org.apache.maven.execution.MavenExecutionResult;
 
+import javax.inject.Inject;
+
 import static java.util.Arrays.asList;
 
 /*
@@ -25,10 +27,12 @@ import static java.util.Arrays.asList;
  */
 public class DefaultMavenTest extends AbstractCoreMavenComponentTestCase{
 
+    @Inject
+    private Maven maven;
+
     public void testThatErrorDuringProjectDependencyGraphCreationAreStored()
             throws Exception
     {
-        Maven maven = getContainer().lookup( Maven.class );
         MavenExecutionRequest request = createMavenExecutionRequest( getProject( "cyclic-reference" ) ).setGoals( asList("validate") );
 
         MavenExecutionResult result = maven.execute( request );
diff --git a/maven-core/src/test/java/org/apache/maven/MavenTest.java b/maven-core/src/test/java/org/apache/maven/MavenTest.java
index 3e24860..a2c8fba 100644
--- a/maven-core/src/test/java/org/apache/maven/MavenTest.java
+++ b/maven-core/src/test/java/org/apache/maven/MavenTest.java
@@ -17,25 +17,18 @@ package org.apache.maven;
 
 
 import org.apache.maven.exception.ExceptionHandler;
-import org.codehaus.plexus.component.annotations.Requirement;
+
+import javax.inject.Inject;
 
 public class MavenTest
     extends AbstractCoreMavenComponentTestCase
 {
-    @Requirement
+    @Inject
     private Maven maven;
 
-    @Requirement
+    @Inject
     private ExceptionHandler exceptionHandler;
 
-    protected void setUp()
-        throws Exception
-    {
-        super.setUp();
-        maven = lookup( Maven.class );
-        exceptionHandler = lookup( ExceptionHandler.class );
-    }
-
     @Override
     protected void tearDown()
         throws Exception
diff --git a/maven-core/src/test/java/org/apache/maven/ProjectDependenciesResolverTest.java b/maven-core/src/test/java/org/apache/maven/ProjectDependenciesResolverTest.java
index 0bc2978..dabb192 100644
--- a/maven-core/src/test/java/org/apache/maven/ProjectDependenciesResolverTest.java
+++ b/maven-core/src/test/java/org/apache/maven/ProjectDependenciesResolverTest.java
@@ -27,21 +27,15 @@ import java.util.Set;
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.execution.MavenSession;
 import org.apache.maven.project.MavenProject;
-import org.codehaus.plexus.component.annotations.Requirement;
+
+import javax.inject.Inject;
 
 public class ProjectDependenciesResolverTest
     extends AbstractCoreMavenComponentTestCase
 {
-    @Requirement
+    @Inject
     private ProjectDependenciesResolver resolver;
 
-    protected void setUp()
-        throws Exception
-    {
-        super.setUp();
-        resolver = lookup( ProjectDependenciesResolver.class );
-    }
-
     @Override
     protected void tearDown()
         throws Exception
diff --git a/maven-core/src/test/java/org/apache/maven/lifecycle/DefaultLifecyclesTest.java b/maven-core/src/test/java/org/apache/maven/lifecycle/DefaultLifecyclesTest.java
index d025cdd..ecdf988 100644
--- a/maven-core/src/test/java/org/apache/maven/lifecycle/DefaultLifecyclesTest.java
+++ b/maven-core/src/test/java/org/apache/maven/lifecycle/DefaultLifecyclesTest.java
@@ -17,8 +17,8 @@ package org.apache.maven.lifecycle;
 import org.codehaus.plexus.ContainerConfiguration;
 import org.codehaus.plexus.PlexusConstants;
 import org.codehaus.plexus.PlexusTestCase;
-import org.codehaus.plexus.component.annotations.Requirement;
 
+import javax.inject.Inject;
 import java.util.List;
 
 /**
@@ -28,7 +28,7 @@ import java.util.List;
 public class DefaultLifecyclesTest
     extends PlexusTestCase
 {
-    @Requirement
+    @Inject
     private DefaultLifecycles defaultLifeCycles;
 
     @Override
@@ -56,7 +56,6 @@ public class DefaultLifecyclesTest
     }
 
     public void testLifecycle()
-        throws Exception
     {
         final List<Lifecycle> cycles = defaultLifeCycles.getLifeCycles();
         assertNotNull( cycles );
diff --git a/maven-core/src/test/java/org/apache/maven/lifecycle/LifecycleExecutorSubModulesTest.java b/maven-core/src/test/java/org/apache/maven/lifecycle/LifecycleExecutorSubModulesTest.java
index df585fb..3085caa 100644
--- a/maven-core/src/test/java/org/apache/maven/lifecycle/LifecycleExecutorSubModulesTest.java
+++ b/maven-core/src/test/java/org/apache/maven/lifecycle/LifecycleExecutorSubModulesTest.java
@@ -23,10 +23,11 @@ import org.apache.maven.lifecycle.internal.LifecycleExecutionPlanCalculator;
 import org.apache.maven.lifecycle.internal.LifecycleModuleBuilder;
 import org.apache.maven.lifecycle.internal.LifecycleTaskSegmentCalculator;
 import org.apache.maven.lifecycle.internal.MojoExecutor;
-import org.codehaus.plexus.component.annotations.Requirement;
+
+import javax.inject.Inject;
 
 /**
- * Just asserts that it's able to create those components. Handy when plexus gets a nervous breakdown.
+ * Just asserts that it's able to create those components. Handy when CDI container gets a nervous breakdown.
  *
  * @author Kristian Rosenvold
  */
@@ -34,49 +35,29 @@ import org.codehaus.plexus.component.annotations.Requirement;
 public class LifecycleExecutorSubModulesTest
     extends AbstractCoreMavenComponentTestCase
 {
-    @Requirement
+    @Inject
     private DefaultLifecycles defaultLifeCycles;
 
-    @Requirement
+    @Inject
     private MojoExecutor mojoExecutor;
 
-    @Requirement
+    @Inject
     private LifecycleModuleBuilder lifeCycleBuilder;
 
-    @Requirement
+    @Inject
     private LifecycleDependencyResolver lifeCycleDependencyResolver;
 
-    @Requirement
+    @Inject
     private LifecycleExecutionPlanCalculator lifeCycleExecutionPlanCalculator;
 
-    @Requirement
+    @Inject
     private LifeCyclePluginAnalyzer lifeCyclePluginAnalyzer;
 
-    @Requirement
+    @Inject
     private LifecycleTaskSegmentCalculator lifeCycleTaskSegmentCalculator;
 
-
-    protected void setUp()
-        throws Exception
-    {
-        super.setUp();
-        defaultLifeCycles = lookup( DefaultLifecycles.class );
-        mojoExecutor = lookup( MojoExecutor.class );
-        lifeCycleBuilder = lookup( LifecycleModuleBuilder.class );
-        lifeCycleDependencyResolver = lookup( LifecycleDependencyResolver.class );
-        lifeCycleExecutionPlanCalculator = lookup( LifecycleExecutionPlanCalculator.class );
-        lifeCyclePluginAnalyzer = lookup( LifeCyclePluginAnalyzer.class );
-        lifeCycleTaskSegmentCalculator = lookup( LifecycleTaskSegmentCalculator.class );
-        lookup( ExceptionHandler.class );
-    }
-
-    @Override
-    protected void tearDown()
-        throws Exception
-    {
-        defaultLifeCycles = null;
-        super.tearDown();
-    }
+    @Inject
+    private ExceptionHandler exceptionHandler;
 
     protected String getProjectsDirectory()
     {
@@ -84,7 +65,6 @@ public class LifecycleExecutorSubModulesTest
     }
 
     public void testCreation()
-        throws Exception
     {
         assertNotNull( defaultLifeCycles );
         assertNotNull( mojoExecutor );
@@ -93,6 +73,7 @@ public class LifecycleExecutorSubModulesTest
         assertNotNull( lifeCycleExecutionPlanCalculator );
         assertNotNull( lifeCyclePluginAnalyzer );
         assertNotNull( lifeCycleTaskSegmentCalculator );
+        assertNotNull( exceptionHandler );
     }
 
 }
\ No newline at end of file
diff --git a/maven-core/src/test/java/org/apache/maven/lifecycle/LifecycleExecutorTest.java b/maven-core/src/test/java/org/apache/maven/lifecycle/LifecycleExecutorTest.java
index 5252a21..08c0aac 100644
--- a/maven-core/src/test/java/org/apache/maven/lifecycle/LifecycleExecutorTest.java
+++ b/maven-core/src/test/java/org/apache/maven/lifecycle/LifecycleExecutorTest.java
@@ -22,7 +22,6 @@ import java.util.Collections;
 import java.util.List;
 
 import org.apache.maven.AbstractCoreMavenComponentTestCase;
-import org.apache.maven.exception.ExceptionHandler;
 import org.apache.maven.execution.MavenSession;
 import org.apache.maven.execution.MojoExecutionEvent;
 import org.apache.maven.execution.MojoExecutionListener;
@@ -33,7 +32,6 @@ import org.apache.maven.lifecycle.internal.DefaultLifecycleTaskSegmentCalculator
 import org.apache.maven.lifecycle.internal.ExecutionPlanItem;
 import org.apache.maven.lifecycle.internal.LifecycleExecutionPlanCalculator;
 import org.apache.maven.lifecycle.internal.LifecycleTask;
-import org.apache.maven.lifecycle.internal.LifecycleTaskSegmentCalculator;
 import org.apache.maven.lifecycle.internal.MojoDescriptorCreator;
 import org.apache.maven.lifecycle.internal.TaskSegment;
 import org.apache.maven.model.Plugin;
@@ -42,45 +40,25 @@ import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoNotFoundException;
 import org.apache.maven.plugin.descriptor.MojoDescriptor;
 import org.apache.maven.project.MavenProject;
-import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.util.xml.Xpp3Dom;
 
+import javax.inject.Inject;
+
 public class LifecycleExecutorTest
     extends AbstractCoreMavenComponentTestCase
 {
-    @Requirement
+    @Inject
     private DefaultLifecycleExecutor lifecycleExecutor;
 
-    @Requirement
+    @Inject
     private DefaultLifecycleTaskSegmentCalculator lifeCycleTaskSegmentCalculator;
 
-    @Requirement
+    @Inject
     private LifecycleExecutionPlanCalculator lifeCycleExecutionPlanCalculator;
 
-    @Requirement
+    @Inject
     private MojoDescriptorCreator mojoDescriptorCreator;
 
-
-    protected void setUp()
-        throws Exception
-    {
-        super.setUp();
-        lifecycleExecutor = (DefaultLifecycleExecutor) lookup( LifecycleExecutor.class );
-        lifeCycleTaskSegmentCalculator =
-            (DefaultLifecycleTaskSegmentCalculator) lookup( LifecycleTaskSegmentCalculator.class );
-        lifeCycleExecutionPlanCalculator = lookup( LifecycleExecutionPlanCalculator.class );
-        mojoDescriptorCreator = lookup( MojoDescriptorCreator.class );
-        lookup( ExceptionHandler.class );
-    }
-
-    @Override
-    protected void tearDown()
-        throws Exception
-    {
-        lifecycleExecutor = null;
-        super.tearDown();
-    }
-
     protected String getProjectsDirectory()
     {
         return "src/test/projects/lifecycle-executor";
diff --git a/maven-core/src/test/java/org/apache/maven/lifecycle/internal/LifecycleDependencyResolverTest.java b/maven-core/src/test/java/org/apache/maven/lifecycle/internal/LifecycleDependencyResolverTest.java
index 89257d1..6d47829 100644
--- a/maven-core/src/test/java/org/apache/maven/lifecycle/internal/LifecycleDependencyResolverTest.java
+++ b/maven-core/src/test/java/org/apache/maven/lifecycle/internal/LifecycleDependencyResolverTest.java
@@ -30,12 +30,12 @@ import org.apache.maven.AbstractCoreMavenComponentTestCase;
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.execution.MavenSession;
 import org.apache.maven.project.MavenProject;
-import org.codehaus.plexus.component.annotations.Requirement;
-import org.junit.Test;
+
+import javax.inject.Inject;
 
 public class LifecycleDependencyResolverTest extends AbstractCoreMavenComponentTestCase
 {
-    @Requirement
+    @Inject
     private LifecycleDependencyResolver resolver;
 
     @Override
@@ -44,15 +44,6 @@ public class LifecycleDependencyResolverTest extends AbstractCoreMavenComponentT
         return null;
     }
 
-    @Override
-    protected void setUp()
-        throws Exception
-    {
-        super.setUp();
-        resolver = lookup( LifecycleDependencyResolver.class );
-    }
-
-    @Test
     public void testCachedReactorProjectDependencies() throws Exception
     {
         MavenSession session = createMavenSession( new File( "src/test/projects/lifecycle-dependency-resolver/pom.xml" ), new Properties(), true );
@@ -71,7 +62,7 @@ public class LifecycleDependencyResolverTest extends AbstractCoreMavenComponentT
         MavenProject lib = session.getProjects().get( 1 );
         MavenProject war = session.getProjects().get( 2 );
 
-        assertEquals( null , war.getArtifactMap().get("org.apache.maven.its.mng6300:mng6300-lib").getFile() );
+        assertNull( war.getArtifactMap().get( "org.apache.maven.its.mng6300:mng6300-lib" ).getFile() );
 
         lib.getArtifact().setFile( new File( "lib.jar" ) );
 
diff --git a/maven-core/src/test/java/org/apache/maven/plugin/PluginManagerTest.java b/maven-core/src/test/java/org/apache/maven/plugin/PluginManagerTest.java
index 3d8306e..58e71fe 100644
--- a/maven-core/src/test/java/org/apache/maven/plugin/PluginManagerTest.java
+++ b/maven-core/src/test/java/org/apache/maven/plugin/PluginManagerTest.java
@@ -31,22 +31,16 @@ import org.apache.maven.plugin.descriptor.MojoDescriptor;
 import org.apache.maven.plugin.descriptor.PluginDescriptor;
 import org.apache.maven.project.MavenProject;
 import org.codehaus.plexus.classworlds.realm.ClassRealm;
-import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.component.repository.ComponentDescriptor;
 
+import javax.inject.Inject;
+
 public class PluginManagerTest
     extends AbstractCoreMavenComponentTestCase
 {
-    @Requirement
+    @Inject
     private DefaultBuildPluginManager pluginManager;
 
-    protected void setUp()
-        throws Exception
-    {
-        super.setUp();
-        pluginManager = (DefaultBuildPluginManager) lookup( BuildPluginManager.class );
-    }
-
     @Override
     protected void tearDown()
         throws Exception
diff --git a/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.java b/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.java
index 04a7ee5..e579d69 100644
--- a/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.java
+++ b/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.java
@@ -47,6 +47,8 @@ import org.codehaus.plexus.PlexusContainer;
 import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator;
 import org.codehaus.plexus.util.dag.CycleDetectedException;
 
+import javax.inject.Inject;
+
 /**
  * @author Jason van Zyl
  */
@@ -55,15 +57,9 @@ public class PluginParameterExpressionEvaluatorTest
 {
     private static final String FS = File.separator;
 
+    @Inject
     private RepositorySystem factory;
 
-    public void setUp()
-        throws Exception
-    {
-        super.setUp();
-        factory = lookup( RepositorySystem.class );
-    }
-
     @Override
     protected void tearDown()
         throws Exception
diff --git a/maven-embedder/src/test/java/org/apache/maven/cli/MavenCliTest.java b/maven-embedder/src/test/java/org/apache/maven/cli/MavenCliTest.java
index 173b78c..5838944 100644
--- a/maven-embedder/src/test/java/org/apache/maven/cli/MavenCliTest.java
+++ b/maven-embedder/src/test/java/org/apache/maven/cli/MavenCliTest.java
@@ -322,15 +322,8 @@ public class MavenCliTest
                 super.customizeContainer(container);
                 container.addComponent(mock(Maven.class), "org.apache.maven.Maven");
 
-                ((DefaultPlexusContainer)container).addPlexusInjector(Collections.<PlexusBeanModule>emptyList(),
-                        new Module()
-                        {
-                            public void configure( final Binder binder )
-                            {
-                                binder.bind( EventSpyDispatcher.class ).toInstance( eventSpyDispatcherMock );
-                            }
-                        }
-                    );
+                ((DefaultPlexusContainer)container).addPlexusInjector(Collections.emptyList(),
+                        binder -> binder.bind( EventSpyDispatcher.class ).toInstance( eventSpyDispatcherMock ) );
             }
         };