You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by kw...@apache.org on 2022/11/07 13:14:49 UTC

[maven] branch bugfix/MNG-7561-Maven3.9-backport created (now c3efd67b4)

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

kwin pushed a change to branch bugfix/MNG-7561-Maven3.9-backport
in repository https://gitbox.apache.org/repos/asf/maven.git


      at c3efd67b4 [MNG-7561] never resolve version ranges with same lower and upper bound

This branch includes the following new commits:

     new c3efd67b4 [MNG-7561] never resolve version ranges with same lower and upper bound

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-7561] never resolve version ranges with same lower and upper bound

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

kwin pushed a commit to branch bugfix/MNG-7561-Maven3.9-backport
in repository https://gitbox.apache.org/repos/asf/maven.git

commit c3efd67b40b19269ef711841ec2879dded7382ea
Author: Konrad Windszus <kw...@apache.org>
AuthorDate: Wed Oct 12 09:11:10 2022 +0200

    [MNG-7561] never resolve version ranges with same lower and upper bound
    
    Co-authored-by: Guillaume Nodet <gn...@gmail.com>
---
 .../internal/DefaultVersionRangeResolver.java      | 41 +++++++++++++---------
 1 file changed, 25 insertions(+), 16 deletions(-)

diff --git a/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java
index 491376f67..0879b696b 100644
--- a/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java
+++ b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java
@@ -47,6 +47,7 @@ import org.eclipse.aether.util.version.GenericVersionScheme;
 import org.eclipse.aether.version.InvalidVersionSpecificationException;
 import org.eclipse.aether.version.Version;
 import org.eclipse.aether.version.VersionConstraint;
+import org.eclipse.aether.version.VersionRange;
 import org.eclipse.aether.version.VersionScheme;
 
 import javax.inject.Inject;
@@ -146,28 +147,36 @@ public class DefaultVersionRangeResolver
         }
         else
         {
-            Map<String, ArtifactRepository> versionIndex = getVersions( session, result, request );
-
-            List<Version> versions = new ArrayList<>();
-            for ( Map.Entry<String, ArtifactRepository> v : versionIndex.entrySet() )
+            VersionRange.Bound lowerBound = versionConstraint.getRange().getLowerBound();
+            if ( lowerBound != null && lowerBound.equals( versionConstraint.getRange().getUpperBound() ) )
+            {
+                result.addVersion( lowerBound.getVersion() );
+            }
+            else
             {
-                try
+                Map<String, ArtifactRepository> versionIndex = getVersions( session, result, request );
+
+                List<Version> versions = new ArrayList<>();
+                for ( Map.Entry<String, ArtifactRepository> v : versionIndex.entrySet() )
                 {
-                    Version ver = versionScheme.parseVersion( v.getKey() );
-                    if ( versionConstraint.containsVersion( ver ) )
+                    try
+                    {
+                        Version ver = versionScheme.parseVersion( v.getKey() );
+                        if ( versionConstraint.containsVersion( ver ) )
+                        {
+                            versions.add( ver );
+                            result.setRepository( ver, v.getValue() );
+                        }
+                    }
+                    catch ( InvalidVersionSpecificationException e )
                     {
-                        versions.add( ver );
-                        result.setRepository( ver, v.getValue() );
+                        result.addException( e );
                     }
                 }
-                catch ( InvalidVersionSpecificationException e )
-                {
-                    result.addException( e );
-                }
-            }
 
-            Collections.sort( versions );
-            result.setVersions( versions );
+                Collections.sort( versions );
+                result.setVersions( versions );
+            }
         }
 
         return result;