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

yangjie01 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/spark.git


The following commit(s) were added to refs/heads/master by this push:
     new aa1f7f11d939 [SPARK-53261][CORE][SQL] Use Java 
`String.join|StringJoiner` instead of Guava `Joiner`
aa1f7f11d939 is described below

commit aa1f7f11d939e64c62148104400740781e301f30
Author: yangjie01 <yangji...@baidu.com>
AuthorDate: Wed Aug 13 10:59:51 2025 +0800

    [SPARK-53261][CORE][SQL] Use Java `String.join|StringJoiner` instead of 
Guava `Joiner`
    
    ### What changes were proposed in this pull request?
    This pull request replaces `com.google.common.base.Joiner#join` with 
`java.lang.String#join`|`java.util.StringJoiner`.
    
    ### Why are the changes needed?
    Give priority to using methods within the JDK.
    
    ### Does this PR introduce _any_ user-facing change?
    No
    
    ### How was this patch tested?
    - Pass Github Actions
    
    ### Was this patch authored or co-authored using generative AI tooling?
    No
    
    Closes #51992 from LuciferYang/joiner.
    
    Authored-by: yangjie01 <yangji...@baidu.com>
    Signed-off-by: yangjie01 <yangji...@baidu.com>
---
 core/src/main/java/org/apache/spark/util/EnumUtil.java      | 13 +++++++++++--
 dev/checkstyle.xml                                          |  1 +
 scalastyle-config.xml                                       |  5 +++++
 .../hive/service/cli/operation/LogDivertAppender.java       | 13 ++++++-------
 4 files changed, 23 insertions(+), 9 deletions(-)

diff --git a/core/src/main/java/org/apache/spark/util/EnumUtil.java 
b/core/src/main/java/org/apache/spark/util/EnumUtil.java
index c40c7e727613..6c397640590f 100644
--- a/core/src/main/java/org/apache/spark/util/EnumUtil.java
+++ b/core/src/main/java/org/apache/spark/util/EnumUtil.java
@@ -16,7 +16,8 @@
  */
 package org.apache.spark.util;
 
-import com.google.common.base.Joiner;
+import java.util.StringJoiner;
+
 import org.apache.spark.annotation.Private;
 
 @Private
@@ -33,6 +34,14 @@ public class EnumUtil {
     }
     throw new IllegalArgumentException(
       String.format("Illegal type='%s'. Supported type values: %s",
-        str, Joiner.on(", ").join(constants)));
+        str, joinToString(constants)));
+  }
+
+  private static <E extends Enum<E>> String joinToString(E[] enums) {
+    StringJoiner stringJoiner = new StringJoiner(", ");
+    for (E e : enums) {
+      stringJoiner.add(e.name());
+    }
+    return stringJoiner.toString();
   }
 }
diff --git a/dev/checkstyle.xml b/dev/checkstyle.xml
index 8bad02a93394..4cf26871a8db 100644
--- a/dev/checkstyle.xml
+++ b/dev/checkstyle.xml
@@ -192,6 +192,7 @@
             <property name="illegalClasses" 
value="org.apache.commons.lang3.SystemUtils" />
             <property name="illegalClasses" 
value="org.apache.hadoop.io.IOUtils" />
             <property name="illegalClasses" 
value="org.apache.parquet.Preconditions" />
+            <property name="illegalClasses" 
value="com.google.common.base.Joiner" />
             <property name="illegalClasses" 
value="com.google.common.base.Objects" />
             <property name="illegalClasses" 
value="com.google.common.base.Preconditions" />
             <property name="illegalClasses" 
value="com.google.common.base.Strings" />
diff --git a/scalastyle-config.xml b/scalastyle-config.xml
index ca8e85cd2960..f9b260e14c6f 100644
--- a/scalastyle-config.xml
+++ b/scalastyle-config.xml
@@ -812,6 +812,11 @@ This file is divided into 3 sections:
     <customMessage>Use Java APIs (like java.util.Objects) 
instead.</customMessage>
   </check>
 
+  <check customId="googleJoiner" level="error" 
class="org.scalastyle.file.RegexChecker" enabled="true">
+    <parameters><parameter 
name="regex">com\.google\.common\.base\.Joiner\b</parameter></parameters>
+    <customMessage>Use Java APIs (like String.join/StringJoiner) 
instead.</customMessage>
+  </check>
+
   <check customId="googleBaseEncoding" level="error" 
class="org.scalastyle.file.RegexChecker" enabled="true">
     <parameters><parameter 
name="regex">com\.google\.common\.io\.BaseEncoding\b</parameter></parameters>
     <customMessage>Use Java APIs (like java.util.Base64) 
instead.</customMessage>
diff --git 
a/sql/hive-thriftserver/src/main/java/org/apache/hive/service/cli/operation/LogDivertAppender.java
 
b/sql/hive-thriftserver/src/main/java/org/apache/hive/service/cli/operation/LogDivertAppender.java
index 32cc42f008bd..2a54d2619061 100644
--- 
a/sql/hive-thriftserver/src/main/java/org/apache/hive/service/cli/operation/LogDivertAppender.java
+++ 
b/sql/hive-thriftserver/src/main/java/org/apache/hive/service/cli/operation/LogDivertAppender.java
@@ -38,7 +38,6 @@ import org.apache.logging.log4j.core.Appender;
 import org.apache.logging.log4j.core.appender.ConsoleAppender;
 import org.apache.logging.log4j.core.appender.AbstractWriterAppender;
 import org.apache.logging.log4j.core.appender.WriterManager;
-import com.google.common.base.Joiner;
 import org.apache.logging.log4j.core.config.Property;
 import org.apache.logging.log4j.message.Message;
 
@@ -67,17 +66,17 @@ public class LogDivertAppender extends 
AbstractWriterAppender<WriterManager> {
     /* Patterns that are excluded in verbose logging level.
      * Filter out messages coming from log processing classes, or we'll run an 
infinite loop.
      */
-    private static final Pattern verboseExcludeNamePattern = 
Pattern.compile(Joiner.on("|")
-      .join(new String[] {LOG.getName(), OperationLog.class.getName(),
-      OperationManager.class.getName()}));
+    private static final Pattern verboseExcludeNamePattern = 
Pattern.compile(String.join("|",
+      LOG.getName(), OperationLog.class.getName(),
+      OperationManager.class.getName()));
 
     /* Patterns that are included in execution logging level.
      * In execution mode, show only select logger messages.
      */
-    private static final Pattern executionIncludeNamePattern = 
Pattern.compile(Joiner.on("|")
-      .join(new String[] {"org.apache.hadoop.mapreduce.JobSubmitter",
+    private static final Pattern executionIncludeNamePattern = 
Pattern.compile(String.join("|",
+      "org.apache.hadoop.mapreduce.JobSubmitter",
       "org.apache.hadoop.mapreduce.Job", "SessionState", Task.class.getName(),
-      "org.apache.hadoop.hive.ql.exec.spark.status.SparkJobMonitor"}));
+      "org.apache.hadoop.hive.ql.exec.spark.status.SparkJobMonitor"));
 
     /* Patterns that are included in performance logging level.
      * In performance mode, show execution and performance logger messages.


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@spark.apache.org
For additional commands, e-mail: commits-h...@spark.apache.org

Reply via email to