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" );
}
}