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

[maven] branch MNG-7106_maven-3.8.x created (now 5f19ded76)

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

michaelo pushed a change to branch MNG-7106_maven-3.8.x
in repository https://gitbox.apache.org/repos/asf/maven.git


      at 5f19ded76 [MNG-7106] Accept same lower and upper bound in version spec string (#826)

This branch includes the following new commits:

     new 5f19ded76 [MNG-7106] Accept same lower and upper bound in version spec string (#826)

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-7106] Accept same lower and upper bound in version spec string (#826)

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

michaelo pushed a commit to branch MNG-7106_maven-3.8.x
in repository https://gitbox.apache.org/repos/asf/maven.git

commit 5f19ded76160285148c4786c1dd3669c0110b0f9
Author: Konrad Windszus <kw...@apache.org>
AuthorDate: Thu Oct 13 15:31:56 2022 +0200

    [MNG-7106] Accept same lower and upper bound in version spec string (#826)
---
 .../org/apache/maven/artifact/versioning/VersionRange.java   | 12 ++++++------
 .../apache/maven/artifact/versioning/VersionRangeTest.java   |  7 +++++++
 2 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/VersionRange.java b/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/VersionRange.java
index 3689b2e7a..27cca5604 100644
--- a/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/VersionRange.java
+++ b/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/VersionRange.java
@@ -212,10 +212,6 @@ public class VersionRange
         {
             String lowerBound = process.substring( 0, index ).trim();
             String upperBound = process.substring( index + 1 ).trim();
-            if ( lowerBound.equals( upperBound ) )
-            {
-                throw new InvalidVersionSpecificationException( "Range cannot have identical boundaries: " + spec );
-            }
 
             ArtifactVersion lowerVersion = null;
             if ( lowerBound.length() > 0 )
@@ -228,9 +224,13 @@ public class VersionRange
                 upperVersion = new DefaultArtifactVersion( upperBound );
             }
 
-            if ( upperVersion != null && lowerVersion != null && upperVersion.compareTo( lowerVersion ) < 0 )
+            if ( upperVersion != null && lowerVersion != null )
             {
-                throw new InvalidVersionSpecificationException( "Range defies version ordering: " + spec );
+                int result = upperVersion.compareTo( lowerVersion );
+                if ( result < 0 || ( result == 0 && ( !lowerBoundInclusive || !upperBoundInclusive ) ) )
+                {
+                    throw new InvalidVersionSpecificationException( "Range defies version ordering: " + spec );
+                }
             }
 
             restriction = new Restriction( lowerVersion, lowerBoundInclusive, upperVersion, upperBoundInclusive );
diff --git a/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/VersionRangeTest.java b/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/VersionRangeTest.java
index 2cf0fec93..9c98f2976 100644
--- a/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/VersionRangeTest.java
+++ b/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/VersionRangeTest.java
@@ -154,6 +154,13 @@ public class VersionRangeTest
         assertTrue( range.containsVersion( new DefaultArtifactVersion( "5.0.9.0" ) ) );
     }
 
+    public void testSameUpperAndLowerBoundRoundtrip() throws InvalidVersionSpecificationException
+    {
+        VersionRange range = VersionRange.createFromVersionSpec( "[1.0]" );
+        VersionRange range2 = VersionRange.createFromVersionSpec( range.toString() );
+        assertEquals( range, range2 );
+    }
+
     public void testInvalidRanges()
     {
         checkInvalidRange( "(1.0)" );