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 58e905c97a9 Add ShadowDataSourceMappingsFinder (#33519)
58e905c97a9 is described below

commit 58e905c97a96a6584c8450b58c1ec79c5076b4d3
Author: Liang Zhang <[email protected]>
AuthorDate: Sun Nov 3 23:52:56 2024 +0800

    Add ShadowDataSourceMappingsFinder (#33519)
    
    * Add ShadowDataSourceMappingsFinder
    
    * Add ShadowDataSourceMappingsFinder
    
    * Add ShadowDataSourceMappingsFinder
    
    * Add ShadowDataSourceMappingsFinder
    
    * Add ShadowDataSourceMappingsFinder
    
    * Add ShadowDataSourceMappingsFinder
    
    * Add ShadowDataSourceMappingsFinder
    
    * Add ShadowDataSourceMappingsFinder
    
    * Add ShadowDataSourceMappingsFinder
    
    * Add ShadowDataSourceMappingsFinder
---
 .../shadow/route/ShadowSQLRouter.java              |  5 +-
 ... => ShadowDataSourceMappingsFinderFactory.java} | 39 +++++++-------
 .../route/engine/ShadowRouteContextDecorator.java  | 63 ----------------------
 .../shadow/route/engine/ShadowRouteEngine.java     | 32 ++++++++++-
 .../ShadowDataSourceMappingsFinder.java}           | 15 +++---
 ...hadowDMLStatementDataSourceMappingsFinder.java} | 18 +++----
 ...owDeleteStatementDataSourceMappingsFinder.java} |  8 +--
 ...owInsertStatementDataSourceMappingsFinder.java} |  8 +--
 ...owSelectStatementDataSourceMappingsFinder.java} |  8 +--
 ...owUpdateStatementDataSourceMappingsFinder.java} |  8 +--
 ...owNonDMLStatementDataSourceMappingsFinder.java} | 24 +++------
 .../shardingsphere/shadow/rule/ShadowRule.java     |  6 +--
 .../route/engine/ShadowRouteEngineFactoryTest.java | 25 ++++-----
 .../ShadowNonDMLStatementRouteEngineTest.java      | 29 ++--------
 .../shardingsphere/shadow/rule/ShadowRuleTest.java | 10 ++--
 15 files changed, 115 insertions(+), 183 deletions(-)

diff --git 
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/ShadowSQLRouter.java
 
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/ShadowSQLRouter.java
index ca99c24ac23..2143efaecf7 100644
--- 
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/ShadowSQLRouter.java
+++ 
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/ShadowSQLRouter.java
@@ -24,7 +24,8 @@ import 
org.apache.shardingsphere.infra.route.DecorateSQLRouter;
 import org.apache.shardingsphere.infra.route.context.RouteContext;
 import org.apache.shardingsphere.infra.session.query.QueryContext;
 import org.apache.shardingsphere.shadow.constant.ShadowOrder;
-import org.apache.shardingsphere.shadow.route.engine.ShadowRouteEngineFactory;
+import 
org.apache.shardingsphere.shadow.route.engine.ShadowDataSourceMappingsFinderFactory;
+import org.apache.shardingsphere.shadow.route.engine.ShadowRouteEngine;
 import org.apache.shardingsphere.shadow.rule.ShadowRule;
 
 /**
@@ -36,7 +37,7 @@ public final class ShadowSQLRouter implements 
DecorateSQLRouter<ShadowRule> {
     @Override
     public void decorateRouteContext(final RouteContext routeContext, final 
QueryContext queryContext, final ShardingSphereDatabase database,
                                      final ShadowRule rule, final 
ConfigurationProperties props) {
-        ShadowRouteEngineFactory.newInstance(queryContext).route(routeContext, 
rule);
+        new ShadowRouteEngine().route(routeContext, rule, 
ShadowDataSourceMappingsFinderFactory.newInstance(queryContext));
     }
     
     @Override
diff --git 
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/ShadowRouteEngineFactory.java
 
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/ShadowDataSourceMappingsFinderFactory.java
similarity index 53%
rename from 
features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/ShadowRouteEngineFactory.java
rename to 
features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/ShadowDataSourceMappingsFinderFactory.java
index 47322fee541..52eb12f96b0 100644
--- 
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/ShadowRouteEngineFactory.java
+++ 
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/ShadowDataSourceMappingsFinderFactory.java
@@ -24,11 +24,12 @@ import 
org.apache.shardingsphere.infra.binder.context.statement.dml.InsertStatem
 import 
org.apache.shardingsphere.infra.binder.context.statement.dml.SelectStatementContext;
 import 
org.apache.shardingsphere.infra.binder.context.statement.dml.UpdateStatementContext;
 import org.apache.shardingsphere.infra.session.query.QueryContext;
-import 
org.apache.shardingsphere.shadow.route.engine.dml.ShadowDeleteStatementRouteEngine;
-import 
org.apache.shardingsphere.shadow.route.engine.dml.ShadowInsertStatementRouteEngine;
-import 
org.apache.shardingsphere.shadow.route.engine.dml.ShadowSelectStatementRouteEngine;
-import 
org.apache.shardingsphere.shadow.route.engine.dml.ShadowUpdateStatementRouteEngine;
-import 
org.apache.shardingsphere.shadow.route.engine.impl.ShadowNonDMLStatementRouteEngine;
+import 
org.apache.shardingsphere.shadow.route.engine.finder.ShadowDataSourceMappingsFinder;
+import 
org.apache.shardingsphere.shadow.route.engine.finder.dml.ShadowDeleteStatementDataSourceMappingsFinder;
+import 
org.apache.shardingsphere.shadow.route.engine.finder.dml.ShadowInsertStatementDataSourceMappingsFinder;
+import 
org.apache.shardingsphere.shadow.route.engine.finder.dml.ShadowSelectStatementDataSourceMappingsFinder;
+import 
org.apache.shardingsphere.shadow.route.engine.finder.dml.ShadowUpdateStatementDataSourceMappingsFinder;
+import 
org.apache.shardingsphere.shadow.route.engine.finder.other.ShadowNonDMLStatementDataSourceMappingsFinder;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.SQLStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.dml.DeleteStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.dml.InsertStatement;
@@ -36,18 +37,18 @@ import 
org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectS
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.dml.UpdateStatement;
 
 /**
- * Shadow routing engine factory.
+ * Shadow data source mappings finder.
  */
 @NoArgsConstructor(access = AccessLevel.PRIVATE)
-public final class ShadowRouteEngineFactory {
+public final class ShadowDataSourceMappingsFinderFactory {
     
     /**
-     * Create new instance of shadow route engine.
+     * Create new instance of shadow data source mappings finder.
      *
      * @param queryContext query context
      * @return created instance
      */
-    public static ShadowRouteEngine newInstance(final QueryContext 
queryContext) {
+    public static ShadowDataSourceMappingsFinder newInstance(final 
QueryContext queryContext) {
         SQLStatement sqlStatement = 
queryContext.getSqlStatementContext().getSqlStatement();
         if (sqlStatement instanceof InsertStatement) {
             return createShadowInsertStatementRouteEngine(queryContext);
@@ -64,23 +65,23 @@ public final class ShadowRouteEngineFactory {
         return createShadowNonMDLStatementRouteEngine(queryContext);
     }
     
-    private static ShadowRouteEngine 
createShadowNonMDLStatementRouteEngine(final QueryContext queryContext) {
-        return new 
ShadowNonDMLStatementRouteEngine(queryContext.getHintValueContext());
+    private static ShadowDataSourceMappingsFinder 
createShadowNonMDLStatementRouteEngine(final QueryContext queryContext) {
+        return new 
ShadowNonDMLStatementDataSourceMappingsFinder(queryContext.getHintValueContext());
     }
     
-    private static ShadowRouteEngine 
createShadowSelectStatementRouteEngine(final QueryContext queryContext) {
-        return new ShadowSelectStatementRouteEngine((SelectStatementContext) 
queryContext.getSqlStatementContext(), queryContext.getParameters(), 
queryContext.getHintValueContext());
+    private static ShadowDataSourceMappingsFinder 
createShadowSelectStatementRouteEngine(final QueryContext queryContext) {
+        return new 
ShadowSelectStatementDataSourceMappingsFinder((SelectStatementContext) 
queryContext.getSqlStatementContext(), queryContext.getParameters(), 
queryContext.getHintValueContext());
     }
     
-    private static ShadowRouteEngine 
createShadowUpdateStatementRouteEngine(final QueryContext queryContext) {
-        return new ShadowUpdateStatementRouteEngine((UpdateStatementContext) 
queryContext.getSqlStatementContext(), queryContext.getParameters(), 
queryContext.getHintValueContext());
+    private static ShadowDataSourceMappingsFinder 
createShadowUpdateStatementRouteEngine(final QueryContext queryContext) {
+        return new 
ShadowUpdateStatementDataSourceMappingsFinder((UpdateStatementContext) 
queryContext.getSqlStatementContext(), queryContext.getParameters(), 
queryContext.getHintValueContext());
     }
     
-    private static ShadowRouteEngine 
createShadowDeleteStatementRouteEngine(final QueryContext queryContext) {
-        return new ShadowDeleteStatementRouteEngine((DeleteStatementContext) 
queryContext.getSqlStatementContext(), queryContext.getParameters(), 
queryContext.getHintValueContext());
+    private static ShadowDataSourceMappingsFinder 
createShadowDeleteStatementRouteEngine(final QueryContext queryContext) {
+        return new 
ShadowDeleteStatementDataSourceMappingsFinder((DeleteStatementContext) 
queryContext.getSqlStatementContext(), queryContext.getParameters(), 
queryContext.getHintValueContext());
     }
     
-    private static ShadowRouteEngine 
createShadowInsertStatementRouteEngine(final QueryContext queryContext) {
-        return new ShadowInsertStatementRouteEngine((InsertStatementContext) 
queryContext.getSqlStatementContext(), queryContext.getHintValueContext());
+    private static ShadowDataSourceMappingsFinder 
createShadowInsertStatementRouteEngine(final QueryContext queryContext) {
+        return new 
ShadowInsertStatementDataSourceMappingsFinder((InsertStatementContext) 
queryContext.getSqlStatementContext(), queryContext.getHintValueContext());
     }
 }
diff --git 
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/ShadowRouteContextDecorator.java
 
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/ShadowRouteContextDecorator.java
deleted file mode 100644
index 85b06be7d69..00000000000
--- 
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/ShadowRouteContextDecorator.java
+++ /dev/null
@@ -1,63 +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.shadow.route.engine;
-
-import lombok.AccessLevel;
-import lombok.NoArgsConstructor;
-import org.apache.shardingsphere.infra.route.context.RouteContext;
-import org.apache.shardingsphere.infra.route.context.RouteMapper;
-import org.apache.shardingsphere.infra.route.context.RouteUnit;
-import org.apache.shardingsphere.shadow.rule.ShadowRule;
-
-import java.util.Collection;
-import java.util.LinkedList;
-import java.util.Map;
-import java.util.Optional;
-
-/**
- * Shadow route context decorator.
- */
-@NoArgsConstructor(access = AccessLevel.PRIVATE)
-public final class ShadowRouteContextDecorator {
-    
-    /**
-     * Decorate route context.
-     *
-     * @param routeContext route context to be decorated
-     * @param rule shadow rule
-     * @param shadowDataSourceMappings shadow data source mappings
-     */
-    public static void decorate(final RouteContext routeContext, final 
ShadowRule rule, final Map<String, String> shadowDataSourceMappings) {
-        Collection<RouteUnit> toBeRemovedRouteUnit = new LinkedList<>();
-        Collection<RouteUnit> toBeAddedRouteUnit = new LinkedList<>();
-        for (RouteUnit each : routeContext.getRouteUnits()) {
-            String logicName = each.getDataSourceMapper().getLogicName();
-            String actualName = each.getDataSourceMapper().getActualName();
-            Optional<String> sourceDataSourceName = 
rule.getSourceDataSourceName(actualName);
-            if (sourceDataSourceName.isPresent()) {
-                String shadowDataSourceName = 
shadowDataSourceMappings.get(sourceDataSourceName.get());
-                toBeRemovedRouteUnit.add(each);
-                toBeAddedRouteUnit.add(null == shadowDataSourceName
-                        ? new RouteUnit(new RouteMapper(logicName, 
sourceDataSourceName.get()), each.getTableMappers())
-                        : new RouteUnit(new RouteMapper(logicName, 
shadowDataSourceName), each.getTableMappers()));
-            }
-        }
-        routeContext.getRouteUnits().removeAll(toBeRemovedRouteUnit);
-        routeContext.getRouteUnits().addAll(toBeAddedRouteUnit);
-    }
-}
diff --git 
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/ShadowRouteEngine.java
 
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/ShadowRouteEngine.java
index c81a83124c7..1dae3f8a867 100644
--- 
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/ShadowRouteEngine.java
+++ 
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/ShadowRouteEngine.java
@@ -17,19 +17,47 @@
 
 package org.apache.shardingsphere.shadow.route.engine;
 
+import org.apache.shardingsphere.infra.annotation.HighFrequencyInvocation;
 import org.apache.shardingsphere.infra.route.context.RouteContext;
+import org.apache.shardingsphere.infra.route.context.RouteMapper;
+import org.apache.shardingsphere.infra.route.context.RouteUnit;
+import 
org.apache.shardingsphere.shadow.route.engine.finder.ShadowDataSourceMappingsFinder;
 import org.apache.shardingsphere.shadow.rule.ShadowRule;
 
+import java.util.Collection;
+import java.util.LinkedList;
+import java.util.Map;
+import java.util.Optional;
+
 /**
  * Shadow route engine.
  */
-public interface ShadowRouteEngine {
+@HighFrequencyInvocation
+public final class ShadowRouteEngine {
     
     /**
      * Route.
      *
      * @param routeContext route context
      * @param rule shadow rule
+     * @param finder finder
      */
-    void route(RouteContext routeContext, ShadowRule rule);
+    public void route(final RouteContext routeContext, final ShadowRule rule, 
final ShadowDataSourceMappingsFinder finder) {
+        Collection<RouteUnit> toBeRemovedRouteUnit = new LinkedList<>();
+        Collection<RouteUnit> toBeAddedRouteUnit = new LinkedList<>();
+        Map<String, String> shadowDataSourceMappings = finder.find(rule);
+        for (RouteUnit each : routeContext.getRouteUnits()) {
+            String logicName = each.getDataSourceMapper().getLogicName();
+            String actualName = each.getDataSourceMapper().getActualName();
+            Optional<String> productionDataSourceName = 
rule.findProductionDataSourceName(actualName);
+            if (productionDataSourceName.isPresent()) {
+                String shadowDataSourceName = 
shadowDataSourceMappings.get(productionDataSourceName.get());
+                toBeRemovedRouteUnit.add(each);
+                String dataSourceName = null == shadowDataSourceName ? 
productionDataSourceName.get() : shadowDataSourceName;
+                toBeAddedRouteUnit.add(new RouteUnit(new 
RouteMapper(logicName, dataSourceName), each.getTableMappers()));
+            }
+        }
+        routeContext.getRouteUnits().removeAll(toBeRemovedRouteUnit);
+        routeContext.getRouteUnits().addAll(toBeAddedRouteUnit);
+    }
 }
diff --git 
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/ShadowRouteEngine.java
 
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/finder/ShadowDataSourceMappingsFinder.java
similarity index 74%
copy from 
features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/ShadowRouteEngine.java
copy to 
features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/finder/ShadowDataSourceMappingsFinder.java
index c81a83124c7..3bd42e20e3f 100644
--- 
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/ShadowRouteEngine.java
+++ 
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/finder/ShadowDataSourceMappingsFinder.java
@@ -15,21 +15,22 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.shadow.route.engine;
+package org.apache.shardingsphere.shadow.route.engine.finder;
 
-import org.apache.shardingsphere.infra.route.context.RouteContext;
 import org.apache.shardingsphere.shadow.rule.ShadowRule;
 
+import java.util.Map;
+
 /**
- * Shadow route engine.
+ * Shadow data source mappings finder.
  */
-public interface ShadowRouteEngine {
+public interface ShadowDataSourceMappingsFinder {
     
     /**
-     * Route.
+     * Find shadow data source mappings.
      *
-     * @param routeContext route context
      * @param rule shadow rule
+     * @return found shadow data source mappings
      */
-    void route(RouteContext routeContext, ShadowRule rule);
+    Map<String, String> find(ShadowRule rule);
 }
diff --git 
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/AbstractShadowDMLStatementRouteEngine.java
 
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/finder/dml/AbstractShadowDMLStatementDataSourceMappingsFinder.java
similarity index 89%
rename from 
features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/AbstractShadowDMLStatementRouteEngine.java
rename to 
features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/finder/dml/AbstractShadowDMLStatementDataSourceMappingsFinder.java
index e7d80712218..b3de1fe7d03 100644
--- 
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/AbstractShadowDMLStatementRouteEngine.java
+++ 
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/finder/dml/AbstractShadowDMLStatementDataSourceMappingsFinder.java
@@ -15,20 +15,18 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.shadow.route.engine.dml;
+package org.apache.shardingsphere.shadow.route.engine.finder.dml;
 
 import lombok.Getter;
 import org.apache.shardingsphere.infra.annotation.HighFrequencyInvocation;
 import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
 import org.apache.shardingsphere.infra.binder.context.type.TableAvailable;
 import org.apache.shardingsphere.infra.hint.HintValueContext;
-import org.apache.shardingsphere.infra.route.context.RouteContext;
 import org.apache.shardingsphere.shadow.condition.ShadowColumnCondition;
 import org.apache.shardingsphere.shadow.condition.ShadowDetermineCondition;
-import 
org.apache.shardingsphere.shadow.route.engine.ShadowRouteContextDecorator;
-import org.apache.shardingsphere.shadow.route.engine.ShadowRouteEngine;
 import 
org.apache.shardingsphere.shadow.route.engine.determiner.ColumnShadowAlgorithmDeterminer;
 import 
org.apache.shardingsphere.shadow.route.engine.determiner.HintShadowAlgorithmDeterminer;
+import 
org.apache.shardingsphere.shadow.route.engine.finder.ShadowDataSourceMappingsFinder;
 import org.apache.shardingsphere.shadow.rule.ShadowRule;
 import org.apache.shardingsphere.shadow.spi.ShadowAlgorithm;
 import org.apache.shardingsphere.shadow.spi.ShadowOperationType;
@@ -43,10 +41,10 @@ import java.util.Map;
 import java.util.Optional;
 
 /**
- * Abstract shadow DML statement route engine.
+ * Abstract shadow DML statement data source mappings finder.
  */
 @HighFrequencyInvocation
-public abstract class AbstractShadowDMLStatementRouteEngine implements 
ShadowRouteEngine {
+public abstract class AbstractShadowDMLStatementDataSourceMappingsFinder 
implements ShadowDataSourceMappingsFinder {
     
     private final ShadowOperationType operationType;
     
@@ -55,7 +53,7 @@ public abstract class AbstractShadowDMLStatementRouteEngine 
implements ShadowRou
     @Getter
     private final Map<String, String> tableAliasAndNameMappings;
     
-    protected AbstractShadowDMLStatementRouteEngine(final SQLStatementContext 
sqlStatementContext, final HintValueContext hintValueContext, final 
ShadowOperationType operationType) {
+    protected AbstractShadowDMLStatementDataSourceMappingsFinder(final 
SQLStatementContext sqlStatementContext, final HintValueContext 
hintValueContext, final ShadowOperationType operationType) {
         this.operationType = operationType;
         isShadow = hintValueContext.isShadow();
         tableAliasAndNameMappings = 
getTableAliasAndNameMappings(((TableAvailable) 
sqlStatementContext).getTablesContext().getSimpleTables());
@@ -72,11 +70,7 @@ public abstract class AbstractShadowDMLStatementRouteEngine 
implements ShadowRou
     }
     
     @Override
-    public final void route(final RouteContext routeContext, final ShadowRule 
rule) {
-        ShadowRouteContextDecorator.decorate(routeContext, rule, 
findShadowDataSourceMappings(rule));
-    }
-    
-    private Map<String, String> findShadowDataSourceMappings(final ShadowRule 
rule) {
+    public Map<String, String> find(final ShadowRule rule) {
         Collection<String> relatedShadowTables = 
rule.getRelatedShadowTables(tableAliasAndNameMappings.values());
         if (relatedShadowTables.isEmpty() && isMatchDefaultAlgorithm(rule)) {
             return rule.getAllShadowDataSourceMappings();
diff --git 
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowDeleteStatementRouteEngine.java
 
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/finder/dml/ShadowDeleteStatementDataSourceMappingsFinder.java
similarity index 86%
rename from 
features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowDeleteStatementRouteEngine.java
rename to 
features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/finder/dml/ShadowDeleteStatementDataSourceMappingsFinder.java
index a7cc1015ea2..9c956cb7837 100644
--- 
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowDeleteStatementRouteEngine.java
+++ 
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/finder/dml/ShadowDeleteStatementDataSourceMappingsFinder.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.shadow.route.engine.dml;
+package org.apache.shardingsphere.shadow.route.engine.finder.dml;
 
 import 
org.apache.shardingsphere.infra.binder.context.statement.dml.DeleteStatementContext;
 import org.apache.shardingsphere.infra.hint.HintValueContext;
@@ -32,15 +32,15 @@ import java.util.LinkedList;
 import java.util.List;
 
 /**
- * Shadow delete statement route engine.
+ * Shadow delete statement data source mappings finder.
  */
-public final class ShadowDeleteStatementRouteEngine extends 
AbstractShadowDMLStatementRouteEngine {
+public final class ShadowDeleteStatementDataSourceMappingsFinder extends 
AbstractShadowDMLStatementDataSourceMappingsFinder {
     
     private final DeleteStatementContext sqlStatementContext;
     
     private final List<Object> parameters;
     
-    public ShadowDeleteStatementRouteEngine(final DeleteStatementContext 
sqlStatementContext, final List<Object> parameters, final HintValueContext 
hintValueContext) {
+    public ShadowDeleteStatementDataSourceMappingsFinder(final 
DeleteStatementContext sqlStatementContext, final List<Object> parameters, 
final HintValueContext hintValueContext) {
         super(sqlStatementContext, hintValueContext, 
ShadowOperationType.DELETE);
         this.sqlStatementContext = sqlStatementContext;
         this.parameters = parameters;
diff --git 
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowInsertStatementRouteEngine.java
 
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/finder/dml/ShadowInsertStatementDataSourceMappingsFinder.java
similarity index 88%
rename from 
features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowInsertStatementRouteEngine.java
rename to 
features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/finder/dml/ShadowInsertStatementDataSourceMappingsFinder.java
index ba0de55e147..1abc47c5a8d 100644
--- 
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowInsertStatementRouteEngine.java
+++ 
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/finder/dml/ShadowInsertStatementDataSourceMappingsFinder.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.shadow.route.engine.dml;
+package org.apache.shardingsphere.shadow.route.engine.finder.dml;
 
 import 
org.apache.shardingsphere.infra.binder.context.segment.insert.values.InsertValueContext;
 import 
org.apache.shardingsphere.infra.binder.context.statement.dml.InsertStatementContext;
@@ -30,13 +30,13 @@ import java.util.LinkedList;
 import java.util.List;
 
 /**
- * Shadow insert statement route engine.
+ * Shadow insert statement data source mappings finder.
  */
-public final class ShadowInsertStatementRouteEngine extends 
AbstractShadowDMLStatementRouteEngine {
+public final class ShadowInsertStatementDataSourceMappingsFinder extends 
AbstractShadowDMLStatementDataSourceMappingsFinder {
     
     private final InsertStatementContext sqlStatementContext;
     
-    public ShadowInsertStatementRouteEngine(final InsertStatementContext 
sqlStatementContext, final HintValueContext hintValueContext) {
+    public ShadowInsertStatementDataSourceMappingsFinder(final 
InsertStatementContext sqlStatementContext, final HintValueContext 
hintValueContext) {
         super(sqlStatementContext, hintValueContext, 
ShadowOperationType.INSERT);
         this.sqlStatementContext = sqlStatementContext;
     }
diff --git 
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowSelectStatementRouteEngine.java
 
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/finder/dml/ShadowSelectStatementDataSourceMappingsFinder.java
similarity index 89%
rename from 
features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowSelectStatementRouteEngine.java
rename to 
features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/finder/dml/ShadowSelectStatementDataSourceMappingsFinder.java
index 9b2fb561749..6dd87aae743 100644
--- 
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowSelectStatementRouteEngine.java
+++ 
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/finder/dml/ShadowSelectStatementDataSourceMappingsFinder.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.shadow.route.engine.dml;
+package org.apache.shardingsphere.shadow.route.engine.finder.dml;
 
 import 
org.apache.shardingsphere.infra.binder.context.statement.dml.SelectStatementContext;
 import org.apache.shardingsphere.infra.hint.HintValueContext;
@@ -36,15 +36,15 @@ import java.util.List;
 import java.util.Optional;
 
 /**
- * Shadow select statement route engine.
+ * Shadow select statement data source mappings finder.
  */
-public final class ShadowSelectStatementRouteEngine extends 
AbstractShadowDMLStatementRouteEngine {
+public final class ShadowSelectStatementDataSourceMappingsFinder extends 
AbstractShadowDMLStatementDataSourceMappingsFinder {
     
     private final SelectStatementContext sqlStatementContext;
     
     private final List<Object> parameters;
     
-    public ShadowSelectStatementRouteEngine(final SelectStatementContext 
sqlStatementContext, final List<Object> parameters, final HintValueContext 
hintValueContext) {
+    public ShadowSelectStatementDataSourceMappingsFinder(final 
SelectStatementContext sqlStatementContext, final List<Object> parameters, 
final HintValueContext hintValueContext) {
         super(sqlStatementContext, hintValueContext, 
ShadowOperationType.SELECT);
         this.sqlStatementContext = sqlStatementContext;
         this.parameters = parameters;
diff --git 
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowUpdateStatementRouteEngine.java
 
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/finder/dml/ShadowUpdateStatementDataSourceMappingsFinder.java
similarity index 88%
rename from 
features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowUpdateStatementRouteEngine.java
rename to 
features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/finder/dml/ShadowUpdateStatementDataSourceMappingsFinder.java
index 4e65f0a8c16..8bcf3358e94 100644
--- 
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowUpdateStatementRouteEngine.java
+++ 
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/finder/dml/ShadowUpdateStatementDataSourceMappingsFinder.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.shadow.route.engine.dml;
+package org.apache.shardingsphere.shadow.route.engine.finder.dml;
 
 import 
org.apache.shardingsphere.infra.binder.context.statement.dml.UpdateStatementContext;
 import org.apache.shardingsphere.infra.hint.HintValueContext;
@@ -34,15 +34,15 @@ import java.util.LinkedList;
 import java.util.List;
 
 /**
- * Shadow update statement route engine.
+ * Shadow update statement data source mappings finder.
  */
-public final class ShadowUpdateStatementRouteEngine extends 
AbstractShadowDMLStatementRouteEngine {
+public final class ShadowUpdateStatementDataSourceMappingsFinder extends 
AbstractShadowDMLStatementDataSourceMappingsFinder {
     
     private final UpdateStatementContext sqlStatementContext;
     
     private final List<Object> parameters;
     
-    public ShadowUpdateStatementRouteEngine(final UpdateStatementContext 
sqlStatementContext, final List<Object> parameters, final HintValueContext 
hintValueContext) {
+    public ShadowUpdateStatementDataSourceMappingsFinder(final 
UpdateStatementContext sqlStatementContext, final List<Object> parameters, 
final HintValueContext hintValueContext) {
         super(sqlStatementContext, hintValueContext, 
ShadowOperationType.UPDATE);
         this.sqlStatementContext = sqlStatementContext;
         this.parameters = parameters;
diff --git 
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/impl/ShadowNonDMLStatementRouteEngine.java
 
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/finder/other/ShadowNonDMLStatementDataSourceMappingsFinder.java
similarity index 63%
rename from 
features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/impl/ShadowNonDMLStatementRouteEngine.java
rename to 
features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/finder/other/ShadowNonDMLStatementDataSourceMappingsFinder.java
index 716097a2814..68ce6113566 100644
--- 
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/impl/ShadowNonDMLStatementRouteEngine.java
+++ 
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/finder/other/ShadowNonDMLStatementDataSourceMappingsFinder.java
@@ -15,36 +15,29 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.shadow.route.engine.impl;
+package org.apache.shardingsphere.shadow.route.engine.finder.other;
 
 import lombok.RequiredArgsConstructor;
 import org.apache.shardingsphere.infra.hint.HintValueContext;
-import org.apache.shardingsphere.infra.route.context.RouteContext;
 import org.apache.shardingsphere.shadow.condition.ShadowDetermineCondition;
-import 
org.apache.shardingsphere.shadow.route.engine.ShadowRouteContextDecorator;
-import org.apache.shardingsphere.shadow.route.engine.ShadowRouteEngine;
 import 
org.apache.shardingsphere.shadow.route.engine.determiner.HintShadowAlgorithmDeterminer;
+import 
org.apache.shardingsphere.shadow.route.engine.finder.ShadowDataSourceMappingsFinder;
 import org.apache.shardingsphere.shadow.rule.ShadowRule;
 import org.apache.shardingsphere.shadow.spi.ShadowOperationType;
-import org.apache.shardingsphere.shadow.spi.hint.HintShadowAlgorithm;
 
 import java.util.Collections;
 import java.util.Map;
 
 /**
- * Shadow non-DML statement route engine.
+ * Shadow non-DML statement data source mappings finder.
  */
 @RequiredArgsConstructor
-public final class ShadowNonDMLStatementRouteEngine implements 
ShadowRouteEngine {
+public final class ShadowNonDMLStatementDataSourceMappingsFinder implements 
ShadowDataSourceMappingsFinder {
     
     private final HintValueContext hintValueContext;
     
     @Override
-    public void route(final RouteContext routeContext, final ShadowRule rule) {
-        ShadowRouteContextDecorator.decorate(routeContext, rule, 
findShadowDataSourceMappings(rule));
-    }
-    
-    private Map<String, String> findShadowDataSourceMappings(final ShadowRule 
rule) {
+    public Map<String, String> find(final ShadowRule rule) {
         if (!hintValueContext.isShadow()) {
             return Collections.emptyMap();
         }
@@ -55,11 +48,6 @@ public final class ShadowNonDMLStatementRouteEngine 
implements ShadowRouteEngine
     }
     
     private boolean isMatchAnyNoteShadowAlgorithms(final ShadowRule rule, 
final ShadowDetermineCondition shadowCondition) {
-        for (HintShadowAlgorithm<Comparable<?>> each : 
rule.getAllHintShadowAlgorithms()) {
-            if (HintShadowAlgorithmDeterminer.isShadow(each, shadowCondition, 
rule, hintValueContext.isShadow())) {
-                return true;
-            }
-        }
-        return false;
+        return rule.getAllHintShadowAlgorithms().stream().anyMatch(each -> 
HintShadowAlgorithmDeterminer.isShadow(each, shadowCondition, rule, 
hintValueContext.isShadow()));
     }
 }
diff --git 
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/rule/ShadowRule.java
 
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/rule/ShadowRule.java
index 63cdd85d7a8..a89f7bfd0b4 100644
--- 
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/rule/ShadowRule.java
+++ 
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/rule/ShadowRule.java
@@ -230,13 +230,13 @@ public final class ShadowRule implements DatabaseRule {
     }
     
     /**
-     * Get source data source name.
+     * Find production data source name.
      *
      * @param actualDataSourceName actual data source name
-     * @return source data source name
+     * @return found production data source name
      */
     @HighFrequencyInvocation
-    public Optional<String> getSourceDataSourceName(final String 
actualDataSourceName) {
+    public Optional<String> findProductionDataSourceName(final String 
actualDataSourceName) {
         ShadowDataSourceRule dataSourceRule = 
shadowDataSourceMappings.get(actualDataSourceName);
         return null == dataSourceRule ? Optional.empty() : 
Optional.of(dataSourceRule.getProductionDataSource());
     }
diff --git 
a/features/shadow/core/src/test/java/org/apache/shardingsphere/shadow/route/engine/ShadowRouteEngineFactoryTest.java
 
b/features/shadow/core/src/test/java/org/apache/shardingsphere/shadow/route/engine/ShadowRouteEngineFactoryTest.java
index 4dc785892ba..a6ed9cce161 100644
--- 
a/features/shadow/core/src/test/java/org/apache/shardingsphere/shadow/route/engine/ShadowRouteEngineFactoryTest.java
+++ 
b/features/shadow/core/src/test/java/org/apache/shardingsphere/shadow/route/engine/ShadowRouteEngineFactoryTest.java
@@ -27,10 +27,11 @@ import 
org.apache.shardingsphere.infra.hint.HintValueContext;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
 import org.apache.shardingsphere.infra.session.connection.ConnectionContext;
 import org.apache.shardingsphere.infra.session.query.QueryContext;
-import 
org.apache.shardingsphere.shadow.route.engine.dml.ShadowDeleteStatementRouteEngine;
-import 
org.apache.shardingsphere.shadow.route.engine.dml.ShadowInsertStatementRouteEngine;
-import 
org.apache.shardingsphere.shadow.route.engine.dml.ShadowSelectStatementRouteEngine;
-import 
org.apache.shardingsphere.shadow.route.engine.dml.ShadowUpdateStatementRouteEngine;
+import 
org.apache.shardingsphere.shadow.route.engine.finder.ShadowDataSourceMappingsFinder;
+import 
org.apache.shardingsphere.shadow.route.engine.finder.dml.ShadowDeleteStatementDataSourceMappingsFinder;
+import 
org.apache.shardingsphere.shadow.route.engine.finder.dml.ShadowInsertStatementDataSourceMappingsFinder;
+import 
org.apache.shardingsphere.shadow.route.engine.finder.dml.ShadowSelectStatementDataSourceMappingsFinder;
+import 
org.apache.shardingsphere.shadow.route.engine.finder.dml.ShadowUpdateStatementDataSourceMappingsFinder;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.dml.DeleteStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.dml.InsertStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement;
@@ -50,18 +51,18 @@ class ShadowRouteEngineFactoryTest {
     
     @Test
     void assertNewInstance() {
-        ShadowRouteEngine shadowInsertRouteEngine = 
ShadowRouteEngineFactory.newInstance(
+        ShadowDataSourceMappingsFinder finder = 
ShadowDataSourceMappingsFinderFactory.newInstance(
                 new QueryContext(createInsertSqlStatementContext(), "", 
Collections.emptyList(), new HintValueContext(), mockConnectionContext(), 
mock(ShardingSphereMetaData.class)));
-        assertThat(shadowInsertRouteEngine, 
instanceOf(ShadowInsertStatementRouteEngine.class));
-        ShadowRouteEngine shadowUpdateRouteEngine = 
ShadowRouteEngineFactory.newInstance(
+        assertThat(finder, 
instanceOf(ShadowInsertStatementDataSourceMappingsFinder.class));
+        ShadowDataSourceMappingsFinder shadowUpdateRouteEngine = 
ShadowDataSourceMappingsFinderFactory.newInstance(
                 new QueryContext(createUpdateSqlStatementContext(), "", 
Collections.emptyList(), new HintValueContext(), mockConnectionContext(), 
mock(ShardingSphereMetaData.class)));
-        assertThat(shadowUpdateRouteEngine, 
instanceOf(ShadowUpdateStatementRouteEngine.class));
-        ShadowRouteEngine shadowDeleteRouteEngine = 
ShadowRouteEngineFactory.newInstance(
+        assertThat(shadowUpdateRouteEngine, 
instanceOf(ShadowUpdateStatementDataSourceMappingsFinder.class));
+        ShadowDataSourceMappingsFinder shadowDeleteRouteEngine = 
ShadowDataSourceMappingsFinderFactory.newInstance(
                 new QueryContext(createDeleteSqlStatementContext(), "", 
Collections.emptyList(), new HintValueContext(), mockConnectionContext(), 
mock(ShardingSphereMetaData.class)));
-        assertThat(shadowDeleteRouteEngine, 
instanceOf(ShadowDeleteStatementRouteEngine.class));
-        ShadowRouteEngine shadowSelectRouteEngine = 
ShadowRouteEngineFactory.newInstance(
+        assertThat(shadowDeleteRouteEngine, 
instanceOf(ShadowDeleteStatementDataSourceMappingsFinder.class));
+        ShadowDataSourceMappingsFinder shadowSelectRouteEngine = 
ShadowDataSourceMappingsFinderFactory.newInstance(
                 new QueryContext(createSelectSqlStatementContext(), "", 
Collections.emptyList(), new HintValueContext(), mockConnectionContext(), 
mock(ShardingSphereMetaData.class)));
-        assertThat(shadowSelectRouteEngine, 
instanceOf(ShadowSelectStatementRouteEngine.class));
+        assertThat(shadowSelectRouteEngine, 
instanceOf(ShadowSelectStatementDataSourceMappingsFinder.class));
     }
     
     private ConnectionContext mockConnectionContext() {
diff --git 
a/features/shadow/core/src/test/java/org/apache/shardingsphere/shadow/route/engine/impl/ShadowNonDMLStatementRouteEngineTest.java
 
b/features/shadow/core/src/test/java/org/apache/shardingsphere/shadow/route/engine/finder/other/ShadowNonDMLStatementRouteEngineTest.java
similarity index 67%
rename from 
features/shadow/core/src/test/java/org/apache/shardingsphere/shadow/route/engine/impl/ShadowNonDMLStatementRouteEngineTest.java
rename to 
features/shadow/core/src/test/java/org/apache/shardingsphere/shadow/route/engine/finder/other/ShadowNonDMLStatementRouteEngineTest.java
index 6418b62eafe..5a70f58bad2 100644
--- 
a/features/shadow/core/src/test/java/org/apache/shardingsphere/shadow/route/engine/impl/ShadowNonDMLStatementRouteEngineTest.java
+++ 
b/features/shadow/core/src/test/java/org/apache/shardingsphere/shadow/route/engine/finder/other/ShadowNonDMLStatementRouteEngineTest.java
@@ -15,13 +15,10 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.shadow.route.engine.impl;
+package org.apache.shardingsphere.shadow.route.engine.finder.other;
 
 import 
org.apache.shardingsphere.infra.algorithm.core.config.AlgorithmConfiguration;
 import org.apache.shardingsphere.infra.hint.HintValueContext;
-import org.apache.shardingsphere.infra.route.context.RouteContext;
-import org.apache.shardingsphere.infra.route.context.RouteMapper;
-import org.apache.shardingsphere.infra.route.context.RouteUnit;
 import org.apache.shardingsphere.shadow.config.ShadowRuleConfiguration;
 import 
org.apache.shardingsphere.shadow.config.datasource.ShadowDataSourceConfiguration;
 import org.apache.shardingsphere.shadow.config.table.ShadowTableConfiguration;
@@ -31,7 +28,6 @@ import 
org.apache.shardingsphere.test.util.PropertiesBuilder.Property;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
-import java.util.Collection;
 import java.util.Collections;
 import java.util.Map;
 
@@ -40,11 +36,11 @@ import static org.hamcrest.MatcherAssert.assertThat;
 
 class ShadowNonDMLStatementRouteEngineTest {
     
-    private ShadowNonDMLStatementRouteEngine shadowRouteEngine;
+    private ShadowNonDMLStatementDataSourceMappingsFinder finder;
     
     @BeforeEach
     void init() {
-        shadowRouteEngine = new 
ShadowNonDMLStatementRouteEngine(createHintValueContext());
+        finder = new 
ShadowNonDMLStatementDataSourceMappingsFinder(createHintValueContext());
     }
     
     private HintValueContext createHintValueContext() {
@@ -55,23 +51,8 @@ class ShadowNonDMLStatementRouteEngineTest {
     
     @Test
     void assertRoute() {
-        RouteContext routeContext = createRouteContext();
-        shadowRouteEngine.route(routeContext, new 
ShadowRule(createShadowRuleConfiguration()));
-        Collection<RouteUnit> routeUnits = routeContext.getRouteUnits();
-        RouteMapper dataSourceMapper = 
routeUnits.iterator().next().getDataSourceMapper();
-        assertThat(dataSourceMapper.getLogicName(), is("logic_db"));
-        assertThat(dataSourceMapper.getActualName(), is("ds_shadow"));
-    }
-    
-    private RouteContext createRouteContext() {
-        RouteContext result = new RouteContext();
-        Collection<RouteUnit> routeUnits = result.getRouteUnits();
-        routeUnits.add(createRouteUnit());
-        return result;
-    }
-    
-    private RouteUnit createRouteUnit() {
-        return new RouteUnit(new RouteMapper("logic_db", 
"shadow-data-source"), Collections.singleton(new RouteMapper("t_order", 
"t_order")));
+        Map<String, String> shadowDataSourceMappings = finder.find(new 
ShadowRule(createShadowRuleConfiguration()));
+        assertThat(shadowDataSourceMappings, is(Collections.singletonMap("ds", 
"ds_shadow")));
     }
     
     private ShadowRuleConfiguration createShadowRuleConfiguration() {
diff --git 
a/features/shadow/core/src/test/java/org/apache/shardingsphere/shadow/rule/ShadowRuleTest.java
 
b/features/shadow/core/src/test/java/org/apache/shardingsphere/shadow/rule/ShadowRuleTest.java
index cc36b7b01ca..af711a818dd 100644
--- 
a/features/shadow/core/src/test/java/org/apache/shardingsphere/shadow/rule/ShadowRuleTest.java
+++ 
b/features/shadow/core/src/test/java/org/apache/shardingsphere/shadow/rule/ShadowRuleTest.java
@@ -168,13 +168,13 @@ class ShadowRuleTest {
     }
     
     @Test
-    void assertGetDataSourceMapper() {
-        assertThat(rule.getSourceDataSourceName("shadow_ds_0"), 
is(Optional.of("ds0")));
-        assertThat(rule.getSourceDataSourceName("shadow_ds_1"), 
is(Optional.of("ds1")));
+    void assertFindProductionDataSourceNameSuccess() {
+        assertThat(rule.findProductionDataSourceName("shadow_ds_0"), 
is(Optional.of("ds0")));
+        assertThat(rule.findProductionDataSourceName("shadow_ds_1"), 
is(Optional.of("ds1")));
     }
     
     @Test
-    void assertNotGetDataSourceMapper() {
-        assertFalse(rule.getSourceDataSourceName("shadow_ds_2").isPresent());
+    void assertFindProductionDataSourceNameFailed() {
+        
assertFalse(rule.findProductionDataSourceName("shadow_ds_2").isPresent());
     }
 }


Reply via email to