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

chengzhang 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 fea37619765 Remove EncryptConditionsAware and refactor 
DatabaseTypedSPILoader and DatabaseTypeRegistry (#37680)
fea37619765 is described below

commit fea37619765f31ae541b443d0f8c3722b4ba84e2
Author: Zhengqiang Duan <[email protected]>
AuthorDate: Thu Jan 8 13:43:06 2026 +0800

    Remove EncryptConditionsAware and refactor DatabaseTypedSPILoader and 
DatabaseTypeRegistry (#37680)
---
 .../connector/core/spi/DatabaseTypedSPILoader.java | 12 +++-----
 .../connector/core/type/DatabaseTypeRegistry.java  |  2 +-
 .../rewrite/aware/EncryptConditionsAware.java      | 35 ----------------------
 .../rewrite/token/EncryptTokenGenerateBuilder.java | 12 ++------
 .../EncryptInsertPredicateValueTokenGenerator.java | 10 +++----
 .../EncryptPredicateValueTokenGenerator.java       |  7 ++---
 .../EncryptPredicateValueTokenGeneratorTest.java   | 14 +++------
 7 files changed, 18 insertions(+), 74 deletions(-)

diff --git 
a/database/connector/core/src/main/java/org/apache/shardingsphere/database/connector/core/spi/DatabaseTypedSPILoader.java
 
b/database/connector/core/src/main/java/org/apache/shardingsphere/database/connector/core/spi/DatabaseTypedSPILoader.java
index 8c0036bc6b4..ce20b9f78bc 100644
--- 
a/database/connector/core/src/main/java/org/apache/shardingsphere/database/connector/core/spi/DatabaseTypedSPILoader.java
+++ 
b/database/connector/core/src/main/java/org/apache/shardingsphere/database/connector/core/spi/DatabaseTypedSPILoader.java
@@ -45,10 +45,8 @@ public final class DatabaseTypedSPILoader {
         if (result.isPresent()) {
             return result;
         }
-        if (databaseType.getTrunkDatabaseType().isPresent()) {
-            return TypedSPILoader.findService(spiClass, 
databaseType.getTrunkDatabaseType().get());
-        }
-        return result;
+        Optional<DatabaseType> trunkDatabaseType = 
databaseType.getTrunkDatabaseType();
+        return trunkDatabaseType.isPresent() ? 
TypedSPILoader.findService(spiClass, trunkDatabaseType.get()) : result;
     }
     
     /**
@@ -65,10 +63,8 @@ public final class DatabaseTypedSPILoader {
         if (result.isPresent()) {
             return result;
         }
-        if (databaseType.getTrunkDatabaseType().isPresent()) {
-            return TypedSPILoader.findService(spiClass, 
databaseType.getTrunkDatabaseType().get(), props);
-        }
-        return result;
+        Optional<DatabaseType> trunkDatabaseType = 
databaseType.getTrunkDatabaseType();
+        return trunkDatabaseType.isPresent() ? 
TypedSPILoader.findService(spiClass, trunkDatabaseType.get(), props) : result;
     }
     
     /**
diff --git 
a/database/connector/core/src/main/java/org/apache/shardingsphere/database/connector/core/type/DatabaseTypeRegistry.java
 
b/database/connector/core/src/main/java/org/apache/shardingsphere/database/connector/core/type/DatabaseTypeRegistry.java
index 315518caf48..ed0558d4b13 100644
--- 
a/database/connector/core/src/main/java/org/apache/shardingsphere/database/connector/core/type/DatabaseTypeRegistry.java
+++ 
b/database/connector/core/src/main/java/org/apache/shardingsphere/database/connector/core/type/DatabaseTypeRegistry.java
@@ -67,7 +67,7 @@ public final class DatabaseTypeRegistry {
      * @return formatted identifier pattern
      */
     public String formatIdentifierPattern(final String identifierPattern) {
-        switch 
(DatabaseTypedSPILoader.getService(DialectDatabaseMetaData.class, 
databaseType).getIdentifierPatternType()) {
+        switch (dialectDatabaseMetaData.getIdentifierPatternType()) {
             case UPPER_CASE:
                 return identifierPattern.toUpperCase();
             case LOWER_CASE:
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/aware/EncryptConditionsAware.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/aware/EncryptConditionsAware.java
deleted file mode 100644
index 92d66ffe2cf..00000000000
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/aware/EncryptConditionsAware.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.encrypt.rewrite.aware;
-
-import org.apache.shardingsphere.encrypt.rewrite.condition.EncryptCondition;
-
-import java.util.Collection;
-
-/**
- * Encrypt conditions aware.
- */
-public interface EncryptConditionsAware {
-    
-    /**
-     * Set encrypt conditions.
-     *
-     * @param encryptConditions encrypt conditions
-     */
-    void setEncryptConditions(Collection<EncryptCondition> encryptConditions);
-}
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/EncryptTokenGenerateBuilder.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/EncryptTokenGenerateBuilder.java
index 07ad270b8a2..4c054052a96 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/EncryptTokenGenerateBuilder.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/EncryptTokenGenerateBuilder.java
@@ -18,7 +18,6 @@
 package org.apache.shardingsphere.encrypt.rewrite.token;
 
 import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.encrypt.rewrite.aware.EncryptConditionsAware;
 import org.apache.shardingsphere.encrypt.rewrite.condition.EncryptCondition;
 import 
org.apache.shardingsphere.encrypt.rewrite.token.generator.assignment.EncryptInsertAssignmentTokenGenerator;
 import 
org.apache.shardingsphere.encrypt.rewrite.token.generator.assignment.EncryptUpdateAssignmentTokenGenerator;
@@ -71,8 +70,8 @@ public final class EncryptTokenGenerateBuilder implements 
SQLTokenGeneratorBuild
         addSQLTokenGenerator(result, new 
EncryptUpdateAssignmentTokenGenerator(rule, database));
         addSQLTokenGenerator(result, new 
EncryptPredicateColumnTokenGenerator(rule));
         addSQLTokenGenerator(result, new 
EncryptInsertPredicateColumnTokenGenerator(rule));
-        addSQLTokenGenerator(result, new 
EncryptPredicateValueTokenGenerator(rule, database));
-        addSQLTokenGenerator(result, new 
EncryptInsertPredicateValueTokenGenerator(rule, database));
+        addSQLTokenGenerator(result, new 
EncryptPredicateValueTokenGenerator(rule, database, encryptConditions));
+        addSQLTokenGenerator(result, new 
EncryptInsertPredicateValueTokenGenerator(rule, database, encryptConditions));
         addSQLTokenGenerator(result, new 
EncryptInsertValuesTokenGenerator(rule, database));
         addSQLTokenGenerator(result, new 
EncryptInsertDefaultColumnsTokenGenerator(rule));
         addSQLTokenGenerator(result, new 
EncryptInsertCipherNameTokenGenerator(rule));
@@ -86,15 +85,8 @@ public final class EncryptTokenGenerateBuilder implements 
SQLTokenGeneratorBuild
     }
     
     private void addSQLTokenGenerator(final Collection<SQLTokenGenerator> 
sqlTokenGenerators, final SQLTokenGenerator toBeAddedSQLTokenGenerator) {
-        setUpSQLTokenGenerator(toBeAddedSQLTokenGenerator);
         if 
(toBeAddedSQLTokenGenerator.isGenerateSQLToken(sqlStatementContext)) {
             sqlTokenGenerators.add(toBeAddedSQLTokenGenerator);
         }
     }
-    
-    private void setUpSQLTokenGenerator(final SQLTokenGenerator 
toBeAddedSQLTokenGenerator) {
-        if (toBeAddedSQLTokenGenerator instanceof EncryptConditionsAware) {
-            ((EncryptConditionsAware) 
toBeAddedSQLTokenGenerator).setEncryptConditions(encryptConditions);
-        }
-    }
 }
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/predicate/EncryptInsertPredicateValueTokenGenerator.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/predicate/EncryptInsertPredicateValueTokenGenerator.java
index 3dd89dc34ac..783fa168649 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/predicate/EncryptInsertPredicateValueTokenGenerator.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/predicate/EncryptInsertPredicateValueTokenGenerator.java
@@ -19,7 +19,6 @@ package 
org.apache.shardingsphere.encrypt.rewrite.token.generator.predicate;
 
 import lombok.RequiredArgsConstructor;
 import lombok.Setter;
-import org.apache.shardingsphere.encrypt.rewrite.aware.EncryptConditionsAware;
 import org.apache.shardingsphere.encrypt.rewrite.condition.EncryptCondition;
 import org.apache.shardingsphere.encrypt.rule.EncryptRule;
 import org.apache.shardingsphere.infra.annotation.HighFrequencyInvocation;
@@ -39,15 +38,15 @@ import java.util.List;
 @HighFrequencyInvocation
 @RequiredArgsConstructor
 @Setter
-public final class EncryptInsertPredicateValueTokenGenerator implements 
CollectionSQLTokenGenerator<InsertStatementContext>, ParametersAware, 
EncryptConditionsAware {
+public final class EncryptInsertPredicateValueTokenGenerator implements 
CollectionSQLTokenGenerator<InsertStatementContext>, ParametersAware {
     
     private final EncryptRule rule;
     
     private final ShardingSphereDatabase database;
     
-    private List<Object> parameters;
+    private final Collection<EncryptCondition> encryptConditions;
     
-    private Collection<EncryptCondition> encryptConditions;
+    private List<Object> parameters;
     
     @Override
     public boolean isGenerateSQLToken(final SQLStatementContext 
sqlStatementContext) {
@@ -57,9 +56,8 @@ public final class EncryptInsertPredicateValueTokenGenerator 
implements Collecti
     
     @Override
     public Collection<SQLToken> generateSQLTokens(final InsertStatementContext 
sqlStatementContext) {
-        EncryptPredicateValueTokenGenerator generator = new 
EncryptPredicateValueTokenGenerator(rule, database);
+        EncryptPredicateValueTokenGenerator generator = new 
EncryptPredicateValueTokenGenerator(rule, database, encryptConditions);
         generator.setParameters(parameters);
-        generator.setEncryptConditions(encryptConditions);
         return 
generator.generateSQLTokens(sqlStatementContext.getInsertSelectContext().getSelectStatementContext());
     }
 }
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/predicate/EncryptPredicateValueTokenGenerator.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/predicate/EncryptPredicateValueTokenGenerator.java
index c7c783996e7..235560cdb1f 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/predicate/EncryptPredicateValueTokenGenerator.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/predicate/EncryptPredicateValueTokenGenerator.java
@@ -21,7 +21,6 @@ import lombok.RequiredArgsConstructor;
 import lombok.Setter;
 import 
org.apache.shardingsphere.database.connector.core.type.DatabaseTypeRegistry;
 import 
org.apache.shardingsphere.encrypt.exception.metadata.MissingMatchedEncryptQueryAlgorithmException;
-import org.apache.shardingsphere.encrypt.rewrite.aware.EncryptConditionsAware;
 import org.apache.shardingsphere.encrypt.rewrite.condition.EncryptCondition;
 import 
org.apache.shardingsphere.encrypt.rewrite.condition.EncryptConditionValues;
 import 
org.apache.shardingsphere.encrypt.rewrite.condition.impl.EncryptBinaryCondition;
@@ -55,15 +54,15 @@ import java.util.Optional;
 @HighFrequencyInvocation
 @RequiredArgsConstructor
 @Setter
-public final class EncryptPredicateValueTokenGenerator implements 
CollectionSQLTokenGenerator<SQLStatementContext>, ParametersAware, 
EncryptConditionsAware {
+public final class EncryptPredicateValueTokenGenerator implements 
CollectionSQLTokenGenerator<SQLStatementContext>, ParametersAware {
     
     private final EncryptRule rule;
     
     private final ShardingSphereDatabase database;
     
-    private List<Object> parameters;
+    private final Collection<EncryptCondition> encryptConditions;
     
-    private Collection<EncryptCondition> encryptConditions;
+    private List<Object> parameters;
     
     @Override
     public boolean isGenerateSQLToken(final SQLStatementContext 
sqlStatementContext) {
diff --git 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/predicate/EncryptPredicateValueTokenGeneratorTest.java
 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/predicate/EncryptPredicateValueTokenGeneratorTest.java
index 2c12898df7b..9c5752141a4 100644
--- 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/predicate/EncryptPredicateValueTokenGeneratorTest.java
+++ 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/predicate/EncryptPredicateValueTokenGeneratorTest.java
@@ -23,7 +23,6 @@ import 
org.apache.shardingsphere.encrypt.rewrite.token.generator.fixture.Encrypt
 import 
org.apache.shardingsphere.infra.binder.context.statement.type.dml.UpdateStatementContext;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import org.apache.shardingsphere.infra.rewrite.sql.token.common.pojo.SQLToken;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
 import java.util.Collection;
@@ -36,23 +35,18 @@ import static org.mockito.Mockito.mock;
 
 class EncryptPredicateValueTokenGeneratorTest {
     
-    private EncryptPredicateValueTokenGenerator generator;
-    
-    @BeforeEach
-    void setup() {
-        generator = new 
EncryptPredicateValueTokenGenerator(EncryptGeneratorFixtureBuilder.createEncryptRule(),
-                new ShardingSphereDatabase("foo_db", mock(), mock(), mock(), 
Collections.emptyList()));
-    }
-    
     @Test
     void assertIsGenerateSQLToken() {
+        EncryptPredicateValueTokenGenerator generator = new 
EncryptPredicateValueTokenGenerator(EncryptGeneratorFixtureBuilder.createEncryptRule(),
+                new ShardingSphereDatabase("foo_db", mock(), mock(), mock(), 
Collections.emptyList()), Collections.emptyList());
         
assertTrue(generator.isGenerateSQLToken(EncryptGeneratorFixtureBuilder.createUpdateStatementContext()));
     }
     
     @Test
     void assertGenerateSQLTokenFromGenerateNewSQLToken() {
         UpdateStatementContext updateStatementContext = 
EncryptGeneratorFixtureBuilder.createUpdateStatementContext();
-        
generator.setEncryptConditions(getEncryptConditions(updateStatementContext));
+        EncryptPredicateValueTokenGenerator generator = new 
EncryptPredicateValueTokenGenerator(EncryptGeneratorFixtureBuilder.createEncryptRule(),
+                new ShardingSphereDatabase("foo_db", mock(), mock(), mock(), 
Collections.emptyList()), getEncryptConditions(updateStatementContext));
         Collection<SQLToken> sqlTokens = 
generator.generateSQLTokens(updateStatementContext);
         assertThat(sqlTokens.size(), is(1));
         assertThat(sqlTokens.iterator().next().toString(), 
is("'assistedEncryptValue'"));

Reply via email to