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

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


The following commit(s) were added to refs/heads/master by this push:
     new 483d49c  Improve Maven version detection
483d49c is described below

commit 483d49c07001de17a365308e601012b3d9a07915
Author: rfscholte <[email protected]>
AuthorDate: Tue Jul 6 14:43:28 2021 +0200

    Improve Maven version detection
---
 .../internal/DefaultDependencyCollectorBuilder.java      | 16 ++++++----------
 .../graph/internal/DefaultDependencyGraphBuilder.java    | 16 ++++++----------
 2 files changed, 12 insertions(+), 20 deletions(-)

diff --git 
a/src/main/java/org/apache/maven/shared/dependency/graph/internal/DefaultDependencyCollectorBuilder.java
 
b/src/main/java/org/apache/maven/shared/dependency/graph/internal/DefaultDependencyCollectorBuilder.java
index 13b3a51..cddf101 100644
--- 
a/src/main/java/org/apache/maven/shared/dependency/graph/internal/DefaultDependencyCollectorBuilder.java
+++ 
b/src/main/java/org/apache/maven/shared/dependency/graph/internal/DefaultDependencyCollectorBuilder.java
@@ -20,6 +20,7 @@ package org.apache.maven.shared.dependency.graph.internal;
  */
 
 import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
+import org.apache.maven.execution.MavenSession;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.project.ProjectBuildingRequest;
 import org.apache.maven.shared.dependency.graph.DependencyCollectorBuilder;
@@ -81,20 +82,15 @@ public class DefaultDependencyCollectorBuilder
      */
     protected static boolean isMaven31()
     {
-        return canFindCoreClass( "org.eclipse.aether.artifact.Artifact" ); // 
Maven 3.1 specific
-    }
-
-    private static boolean canFindCoreClass( String className )
-    {
         try
         {
-            Thread.currentThread().getContextClassLoader().loadClass( 
className );
-
-            return true;
+            Class<?> repoSessionClass =  MavenSession.class.getMethod( 
"getRepositorySession" ).getReturnType();
+            
+            return "org.eclipse.aether.RepositorySystemSession".equals( 
repoSessionClass.getName() );
         }
-        catch ( ClassNotFoundException e )
+        catch ( NoSuchMethodException e )
         {
-            return false;
+            throw new IllegalStateException( "Cannot determine return type of 
MavenSession.getRepositorySession" );
         }
     }
 
diff --git 
a/src/main/java/org/apache/maven/shared/dependency/graph/internal/DefaultDependencyGraphBuilder.java
 
b/src/main/java/org/apache/maven/shared/dependency/graph/internal/DefaultDependencyGraphBuilder.java
index cccd577..84f27f3 100644
--- 
a/src/main/java/org/apache/maven/shared/dependency/graph/internal/DefaultDependencyGraphBuilder.java
+++ 
b/src/main/java/org/apache/maven/shared/dependency/graph/internal/DefaultDependencyGraphBuilder.java
@@ -20,6 +20,7 @@ package org.apache.maven.shared.dependency.graph.internal;
  */
 
 import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
+import org.apache.maven.execution.MavenSession;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.project.ProjectBuildingRequest;
 import org.apache.maven.shared.dependency.graph.DependencyGraphBuilder;
@@ -90,20 +91,15 @@ public class DefaultDependencyGraphBuilder
      */
     protected static boolean isMaven31()
     {
-        return canFindCoreClass( "org.eclipse.aether.artifact.Artifact" ); // 
Maven 3.1 specific
-    }
-
-    private static boolean canFindCoreClass( String className )
-    {
         try
         {
-            Thread.currentThread().getContextClassLoader().loadClass( 
className );
-
-            return true;
+            Class<?> repoSessionClass =  MavenSession.class.getMethod( 
"getRepositorySession" ).getReturnType();
+            
+            return "org.eclipse.aether.RepositorySystemSession".equals( 
repoSessionClass.getName() );
         }
-        catch ( ClassNotFoundException e )
+        catch ( NoSuchMethodException e )
         {
-            return false;
+            throw new IllegalStateException( "Cannot determine return type of 
MavenSession.getRepositorySession" );
         }
     }
 

Reply via email to