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

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


The following commit(s) were added to refs/heads/maven-3.9.x by this push:
     new 741deac98f [MNG-8146] Drop commons-lang (#1564)
741deac98f is described below

commit 741deac98fe3b5a6226245f32179b13bbe14ab76
Author: Tamas Cservenak <ta...@cservenak.net>
AuthorDate: Thu Jun 6 20:49:34 2024 +0200

    [MNG-8146] Drop commons-lang (#1564)
    
    For start, keeping almost same LOC but the distro zip lost almost 1 MB (was 
10MB now is 9MB). Second, am really unsure why it was introduced in the first 
place, as it merely caused confusion, over StringUtils for example.
    
    ---
    
    https://issues.apache.org/jira/browse/MNG-8146
---
 maven-artifact/pom.xml                             |  4 ---
 .../org/apache/maven/artifact/ArtifactUtils.java   |  8 ++++--
 .../versioning/DefaultArtifactVersion.java         | 15 ++++++++--
 .../versioning/DefaultArtifactVersionTest.java     |  9 ++++++
 maven-core/pom.xml                                 |  4 ---
 .../DefaultBeanConfigurationRequest.java           | 14 ++++++++--
 .../rtinfo/internal/DefaultRuntimeInformation.java | 16 +++++++----
 maven-embedder/pom.xml                             |  4 ---
 .../org/apache/maven/cli/CLIReportingUtils.java    |  2 +-
 .../main/java/org/apache/maven/cli/MavenCli.java   | 32 ++++++++++------------
 .../transfer/AbstractMavenTransferListener.java    | 22 +++++++++------
 .../cli/transfer/ConsoleMavenTransferListener.java | 18 +++++++++---
 .../java/org/apache/maven/cli/MavenCliTest.java    |  1 -
 pom.xml                                            | 16 -----------
 14 files changed, 91 insertions(+), 74 deletions(-)

diff --git a/maven-artifact/pom.xml b/maven-artifact/pom.xml
index cf2f207d21..3b43e78072 100644
--- a/maven-artifact/pom.xml
+++ b/maven-artifact/pom.xml
@@ -35,10 +35,6 @@ under the License.
       <groupId>org.codehaus.plexus</groupId>
       <artifactId>plexus-utils</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.apache.commons</groupId>
-      <artifactId>commons-lang3</artifactId>
-    </dependency>
   </dependencies>
 
   <build>
diff --git 
a/maven-artifact/src/main/java/org/apache/maven/artifact/ArtifactUtils.java 
b/maven-artifact/src/main/java/org/apache/maven/artifact/ArtifactUtils.java
index 61df919b60..1ba88a549d 100644
--- a/maven-artifact/src/main/java/org/apache/maven/artifact/ArtifactUtils.java
+++ b/maven-artifact/src/main/java/org/apache/maven/artifact/ArtifactUtils.java
@@ -23,9 +23,9 @@ import java.util.Collection;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import java.util.regex.Matcher;
 
-import org.apache.commons.lang3.Validate;
 import org.apache.maven.artifact.versioning.VersionRange;
 
 /**
@@ -89,9 +89,11 @@ public final class ArtifactUtils {
     }
 
     private static void notBlank(String str, String message) {
-        int c = str != null && str.length() > 0 ? str.charAt(0) : 0;
+        int c = str != null && !str.isEmpty() ? str.charAt(0) : 0;
         if ((c < '0' || c > '9') && (c < 'a' || c > 'z')) {
-            Validate.notBlank(str, message);
+            if (Objects.requireNonNull(str, message).trim().isEmpty()) {
+                throw new IllegalArgumentException(message);
+            }
         }
     }
 
diff --git 
a/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/DefaultArtifactVersion.java
 
b/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/DefaultArtifactVersion.java
index 10da535c15..d336625023 100644
--- 
a/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/DefaultArtifactVersion.java
+++ 
b/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/DefaultArtifactVersion.java
@@ -20,8 +20,6 @@ package org.apache.maven.artifact.versioning;
 
 import java.util.StringTokenizer;
 
-import static org.apache.commons.lang3.math.NumberUtils.isDigits;
-
 /**
  * Default implementation of artifact versioning.
  *
@@ -176,6 +174,19 @@ public class DefaultArtifactVersion implements 
ArtifactVersion {
         return tryParseInt(s);
     }
 
+    private static boolean isDigits(String str) {
+        if (str == null || str.trim().isEmpty()) {
+            return false;
+        }
+        for (int i = 0; i < str.length(); i++) {
+            char c = str.charAt(i);
+            if (!(c >= '0' && c <= '9')) {
+                return false;
+            }
+        }
+        return true;
+    }
+
     private static Integer tryParseInt(String s) {
         // for performance, check digits instead of relying later on catching 
NumberFormatException
         if (!isDigits(s)) {
diff --git 
a/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/DefaultArtifactVersionTest.java
 
b/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/DefaultArtifactVersionTest.java
index a1b7412413..368db34f60 100644
--- 
a/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/DefaultArtifactVersionTest.java
+++ 
b/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/DefaultArtifactVersionTest.java
@@ -80,6 +80,15 @@ public class DefaultArtifactVersionTest extends TestCase {
         checkVersionParsing("1.2.3-200705301630", 1, 2, 3, 0, "200705301630");
     }
 
+    public void testVersionParsingNot09() {
+        String ver = "१.२.३";
+        assertTrue(Character.isDigit(ver.charAt(0)));
+        assertTrue(Character.isDigit(ver.charAt(2)));
+        assertTrue(Character.isDigit(ver.charAt(4)));
+        ArtifactVersion version = newArtifactVersion(ver);
+        assertEquals(ver, version.getQualifier());
+    }
+
     public void testVersionComparing() {
         assertVersionEqual("1", "1");
         assertVersionOlder("1", "2");
diff --git a/maven-core/pom.xml b/maven-core/pom.xml
index 174a37ae9e..4d464c4301 100644
--- a/maven-core/pom.xml
+++ b/maven-core/pom.xml
@@ -131,10 +131,6 @@ under the License.
       <groupId>org.codehaus.plexus</groupId>
       <artifactId>plexus-component-annotations</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.apache.commons</groupId>
-      <artifactId>commons-lang3</artifactId>
-    </dependency>
     <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-api</artifactId>
diff --git 
a/maven-core/src/main/java/org/apache/maven/configuration/DefaultBeanConfigurationRequest.java
 
b/maven-core/src/main/java/org/apache/maven/configuration/DefaultBeanConfigurationRequest.java
index 5e5291c1ff..9584cd2e23 100644
--- 
a/maven-core/src/main/java/org/apache/maven/configuration/DefaultBeanConfigurationRequest.java
+++ 
b/maven-core/src/main/java/org/apache/maven/configuration/DefaultBeanConfigurationRequest.java
@@ -18,7 +18,8 @@
  */
 package org.apache.maven.configuration;
 
-import org.apache.commons.lang3.Validate;
+import java.util.Objects;
+
 import org.apache.maven.model.Build;
 import org.apache.maven.model.Model;
 import org.apache.maven.model.Plugin;
@@ -103,9 +104,16 @@ public class DefaultBeanConfigurationRequest implements 
BeanConfigurationRequest
         return this;
     }
 
+    private static final String GROUP_ID_ERROR_MESSAGE = "groupId can neither 
be null, empty, nor blank";
+    private static final String ARTIFACT_ID_ERROR_MESSAGE = "artifactId can 
neither be null, empty, nor blank";
+
     private Plugin findPlugin(Model model, String groupId, String artifactId) {
-        Validate.notBlank(groupId, "groupId can neither be null, empty nor 
blank");
-        Validate.notBlank(artifactId, "artifactId can neither be null, empty 
nor blank");
+        if (Objects.requireNonNull(groupId, 
GROUP_ID_ERROR_MESSAGE).trim().isEmpty()) {
+            throw new IllegalArgumentException(GROUP_ID_ERROR_MESSAGE);
+        }
+        if (Objects.requireNonNull(artifactId, 
ARTIFACT_ID_ERROR_MESSAGE).trim().isEmpty()) {
+            throw new IllegalArgumentException(ARTIFACT_ID_ERROR_MESSAGE);
+        }
 
         if (model != null) {
             Build build = model.getBuild();
diff --git 
a/maven-core/src/main/java/org/apache/maven/rtinfo/internal/DefaultRuntimeInformation.java
 
b/maven-core/src/main/java/org/apache/maven/rtinfo/internal/DefaultRuntimeInformation.java
index f34bb73afa..1a9da2f699 100644
--- 
a/maven-core/src/main/java/org/apache/maven/rtinfo/internal/DefaultRuntimeInformation.java
+++ 
b/maven-core/src/main/java/org/apache/maven/rtinfo/internal/DefaultRuntimeInformation.java
@@ -20,10 +20,9 @@ package org.apache.maven.rtinfo.internal;
 
 import java.io.IOException;
 import java.io.InputStream;
+import java.util.Objects;
 import java.util.Properties;
 
-import org.apache.commons.lang3.StringUtils;
-import org.apache.commons.lang3.Validate;
 import org.apache.maven.rtinfo.RuntimeInformation;
 import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.component.annotations.Requirement;
@@ -79,11 +78,16 @@ public class DefaultRuntimeInformation implements 
RuntimeInformation {
         return mavenVersion;
     }
 
+    private static final String VERSION_RANGE_ERROR_MESSAGE = "versionRange 
can neither be null, empty, nor blank";
+
     public boolean isMavenVersion(String versionRange) {
+        if (Objects.requireNonNull(versionRange, VERSION_RANGE_ERROR_MESSAGE)
+                .trim()
+                .isEmpty()) {
+            throw new IllegalArgumentException(VERSION_RANGE_ERROR_MESSAGE);
+        }
         VersionScheme versionScheme = new GenericVersionScheme();
 
-        Validate.notBlank(versionRange, "versionRange can neither be null, 
empty nor blank");
-
         VersionConstraint constraint;
         try {
             constraint = versionScheme.parseVersionConstraint(versionRange);
@@ -94,7 +98,9 @@ public class DefaultRuntimeInformation implements 
RuntimeInformation {
         Version current;
         try {
             String mavenVersion = getMavenVersion();
-            Validate.validState(StringUtils.isNotEmpty(mavenVersion), "Could 
not determine current Maven version");
+            if (mavenVersion == null || mavenVersion.trim().isEmpty()) {
+                throw new IllegalStateException("Could not determine current 
Maven version");
+            }
 
             current = versionScheme.parseVersion(mavenVersion);
         } catch (InvalidVersionSpecificationException e) {
diff --git a/maven-embedder/pom.xml b/maven-embedder/pom.xml
index b3bd623f72..066c0539e8 100644
--- a/maven-embedder/pom.xml
+++ b/maven-embedder/pom.xml
@@ -148,10 +148,6 @@ under the License.
       <artifactId>commons-io</artifactId>
       <scope>test</scope>
     </dependency>
-    <dependency>
-      <groupId>org.apache.commons</groupId>
-      <artifactId>commons-lang3</artifactId>
-    </dependency>
     <dependency>
       <groupId>org.mockito</groupId>
       <artifactId>mockito-core</artifactId>
diff --git 
a/maven-embedder/src/main/java/org/apache/maven/cli/CLIReportingUtils.java 
b/maven-embedder/src/main/java/org/apache/maven/cli/CLIReportingUtils.java
index 33d94f3704..4bfd9b2512 100644
--- a/maven-embedder/src/main/java/org/apache/maven/cli/CLIReportingUtils.java
+++ b/maven-embedder/src/main/java/org/apache/maven/cli/CLIReportingUtils.java
@@ -25,8 +25,8 @@ import java.util.Date;
 import java.util.Locale;
 import java.util.Properties;
 
-import org.apache.commons.lang3.StringUtils;
 import org.codehaus.plexus.util.Os;
+import org.codehaus.plexus.util.StringUtils;
 import org.slf4j.Logger;
 
 import static org.apache.maven.shared.utils.logging.MessageUtils.buffer;
diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java 
b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
index 8a3878878b..f04676d33a 100644
--- a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
+++ b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
@@ -51,7 +51,6 @@ import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.Option;
 import org.apache.commons.cli.ParseException;
 import org.apache.commons.cli.UnrecognizedOptionException;
-import org.apache.commons.lang3.math.NumberUtils;
 import org.apache.maven.BuildAbort;
 import org.apache.maven.InternalErrorException;
 import org.apache.maven.Maven;
@@ -1442,27 +1441,24 @@ public class MavenCli {
         if (threadConfiguration.endsWith("C")) {
             threadConfiguration = threadConfiguration.substring(0, 
threadConfiguration.length() - 1);
 
-            if (!NumberUtils.isParsable(threadConfiguration)) {
-                throw new IllegalArgumentException("Invalid threads core 
multiplier value: '" + threadConfiguration
-                        + "C'. Supported are int and float values ending with 
C.");
-            }
-
-            float coreMultiplier = Float.parseFloat(threadConfiguration);
+            try {
+                float coreMultiplier = Float.parseFloat(threadConfiguration);
 
-            if (coreMultiplier <= 0.0f) {
-                throw new IllegalArgumentException("Invalid threads core 
multiplier value: '" + threadConfiguration
-                        + "C'. Value must be positive.");
-            }
+                if (coreMultiplier <= 0.0f) {
+                    throw new IllegalArgumentException("Invalid threads core 
multiplier value: '" + threadConfiguration
+                            + "C'. Value must be positive.");
+                }
 
-            int procs = Runtime.getRuntime().availableProcessors();
-            int threads = (int) (coreMultiplier * procs);
-            return threads == 0 ? 1 : threads;
-        } else {
-            if (!NumberUtils.isParsable(threadConfiguration)) {
+                int procs = Runtime.getRuntime().availableProcessors();
+                int threads = (int) (coreMultiplier * procs);
+                return threads == 0 ? 1 : threads;
+            } catch (NumberFormatException e) {
                 throw new IllegalArgumentException(
-                        "Invalid threads value: '" + threadConfiguration + "'. 
Supported are int values.");
+                        "Invalid threads core multiplier value: '" + 
threadConfiguration
+                                + "C'. Supported are int and float values 
ending with C.",
+                        e);
             }
-
+        } else {
             try {
                 int threads = Integer.parseInt(threadConfiguration);
 
diff --git 
a/maven-embedder/src/main/java/org/apache/maven/cli/transfer/AbstractMavenTransferListener.java
 
b/maven-embedder/src/main/java/org/apache/maven/cli/transfer/AbstractMavenTransferListener.java
index e91be53209..23211917f9 100644
--- 
a/maven-embedder/src/main/java/org/apache/maven/cli/transfer/AbstractMavenTransferListener.java
+++ 
b/maven-embedder/src/main/java/org/apache/maven/cli/transfer/AbstractMavenTransferListener.java
@@ -23,7 +23,6 @@ import java.text.DecimalFormat;
 import java.text.DecimalFormatSymbols;
 import java.util.Locale;
 
-import org.apache.commons.lang3.Validate;
 import org.apache.maven.shared.utils.logging.MessageUtils;
 import org.eclipse.aether.transfer.AbstractTransferListener;
 import org.eclipse.aether.transfer.TransferCancelledException;
@@ -105,7 +104,9 @@ public abstract class AbstractMavenTransferListener extends 
AbstractTransferList
             public abstract String symbol();
 
             public static ScaleUnit getScaleUnit(long size) {
-                Validate.isTrue(size >= 0L, "file size cannot be negative: 
%s", size);
+                if (size < 0L) {
+                    throw new IllegalArgumentException("file size cannot be 
negative: " + size);
+                }
 
                 if (size >= GIGABYTE.bytes()) {
                     return GIGABYTE;
@@ -137,7 +138,9 @@ public abstract class AbstractMavenTransferListener extends 
AbstractTransferList
 
         @SuppressWarnings("checkstyle:magicnumber")
         public String format(long size, ScaleUnit unit, boolean omitSymbol) {
-            Validate.isTrue(size >= 0L, "file size cannot be negative: %s", 
size);
+            if (size < 0L) {
+                throw new IllegalArgumentException("file size cannot be 
negative: " + size);
+            }
 
             if (unit == null) {
                 unit = ScaleUnit.getScaleUnit(size);
@@ -162,12 +165,13 @@ public abstract class AbstractMavenTransferListener 
extends AbstractTransferList
         }
 
         public String formatProgress(long progressedSize, long size) {
-            Validate.isTrue(progressedSize >= 0L, "progressed file size cannot 
be negative: %s", progressedSize);
-            Validate.isTrue(
-                    size >= 0L && progressedSize <= size || size < 0L,
-                    "progressed file size cannot be greater than size: %s > 
%s",
-                    progressedSize,
-                    size);
+            if (progressedSize < 0L) {
+                throw new IllegalArgumentException("progressed file size 
cannot be negative: " + progressedSize);
+            }
+            if (size >= 0L && progressedSize > size) {
+                throw new IllegalArgumentException(
+                        "progressed file size cannot be greater than size: " + 
progressedSize + " > " + size);
+            }
 
             if (size >= 0L && progressedSize != size) {
                 ScaleUnit unit = ScaleUnit.getScaleUnit(size);
diff --git 
a/maven-embedder/src/main/java/org/apache/maven/cli/transfer/ConsoleMavenTransferListener.java
 
b/maven-embedder/src/main/java/org/apache/maven/cli/transfer/ConsoleMavenTransferListener.java
index 93144b63b4..e867762ca1 100644
--- 
a/maven-embedder/src/main/java/org/apache/maven/cli/transfer/ConsoleMavenTransferListener.java
+++ 
b/maven-embedder/src/main/java/org/apache/maven/cli/transfer/ConsoleMavenTransferListener.java
@@ -25,7 +25,6 @@ import java.util.LinkedHashMap;
 import java.util.Locale;
 import java.util.Map;
 
-import org.apache.commons.lang3.StringUtils;
 import org.eclipse.aether.transfer.TransferCancelledException;
 import org.eclipse.aether.transfer.TransferEvent;
 import org.eclipse.aether.transfer.TransferResource;
@@ -37,10 +36,10 @@ import org.eclipse.aether.transfer.TransferResource;
  */
 public class ConsoleMavenTransferListener extends 
AbstractMavenTransferListener {
 
-    private Map<TransferResource, Long> transfers =
+    private final Map<TransferResource, Long> transfers =
             Collections.synchronizedMap(new LinkedHashMap<TransferResource, 
Long>());
 
-    private boolean printResourceNames;
+    private final boolean printResourceNames;
     private int lastLength;
 
     public ConsoleMavenTransferListener(PrintStream out, boolean 
printResourceNames) {
@@ -97,7 +96,7 @@ public class ConsoleMavenTransferListener extends 
AbstractMavenTransferListener
         StringBuilder status = new StringBuilder();
 
         if (printResourceNames) {
-            status.append(StringUtils.substringAfterLast(resourceName, "/"));
+            status.append(resourceName(resourceName));
             status.append(" (");
         }
 
@@ -110,6 +109,17 @@ public class ConsoleMavenTransferListener extends 
AbstractMavenTransferListener
         return status.toString();
     }
 
+    private String resourceName(String resourceName) {
+        if (resourceName == null || resourceName.trim().isEmpty()) {
+            return "";
+        }
+        final int pos = resourceName.lastIndexOf("/");
+        if (pos == -1 || pos == resourceName.length() - 1) {
+            return "";
+        }
+        return resourceName.substring(pos + 1);
+    }
+
     private void pad(StringBuilder buffer, int spaces) {
         String block = "                                        ";
         while (spaces > 0) {
diff --git 
a/maven-embedder/src/test/java/org/apache/maven/cli/MavenCliTest.java 
b/maven-embedder/src/test/java/org/apache/maven/cli/MavenCliTest.java
index ddeceba5d6..0005079fd2 100644
--- a/maven-embedder/src/test/java/org/apache/maven/cli/MavenCliTest.java
+++ b/maven-embedder/src/test/java/org/apache/maven/cli/MavenCliTest.java
@@ -89,7 +89,6 @@ public class MavenCliTest {
         int cpus = Runtime.getRuntime().availableProcessors();
         assertEquals((int) (cpus * 2.2), 
cli.calculateDegreeOfConcurrency("2.2C"));
         assertEquals(1, cli.calculateDegreeOfConcurrency("0.0001C"));
-        assertThrows(IllegalArgumentException.class, new 
ConcurrencyCalculator("2.C"));
         assertThrows(IllegalArgumentException.class, new 
ConcurrencyCalculator("-2.2C"));
         assertThrows(IllegalArgumentException.class, new 
ConcurrencyCalculator("0C"));
     }
diff --git a/pom.xml b/pom.xml
index 71d0688ccf..403e2635ed 100644
--- a/pom.xml
+++ b/pom.xml
@@ -129,7 +129,6 @@ under the License.
     <classWorldsVersion>2.8.0</classWorldsVersion>
     <commonsCliVersion>1.8.0</commonsCliVersion>
     <commonsIoVersion>2.16.1</commonsIoVersion>
-    <commonsLangVersion>3.14.0</commonsLangVersion>
     <junitVersion>4.13.2</junitVersion>
     <hamcrestVersion>2.2</hamcrestVersion>
     <mockitoVersion>4.11.0</mockitoVersion>
@@ -442,16 +441,6 @@ under the License.
         <groupId>commons-cli</groupId>
         <artifactId>commons-cli</artifactId>
         <version>${commonsCliVersion}</version>
-        <exclusions>
-          <exclusion>
-            <groupId>commons-lang</groupId>
-            <artifactId>commons-lang</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>commons-logging</groupId>
-            <artifactId>commons-logging</artifactId>
-          </exclusion>
-        </exclusions>
       </dependency>
       <dependency>
         <groupId>commons-io</groupId>
@@ -463,11 +452,6 @@ under the License.
         <artifactId>commons-jxpath</artifactId>
         <version>${jxpathVersion}</version>
       </dependency>
-      <dependency>
-        <groupId>org.apache.commons</groupId>
-        <artifactId>commons-lang3</artifactId>
-        <version>${commonsLangVersion}</version>
-      </dependency>
       <dependency>
         <groupId>org.codehaus.plexus</groupId>
         <artifactId>plexus-sec-dispatcher</artifactId>

Reply via email to