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>