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 6b67aedb35f Use caffeine instead of guava cache (#17712)
6b67aedb35f is described below

commit 6b67aedb35fab5f37c85e77c76d6b74955eee748
Author: 龙台 Long Tai <77398366+longtai...@users.noreply.github.com>
AuthorDate: Tue May 17 11:33:16 2022 +0800

    Use caffeine instead of guava cache (#17712)
---
 pom.xml                                                    |  7 +++++++
 shardingsphere-infra/shardingsphere-infra-parser/pom.xml   |  4 ++++
 .../infra/parser/cache/SQLStatementCacheBuilder.java       |  8 ++++----
 .../infra/parser/cache/SQLStatementCacheLoader.java        |  4 ++--
 .../infra/parser/sql/SQLStatementParserEngine.java         |  4 ++--
 .../infra/parser/cache/SQLStatementCacheBuilderTest.java   |  2 +-
 .../shardingsphere-sql-parser-engine/pom.xml               |  5 ++++-
 .../shardingsphere/sql/parser/api/SQLParserEngine.java     |  4 ++--
 .../parser/core/database/cache/ParseTreeCacheBuilder.java  |  9 ++++-----
 .../parser/core/database/cache/ParseTreeCacheLoader.java   |  4 ++--
 .../shardingsphere/sql/parser/api/SQLParserEngineTest.java | 10 +++++-----
 .../sql/parser/core/SQLParserEngineTest.java               | 14 +++++++-------
 .../core/database/cache/ParseTreeCacheBuilderTest.java     |  2 +-
 13 files changed, 45 insertions(+), 32 deletions(-)

diff --git a/pom.xml b/pom.xml
index 595214ab68d..ef56c21ac50 100644
--- a/pom.xml
+++ b/pom.xml
@@ -159,6 +159,7 @@
         <apache-rat-plugin.version>0.12</apache-rat-plugin.version>
         <freemarker.version>2.3.31</freemarker.version>
         <spotless-maven-plugin.version>2.22.1</spotless-maven-plugin.version>
+        <caffeine.version>2.9.2</caffeine.version>
     </properties>
     
     <dependencyManagement>
@@ -735,6 +736,12 @@
                 <artifactId>freemarker</artifactId>
                 <version>${freemarker.version}</version>
             </dependency>
+    
+            <dependency>
+                <groupId>com.github.ben-manes.caffeine</groupId>
+                <artifactId>caffeine</artifactId>
+                <version>${caffeine.version}</version>
+            </dependency>
         </dependencies>
     </dependencyManagement>
     
diff --git a/shardingsphere-infra/shardingsphere-infra-parser/pom.xml 
b/shardingsphere-infra/shardingsphere-infra-parser/pom.xml
index 1554e5f0f7a..9766fe05bb0 100644
--- a/shardingsphere-infra/shardingsphere-infra-parser/pom.xml
+++ b/shardingsphere-infra/shardingsphere-infra-parser/pom.xml
@@ -38,5 +38,9 @@
             <artifactId>shardingsphere-infra-common</artifactId>
             <version>${project.version}</version>
         </dependency>
+        <dependency>
+            <groupId>com.github.ben-manes.caffeine</groupId>
+            <artifactId>caffeine</artifactId>
+        </dependency>
     </dependencies>
 </project>
diff --git 
a/shardingsphere-infra/shardingsphere-infra-parser/src/main/java/org/apache/shardingsphere/infra/parser/cache/SQLStatementCacheBuilder.java
 
b/shardingsphere-infra/shardingsphere-infra-parser/src/main/java/org/apache/shardingsphere/infra/parser/cache/SQLStatementCacheBuilder.java
index 3d61dc74c57..2c7c6e17545 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-parser/src/main/java/org/apache/shardingsphere/infra/parser/cache/SQLStatementCacheBuilder.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-parser/src/main/java/org/apache/shardingsphere/infra/parser/cache/SQLStatementCacheBuilder.java
@@ -17,8 +17,8 @@
 
 package org.apache.shardingsphere.infra.parser.cache;
 
-import com.google.common.cache.CacheBuilder;
-import com.google.common.cache.LoadingCache;
+import com.github.benmanes.caffeine.cache.Caffeine;
+import com.github.benmanes.caffeine.cache.LoadingCache;
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
 import org.apache.shardingsphere.sql.parser.api.CacheOption;
@@ -41,7 +41,7 @@ public final class SQLStatementCacheBuilder {
      */
     public static LoadingCache<String, SQLStatement> build(final String 
databaseType,
                                                            final CacheOption 
sqlStatementCacheOption, final CacheOption parseTreeCacheOption, final boolean 
isParseComment) {
-        return 
CacheBuilder.newBuilder().softValues().initialCapacity(sqlStatementCacheOption.getInitialCapacity()).maximumSize(sqlStatementCacheOption.getMaximumSize())
-                
.concurrencyLevel(sqlStatementCacheOption.getConcurrencyLevel()).build(new 
SQLStatementCacheLoader(databaseType, parseTreeCacheOption, isParseComment));
+        return 
Caffeine.newBuilder().softValues().initialCapacity(sqlStatementCacheOption.getInitialCapacity()).maximumSize(sqlStatementCacheOption.getMaximumSize())
+                .build(new SQLStatementCacheLoader(databaseType, 
parseTreeCacheOption, isParseComment));
     }
 }
diff --git 
a/shardingsphere-infra/shardingsphere-infra-parser/src/main/java/org/apache/shardingsphere/infra/parser/cache/SQLStatementCacheLoader.java
 
b/shardingsphere-infra/shardingsphere-infra-parser/src/main/java/org/apache/shardingsphere/infra/parser/cache/SQLStatementCacheLoader.java
index a161f50b380..d8eb73731e5 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-parser/src/main/java/org/apache/shardingsphere/infra/parser/cache/SQLStatementCacheLoader.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-parser/src/main/java/org/apache/shardingsphere/infra/parser/cache/SQLStatementCacheLoader.java
@@ -17,7 +17,7 @@
 
 package org.apache.shardingsphere.infra.parser.cache;
 
-import com.google.common.cache.CacheLoader;
+import com.github.benmanes.caffeine.cache.CacheLoader;
 import org.apache.shardingsphere.infra.parser.sql.SQLStatementParserExecutor;
 import org.apache.shardingsphere.sql.parser.api.CacheOption;
 import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
@@ -27,7 +27,7 @@ import javax.annotation.ParametersAreNonnullByDefault;
 /**
  * SQL statement cache loader.
  */
-public final class SQLStatementCacheLoader extends CacheLoader<String, 
SQLStatement> {
+public final class SQLStatementCacheLoader implements CacheLoader<String, 
SQLStatement> {
     
     private final SQLStatementParserExecutor sqlStatementParserExecutor;
     
diff --git 
a/shardingsphere-infra/shardingsphere-infra-parser/src/main/java/org/apache/shardingsphere/infra/parser/sql/SQLStatementParserEngine.java
 
b/shardingsphere-infra/shardingsphere-infra-parser/src/main/java/org/apache/shardingsphere/infra/parser/sql/SQLStatementParserEngine.java
index fbba2b8219a..1449105de25 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-parser/src/main/java/org/apache/shardingsphere/infra/parser/sql/SQLStatementParserEngine.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-parser/src/main/java/org/apache/shardingsphere/infra/parser/sql/SQLStatementParserEngine.java
@@ -17,7 +17,7 @@
 
 package org.apache.shardingsphere.infra.parser.sql;
 
-import com.google.common.cache.LoadingCache;
+import com.github.benmanes.caffeine.cache.LoadingCache;
 import org.apache.shardingsphere.infra.parser.cache.SQLStatementCacheBuilder;
 import org.apache.shardingsphere.sql.parser.api.CacheOption;
 import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
@@ -44,6 +44,6 @@ public final class SQLStatementParserEngine {
      * @return SQL statement
      */
     public SQLStatement parse(final String sql, final boolean useCache) {
-        return useCache ? sqlStatementCache.getUnchecked(sql) : 
sqlStatementParserExecutor.parse(sql);
+        return useCache ? sqlStatementCache.get(sql) : 
sqlStatementParserExecutor.parse(sql);
     }
 }
diff --git 
a/shardingsphere-infra/shardingsphere-infra-parser/src/test/java/org/apache/shardingsphere/infra/parser/cache/SQLStatementCacheBuilderTest.java
 
b/shardingsphere-infra/shardingsphere-infra-parser/src/test/java/org/apache/shardingsphere/infra/parser/cache/SQLStatementCacheBuilderTest.java
index 3ec9fc1f7a8..085fb55936e 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-parser/src/test/java/org/apache/shardingsphere/infra/parser/cache/SQLStatementCacheBuilderTest.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-parser/src/test/java/org/apache/shardingsphere/infra/parser/cache/SQLStatementCacheBuilderTest.java
@@ -17,7 +17,7 @@
 
 package org.apache.shardingsphere.infra.parser.cache;
 
-import com.google.common.cache.LoadingCache;
+import com.github.benmanes.caffeine.cache.LoadingCache;
 import org.apache.shardingsphere.sql.parser.api.CacheOption;
 import org.junit.Test;
 
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/pom.xml 
b/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/pom.xml
index 38e3c17f7cf..90a2bef67f9 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/pom.xml
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/pom.xml
@@ -38,10 +38,13 @@
             <artifactId>shardingsphere-sql-parser-statement</artifactId>
             <version>${project.version}</version>
         </dependency>
-        
         <dependency>
             <groupId>org.antlr</groupId>
             <artifactId>antlr4-runtime</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.github.ben-manes.caffeine</groupId>
+            <artifactId>caffeine</artifactId>
+        </dependency>
     </dependencies>
 </project>
diff --git 
a/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/api/SQLParserEngine.java
 
b/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/api/SQLParserEngine.java
index 067f6bf675a..afcaa1ef218 100644
--- 
a/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/api/SQLParserEngine.java
+++ 
b/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/api/SQLParserEngine.java
@@ -17,7 +17,7 @@
 
 package org.apache.shardingsphere.sql.parser.api;
 
-import com.google.common.cache.LoadingCache;
+import com.github.benmanes.caffeine.cache.LoadingCache;
 import org.apache.shardingsphere.sql.parser.core.ParseASTNode;
 import 
org.apache.shardingsphere.sql.parser.core.database.cache.ParseTreeCacheBuilder;
 import 
org.apache.shardingsphere.sql.parser.core.database.parser.SQLParserExecutor;
@@ -44,6 +44,6 @@ public final class SQLParserEngine {
      * @return parse AST node
      */
     public ParseASTNode parse(final String sql, final boolean useCache) {
-        return useCache ? parseTreeCache.getUnchecked(sql) : 
sqlParserExecutor.parse(sql);
+        return useCache ? parseTreeCache.get(sql) : 
sqlParserExecutor.parse(sql);
     }
 }
diff --git 
a/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/core/database/cache/ParseTreeCacheBuilder.java
 
b/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/core/database/cache/ParseTreeCacheBuilder.java
index c90c7b01c23..4a7281bc4e0 100644
--- 
a/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/core/database/cache/ParseTreeCacheBuilder.java
+++ 
b/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/core/database/cache/ParseTreeCacheBuilder.java
@@ -17,8 +17,8 @@
 
 package org.apache.shardingsphere.sql.parser.core.database.cache;
 
-import com.google.common.cache.CacheBuilder;
-import com.google.common.cache.LoadingCache;
+import com.github.benmanes.caffeine.cache.Caffeine;
+import com.github.benmanes.caffeine.cache.LoadingCache;
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
 import org.apache.shardingsphere.sql.parser.api.CacheOption;
@@ -32,14 +32,13 @@ public final class ParseTreeCacheBuilder {
     
     /**
      * Build parse tree cache.
-     * 
+     *
      * @param option cache option
      * @param databaseType database type
      * @return built parse tree cache
      */
     public static LoadingCache<String, ParseASTNode> build(final CacheOption 
option, final String databaseType) {
-        return CacheBuilder.newBuilder().softValues()
-                
.initialCapacity(option.getInitialCapacity()).maximumSize(option.getMaximumSize()).concurrencyLevel(option.getConcurrencyLevel())
+        return 
Caffeine.newBuilder().softValues().initialCapacity(option.getInitialCapacity()).maximumSize(option.getMaximumSize())
                 .build(new ParseTreeCacheLoader(databaseType));
     }
 }
diff --git 
a/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/core/database/cache/ParseTreeCacheLoader.java
 
b/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/core/database/cache/ParseTreeCacheLoader.java
index c02804b16b0..2725c3ac3ba 100644
--- 
a/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/core/database/cache/ParseTreeCacheLoader.java
+++ 
b/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/core/database/cache/ParseTreeCacheLoader.java
@@ -17,7 +17,7 @@
 
 package org.apache.shardingsphere.sql.parser.core.database.cache;
 
-import com.google.common.cache.CacheLoader;
+import com.github.benmanes.caffeine.cache.CacheLoader;
 import org.apache.shardingsphere.sql.parser.core.ParseASTNode;
 import 
org.apache.shardingsphere.sql.parser.core.database.parser.SQLParserExecutor;
 
@@ -26,7 +26,7 @@ import javax.annotation.ParametersAreNonnullByDefault;
 /**
  * Parse context cache loader.
  */
-public final class ParseTreeCacheLoader extends CacheLoader<String, 
ParseASTNode> {
+public final class ParseTreeCacheLoader implements CacheLoader<String, 
ParseASTNode> {
     
     private final SQLParserExecutor sqlParserExecutor;
     
diff --git 
a/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/test/java/org/apache/shardingsphere/sql/parser/api/SQLParserEngineTest.java
 
b/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/test/java/org/apache/shardingsphere/sql/parser/api/SQLParserEngineTest.java
index dcfb3033a6d..a56817ba257 100644
--- 
a/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/test/java/org/apache/shardingsphere/sql/parser/api/SQLParserEngineTest.java
+++ 
b/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/test/java/org/apache/shardingsphere/sql/parser/api/SQLParserEngineTest.java
@@ -17,9 +17,9 @@
 
 package org.apache.shardingsphere.sql.parser.api;
 
-import com.google.common.cache.CacheBuilder;
-import com.google.common.cache.CacheLoader;
-import com.google.common.cache.LoadingCache;
+import com.github.benmanes.caffeine.cache.CacheLoader;
+import com.github.benmanes.caffeine.cache.Caffeine;
+import com.github.benmanes.caffeine.cache.LoadingCache;
 import org.apache.shardingsphere.sql.parser.core.ParseASTNode;
 import 
org.apache.shardingsphere.sql.parser.core.database.parser.SQLParserExecutor;
 import org.junit.Test;
@@ -47,8 +47,8 @@ public final class SQLParserEngineTest {
         sqlParserExecutorFiled.setAccessible(true);
         parseTreeCacheField.setAccessible(true);
         sqlParserExecutorFiled.set(sqlParserEngine, sqlParserExecutor);
-        LoadingCache<String, ParseASTNode> parseTreeCache = 
CacheBuilder.newBuilder().softValues().initialCapacity(128)
-                .maximumSize(1024).concurrencyLevel(4).build(new 
CacheLoader<String, ParseASTNode>() {
+        LoadingCache<String, ParseASTNode> parseTreeCache = 
Caffeine.newBuilder().softValues().initialCapacity(128)
+                .maximumSize(1024).build(new CacheLoader<String, 
ParseASTNode>() {
                     
                     @ParametersAreNonnullByDefault
                     @Override
diff --git 
a/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/test/java/org/apache/shardingsphere/sql/parser/core/SQLParserEngineTest.java
 
b/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/test/java/org/apache/shardingsphere/sql/parser/core/SQLParserEngineTest.java
index 28cc14e039a..fffd0b5b1b0 100644
--- 
a/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/test/java/org/apache/shardingsphere/sql/parser/core/SQLParserEngineTest.java
+++ 
b/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/test/java/org/apache/shardingsphere/sql/parser/core/SQLParserEngineTest.java
@@ -17,9 +17,9 @@
 
 package org.apache.shardingsphere.sql.parser.core;
 
-import com.google.common.cache.CacheBuilder;
-import com.google.common.cache.CacheLoader;
-import com.google.common.cache.LoadingCache;
+import com.github.benmanes.caffeine.cache.CacheLoader;
+import com.github.benmanes.caffeine.cache.Caffeine;
+import com.github.benmanes.caffeine.cache.LoadingCache;
 import 
org.apache.shardingsphere.sql.parser.core.database.parser.SQLParserExecutor;
 import org.junit.Test;
 
@@ -36,8 +36,8 @@ public final class SQLParserEngineTest {
     public void assertParse() {
         SQLParserExecutor sqlParserExecutor = mock(SQLParserExecutor.class);
         when(sqlParserExecutor.parse("")).thenReturn(mock(ParseASTNode.class));
-        LoadingCache<String, ParseASTNode> parseTreeCache = 
CacheBuilder.newBuilder().softValues()
-                
.initialCapacity(128).maximumSize(1024).concurrencyLevel(4).build(new 
CacheLoader<String, ParseASTNode>() {
+        LoadingCache<String, ParseASTNode> parseTreeCache = 
Caffeine.newBuilder().softValues()
+                .initialCapacity(128).maximumSize(1024).build(new 
CacheLoader<String, ParseASTNode>() {
                     
                     @ParametersAreNonnullByDefault
                     @Override
@@ -45,9 +45,9 @@ public final class SQLParserEngineTest {
                         return sqlParserExecutor.parse(sql);
                     }
                 });
-        parseTreeCache.getUnchecked("");
+        parseTreeCache.get("");
         verify(sqlParserExecutor, times(1)).parse("");
-        parseTreeCache.getUnchecked("");
+        parseTreeCache.get("");
         verify(sqlParserExecutor, times(1)).parse("");
         sqlParserExecutor.parse("");
         verify(sqlParserExecutor, times(2)).parse("");
diff --git 
a/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/test/java/org/apache/shardingsphere/sql/parser/core/database/cache/ParseTreeCacheBuilderTest.java
 
b/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/test/java/org/apache/shardingsphere/sql/parser/core/database/cache/ParseTreeCacheBuilderTest.java
index 02e07d8afc0..596ef16dc4f 100644
--- 
a/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/test/java/org/apache/shardingsphere/sql/parser/core/database/cache/ParseTreeCacheBuilderTest.java
+++ 
b/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/test/java/org/apache/shardingsphere/sql/parser/core/database/cache/ParseTreeCacheBuilderTest.java
@@ -17,7 +17,7 @@
 
 package org.apache.shardingsphere.sql.parser.core.database.cache;
 
-import com.google.common.cache.LoadingCache;
+import com.github.benmanes.caffeine.cache.LoadingCache;
 import org.apache.shardingsphere.sql.parser.api.CacheOption;
 import org.apache.shardingsphere.sql.parser.core.ParseASTNode;
 import org.junit.Test;

Reply via email to