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

kwin pushed a commit to branch feature/equals
in repository https://gitbox.apache.org/repos/asf/maven-scm.git

commit 9b5b8c6e81271edaa4137d4903c1f34ea374ef51
Author: Konrad Windszus <[email protected]>
AuthorDate: Thu Mar 19 12:44:57 2026 +0100

    Add equals()/hashCode()/toString()
---
 .../main/java/org/apache/maven/scm/ScmFileSet.java | 28 ++++++++++++++++---
 .../main/java/org/apache/maven/scm/ScmResult.java  | 32 ++++++++++++++++++++--
 2 files changed, 54 insertions(+), 6 deletions(-)

diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/ScmFileSet.java 
b/maven-scm-api/src/main/java/org/apache/maven/scm/ScmFileSet.java
index 2b14c341f..9ba8725bb 100644
--- a/maven-scm-api/src/main/java/org/apache/maven/scm/ScmFileSet.java
+++ b/maven-scm-api/src/main/java/org/apache/maven/scm/ScmFileSet.java
@@ -24,6 +24,7 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
+import java.util.Objects;
 
 import org.apache.commons.lang3.StringUtils;
 import org.codehaus.plexus.util.DirectoryScanner;
@@ -182,10 +183,29 @@ public String getExcludes() {
         return this.excludes;
     }
 
-    /**
-     * {@inheritDoc}
-     */
+    @Override
     public String toString() {
-        return "basedir = " + basedir + "; files = " + files;
+        return "ScmFileSet [basedir=" + basedir + ", includes=" + includes + 
", excludes=" + excludes + ", files=" + files + "]";
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(basedir, excludes, files, includes);
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj) {
+            return true;
+        }
+        if (obj == null) {
+            return false;
+        }
+        if (getClass() != obj.getClass()) {
+            return false;
+        }
+        ScmFileSet other = (ScmFileSet) obj;
+        return Objects.equals(basedir, other.basedir) && 
Objects.equals(excludes, other.excludes) && Objects.equals(files, other.files)
+                && Objects.equals(includes, other.includes);
     }
 }
diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/ScmResult.java 
b/maven-scm-api/src/main/java/org/apache/maven/scm/ScmResult.java
index aeed242cd..04541b703 100644
--- a/maven-scm-api/src/main/java/org/apache/maven/scm/ScmResult.java
+++ b/maven-scm-api/src/main/java/org/apache/maven/scm/ScmResult.java
@@ -19,6 +19,7 @@
 package org.apache.maven.scm;
 
 import java.io.Serializable;
+import java.util.Objects;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -39,7 +40,7 @@ public class ScmResult implements Serializable {
     public static final String PASSWORD_PLACE_HOLDER = "********";
 
     // works for SVN and git
-    private Pattern patternForUserColonPasswordAtHost = 
Pattern.compile("^.*:(.*)@.*$", Pattern.DOTALL);
+    private static final Pattern PATTERN_FOR_USER_COLON_PASSWORD_AT_HOST = 
Pattern.compile("^.*:(.*)@.*$", Pattern.DOTALL);
 
     /**
      * Copy constructor.
@@ -109,7 +110,7 @@ public String getCommandLine() {
 
     private String masked(String commandOutput) {
         if (null != commandOutput) {
-            final Matcher passwordMatcher = 
patternForUserColonPasswordAtHost.matcher(commandOutput);
+            final Matcher passwordMatcher = 
PATTERN_FOR_USER_COLON_PASSWORD_AT_HOST.matcher(commandOutput);
             if (passwordMatcher.find()) {
                 // clear password
                 final String clearPassword = passwordMatcher.group(1);
@@ -119,4 +120,31 @@ private String masked(String commandOutput) {
         }
         return commandOutput;
     }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(commandLine, commandOutput, providerMessage, 
success);
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj) {
+            return true;
+        }
+        if (obj == null) {
+            return false;
+        }
+        if (getClass() != obj.getClass()) {
+            return false;
+        }
+        ScmResult other = (ScmResult) obj;
+        return Objects.equals(commandLine, other.commandLine) && 
Objects.equals(commandOutput, other.commandOutput)
+                && Objects.equals(providerMessage, other.providerMessage) && 
success == other.success;
+    }
+
+    @Override
+    public String toString() {
+        return "ScmResult [success=" + success + ", providerMessage=" + 
providerMessage + ", commandOutput=" + commandOutput
+                + ", commandLine=" + commandLine + "]";
+    }
 }

Reply via email to