You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by zh...@apache.org on 2025/06/06 01:30:24 UTC

(shardingsphere) branch master updated: Migrate from `jsr305` to `jspecify` and `error_prone_annotations` (#35133)

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

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


The following commit(s) were added to refs/heads/master by this push:
     new a2cbeaee9ee Migrate from `jsr305` to `jspecify` and `error_prone_annotations` (#35133)
a2cbeaee9ee is described below

commit a2cbeaee9eee85599650b33fc729f0d2c54a4749
Author: Ling Hengqian <li...@outlook.com>
AuthorDate: Fri Jun 6 09:30:18 2025 +0800

    Migrate from `jsr305` to `jspecify` and `error_prone_annotations` (#35133)
---
 distribution/proxy/src/main/release-docs/LICENSE                    | 2 +-
 .../apache/shardingsphere/infra/instance/ComputeNodeInstance.java   | 2 +-
 .../shardingsphere/infra/instance/ComputeNodeInstanceContext.java   | 2 +-
 .../shardingsphere/infra/parser/cache/SQLStatementCacheLoader.java  | 4 ++--
 .../pipeline/core/consistencycheck/DataConsistencyCheckUtils.java   | 2 +-
 .../table/calculator/SingleTableInventoryCalculateParameter.java    | 2 +-
 .../sqlbuilder/sql/PipelineDataConsistencyCalculateSQLBuilder.java  | 2 +-
 .../data/pipeline/cdc/core/task/CDCIncrementalTask.java             | 2 +-
 .../data/pipeline/cdc/core/task/CDCInventoryTask.java               | 2 +-
 kernel/sql-federation/compiler/pom.xml                              | 6 ++++++
 .../compiler/planner/cache/ExecutionPlanCacheLoader.java            | 4 ++--
 .../org/apache/shardingsphere/mode/metadata/MetaDataContexts.java   | 2 +-
 .../sql/parser/core/database/cache/ParseTreeCacheLoader.java        | 4 ++--
 .../apache/shardingsphere/sql/parser/api/SQLParserExecutorTest.java | 4 ++--
 .../apache/shardingsphere/sql/parser/core/SQLParserEngineTest.java  | 4 ++--
 pom.xml                                                             | 5 +++--
 16 files changed, 28 insertions(+), 21 deletions(-)

diff --git a/distribution/proxy/src/main/release-docs/LICENSE b/distribution/proxy/src/main/release-docs/LICENSE
index 59b8c6fa9f8..fa6f2f18a26 100644
--- a/distribution/proxy/src/main/release-docs/LICENSE
+++ b/distribution/proxy/src/main/release-docs/LICENSE
@@ -252,7 +252,7 @@ The text of each license is the standard Apache 2.0 license.
     grpc-stub 1.65.1: https://github.com/grpc/grpc-java, Apache 2.0
     grpc-util 1.65.1: https://github.com/grpc/grpc-java, Apache 2.0
     gson 2.10.1: https://github.com/google/gson, Apache 2.0
-    guava 32.1.2-jre: https://github.com/google/guava, Apache 2.0
+    guava 33.4.6-jre: https://github.com/google/guava, Apache 2.0
     HikariCP 4.0.3: https://github.com/brettwooldridge/HikariCP, Apache 2.0
     httpclient5 5.1.3: https://hc.apache.org/httpcomponents-client-5.1.x, Apache 2.0
     httpcore5 5.2.3: https://hc.apache.org/httpcomponents-core-5.1.x, Apache 2.0
diff --git a/infra/common/src/main/java/org/apache/shardingsphere/infra/instance/ComputeNodeInstance.java b/infra/common/src/main/java/org/apache/shardingsphere/infra/instance/ComputeNodeInstance.java
index 290f1de6c97..55c6f2205fe 100644
--- a/infra/common/src/main/java/org/apache/shardingsphere/infra/instance/ComputeNodeInstance.java
+++ b/infra/common/src/main/java/org/apache/shardingsphere/infra/instance/ComputeNodeInstance.java
@@ -24,7 +24,7 @@ import org.apache.shardingsphere.infra.instance.metadata.InstanceMetaData;
 import org.apache.shardingsphere.infra.state.instance.InstanceState;
 import org.apache.shardingsphere.infra.state.instance.InstanceStateContext;
 
-import javax.annotation.concurrent.ThreadSafe;
+import com.google.errorprone.annotations.ThreadSafe;
 import java.util.Collection;
 import java.util.concurrent.CopyOnWriteArrayList;
 
diff --git a/infra/common/src/main/java/org/apache/shardingsphere/infra/instance/ComputeNodeInstanceContext.java b/infra/common/src/main/java/org/apache/shardingsphere/infra/instance/ComputeNodeInstanceContext.java
index afc7277a005..82340091341 100644
--- a/infra/common/src/main/java/org/apache/shardingsphere/infra/instance/ComputeNodeInstanceContext.java
+++ b/infra/common/src/main/java/org/apache/shardingsphere/infra/instance/ComputeNodeInstanceContext.java
@@ -25,7 +25,7 @@ import org.apache.shardingsphere.infra.instance.workerid.WorkerIdGenerator;
 import org.apache.shardingsphere.infra.state.instance.InstanceState;
 import org.apache.shardingsphere.infra.util.eventbus.EventBusContext;
 
-import javax.annotation.concurrent.ThreadSafe;
+import com.google.errorprone.annotations.ThreadSafe;
 import java.util.Collection;
 import java.util.Optional;
 import java.util.Properties;
diff --git a/infra/parser/src/main/java/org/apache/shardingsphere/infra/parser/cache/SQLStatementCacheLoader.java b/infra/parser/src/main/java/org/apache/shardingsphere/infra/parser/cache/SQLStatementCacheLoader.java
index f4df2c4a584..4cee0cd86e3 100644
--- a/infra/parser/src/main/java/org/apache/shardingsphere/infra/parser/cache/SQLStatementCacheLoader.java
+++ b/infra/parser/src/main/java/org/apache/shardingsphere/infra/parser/cache/SQLStatementCacheLoader.java
@@ -23,7 +23,7 @@ import org.apache.shardingsphere.infra.parser.sql.SQLStatementParserExecutor;
 import org.apache.shardingsphere.sql.parser.api.CacheOption;
 import org.apache.shardingsphere.sql.parser.statement.core.statement.SQLStatement;
 
-import javax.annotation.ParametersAreNonnullByDefault;
+import org.jspecify.annotations.NullMarked;
 
 /**
  * SQL statement cache loader.
@@ -45,7 +45,7 @@ public final class SQLStatementCacheLoader implements CacheLoader<String, SQLSta
         sqlStatementParserExecutor.updateCacheOption(parseTreeCacheOption);
     }
     
-    @ParametersAreNonnullByDefault
+    @NullMarked
     @Override
     public SQLStatement load(final String sql) {
         return sqlStatementParserExecutor.parse(sql);
diff --git a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/consistencycheck/DataConsistencyCheckUtils.java b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/consistencycheck/DataConsistencyCheckUtils.java
index 26b55ec352e..eb9d345d1ce 100644
--- a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/consistencycheck/DataConsistencyCheckUtils.java
+++ b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/consistencycheck/DataConsistencyCheckUtils.java
@@ -23,7 +23,7 @@ import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.builder.EqualsBuilder;
 
-import javax.annotation.Nullable;
+import org.jspecify.annotations.Nullable;
 import java.math.BigDecimal;
 import java.math.BigInteger;
 import java.math.RoundingMode;
diff --git a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/consistencycheck/table/calculator/SingleTableInventoryCalculateParameter.java b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/consistencycheck/table/calculator/SingleTableInventoryCalculateParameter.java
index 8b75761e472..680bf2b6b60 100644
--- a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/consistencycheck/table/calculator/SingleTableInventoryCalculateParameter.java
+++ b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/consistencycheck/table/calculator/SingleTableInventoryCalculateParameter.java
@@ -26,7 +26,7 @@ import org.apache.shardingsphere.data.pipeline.core.metadata.model.PipelineColum
 import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
 import org.apache.shardingsphere.infra.metadata.database.schema.QualifiedTable;
 
-import javax.annotation.Nullable;
+import org.jspecify.annotations.Nullable;
 import java.util.Collection;
 import java.util.List;
 import java.util.concurrent.atomic.AtomicReference;
diff --git a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/sqlbuilder/sql/PipelineDataConsistencyCalculateSQLBuilder.java b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/sqlbuilder/sql/PipelineDataConsistencyCalculateSQLBuilder.java
index 6fb62ac968d..5dd99e9d51b 100644
--- a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/sqlbuilder/sql/PipelineDataConsistencyCalculateSQLBuilder.java
+++ b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/sqlbuilder/sql/PipelineDataConsistencyCalculateSQLBuilder.java
@@ -24,7 +24,7 @@ import org.apache.shardingsphere.infra.database.core.spi.DatabaseTypedSPILoader;
 import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
 import org.apache.shardingsphere.infra.metadata.database.schema.QualifiedTable;
 
-import javax.annotation.Nullable;
+import org.jspecify.annotations.Nullable;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
diff --git a/kernel/data-pipeline/scenario/cdc/core/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/core/task/CDCIncrementalTask.java b/kernel/data-pipeline/scenario/cdc/core/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/core/task/CDCIncrementalTask.java
index 0d18ccf4b60..0bd926297fb 100644
--- a/kernel/data-pipeline/scenario/cdc/core/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/core/task/CDCIncrementalTask.java
+++ b/kernel/data-pipeline/scenario/cdc/core/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/core/task/CDCIncrementalTask.java
@@ -27,7 +27,7 @@ import org.apache.shardingsphere.data.pipeline.core.task.PipelineTask;
 import org.apache.shardingsphere.data.pipeline.core.task.TaskExecuteCallback;
 import org.apache.shardingsphere.data.pipeline.core.task.progress.IncrementalTaskProgress;
 
-import javax.annotation.Nullable;
+import org.jspecify.annotations.Nullable;
 import java.util.Collection;
 import java.util.LinkedList;
 import java.util.concurrent.CompletableFuture;
diff --git a/kernel/data-pipeline/scenario/cdc/core/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/core/task/CDCInventoryTask.java b/kernel/data-pipeline/scenario/cdc/core/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/core/task/CDCInventoryTask.java
index 6e3eb9066ea..7b22c2f63ae 100644
--- a/kernel/data-pipeline/scenario/cdc/core/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/core/task/CDCInventoryTask.java
+++ b/kernel/data-pipeline/scenario/cdc/core/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/core/task/CDCInventoryTask.java
@@ -29,7 +29,7 @@ import org.apache.shardingsphere.data.pipeline.core.task.PipelineTask;
 import org.apache.shardingsphere.data.pipeline.core.task.TaskExecuteCallback;
 import org.apache.shardingsphere.data.pipeline.core.task.progress.InventoryTaskProgress;
 
-import javax.annotation.Nullable;
+import org.jspecify.annotations.Nullable;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.LinkedList;
diff --git a/kernel/sql-federation/compiler/pom.xml b/kernel/sql-federation/compiler/pom.xml
index 6a68c9d3216..e5ee882efdb 100644
--- a/kernel/sql-federation/compiler/pom.xml
+++ b/kernel/sql-federation/compiler/pom.xml
@@ -121,6 +121,12 @@
             <groupId>com.jayway.jsonpath</groupId>
             <artifactId>json-path</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.google.code.findbugs</groupId>
+            <artifactId>jsr305</artifactId>
+            <version>${jsr305.version}</version>
+            <scope>provided</scope>
+        </dependency>
     </dependencies>
     
     <profiles>
diff --git a/kernel/sql-federation/compiler/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/planner/cache/ExecutionPlanCacheLoader.java b/kernel/sql-federation/compiler/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/planner/cache/ExecutionPlanCacheLoader.java
index 8944278c355..d3e80d979f5 100644
--- a/kernel/sql-federation/compiler/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/planner/cache/ExecutionPlanCacheLoader.java
+++ b/kernel/sql-federation/compiler/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/planner/cache/ExecutionPlanCacheLoader.java
@@ -20,14 +20,14 @@ package org.apache.shardingsphere.sqlfederation.compiler.planner.cache;
 import com.github.benmanes.caffeine.cache.CacheLoader;
 import org.apache.shardingsphere.sqlfederation.compiler.SQLFederationExecutionPlan;
 
-import javax.annotation.ParametersAreNonnullByDefault;
+import org.jspecify.annotations.NullMarked;
 
 /**
  * Execution plan cache loader.
  */
 public final class ExecutionPlanCacheLoader implements CacheLoader<ExecutionPlanCacheKey, SQLFederationExecutionPlan> {
     
-    @ParametersAreNonnullByDefault
+    @NullMarked
     @Override
     public SQLFederationExecutionPlan load(final ExecutionPlanCacheKey cacheKey) {
         return cacheKey.getSqlStatementCompiler().compile(cacheKey.getSqlStatement(), cacheKey.getDatabaseType());
diff --git a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContexts.java b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContexts.java
index b54a34c1c3b..3254e33c606 100644
--- a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContexts.java
+++ b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContexts.java
@@ -22,7 +22,7 @@ import org.apache.shardingsphere.infra.metadata.statistics.ShardingSphereStatist
 import org.apache.shardingsphere.infra.metadata.statistics.builder.ShardingSphereStatisticsFactory;
 import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistFacade;
 
-import javax.annotation.concurrent.ThreadSafe;
+import com.google.errorprone.annotations.ThreadSafe;
 import java.util.concurrent.atomic.AtomicReference;
 
 /**
diff --git a/parser/sql/engine/src/main/java/org/apache/shardingsphere/sql/parser/core/database/cache/ParseTreeCacheLoader.java b/parser/sql/engine/src/main/java/org/apache/shardingsphere/sql/parser/core/database/cache/ParseTreeCacheLoader.java
index 4effc6fd0fc..f3f00c2f14c 100644
--- a/parser/sql/engine/src/main/java/org/apache/shardingsphere/sql/parser/core/database/cache/ParseTreeCacheLoader.java
+++ b/parser/sql/engine/src/main/java/org/apache/shardingsphere/sql/parser/core/database/cache/ParseTreeCacheLoader.java
@@ -22,7 +22,7 @@ import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
 import org.apache.shardingsphere.sql.parser.core.ParseASTNode;
 import org.apache.shardingsphere.sql.parser.core.database.parser.SQLParserExecutor;
 
-import javax.annotation.ParametersAreNonnullByDefault;
+import org.jspecify.annotations.NullMarked;
 
 /**
  * Parse context cache loader.
@@ -35,7 +35,7 @@ public final class ParseTreeCacheLoader implements CacheLoader<String, ParseASTN
         sqlParserExecutor = new SQLParserExecutor(databaseType);
     }
     
-    @ParametersAreNonnullByDefault
+    @NullMarked
     @Override
     public ParseASTNode load(final String sql) {
         return sqlParserExecutor.parse(sql);
diff --git a/parser/sql/engine/src/test/java/org/apache/shardingsphere/sql/parser/api/SQLParserExecutorTest.java b/parser/sql/engine/src/test/java/org/apache/shardingsphere/sql/parser/api/SQLParserExecutorTest.java
index 20743e96263..9336e610866 100644
--- a/parser/sql/engine/src/test/java/org/apache/shardingsphere/sql/parser/api/SQLParserExecutorTest.java
+++ b/parser/sql/engine/src/test/java/org/apache/shardingsphere/sql/parser/api/SQLParserExecutorTest.java
@@ -25,7 +25,7 @@ import org.apache.shardingsphere.sql.parser.core.database.parser.SQLParserExecut
 import org.junit.jupiter.api.Test;
 import org.mockito.internal.configuration.plugins.Plugins;
 
-import javax.annotation.ParametersAreNonnullByDefault;
+import org.jspecify.annotations.NullMarked;
 
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.times;
@@ -46,7 +46,7 @@ class SQLParserExecutorTest {
         LoadingCache<String, ParseASTNode> parseTreeCache = Caffeine.newBuilder().softValues().initialCapacity(128)
                 .maximumSize(1024L).build(new CacheLoader<String, ParseASTNode>() {
                     
-                    @ParametersAreNonnullByDefault
+                    @NullMarked
                     @Override
                     public ParseASTNode load(final String sql) {
                         return sqlParserExecutor.parse(sql);
diff --git a/parser/sql/engine/src/test/java/org/apache/shardingsphere/sql/parser/core/SQLParserEngineTest.java b/parser/sql/engine/src/test/java/org/apache/shardingsphere/sql/parser/core/SQLParserEngineTest.java
index 457cb5ec679..84996b87c54 100644
--- a/parser/sql/engine/src/test/java/org/apache/shardingsphere/sql/parser/core/SQLParserEngineTest.java
+++ b/parser/sql/engine/src/test/java/org/apache/shardingsphere/sql/parser/core/SQLParserEngineTest.java
@@ -23,7 +23,7 @@ import com.github.benmanes.caffeine.cache.LoadingCache;
 import org.apache.shardingsphere.sql.parser.core.database.parser.SQLParserExecutor;
 import org.junit.jupiter.api.Test;
 
-import javax.annotation.ParametersAreNonnullByDefault;
+import org.jspecify.annotations.NullMarked;
 
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
@@ -39,7 +39,7 @@ class SQLParserEngineTest {
         LoadingCache<String, ParseASTNode> parseTreeCache = Caffeine.newBuilder().softValues()
                 .initialCapacity(128).maximumSize(1024L).build(new CacheLoader<String, ParseASTNode>() {
                     
-                    @ParametersAreNonnullByDefault
+                    @NullMarked
                     @Override
                     public ParseASTNode load(final String sql) {
                         return sqlParserExecutor.parse(sql);
diff --git a/pom.xml b/pom.xml
index b3d60ba99e1..8f591305631 100644
--- a/pom.xml
+++ b/pom.xml
@@ -67,7 +67,7 @@
         <sonar.exclusions>**/autogen/**/*</sonar.exclusions>
         
         <!-- 3rd party library versions -->
-        <guava.version>32.1.2-jre</guava.version>
+        <guava.version>33.4.6-jre</guava.version>
         <checker-qual.version>3.39.0</checker-qual.version>
         <error_prone_annotations.version>2.22.0</error_prone_annotations.version>
         <j2objc-annotations.version>1.3</j2objc-annotations.version>
@@ -121,7 +121,8 @@
         <commons-logging.version>1.2</commons-logging.version>
         
         <lombok.version>1.18.38</lombok.version>
-        <immutables.version>2.9.3</immutables.version>
+        <immutables.version>2.10.1</immutables.version>
+        <jsr305.version>3.0.2</jsr305.version>
         
         <postgresql.version>42.7.5</postgresql.version>
         <mysql-connector-java.version>8.3.0</mysql-connector-java.version>