You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by cs...@apache.org on 2022/04/02 15:25:31 UTC

[maven] branch maven-3.9.x-mng-7432-ut created (now 87dfcb9)

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

cstamas pushed a change to branch maven-3.9.x-mng-7432-ut
in repository https://gitbox.apache.org/repos/asf/maven.git.


      at 87dfcb9  [MNG-7432] Proposed UT for maven-3.9.x and 3.8.x

This branch includes the following new commits:

     new 87dfcb9  [MNG-7432] Proposed UT for maven-3.9.x and 3.8.x

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


[maven] 01/01: [MNG-7432] Proposed UT for maven-3.9.x and 3.8.x

Posted by cs...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

cstamas pushed a commit to branch maven-3.9.x-mng-7432-ut
in repository https://gitbox.apache.org/repos/asf/maven.git

commit 87dfcb91e840ddd2fb760be5b9fb296abcc93d36
Author: Tamas Cservenak <ta...@cservenak.net>
AuthorDate: Sat Apr 2 17:23:54 2022 +0200

    [MNG-7432] Proposed UT for maven-3.9.x and 3.8.x
    
    This UT makes sure that DefaultMaven sets up proper type
    of WorkspaceReader in RepositorySystemSession.
    
    For example, this UT fails with current maven-3.8.x and
    maven-3.9.x branches.
---
 .../java/org/apache/maven/DefaultMavenTest.java    | 29 ++++++++++++++++++++++
 .../src/test/projects/default-maven/simple/pom.xml | 10 ++++++++
 2 files changed, 39 insertions(+)

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 1360d8e..a0a0b92 100644
--- a/maven-core/src/test/java/org/apache/maven/DefaultMavenTest.java
+++ b/maven-core/src/test/java/org/apache/maven/DefaultMavenTest.java
@@ -4,11 +4,15 @@ import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.DefaultArtifact;
 import org.apache.maven.execution.MavenExecutionRequest;
 import org.apache.maven.execution.MavenExecutionResult;
+import org.apache.maven.execution.MavenSession;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.project.MavenProjectHelper;
+import org.apache.maven.repository.internal.MavenWorkspaceReader;
+import org.codehaus.plexus.component.annotations.Component;
 
 import java.io.File;
 import java.nio.file.Files;
+import java.util.concurrent.atomic.AtomicReference;
 
 import static java.util.Arrays.asList;
 
@@ -33,6 +37,31 @@ import static java.util.Arrays.asList;
 public class DefaultMavenTest
     extends AbstractCoreMavenComponentTestCase
 {
+    @Component( role = AbstractMavenLifecycleParticipant.class, hint = "WsrClassCatcher" )
+    private static final class WsrClassCatcher extends AbstractMavenLifecycleParticipant
+    {
+        private final AtomicReference<Class<?>> wsrClassRef = new AtomicReference<>( null );
+
+        @Override
+        public void afterProjectsRead( MavenSession session ) throws MavenExecutionException
+        {
+            wsrClassRef.set( session.getRepositorySession().getWorkspaceReader().getClass() );
+        }
+    }
+
+    public void testEnsureResolverSessionHasMavenWorkspaceReader() throws Exception
+    {
+        WsrClassCatcher wsrClassCatcher = ( WsrClassCatcher ) getContainer()
+                .lookup( AbstractMavenLifecycleParticipant.class, "WsrClassCatcher" );
+        Maven maven = getContainer().lookup( Maven.class );
+        MavenExecutionRequest request = createMavenExecutionRequest( getProject( "simple" ) ).setGoals( asList("validate") );
+
+        MavenExecutionResult result = maven.execute( request );
+
+        Class<?> wsrClass = wsrClassCatcher.wsrClassRef.get();
+        assertTrue( "is null", wsrClass != null );
+        assertTrue( String.valueOf( wsrClass ), MavenWorkspaceReader.class.isAssignableFrom( wsrClass ) );
+    }
 
     public void testThatErrorDuringProjectDependencyGraphCreationAreStored()
             throws Exception
diff --git a/maven-core/src/test/projects/default-maven/simple/pom.xml b/maven-core/src/test/projects/default-maven/simple/pom.xml
new file mode 100644
index 0000000..0221f82
--- /dev/null
+++ b/maven-core/src/test/projects/default-maven/simple/pom.xml
@@ -0,0 +1,10 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>simple</groupId>
+  <artifactId>simple</artifactId>
+  <version>1.0-SNAPSHOT</version>
+  <packaging>pom</packaging>
+
+</project>