You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by vl...@apache.org on 2019/11/17 14:44:22 UTC

[calcite-avatica] branch master updated (d90fb8c -> 92045d0)

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

vladimirsitnikov pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/calcite-avatica.git.


 discard d90fb8c  Use Spotless and .editorconfig for import order normalization instead of Checkstyle
     new 92045d0  Use Spotless and .editorconfig for import order normalization instead of Checkstyle

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (d90fb8c)
            \
             N -- N -- N   refs/heads/master (92045d0)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

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.


Summary of changes:
 .gitignore | 1 +
 1 file changed, 1 insertion(+)


[calcite-avatica] 01/01: Use Spotless and .editorconfig for import order normalization instead of Checkstyle

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

vladimirsitnikov pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/calcite-avatica.git

commit 92045d0686f1b0130ad791cec9ae544b829dbb79
Author: Vladimir Sitnikov <si...@gmail.com>
AuthorDate: Sun Nov 17 16:29:06 2019 +0300

    Use Spotless and .editorconfig for import order normalization instead of Checkstyle
    
    It makes it much simpler to understand the violations,
    and it provides automatic fix via ./gradlew spotlessApply
---
 .editorconfig                                      | 47 ++++++++++++++++++
 .gitignore                                         |  1 +
 build.gradle.kts                                   | 58 +++++++++++++++++++++-
 .../license.header.java                            | 23 ---------
 core/build.gradle.kts                              |  6 ++-
 .../remote/AvaticaCommonsHttpClientImpl.java       |  1 -
 .../avatica/remote/ClientKeytabJaasConf.java       |  1 -
 .../avatica/remote/DoAsAvaticaHttpClient.java      |  1 -
 .../calcite/avatica/remote/KerberosConnection.java |  1 -
 .../avatica/remote/KerberosConnectionTest.java     |  1 -
 gradle.properties                                  |  1 +
 .../org/apache/calcite/avatica/jdbc/JdbcMeta.java  |  4 +-
 .../avatica/server/AbstractAvaticaHandler.java     |  1 -
 .../calcite/avatica/server/AvaticaJsonHandler.java |  1 -
 .../avatica/server/AvaticaProtobufHandler.java     |  1 -
 .../avatica/server/AvaticaSpnegoAuthenticator.java |  1 -
 .../avatica/server/DelegatingAvaticaHandler.java   |  2 -
 ...ttpQueryStringParameterRemoteUserExtractor.java |  1 -
 .../apache/calcite/avatica/server/HttpServer.java  |  1 -
 .../server/PropertyBasedSpnegoLoginService.java    |  1 -
 .../avatica/server/ServerKeytabJaasConf.java       |  1 -
 .../apache/calcite/avatica/AvaticaSpnegoTest.java  |  2 -
 .../org/apache/calcite/avatica/HttpBaseTest.java   |  1 -
 .../org/apache/calcite/avatica/SpnegoTestUtil.java |  1 -
 .../org/apache/calcite/avatica/SslDriverTest.java  | 10 ++--
 .../avatica/server/AbstractAvaticaHandlerTest.java |  1 -
 .../calcite/avatica/server/AvaticaJaasKrbUtil.java |  1 -
 .../server/AvaticaSpnegoAuthenticatorTest.java     |  1 -
 .../avatica/server/CustomAuthHttpServerTest.java   |  7 ++-
 .../avatica/server/HttpServerCustomizerTest.java   |  1 -
 .../server/HttpServerSpnegoWithJaasTest.java       |  1 -
 .../server/HttpServerSpnegoWithoutJaasTest.java    |  1 -
 .../apache/calcite/avatica/test/AvaticaSuite.java  |  1 -
 settings.gradle.kts                                |  1 +
 site/community/index.md                            |  1 -
 src/main/config/checkstyle/checker.xml             |  7 ---
 standalone-server/build.gradle.kts                 |  6 ++-
 tck/build.gradle.kts                               |  7 +--
 38 files changed, 131 insertions(+), 74 deletions(-)

diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000..b25c9f6
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,47 @@
+root = true
+
+[*]
+trim_trailing_whitespace = true
+insert_final_newline = true
+charset = utf-8
+indent_style = space
+
+[{*.sh,gradlew}]
+end_of_line = lf
+
+[{*.bat,*.cmd}]
+end_of_line = crlf
+
+[{*.kts,*.kt}]
+ij_kotlin_code_style_defaults = KOTLIN_OFFICIAL
+ij_kotlin_name_count_to_use_star_import = 99
+ij_kotlin_name_count_to_use_star_import_for_members = 99
+ij_java_use_single_class_imports = true
+max_line_length = 100
+ij_any_wrap_long_lines = true
+
+[*.java]
+# Doc: https://youtrack.jetbrains.com/issue/IDEA-170643#focus=streamItem-27-3708697.0-0
+# $ means "static"
+ij_java_imports_layout = org.apache.calcite.**,|,org.apache.**,|,au.com.**,|,com.**,|,io.**,|,mondrian.**,|,net.**,|,org.**,|,scala.**,|,java.**,javax.**,|,*,|,$com.**,|,$org.apache.calcite.**,|,$org.apache.**,|,$org.**,|,$java,|,$*
+indent_size = 2
+tab_width = 2
+max_line_length = 100
+ij_any_spaces_around_additive_operators = true
+ij_any_spaces_around_assignment_operators = true
+ij_any_spaces_around_bitwise_operators = true
+ij_any_spaces_around_equality_operators = true
+ij_any_spaces_around_lambda_arrow = true
+ij_any_spaces_around_logical_operators = true
+ij_any_spaces_around_multiplicative_operators = true
+ij_any_spaces_around_relational_operators = true
+ij_any_spaces_around_shift_operators = true
+ij_continuation_indent_size = 4
+ij_java_if_brace_force = always
+ij_java_indent_case_from_switch = false
+ij_java_space_after_colon = true
+ij_java_space_before_colon = true
+ij_java_ternary_operation_signs_on_next_line = true
+ij_java_use_single_class_imports = true
+ij_java_wrap_long_lines = true
+
diff --git a/.gitignore b/.gitignore
index 4a45a8f..2dde867 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
+**/.editorconfig
 *~
 /.idea
 *.iml
diff --git a/build.gradle.kts b/build.gradle.kts
index cfcecd9..f13b0b0 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -27,13 +27,13 @@ import com.github.vlsi.gradle.properties.dsl.toBool
 import com.github.vlsi.gradle.release.RepositoryType
 import de.thetaphi.forbiddenapis.gradle.CheckForbiddenApis
 import de.thetaphi.forbiddenapis.gradle.CheckForbiddenApisExtension
-import org.apache.tools.ant.DirectoryScanner
 import org.gradle.api.tasks.testing.logging.TestExceptionFormat
 
 plugins {
     publishing
     // Verification
     checkstyle
+    id("com.diffplug.gradle.spotless")
     id("org.nosphere.apache.rat")
     id("com.github.spotbugs")
     id("de.thetaphi.forbiddenapis") apply false
@@ -61,6 +61,7 @@ val lastEditYear by extra(lastEditYear())
 // Do not enable spotbugs by default. Execute it only when -Pspotbugs is present
 val enableSpotBugs = props.bool("spotbugs", default = false)
 val skipCheckstyle by props()
+val skipSpotless by props()
 val skipJavadoc by props()
 val enableMavenLocal by props()
 val enableGradleMetadata by props()
@@ -152,10 +153,34 @@ val javadocAggregate by tasks.registering(Javadoc::class) {
     setDestinationDir(file("$buildDir/docs/javadocAggregate"))
 }
 
+val licenseHeaderFile = file("config/license.header.java")
+
 allprojects {
     group = "org.apache.calcite.avatica"
     version = buildVersion
 
+    if (!skipSpotless) {
+        apply(plugin = "com.diffplug.gradle.spotless")
+        spotless {
+            kotlinGradle {
+                ktlint()
+                trimTrailingWhitespace()
+                endWithNewline()
+            }
+            if (project == rootProject) {
+                // Spotless does not exclude subprojects when using target(...)
+                // So **/*.md is enough to scan all the md files in the codebase
+                // See https://github.com/diffplug/spotless/issues/468
+                format("markdown") {
+                    target("**/*.md")
+                    // Flot is known to have trailing whitespace, so the files
+                    // are kept in their original format (e.g. to simplify diff on library upgrade)
+                    trimTrailingWhitespace()
+                    endWithNewline()
+                }
+            }
+        }
+    }
     if (!skipCheckstyle) {
         apply<CheckstylePlugin>()
         dependencies {
@@ -257,6 +282,37 @@ allprojects {
             }
         }
 
+        if (!skipSpotless) {
+            spotless {
+                java {
+//                    targetExclude(*javaccGeneratedPatterns + "**/test/java/*.java")
+                    licenseHeaderFile(licenseHeaderFile)
+                    importOrder(
+                        "org.apache.calcite.",
+                        "org.apache.",
+                        "au.com.",
+                        "com.",
+                        "io.",
+                        "mondrian.",
+                        "net.",
+                        "org.",
+                        "scala.",
+                        "java",
+                        "",
+                        "static com.",
+                        "static org.apache.calcite.",
+                        "static org.apache.",
+                        "static org.",
+                        "static java",
+                        "static "
+                    )
+                    removeUnusedImports()
+                    trimTrailingWhitespace()
+                    indentWithSpaces(4)
+                    endWithNewline()
+                }
+            }
+        }
         if (enableSpotBugs) {
             apply(plugin = "com.github.spotbugs")
             spotbugs {
diff --git a/server/src/test/java/org/apache/calcite/avatica/test/AvaticaSuite.java b/config/license.header.java
similarity index 61%
copy from server/src/test/java/org/apache/calcite/avatica/test/AvaticaSuite.java
copy to config/license.header.java
index 661b0d4..2a42971 100644
--- a/server/src/test/java/org/apache/calcite/avatica/test/AvaticaSuite.java
+++ b/config/license.header.java
@@ -14,26 +14,3 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.calcite.avatica.test;
-
-import org.apache.calcite.avatica.RemoteDriverTest;
-
-import org.apache.calcite.avatica.remote.ConnectionPropertiesTest;
-
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
-
-/**
- * Avatica test suite.
- */
-@RunWith(Suite.class)
-@Suite.SuiteClasses({
-    AvaticaUtilsTest.class,
-    ConnectStringParserTest.class,
-    RemoteDriverTest.class,
-    ConnectionPropertiesTest.class
-    })
-public class AvaticaSuite {
-}
-
-// End AvaticaSuite.java
diff --git a/core/build.gradle.kts b/core/build.gradle.kts
index 6ca3aaa..08f7fa1 100644
--- a/core/build.gradle.kts
+++ b/core/build.gradle.kts
@@ -16,7 +16,11 @@
  *
  */
 
-import com.google.protobuf.gradle.*
+import com.google.protobuf.gradle.generateProtoTasks
+import com.google.protobuf.gradle.ofSourceSet
+import com.google.protobuf.gradle.proto
+import com.google.protobuf.gradle.protobuf
+import com.google.protobuf.gradle.protoc
 
 plugins {
     `java-library`
diff --git a/core/src/main/java/org/apache/calcite/avatica/remote/AvaticaCommonsHttpClientImpl.java b/core/src/main/java/org/apache/calcite/avatica/remote/AvaticaCommonsHttpClientImpl.java
index e2bda3a..b30b573 100644
--- a/core/src/main/java/org/apache/calcite/avatica/remote/AvaticaCommonsHttpClientImpl.java
+++ b/core/src/main/java/org/apache/calcite/avatica/remote/AvaticaCommonsHttpClientImpl.java
@@ -57,7 +57,6 @@ import java.net.URI;
 import java.net.URISyntaxException;
 import java.net.URL;
 import java.util.Objects;
-
 import javax.net.ssl.HostnameVerifier;
 import javax.net.ssl.SSLContext;
 
diff --git a/core/src/main/java/org/apache/calcite/avatica/remote/ClientKeytabJaasConf.java b/core/src/main/java/org/apache/calcite/avatica/remote/ClientKeytabJaasConf.java
index ef060eb..ce29ffd 100644
--- a/core/src/main/java/org/apache/calcite/avatica/remote/ClientKeytabJaasConf.java
+++ b/core/src/main/java/org/apache/calcite/avatica/remote/ClientKeytabJaasConf.java
@@ -21,7 +21,6 @@ import org.slf4j.LoggerFactory;
 
 import java.util.HashMap;
 import java.util.Map;
-
 import javax.security.auth.login.AppConfigurationEntry;
 import javax.security.auth.login.Configuration;
 
diff --git a/core/src/main/java/org/apache/calcite/avatica/remote/DoAsAvaticaHttpClient.java b/core/src/main/java/org/apache/calcite/avatica/remote/DoAsAvaticaHttpClient.java
index e06760d..123f821 100644
--- a/core/src/main/java/org/apache/calcite/avatica/remote/DoAsAvaticaHttpClient.java
+++ b/core/src/main/java/org/apache/calcite/avatica/remote/DoAsAvaticaHttpClient.java
@@ -18,7 +18,6 @@ package org.apache.calcite.avatica.remote;
 
 import java.security.PrivilegedAction;
 import java.util.Objects;
-
 import javax.security.auth.Subject;
 
 /**
diff --git a/core/src/main/java/org/apache/calcite/avatica/remote/KerberosConnection.java b/core/src/main/java/org/apache/calcite/avatica/remote/KerberosConnection.java
index debe0cc..438d533 100644
--- a/core/src/main/java/org/apache/calcite/avatica/remote/KerberosConnection.java
+++ b/core/src/main/java/org/apache/calcite/avatica/remote/KerberosConnection.java
@@ -28,7 +28,6 @@ import java.util.Map.Entry;
 import java.util.Objects;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicBoolean;
-
 import javax.security.auth.Subject;
 import javax.security.auth.kerberos.KerberosPrincipal;
 import javax.security.auth.kerberos.KerberosTicket;
diff --git a/core/src/test/java/org/apache/calcite/avatica/remote/KerberosConnectionTest.java b/core/src/test/java/org/apache/calcite/avatica/remote/KerberosConnectionTest.java
index ad98569..6b4d618 100644
--- a/core/src/test/java/org/apache/calcite/avatica/remote/KerberosConnectionTest.java
+++ b/core/src/test/java/org/apache/calcite/avatica/remote/KerberosConnectionTest.java
@@ -24,7 +24,6 @@ import org.mockito.Mockito;
 import java.io.File;
 import java.util.Locale;
 import java.util.Map.Entry;
-
 import javax.security.auth.Subject;
 import javax.security.auth.login.Configuration;
 import javax.security.auth.login.LoginContext;
diff --git a/gradle.properties b/gradle.properties
index 67acf9f..1699514 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -32,6 +32,7 @@ calcite.avatica.version=1.16.0
 # publishGradleMetadata=true
 
 # Plugins
+com.diffplug.gradle.spotless.version=3.25.0
 com.github.johnrengelman.shadow.version=5.1.0
 com.github.spotbugs.version=2.0.0
 com.github.vlsi.vlsi-release-plugins.version=1.47.0
diff --git a/server/src/main/java/org/apache/calcite/avatica/jdbc/JdbcMeta.java b/server/src/main/java/org/apache/calcite/avatica/jdbc/JdbcMeta.java
index 7f19b11..257eead 100644
--- a/server/src/main/java/org/apache/calcite/avatica/jdbc/JdbcMeta.java
+++ b/server/src/main/java/org/apache/calcite/avatica/jdbc/JdbcMeta.java
@@ -46,8 +46,6 @@ import com.google.common.cache.RemovalNotification;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import static org.apache.calcite.avatica.remote.MetricsHelper.concat;
-
 import java.lang.reflect.InvocationTargetException;
 import java.sql.Connection;
 import java.sql.DatabaseMetaData;
@@ -71,6 +69,8 @@ import java.util.concurrent.ConcurrentMap;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
 
+import static org.apache.calcite.avatica.remote.MetricsHelper.concat;
+
 /** Implementation of {@link Meta} upon an existing JDBC data source. */
 public class JdbcMeta implements ProtobufMeta {
   private static final Logger LOG = LoggerFactory.getLogger(JdbcMeta.class);
diff --git a/server/src/main/java/org/apache/calcite/avatica/server/AbstractAvaticaHandler.java b/server/src/main/java/org/apache/calcite/avatica/server/AbstractAvaticaHandler.java
index edd9f0d..687c847 100644
--- a/server/src/main/java/org/apache/calcite/avatica/server/AbstractAvaticaHandler.java
+++ b/server/src/main/java/org/apache/calcite/avatica/server/AbstractAvaticaHandler.java
@@ -26,7 +26,6 @@ import org.eclipse.jetty.server.handler.AbstractHandler;
 import java.io.IOException;
 import java.net.HttpURLConnection;
 import java.util.Collections;
-
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
diff --git a/server/src/main/java/org/apache/calcite/avatica/server/AvaticaJsonHandler.java b/server/src/main/java/org/apache/calcite/avatica/server/AvaticaJsonHandler.java
index ff45400..094f7b2 100644
--- a/server/src/main/java/org/apache/calcite/avatica/server/AvaticaJsonHandler.java
+++ b/server/src/main/java/org/apache/calcite/avatica/server/AvaticaJsonHandler.java
@@ -34,7 +34,6 @@ import org.slf4j.LoggerFactory;
 import java.io.IOException;
 import java.util.Objects;
 import java.util.concurrent.Callable;
-
 import javax.servlet.ServletException;
 import javax.servlet.ServletInputStream;
 import javax.servlet.http.HttpServletRequest;
diff --git a/server/src/main/java/org/apache/calcite/avatica/server/AvaticaProtobufHandler.java b/server/src/main/java/org/apache/calcite/avatica/server/AvaticaProtobufHandler.java
index acb957b..1bf6af9 100644
--- a/server/src/main/java/org/apache/calcite/avatica/server/AvaticaProtobufHandler.java
+++ b/server/src/main/java/org/apache/calcite/avatica/server/AvaticaProtobufHandler.java
@@ -37,7 +37,6 @@ import org.slf4j.LoggerFactory;
 import java.io.IOException;
 import java.util.Objects;
 import java.util.concurrent.Callable;
-
 import javax.servlet.ServletException;
 import javax.servlet.ServletInputStream;
 import javax.servlet.http.HttpServletRequest;
diff --git a/server/src/main/java/org/apache/calcite/avatica/server/AvaticaSpnegoAuthenticator.java b/server/src/main/java/org/apache/calcite/avatica/server/AvaticaSpnegoAuthenticator.java
index 53724ca..d801d4f 100644
--- a/server/src/main/java/org/apache/calcite/avatica/server/AvaticaSpnegoAuthenticator.java
+++ b/server/src/main/java/org/apache/calcite/avatica/server/AvaticaSpnegoAuthenticator.java
@@ -24,7 +24,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.io.IOException;
-
 import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
 import javax.servlet.http.HttpServletRequest;
diff --git a/server/src/main/java/org/apache/calcite/avatica/server/DelegatingAvaticaHandler.java b/server/src/main/java/org/apache/calcite/avatica/server/DelegatingAvaticaHandler.java
index fff176d..27a9708 100644
--- a/server/src/main/java/org/apache/calcite/avatica/server/DelegatingAvaticaHandler.java
+++ b/server/src/main/java/org/apache/calcite/avatica/server/DelegatingAvaticaHandler.java
@@ -21,13 +21,11 @@ import org.apache.calcite.avatica.remote.Service.RpcMetadataResponse;
 import org.eclipse.jetty.server.Handler;
 import org.eclipse.jetty.server.Request;
 import org.eclipse.jetty.server.Server;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.io.IOException;
 import java.util.Objects;
-
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
diff --git a/server/src/main/java/org/apache/calcite/avatica/server/HttpQueryStringParameterRemoteUserExtractor.java b/server/src/main/java/org/apache/calcite/avatica/server/HttpQueryStringParameterRemoteUserExtractor.java
index 5419a2a..f1f6cee 100644
--- a/server/src/main/java/org/apache/calcite/avatica/server/HttpQueryStringParameterRemoteUserExtractor.java
+++ b/server/src/main/java/org/apache/calcite/avatica/server/HttpQueryStringParameterRemoteUserExtractor.java
@@ -17,7 +17,6 @@
 package org.apache.calcite.avatica.server;
 
 import java.util.Objects;
-
 import javax.servlet.http.HttpServletRequest;
 
 /**
diff --git a/server/src/main/java/org/apache/calcite/avatica/server/HttpServer.java b/server/src/main/java/org/apache/calcite/avatica/server/HttpServer.java
index a4d5dcb..989a01b 100644
--- a/server/src/main/java/org/apache/calcite/avatica/server/HttpServer.java
+++ b/server/src/main/java/org/apache/calcite/avatica/server/HttpServer.java
@@ -56,7 +56,6 @@ import java.util.Locale;
 import java.util.Objects;
 import java.util.Set;
 import java.util.concurrent.Callable;
-
 import javax.security.auth.Subject;
 import javax.security.auth.kerberos.KerberosPrincipal;
 import javax.security.auth.login.LoginContext;
diff --git a/server/src/main/java/org/apache/calcite/avatica/server/PropertyBasedSpnegoLoginService.java b/server/src/main/java/org/apache/calcite/avatica/server/PropertyBasedSpnegoLoginService.java
index d3accf2..2e19b8e 100644
--- a/server/src/main/java/org/apache/calcite/avatica/server/PropertyBasedSpnegoLoginService.java
+++ b/server/src/main/java/org/apache/calcite/avatica/server/PropertyBasedSpnegoLoginService.java
@@ -30,7 +30,6 @@ import org.slf4j.LoggerFactory;
 
 import java.lang.reflect.Field;
 import java.util.Objects;
-
 import javax.security.auth.Subject;
 import javax.servlet.ServletRequest;
 
diff --git a/server/src/main/java/org/apache/calcite/avatica/server/ServerKeytabJaasConf.java b/server/src/main/java/org/apache/calcite/avatica/server/ServerKeytabJaasConf.java
index c0927f1..1045b02 100644
--- a/server/src/main/java/org/apache/calcite/avatica/server/ServerKeytabJaasConf.java
+++ b/server/src/main/java/org/apache/calcite/avatica/server/ServerKeytabJaasConf.java
@@ -23,7 +23,6 @@ import org.slf4j.LoggerFactory;
 
 import java.util.HashMap;
 import java.util.Map;
-
 import javax.security.auth.login.AppConfigurationEntry;
 import javax.security.auth.login.Configuration;
 
diff --git a/server/src/test/java/org/apache/calcite/avatica/AvaticaSpnegoTest.java b/server/src/test/java/org/apache/calcite/avatica/AvaticaSpnegoTest.java
index 344871c..c33c6c2 100644
--- a/server/src/test/java/org/apache/calcite/avatica/AvaticaSpnegoTest.java
+++ b/server/src/test/java/org/apache/calcite/avatica/AvaticaSpnegoTest.java
@@ -30,7 +30,6 @@ import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
 import org.junit.runners.Parameterized.Parameters;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -42,7 +41,6 @@ import java.sql.ResultSet;
 import java.sql.Statement;
 import java.util.ArrayList;
 import java.util.List;
-
 import javax.security.auth.Subject;
 
 import static org.junit.Assert.assertEquals;
diff --git a/server/src/test/java/org/apache/calcite/avatica/HttpBaseTest.java b/server/src/test/java/org/apache/calcite/avatica/HttpBaseTest.java
index b409749..7969eeb 100644
--- a/server/src/test/java/org/apache/calcite/avatica/HttpBaseTest.java
+++ b/server/src/test/java/org/apache/calcite/avatica/HttpBaseTest.java
@@ -36,7 +36,6 @@ import org.bouncycastle.cert.jcajce.JcaX509v3CertificateBuilder;
 import org.bouncycastle.jce.provider.BouncyCastleProvider;
 import org.bouncycastle.operator.OperatorCreationException;
 import org.bouncycastle.operator.jcajce.JcaContentSignerBuilder;
-
 import org.junit.AfterClass;
 import org.junit.Before;
 import org.slf4j.Logger;
diff --git a/server/src/test/java/org/apache/calcite/avatica/SpnegoTestUtil.java b/server/src/test/java/org/apache/calcite/avatica/SpnegoTestUtil.java
index e1f3782..2c5c763 100644
--- a/server/src/test/java/org/apache/calcite/avatica/SpnegoTestUtil.java
+++ b/server/src/test/java/org/apache/calcite/avatica/SpnegoTestUtil.java
@@ -41,7 +41,6 @@ import java.nio.charset.StandardCharsets;
 import java.security.AccessController;
 import java.security.Principal;
 import java.security.PrivilegedAction;
-
 import javax.security.auth.login.Configuration;
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
diff --git a/server/src/test/java/org/apache/calcite/avatica/SslDriverTest.java b/server/src/test/java/org/apache/calcite/avatica/SslDriverTest.java
index 6277c7f..42abac5 100644
--- a/server/src/test/java/org/apache/calcite/avatica/SslDriverTest.java
+++ b/server/src/test/java/org/apache/calcite/avatica/SslDriverTest.java
@@ -24,11 +24,6 @@ import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
 import org.junit.runners.Parameterized.Parameters;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assume.assumeFalse;
-
 import java.sql.Connection;
 import java.sql.DriverManager;
 import java.sql.ResultSet;
@@ -36,6 +31,11 @@ import java.sql.Statement;
 import java.util.ArrayList;
 import java.util.List;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assume.assumeFalse;
+
 /**
  * Test case for Avatica with TLS connectors.
  */
diff --git a/server/src/test/java/org/apache/calcite/avatica/server/AbstractAvaticaHandlerTest.java b/server/src/test/java/org/apache/calcite/avatica/server/AbstractAvaticaHandlerTest.java
index 0583436..93c634e 100644
--- a/server/src/test/java/org/apache/calcite/avatica/server/AbstractAvaticaHandlerTest.java
+++ b/server/src/test/java/org/apache/calcite/avatica/server/AbstractAvaticaHandlerTest.java
@@ -26,7 +26,6 @@ import org.junit.Test;
 
 import java.net.HttpURLConnection;
 import java.nio.charset.StandardCharsets;
-
 import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
diff --git a/server/src/test/java/org/apache/calcite/avatica/server/AvaticaJaasKrbUtil.java b/server/src/test/java/org/apache/calcite/avatica/server/AvaticaJaasKrbUtil.java
index f8a7c9b..0f41594 100644
--- a/server/src/test/java/org/apache/calcite/avatica/server/AvaticaJaasKrbUtil.java
+++ b/server/src/test/java/org/apache/calcite/avatica/server/AvaticaJaasKrbUtil.java
@@ -22,7 +22,6 @@ import java.io.File;
 import java.security.Principal;
 import java.util.HashSet;
 import java.util.Set;
-
 import javax.security.auth.Subject;
 import javax.security.auth.kerberos.KerberosPrincipal;
 import javax.security.auth.login.Configuration;
diff --git a/server/src/test/java/org/apache/calcite/avatica/server/AvaticaSpnegoAuthenticatorTest.java b/server/src/test/java/org/apache/calcite/avatica/server/AvaticaSpnegoAuthenticatorTest.java
index 586b9fd..acf814b 100644
--- a/server/src/test/java/org/apache/calcite/avatica/server/AvaticaSpnegoAuthenticatorTest.java
+++ b/server/src/test/java/org/apache/calcite/avatica/server/AvaticaSpnegoAuthenticatorTest.java
@@ -24,7 +24,6 @@ import org.junit.Test;
 import java.io.IOException;
 import java.util.Arrays;
 import java.util.List;
-
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
diff --git a/server/src/test/java/org/apache/calcite/avatica/server/CustomAuthHttpServerTest.java b/server/src/test/java/org/apache/calcite/avatica/server/CustomAuthHttpServerTest.java
index 2064669..464da84 100644
--- a/server/src/test/java/org/apache/calcite/avatica/server/CustomAuthHttpServerTest.java
+++ b/server/src/test/java/org/apache/calcite/avatica/server/CustomAuthHttpServerTest.java
@@ -40,16 +40,15 @@ import org.junit.Test;
 import org.mockito.Mockito;
 
 import java.sql.SQLException;
+import java.util.Arrays;
+import java.util.Properties;
+import java.util.concurrent.Callable;
 import javax.servlet.http.HttpServletRequest;
 
 import static org.hamcrest.core.StringContains.containsString;
 import static org.junit.Assert.assertThat;
 import static org.junit.Assert.fail;
 
-import java.util.Arrays;
-import java.util.Properties;
-import java.util.concurrent.Callable;
-
 /**
  * Test class for providing CustomAvaticaServerConfiguration to the HTTP Server
  */
diff --git a/server/src/test/java/org/apache/calcite/avatica/server/HttpServerCustomizerTest.java b/server/src/test/java/org/apache/calcite/avatica/server/HttpServerCustomizerTest.java
index a525682..e0adbef 100644
--- a/server/src/test/java/org/apache/calcite/avatica/server/HttpServerCustomizerTest.java
+++ b/server/src/test/java/org/apache/calcite/avatica/server/HttpServerCustomizerTest.java
@@ -22,7 +22,6 @@ import org.apache.calcite.avatica.remote.LocalService;
 import org.apache.calcite.avatica.remote.Service;
 
 import org.eclipse.jetty.server.Server;
-
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
diff --git a/server/src/test/java/org/apache/calcite/avatica/server/HttpServerSpnegoWithJaasTest.java b/server/src/test/java/org/apache/calcite/avatica/server/HttpServerSpnegoWithJaasTest.java
index 54d3c86..dd400db 100644
--- a/server/src/test/java/org/apache/calcite/avatica/server/HttpServerSpnegoWithJaasTest.java
+++ b/server/src/test/java/org/apache/calcite/avatica/server/HttpServerSpnegoWithJaasTest.java
@@ -45,7 +45,6 @@ import java.nio.charset.StandardCharsets;
 import java.security.Principal;
 import java.security.PrivilegedExceptionAction;
 import java.util.Set;
-
 import javax.security.auth.Subject;
 import javax.security.auth.kerberos.KerberosTicket;
 
diff --git a/server/src/test/java/org/apache/calcite/avatica/server/HttpServerSpnegoWithoutJaasTest.java b/server/src/test/java/org/apache/calcite/avatica/server/HttpServerSpnegoWithoutJaasTest.java
index 63e1b7f..bcaabdf 100644
--- a/server/src/test/java/org/apache/calcite/avatica/server/HttpServerSpnegoWithoutJaasTest.java
+++ b/server/src/test/java/org/apache/calcite/avatica/server/HttpServerSpnegoWithoutJaasTest.java
@@ -44,7 +44,6 @@ import java.nio.charset.StandardCharsets;
 import java.security.Principal;
 import java.security.PrivilegedExceptionAction;
 import java.util.Set;
-
 import javax.security.auth.Subject;
 import javax.security.auth.kerberos.KerberosTicket;
 
diff --git a/server/src/test/java/org/apache/calcite/avatica/test/AvaticaSuite.java b/server/src/test/java/org/apache/calcite/avatica/test/AvaticaSuite.java
index 661b0d4..a664c4a 100644
--- a/server/src/test/java/org/apache/calcite/avatica/test/AvaticaSuite.java
+++ b/server/src/test/java/org/apache/calcite/avatica/test/AvaticaSuite.java
@@ -17,7 +17,6 @@
 package org.apache.calcite.avatica.test;
 
 import org.apache.calcite.avatica.RemoteDriverTest;
-
 import org.apache.calcite.avatica.remote.ConnectionPropertiesTest;
 
 import org.junit.runner.RunWith;
diff --git a/settings.gradle.kts b/settings.gradle.kts
index 217abf0..eb39a99 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -21,6 +21,7 @@ pluginManagement {
         fun String.v() = extra["$this.version"].toString()
         fun PluginDependenciesSpec.idv(id: String, key: String = id) = id(id) version key.v()
 
+        idv("com.diffplug.gradle.spotless")
         idv("com.github.johnrengelman.shadow")
         idv("com.github.spotbugs")
         idv("com.github.vlsi.crlf", "com.github.vlsi.vlsi-release-plugins")
diff --git a/site/community/index.md b/site/community/index.md
index bc4b26d..0545b93 100644
--- a/site/community/index.md
+++ b/site/community/index.md
@@ -22,4 +22,3 @@ See the License for the specific language governing permissions and
 limitations under the License.
 {% endcomment %}
 -->
-
diff --git a/src/main/config/checkstyle/checker.xml b/src/main/config/checkstyle/checker.xml
index c310433..7916684 100644
--- a/src/main/config/checkstyle/checker.xml
+++ b/src/main/config/checkstyle/checker.xml
@@ -120,13 +120,6 @@ limitations under the License.
       <property name="processJavadoc" value="true"/>
     </module>
     <module name="IllegalImport" />
-    <module name="AvoidStarImport" />
-    <module name="ImportOrder">
-      <property name="groups" value="org.apache.calcite,org.apache,au.com.,com.,io.,mondrian.,net.,org.,scala.,/^javax?\./"/>
-      <property name="ordered" value="true"/>
-      <property name="separated" value="true"/>
-      <property name="option" value="bottom"/>
-    </module>
 
     <!-- Checks for Javadoc comments (tree walker).       -->
     <!-- See http://checkstyle.sf.net/config_javadoc.html -->
diff --git a/standalone-server/build.gradle.kts b/standalone-server/build.gradle.kts
index 346fa0e..cd71851 100644
--- a/standalone-server/build.gradle.kts
+++ b/standalone-server/build.gradle.kts
@@ -19,7 +19,11 @@
 import com.github.vlsi.gradle.crlf.CrLfSpec
 import com.github.vlsi.gradle.crlf.LineEndings
 import com.github.vlsi.gradle.license.GatherLicenseTask
-import com.github.vlsi.gradle.license.api.*
+import com.github.vlsi.gradle.license.api.SimpleLicense
+import com.github.vlsi.gradle.license.api.SpdxLicense
+import com.github.vlsi.gradle.license.api.SpdxLicenseException
+import com.github.vlsi.gradle.license.api.and
+import com.github.vlsi.gradle.license.api.with
 import com.github.vlsi.gradle.release.Apache2LicenseRenderer
 import com.github.vlsi.gradle.release.ArtifactType
 import com.github.vlsi.gradle.release.dsl.dependencyLicenses
diff --git a/tck/build.gradle.kts b/tck/build.gradle.kts
index c827f13..481a7e5 100644
--- a/tck/build.gradle.kts
+++ b/tck/build.gradle.kts
@@ -19,7 +19,8 @@
 import com.github.vlsi.gradle.crlf.CrLfSpec
 import com.github.vlsi.gradle.crlf.LineEndings
 import com.github.vlsi.gradle.license.GatherLicenseTask
-import com.github.vlsi.gradle.license.api.*
+import com.github.vlsi.gradle.license.api.SimpleLicense
+import com.github.vlsi.gradle.license.api.SpdxLicense
 import com.github.vlsi.gradle.release.Apache2LicenseRenderer
 import com.github.vlsi.gradle.release.ArtifactType
 import com.github.vlsi.gradle.release.dsl.dependencyLicenses
@@ -48,8 +49,8 @@ dependencies {
     shaded("junit:junit")
     shaded("org.hamcrest:hamcrest-core")
     shaded("org.hsqldb:hsqldb")
-    //As long as we want to run compatibility checks again 1.6.0, we have to include these because
-    //they weren't yet provided by the avatica client jar
+    // As long as we want to run compatibility checks again 1.6.0, we have to include these because
+    // they weren't yet provided by the avatica client jar
     shaded("org.slf4j:slf4j-api")
     shaded("org.slf4j:slf4j-log4j12")