This is an automated email from the ASF dual-hosted git repository.
sarutak 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 c532f82 [SPARK-35609][BUILD] Add style rules to prohibit to use a
Guava's API which is incompatible with newer versions
c532f82 is described below
commit c532f8260ee2f2f4170dc50f7e890fafab438b76
Author: Kousuke Saruta <[email protected]>
AuthorDate: Thu Jun 3 21:52:41 2021 +0900
[SPARK-35609][BUILD] Add style rules to prohibit to use a Guava's API which
is incompatible with newer versions
### What changes were proposed in this pull request?
This PR adds rules to `checkstyle.xml` and `scalastyle-config.xml` to avoid
introducing `Objects.toStringHelper` a Guava's API which is no longer present
in newer Guava.
### Why are the changes needed?
SPARK-30272 (#26911) replaced `Objects.toStringHelper` which is an APIs
Guava 14 provides with `commons.lang3` API because `Objects.toStringHelper` is
no longer present in newer Guava.
But toStringHelper was introduced into Spark again and replaced them in
SPARK-35420 (#32567).
I think it's better to have a style rule to avoid such repetition.
SPARK-30272 replaced some APIs aside from `Objects.toStringHelper` but
`Objects.toStringHelper` seems to affect Spark for now so I add rules only for
it.
### Does this PR introduce _any_ user-facing change?
No.
### How was this patch tested?
I confirmed that `lint-java` and `lint-scala` detect the usage of
`toStringHelper` and let the lint check fail.
```
$ dev/lint-java
exec: curl --silent --show-error -L
https://downloads.lightbend.com/scala/2.12.14/scala-2.12.14.tgz
Using `mvn` from path: /opt/maven/3.6.3//bin/mvn
Checkstyle checks failed at following occurrences:
[ERROR]
src/main/java/org/apache/spark/network/protocol/OneWayMessage.java:[78]
(regexp) RegexpSinglelineJava: Avoid using Object.toStringHelper. Use
ToStringBuilder instead.
$ dev/lint-scala
Scalastyle checks failed at following occurrences:
[error]
/home/kou/work/oss/spark/core/src/main/scala/org/apache/spark/rdd/RDD.scala:93:25:
Avoid using Object.toStringHelper. Use ToStringBuilder instead.
[error] Total time: 25 s, completed 2021/06/02 16:18:25
```
Closes #32740 from sarutak/style-rule-for-guava.
Authored-by: Kousuke Saruta <[email protected]>
Signed-off-by: Kousuke Saruta <[email protected]>
---
dev/checkstyle.xml | 5 ++++-
scalastyle-config.xml | 4 ++++
2 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/dev/checkstyle.xml b/dev/checkstyle.xml
index 483fc7c..06c79a9 100644
--- a/dev/checkstyle.xml
+++ b/dev/checkstyle.xml
@@ -185,6 +185,9 @@
<property name="format" value="throw new \w+Error\("/>
<property name="message" value="Avoid throwing error in
application code."/>
</module>
-
+ <module name="RegexpSinglelineJava">
+ <property name="format" value="Objects\.toStringHelper"/>
+ <property name="message" value="Avoid using Object.toStringHelper.
Use ToStringBuilder instead." />
+ </module>
</module>
</module>
diff --git a/scalastyle-config.xml b/scalastyle-config.xml
index c1dc57b..c06b4ab 100644
--- a/scalastyle-config.xml
+++ b/scalastyle-config.xml
@@ -397,4 +397,8 @@ This file is divided into 3 sections:
<parameters><parameter name="ignore">-1,0,1,2,3</parameter></parameters>
</check>
+ <check customId="GuavaToStringHelper" level="error"
class="org.scalastyle.file.RegexChecker" enabled="true">
+ <parameters><parameter
name="regex">Objects.toStringHelper</parameter></parameters>
+ <customMessage>Avoid using Object.toStringHelper. Use ToStringBuilder
instead.</customMessage>
+ </check>
</scalastyle>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]