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 2022/11/10 10:16:16 UTC

[shardingsphere] branch master updated: Remove the shadow examples and use the automatically generated examples. (#22054)

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 94be0163964 Remove the shadow examples and use the automatically generated examples. (#22054)
94be0163964 is described below

commit 94be01639644462ee536962c83c04c9556b68762
Author: Guocheng Tang <to...@apache.org>
AuthorDate: Thu Nov 10 18:16:10 2022 +0800

    Remove the shadow examples and use the automatically generated examples. (#22054)
    
    * Remove the mixed examples and use the automatically generated examples.
    
    * merger master
    
    * Remove the shadow examples and use the automatically generated examples.
---
 .../single-feature-example/pom.xml                 |   1 -
 .../single-feature-example/shadow-example/pom.xml  |  39 ------
 .../shadow-example/shadow-raw-jdbc-example/pom.xml |  46 -------
 .../jdbc/ShadowRawJavaConfigurationExample.java    |  48 -------
 .../jdbc/ShadowRawYamlConfigurationExample.java    |  45 -------
 .../raw/jdbc/config/BaseShadowConfiguration.java   |  87 -------------
 .../raw/jdbc/config/ShadowConfiguration.java       |  73 -----------
 .../ShadowDefaultAlgorithmConfiguration.java       |  82 ------------
 .../jdbc/config/ShadowEncryptConfiguration.java    |  97 --------------
 .../shadow/raw/jdbc/factory/DataSourceFactory.java |  43 ------
 .../raw/jdbc/factory/YamlDataSourceFactory.java    |  46 -------
 .../META-INF/shadow-default-algorithm.yaml         |  76 -----------
 .../main/resources/META-INF/shadow-encrypt.yaml    |  96 --------------
 .../src/main/resources/META-INF/shadow.yaml        |  76 -----------
 .../src/main/resources/logback.xml                 |  34 -----
 .../shadow-spring-boot-jpa-example/pom.xml         |  50 -------
 .../boot/jpa/ShadowSpringBootJpaExample.java       |  41 ------
 ...application-shadow-default-algorithm.properties |  59 ---------
 ...pplication-shadow-sharding-databases.properties |  79 -----------
 .../main/resources/application-shadow.properties   |  57 --------
 .../src/main/resources/application.properties      |  24 ----
 .../src/main/resources/logback.xml                 |  36 -----
 .../shadow-spring-boot-mybatis-example/pom.xml     |  50 -------
 .../mybatis/ShadowSpringBootMybatisExample.java    |  41 ------
 .../src/main/resources/META-INF/mybatis-config.xml |  26 ----
 ...application-shadow-default-algorithm.properties |  59 ---------
 .../application-shadow-encrypt.properties          |  69 ----------
 ...plication-shadow-readwrite-splitting.properties |  76 -----------
 ...pplication-shadow-sharding-databases.properties |  79 -----------
 .../main/resources/application-shadow.properties   |  57 --------
 .../src/main/resources/application.properties      |  26 ----
 .../src/main/resources/logback.xml                 |  36 -----
 .../shadow-spring-namespace-jpa-example/pom.xml    |  41 ------
 .../jpa/ShadowSpringNamespaceJpaExample.java       |  36 -----
 .../main/resources/META-INF/application-shadow.xml | 128 ------------------
 .../src/main/resources/logback.xml                 |  34 -----
 .../pom.xml                                        |  42 ------
 .../ShadowSpringNamespaceMybatisExample.java       |  40 ------
 .../application-shadow-default-algorithm.xml       | 116 -----------------
 .../META-INF/application-shadow-encrypt.xml        | 134 -------------------
 .../application-shadow-readwrite-splitting.xml     | 142 --------------------
 .../application-shadow-sharding-databases.xml      | 145 ---------------------
 .../main/resources/META-INF/application-shadow.xml | 116 -----------------
 .../src/main/resources/logback.xml                 |  34 -----
 44 files changed, 2762 deletions(-)

diff --git a/examples/shardingsphere-jdbc-example/single-feature-example/pom.xml b/examples/shardingsphere-jdbc-example/single-feature-example/pom.xml
index 610ea869d55..85454d39c30 100644
--- a/examples/shardingsphere-jdbc-example/single-feature-example/pom.xml
+++ b/examples/shardingsphere-jdbc-example/single-feature-example/pom.xml
@@ -32,7 +32,6 @@
     <modules>
         <module>cluster-mode-example</module>
         <module>extension-example</module>
-        <module>shadow-example</module>
         <module>sharding-example</module>
         <module>transaction-example</module>
     </modules>
diff --git a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/pom.xml b/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/pom.xml
deleted file mode 100644
index d3f5e15bedc..00000000000
--- a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/pom.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ 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.
-  -->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>org.apache.shardingsphere.example</groupId>
-        <artifactId>single-feature-example</artifactId>
-        <version>${revision}</version>
-    </parent>
-    <artifactId>shadow-example</artifactId>
-    <packaging>pom</packaging>
-    <name>${project.artifactId}</name>
-
-    <modules>
-        <module>shadow-spring-boot-jpa-example</module>
-        <module>shadow-spring-namespace-mybatis-example</module>
-        <module>shadow-spring-boot-mybatis-example</module>
-        <module>shadow-spring-namespace-jpa-example</module>
-        <module>shadow-raw-jdbc-example</module>
-    </modules>
-</project>
diff --git a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-raw-jdbc-example/pom.xml b/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-raw-jdbc-example/pom.xml
deleted file mode 100644
index 6f150a684fc..00000000000
--- a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-raw-jdbc-example/pom.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ 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.
-  -->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>org.apache.shardingsphere.example</groupId>
-        <artifactId>shadow-example</artifactId>
-        <version>${revision}</version>
-    </parent>
-    <artifactId>shadow-raw-jdbc-example</artifactId>
-    <name>${project.artifactId}</name>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.shardingsphere.example</groupId>
-            <artifactId>example-raw-jdbc</artifactId>
-            <version>${project.parent.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.shardingsphere</groupId>
-            <artifactId>shardingsphere-jdbc-core</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.shardingsphere</groupId>
-            <artifactId>shardingsphere-parser-core</artifactId>
-        </dependency>
-    </dependencies>
-</project>
diff --git a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-raw-jdbc-example/src/main/java/org/apache/shardingsphere/example/shadow/raw/jdbc/ShadowRawJavaConfigurationExample.java b/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-raw-jdbc-example/src/main/java/org/apache/shardingsphere/example/shadow/raw/jdbc/ShadowRawJavaConfigurationExample.java
deleted file mode 100644
index 1d68305a954..00000000000
--- a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-raw-jdbc-example/src/main/java/org/apache/shardingsphere/example/shadow/raw/jdbc/ShadowRawJavaConfigurationExample.java
+++ /dev/null
@@ -1,48 +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.
- */
-
-/*
- * Please make sure primary replica data replication sync on MySQL is running correctly. Otherwise this example will query empty data from replica.
- */
-
-package org.apache.shardingsphere.example.shadow.raw.jdbc;
-
-import org.apache.shardingsphere.example.core.api.ExampleExecuteTemplate;
-import org.apache.shardingsphere.example.core.api.service.ExampleService;
-import org.apache.shardingsphere.example.core.jdbc.repository.ShadowUserRepositoryImpl;
-import org.apache.shardingsphere.example.core.jdbc.service.ShadowUserServiceImpl;
-import org.apache.shardingsphere.example.type.ShardingType;
-import org.apache.shardingsphere.example.shadow.raw.jdbc.factory.DataSourceFactory;
-
-import javax.sql.DataSource;
-import java.sql.SQLException;
-
-public final class ShadowRawJavaConfigurationExample {
-    
-    private static ShardingType shardingType = ShardingType.SHADOW;
-//    private static ShardingType shardingType = ShardingType.SHADOW_DEFAULT_ALGORITHM;
-//    private static ShardingType shardingType = ShardingType.ENCRYPT_SHADOW;
-    
-    public static void main(final String[] args) throws SQLException {
-        DataSource dataSource = DataSourceFactory.newInstance(shardingType);
-        ExampleExecuteTemplate.run(getExampleService(dataSource));
-    }
-    
-    private static ExampleService getExampleService(final DataSource dataSource) {
-        return new ShadowUserServiceImpl(new ShadowUserRepositoryImpl(dataSource));
-    }
-}
diff --git a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-raw-jdbc-example/src/main/java/org/apache/shardingsphere/example/shadow/raw/jdbc/ShadowRawYamlConfigurationExample.java b/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-raw-jdbc-example/src/main/java/org/apache/shardingsphere/example/shadow/raw/jdbc/ShadowRawYamlConfigurationExample.java
deleted file mode 100644
index e4f1a394aea..00000000000
--- a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-raw-jdbc-example/src/main/java/org/apache/shardingsphere/example/shadow/raw/jdbc/ShadowRawYamlConfigurationExample.java
+++ /dev/null
@@ -1,45 +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.example.shadow.raw.jdbc;
-
-import org.apache.shardingsphere.example.core.api.ExampleExecuteTemplate;
-import org.apache.shardingsphere.example.core.api.service.ExampleService;
-import org.apache.shardingsphere.example.core.jdbc.repository.ShadowUserRepositoryImpl;
-import org.apache.shardingsphere.example.core.jdbc.service.ShadowUserServiceImpl;
-import org.apache.shardingsphere.example.shadow.raw.jdbc.factory.YamlDataSourceFactory;
-import org.apache.shardingsphere.example.type.ShardingType;
-
-import javax.sql.DataSource;
-import java.io.IOException;
-import java.sql.SQLException;
-
-public final class ShadowRawYamlConfigurationExample {
-    
-    private static ShardingType shardingType = ShardingType.SHADOW;
-//    private static ShardingType shardingType = ShardingType.SHADOW_DEFAULT_ALGORITHM;
-//    private static ShardingType shardingType = ShardingType.ENCRYPT_SHADOW;
-    
-    public static void main(final String[] args) throws SQLException, IOException {
-        DataSource dataSource = YamlDataSourceFactory.newInstance(shardingType);
-        ExampleExecuteTemplate.run(getExampleService(dataSource));
-    }
-    
-    private static ExampleService getExampleService(final DataSource dataSource) {
-        return new ShadowUserServiceImpl(new ShadowUserRepositoryImpl(dataSource));
-    }
-}
diff --git a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-raw-jdbc-example/src/main/java/org/apache/shardingsphere/example/shadow/raw/jdbc/config/BaseShadowConfiguration.java b/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-raw-jdbc-example/src/main/java/org/apache/shardingsphere/example/shadow/raw/jdbc/config/BaseShadowConfiguration.java
deleted file mode 100644
index 9b2626bb306..00000000000
--- a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-raw-jdbc-example/src/main/java/org/apache/shardingsphere/example/shadow/raw/jdbc/config/BaseShadowConfiguration.java
+++ /dev/null
@@ -1,87 +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.example.shadow.raw.jdbc.config;
-
-import org.apache.shardingsphere.example.config.ExampleConfiguration;
-import org.apache.shardingsphere.example.core.api.DataSourceUtil;
-import org.apache.shardingsphere.infra.config.algorithm.AlgorithmConfiguration;
-import org.apache.shardingsphere.infra.config.props.ConfigurationPropertyKey;
-import org.apache.shardingsphere.parser.config.SQLParserRuleConfiguration;
-import org.apache.shardingsphere.sql.parser.api.CacheOption;
-
-import javax.sql.DataSource;
-import java.util.Collection;
-import java.util.LinkedHashMap;
-import java.util.LinkedList;
-import java.util.Map;
-import java.util.Properties;
-
-public abstract class BaseShadowConfiguration implements ExampleConfiguration {
-    
-    protected Map<String, DataSource> createDataSourceMap() {
-        Map<String, DataSource> result = new LinkedHashMap<>();
-        result.put("ds", DataSourceUtil.createDataSource("demo_ds"));
-        result.put("ds_shadow", DataSourceUtil.createDataSource("shadow_demo_ds"));
-        return result;
-    }
-    
-    protected Properties createShardingSphereProps() {
-        Properties result = new Properties();
-        result.setProperty(ConfigurationPropertyKey.SQL_SHOW.getKey(), Boolean.TRUE.toString());
-        return result;
-    }
-    
-    protected SQLParserRuleConfiguration createSQLParserRuleConfiguration() {
-        CacheOption parseTreeCacheOption = new CacheOption(128, 1024L);
-        CacheOption sqlStatementCacheOption = new CacheOption(2000, 65535L);
-        return new SQLParserRuleConfiguration(true, parseTreeCacheOption, sqlStatementCacheOption);
-    }
-    
-    protected Collection<String> createShadowAlgorithmNames() {
-        Collection<String> result = new LinkedList<>();
-        result.add("user-id-insert-match-algorithm");
-        result.add("user-id-delete-match-algorithm");
-        result.add("user-id-select-match-algorithm");
-        result.add("simple-hint-algorithm");
-        return result;
-    }
-    
-    protected Map<String, AlgorithmConfiguration> createShadowAlgorithmConfigurations() {
-        Map<String, AlgorithmConfiguration> result = new LinkedHashMap<>();
-        Properties userIdInsertProps = new Properties();
-        userIdInsertProps.setProperty("operation", "insert");
-        userIdInsertProps.setProperty("column", "user_type");
-        userIdInsertProps.setProperty("value", "1");
-        result.put("user-id-insert-match-algorithm", new AlgorithmConfiguration("VALUE_MATCH", userIdInsertProps));
-        Properties userIdDeleteProps = new Properties();
-        userIdDeleteProps.setProperty("operation", "delete");
-        userIdDeleteProps.setProperty("column", "user_type");
-        userIdDeleteProps.setProperty("value", "1");
-        result.put("user-id-delete-match-algorithm", new AlgorithmConfiguration("VALUE_MATCH", userIdDeleteProps));
-        Properties userIdSelectProps = new Properties();
-        userIdSelectProps.setProperty("operation", "select");
-        userIdSelectProps.setProperty("column", "user_type");
-        userIdSelectProps.setProperty("value", "1");
-        result.put("user-id-select-match-algorithm", new AlgorithmConfiguration("VALUE_MATCH", userIdSelectProps));
-        Properties noteAlgorithmProps = new Properties();
-        noteAlgorithmProps.setProperty("shadow", Boolean.TRUE.toString());
-        noteAlgorithmProps.setProperty("foo", "bar");
-        result.put("simple-hint-algorithm", new AlgorithmConfiguration("SIMPLE_HINT", noteAlgorithmProps));
-        return result;
-    }
-}
diff --git a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-raw-jdbc-example/src/main/java/org/apache/shardingsphere/example/shadow/raw/jdbc/config/ShadowConfiguration.java b/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-raw-jdbc-example/src/main/java/org/apache/shardingsphere/example/shadow/raw/jdbc/config/ShadowConfiguration.java
deleted file mode 100644
index 6779c3569c5..00000000000
--- a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-raw-jdbc-example/src/main/java/org/apache/shardingsphere/example/shadow/raw/jdbc/config/ShadowConfiguration.java
+++ /dev/null
@@ -1,73 +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.example.shadow.raw.jdbc.config;
-
-import org.apache.shardingsphere.driver.api.ShardingSphereDataSourceFactory;
-import org.apache.shardingsphere.infra.config.rule.RuleConfiguration;
-import org.apache.shardingsphere.shadow.api.config.ShadowRuleConfiguration;
-import org.apache.shardingsphere.shadow.api.config.datasource.ShadowDataSourceConfiguration;
-import org.apache.shardingsphere.shadow.api.config.table.ShadowTableConfiguration;
-
-import javax.sql.DataSource;
-import java.sql.SQLException;
-import java.util.Collection;
-import java.util.LinkedHashMap;
-import java.util.LinkedList;
-import java.util.Map;
-
-public final class ShadowConfiguration extends BaseShadowConfiguration {
-    
-    @Override
-    public DataSource getDataSource() throws SQLException {
-        Map<String, DataSource> dataSourceMap = createDataSourceMap();
-        return ShardingSphereDataSourceFactory.createDataSource(dataSourceMap, createRuleConfigurations(), createShardingSphereProps());
-    }
-    
-    private Collection<RuleConfiguration> createRuleConfigurations() {
-        Collection<RuleConfiguration> result = new LinkedList<>();
-        result.add(createShadowRuleConfiguration());
-        result.add(createSQLParserRuleConfiguration());
-        return result;
-    }
-    
-    private RuleConfiguration createShadowRuleConfiguration() {
-        ShadowRuleConfiguration result = new ShadowRuleConfiguration();
-        result.setShadowAlgorithms(createShadowAlgorithmConfigurations());
-        result.setDataSources(createShadowDataSources());
-        result.setTables(createShadowTables());
-        return result;
-    }
-    
-    private Map<String, ShadowTableConfiguration> createShadowTables() {
-        Map<String, ShadowTableConfiguration> result = new LinkedHashMap<>();
-        result.put("t_user", new ShadowTableConfiguration(createDataSourceNames(), createShadowAlgorithmNames()));
-        return result;
-    }
-    
-    private Collection<String> createDataSourceNames() {
-        Collection<String> result = new LinkedList<>();
-        result.add("shadow-data-source");
-        return result;
-    }
-    
-    private Map<String, ShadowDataSourceConfiguration> createShadowDataSources() {
-        Map<String, ShadowDataSourceConfiguration> result = new LinkedHashMap<>();
-        result.put("shadow-data-source", new ShadowDataSourceConfiguration("ds", "ds_shadow"));
-        return result;
-    }
-}
diff --git a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-raw-jdbc-example/src/main/java/org/apache/shardingsphere/example/shadow/raw/jdbc/config/ShadowDefaultAlgorithmConfiguration.java b/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-raw-jdbc-example/src/main/java/org/apache/shardingsphere/example/shadow/raw/jdbc/config/ShadowDefaultAlgorithmConfiguration.java
deleted file mode 100644
index e6501993849..00000000000
--- a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-raw-jdbc-example/src/main/java/org/apache/shardingsphere/example/shadow/raw/jdbc/config/ShadowDefaultAlgorithmConfiguration.java
+++ /dev/null
@@ -1,82 +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.example.shadow.raw.jdbc.config;
-
-import org.apache.shardingsphere.driver.api.ShardingSphereDataSourceFactory;
-import org.apache.shardingsphere.infra.config.rule.RuleConfiguration;
-import org.apache.shardingsphere.shadow.api.config.ShadowRuleConfiguration;
-import org.apache.shardingsphere.shadow.api.config.datasource.ShadowDataSourceConfiguration;
-import org.apache.shardingsphere.shadow.api.config.table.ShadowTableConfiguration;
-
-import javax.sql.DataSource;
-import java.sql.SQLException;
-import java.util.Collection;
-import java.util.LinkedHashMap;
-import java.util.LinkedList;
-import java.util.Map;
-
-public final class ShadowDefaultAlgorithmConfiguration extends BaseShadowConfiguration {
-    
-    @Override
-    public DataSource getDataSource() throws SQLException {
-        Map<String, DataSource> dataSourceMap = createDataSourceMap();
-        return ShardingSphereDataSourceFactory.createDataSource(dataSourceMap, createRuleConfigurations(), createShardingSphereProps());
-    }
-    
-    private Collection<RuleConfiguration> createRuleConfigurations() {
-        Collection<RuleConfiguration> result = new LinkedList<>();
-        result.add(createShadowRuleConfiguration());
-        result.add(createSQLParserRuleConfiguration());
-        return result;
-    }
-    
-    private RuleConfiguration createShadowRuleConfiguration() {
-        ShadowRuleConfiguration result = new ShadowRuleConfiguration();
-        result.setDefaultShadowAlgorithmName("simple-hint-algorithm");
-        result.setShadowAlgorithms(createShadowAlgorithmConfigurations());
-        result.setDataSources(createShadowDataSources());
-        result.setTables(createShadowTables());
-        return result;
-    }
-    
-    private Map<String, ShadowTableConfiguration> createShadowTables() {
-        Map<String, ShadowTableConfiguration> result = new LinkedHashMap<>();
-        result.put("t_user", new ShadowTableConfiguration(createDataSourceNames(), createAlgorithmNames()));
-        return result;
-    }
-    
-    private Collection<String> createAlgorithmNames() {
-        Collection<String> result = new LinkedList<>();
-        result.add("user-id-insert-match-algorithm");
-        result.add("user-id-delete-match-algorithm");
-        result.add("user-id-select-match-algorithm");
-        return result;
-    }
-    
-    private Collection<String> createDataSourceNames() {
-        Collection<String> result = new LinkedList<>();
-        result.add("shadow-data-source");
-        return result;
-    }
-    
-    private Map<String, ShadowDataSourceConfiguration> createShadowDataSources() {
-        Map<String, ShadowDataSourceConfiguration> result = new LinkedHashMap<>();
-        result.put("shadow-data-source", new ShadowDataSourceConfiguration("ds", "ds_shadow"));
-        return result;
-    }
-}
diff --git a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-raw-jdbc-example/src/main/java/org/apache/shardingsphere/example/shadow/raw/jdbc/config/ShadowEncryptConfiguration.java b/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-raw-jdbc-example/src/main/java/org/apache/shardingsphere/example/shadow/raw/jdbc/config/ShadowEncryptConfiguration.java
deleted file mode 100644
index 5d5b3e82b40..00000000000
--- a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-raw-jdbc-example/src/main/java/org/apache/shardingsphere/example/shadow/raw/jdbc/config/ShadowEncryptConfiguration.java
+++ /dev/null
@@ -1,97 +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.example.shadow.raw.jdbc.config;
-
-import org.apache.shardingsphere.driver.api.ShardingSphereDataSourceFactory;
-import org.apache.shardingsphere.encrypt.api.config.EncryptRuleConfiguration;
-import org.apache.shardingsphere.encrypt.api.config.rule.EncryptColumnRuleConfiguration;
-import org.apache.shardingsphere.encrypt.api.config.rule.EncryptTableRuleConfiguration;
-import org.apache.shardingsphere.infra.config.algorithm.AlgorithmConfiguration;
-import org.apache.shardingsphere.infra.config.rule.RuleConfiguration;
-import org.apache.shardingsphere.shadow.api.config.ShadowRuleConfiguration;
-import org.apache.shardingsphere.shadow.api.config.datasource.ShadowDataSourceConfiguration;
-import org.apache.shardingsphere.shadow.api.config.table.ShadowTableConfiguration;
-
-import javax.sql.DataSource;
-import java.sql.SQLException;
-import java.util.Collection;
-import java.util.LinkedHashMap;
-import java.util.LinkedList;
-import java.util.Map;
-import java.util.Properties;
-
-public final class ShadowEncryptConfiguration extends BaseShadowConfiguration {
-    
-    @Override
-    public DataSource getDataSource() throws SQLException {
-        Map<String, DataSource> dataSourceMap = createDataSourceMap();
-        return ShardingSphereDataSourceFactory.createDataSource(dataSourceMap, createRuleConfigurations(), createShardingSphereProps());
-    }
-    
-    private Collection<RuleConfiguration> createRuleConfigurations() {
-        Collection<RuleConfiguration> result = new LinkedList<>();
-        result.add(new EncryptRuleConfiguration(getEncryptTableRuleConfigurations(), getEncryptAlgorithmConfigurations()));
-        result.add(createShadowRuleConfiguration());
-        result.add(createSQLParserRuleConfiguration());
-        return result;
-    }
-    
-    private ShadowRuleConfiguration createShadowRuleConfiguration() {
-        ShadowRuleConfiguration result = new ShadowRuleConfiguration();
-        result.setShadowAlgorithms(createShadowAlgorithmConfigurations());
-        result.setDataSources(createShadowDataSources());
-        result.setTables(createShadowTables());
-        return result;
-    }
-    
-    private Map<String, ShadowDataSourceConfiguration> createShadowDataSources() {
-        Map<String, ShadowDataSourceConfiguration> result = new LinkedHashMap<>();
-        result.put("shadow-data-source", new ShadowDataSourceConfiguration("ds", "ds_shadow"));
-        return result;
-    }
-    
-    private Map<String, ShadowTableConfiguration> createShadowTables() {
-        Map<String, ShadowTableConfiguration> result = new LinkedHashMap<>();
-        result.put("t_user", new ShadowTableConfiguration(createDataSourceNames(), createShadowAlgorithmNames()));
-        return result;
-    }
-    
-    private Collection<String> createDataSourceNames() {
-        Collection<String> result = new LinkedList<>();
-        result.add("shadow-data-source");
-        return result;
-    }
-    
-    private Collection<EncryptTableRuleConfiguration> getEncryptTableRuleConfigurations() {
-        Collection<EncryptTableRuleConfiguration> result = new LinkedList<>();
-        Collection<EncryptColumnRuleConfiguration> columns = new LinkedList<>();
-        columns.add(new EncryptColumnRuleConfiguration("username", "username", "", "", "username_plain", "name_encryptor", null));
-        columns.add(new EncryptColumnRuleConfiguration("pwd", "pwd", "assisted_query_pwd", "", "", "pwd_encryptor", null));
-        result.add(new EncryptTableRuleConfiguration("t_user", columns, null));
-        return result;
-    }
-    
-    private Map<String, AlgorithmConfiguration> getEncryptAlgorithmConfigurations() {
-        Map<String, AlgorithmConfiguration> result = new LinkedHashMap<>(2, 1);
-        Properties props = new Properties();
-        props.setProperty("aes-key-value", "123456");
-        result.put("name_encryptor", new AlgorithmConfiguration("AES", props));
-        result.put("pwd_encryptor", new AlgorithmConfiguration("assistedTest", null));
-        return result;
-    }
-}
diff --git a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-raw-jdbc-example/src/main/java/org/apache/shardingsphere/example/shadow/raw/jdbc/factory/DataSourceFactory.java b/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-raw-jdbc-example/src/main/java/org/apache/shardingsphere/example/shadow/raw/jdbc/factory/DataSourceFactory.java
deleted file mode 100644
index df79ce23987..00000000000
--- a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-raw-jdbc-example/src/main/java/org/apache/shardingsphere/example/shadow/raw/jdbc/factory/DataSourceFactory.java
+++ /dev/null
@@ -1,43 +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.example.shadow.raw.jdbc.factory;
-
-
-import org.apache.shardingsphere.example.shadow.raw.jdbc.config.ShadowConfiguration;
-import org.apache.shardingsphere.example.shadow.raw.jdbc.config.ShadowDefaultAlgorithmConfiguration;
-import org.apache.shardingsphere.example.shadow.raw.jdbc.config.ShadowEncryptConfiguration;
-import org.apache.shardingsphere.example.type.ShardingType;
-
-import javax.sql.DataSource;
-import java.sql.SQLException;
-
-public final class DataSourceFactory {
-    
-    public static DataSource newInstance(final ShardingType shardingType) throws SQLException {
-        switch (shardingType) {
-            case SHADOW:
-                return new ShadowConfiguration().getDataSource();
-            case SHADOW_DEFAULT_ALGORITHM:
-                return new ShadowDefaultAlgorithmConfiguration().getDataSource();
-            case ENCRYPT_SHADOW:
-                return new ShadowEncryptConfiguration().getDataSource();
-            default:
-                throw new UnsupportedOperationException(shardingType.name());
-        }
-    }
-}
diff --git a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-raw-jdbc-example/src/main/java/org/apache/shardingsphere/example/shadow/raw/jdbc/factory/YamlDataSourceFactory.java b/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-raw-jdbc-example/src/main/java/org/apache/shardingsphere/example/shadow/raw/jdbc/factory/YamlDataSourceFactory.java
deleted file mode 100644
index 7a6aef376ae..00000000000
--- a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-raw-jdbc-example/src/main/java/org/apache/shardingsphere/example/shadow/raw/jdbc/factory/YamlDataSourceFactory.java
+++ /dev/null
@@ -1,46 +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.example.shadow.raw.jdbc.factory;
-
-import org.apache.shardingsphere.driver.api.yaml.YamlShardingSphereDataSourceFactory;
-import org.apache.shardingsphere.example.type.ShardingType;
-
-import javax.sql.DataSource;
-import java.io.File;
-import java.io.IOException;
-import java.sql.SQLException;
-
-public final class YamlDataSourceFactory {
-    
-    public static DataSource newInstance(final ShardingType shardingType) throws SQLException, IOException {
-        switch (shardingType) {
-            case SHADOW:
-                return YamlShardingSphereDataSourceFactory.createDataSource(getFile("/META-INF/shadow.yaml"));
-            case SHADOW_DEFAULT_ALGORITHM:
-                return YamlShardingSphereDataSourceFactory.createDataSource(getFile("/META-INF/shadow-default-algorithm.yaml"));
-            case ENCRYPT_SHADOW:
-                return YamlShardingSphereDataSourceFactory.createDataSource(getFile("/META-INF/shadow-encrypt.yaml"));
-            default:
-                throw new UnsupportedOperationException(shardingType.name());
-        }
-    }
-    
-    private static File getFile(final String fileName) {
-        return new File(YamlDataSourceFactory.class.getResource(fileName).getFile());
-    }
-}
diff --git a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-raw-jdbc-example/src/main/resources/META-INF/shadow-default-algorithm.yaml b/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-raw-jdbc-example/src/main/resources/META-INF/shadow-default-algorithm.yaml
deleted file mode 100644
index c150486524f..00000000000
--- a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-raw-jdbc-example/src/main/resources/META-INF/shadow-default-algorithm.yaml
+++ /dev/null
@@ -1,76 +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.
-#
-
-dataSources:
-  ds:
-    dataSourceClassName: com.zaxxer.hikari.HikariDataSource
-    driverClassName: com.mysql.jdbc.Driver
-    jdbcUrl: jdbc:mysql://localhost:3306/demo_ds?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=UTF-8
-    username: root
-    password:
-  ds_shadow:
-    dataSourceClassName: com.zaxxer.hikari.HikariDataSource
-    driverClassName: com.mysql.jdbc.Driver
-    jdbcUrl: jdbc:mysql://localhost:3306/shadow_demo_ds?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=UTF-8
-    username: root
-    password:
-
-rules:
-- !SHADOW
-  dataSources:
-    shadowDataSource:
-      productionDataSourceName: ds
-      shadowDataSourceName: ds_shadow
-  tables:
-    t_user:
-      dataSourceNames:
-        - shadowDataSource
-      shadowAlgorithmNames:
-        - user-id-insert-match-algorithm
-        - user-id-select-match-algorithm
-        - user-id-update-match-algorithm
-        - user-id-delete-match-algorithm
-  defaultShadowAlgorithmName: simple-hint-algorithm
-  shadowAlgorithms:
-    user-id-insert-match-algorithm:
-      type: REGEX_MATCH
-      props:
-        operation: insert
-        column: user_type
-        regex: "[1]"
-    user-id-select-match-algorithm:
-      type: REGEX_MATCH
-      props:
-        operation: select
-        column: user_type
-        regex: "[1]"
-    user-id-delete-match-algorithm:
-      type: REGEX_MATCH
-      props:
-        operation: delete
-        column: user_type
-        regex: "[1]"
-    simple-hint-algorithm:
-      type: SIMPLE_HINT
-      props:
-        shadow: true
-        foo: bar
-- !SQL_PARSER
-  sqlCommentParseEnabled: true
-
-props:
-  sql-show: true
diff --git a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-raw-jdbc-example/src/main/resources/META-INF/shadow-encrypt.yaml b/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-raw-jdbc-example/src/main/resources/META-INF/shadow-encrypt.yaml
deleted file mode 100644
index d8f1247eb28..00000000000
--- a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-raw-jdbc-example/src/main/resources/META-INF/shadow-encrypt.yaml
+++ /dev/null
@@ -1,96 +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.
-#
-
-dataSources:
-  ds:
-    dataSourceClassName: com.zaxxer.hikari.HikariDataSource
-    driverClassName: com.mysql.jdbc.Driver
-    jdbcUrl: jdbc:mysql://localhost:3306/demo_ds?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=UTF-8
-    username: root
-    password:
-  ds_shadow:
-    dataSourceClassName: com.zaxxer.hikari.HikariDataSource
-    driverClassName: com.mysql.jdbc.Driver
-    jdbcUrl: jdbc:mysql://localhost:3306/shadow_demo_ds?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=UTF-8
-    username: root
-    password:
-
-rules:
-- !ENCRYPT
-  tables:
-    t_user:
-      columns:
-        username:
-          plainColumn: username_plain
-          cipherColumn: username
-          encryptorName: name_encryptor
-        pwd:
-          cipherColumn: pwd
-          assistedQueryColumn: assisted_query_pwd
-          encryptorName: pwd-encryptor
-  encryptors:
-    name_encryptor:
-      type: AES
-      props:
-        aes-key-value: 123456abc
-    pwd-encryptor:
-      type: assistedTest
-
-- !SHADOW
-  dataSources:
-    shadowDataSource:
-      productionDataSourceName: ds
-      shadowDataSourceName: ds_shadow
-  tables:
-    t_user:
-      dataSourceNames:
-        - shadowDataSource
-      shadowAlgorithmNames:
-        - user-id-insert-match-algorithm
-        - user-id-select-match-algorithm
-        - user-id-update-match-algorithm
-        - user-id-delete-match-algorithm
-        - simple-hint-algorithm
-  shadowAlgorithms:
-    user-id-insert-match-algorithm:
-      type: REGEX_MATCH
-      props:
-        operation: insert
-        column: user_type
-        regex: "[1]"
-    user-id-select-match-algorithm:
-      type: REGEX_MATCH
-      props:
-        operation: select
-        column: user_type
-        regex: "[1]"
-    user-id-delete-match-algorithm:
-      type: REGEX_MATCH
-      props:
-        operation: delete
-        column: user_type
-        regex: "[1]"
-    simple-hint-algorithm:
-      type: SIMPLE_HINT
-      props:
-        shadow: true
-        foo: bar
-- !SQL_PARSER
-  sqlCommentParseEnabled: true
-
-props:
-  sql-show: true
diff --git a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-raw-jdbc-example/src/main/resources/META-INF/shadow.yaml b/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-raw-jdbc-example/src/main/resources/META-INF/shadow.yaml
deleted file mode 100644
index 03b21476d6d..00000000000
--- a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-raw-jdbc-example/src/main/resources/META-INF/shadow.yaml
+++ /dev/null
@@ -1,76 +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.
-#
-
-dataSources:
-  ds:
-    dataSourceClassName: com.zaxxer.hikari.HikariDataSource
-    driverClassName: com.mysql.jdbc.Driver
-    jdbcUrl: jdbc:mysql://localhost:3306/demo_ds?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=UTF-8
-    username: root
-    password:
-  ds_shadow:
-    dataSourceClassName: com.zaxxer.hikari.HikariDataSource
-    driverClassName: com.mysql.jdbc.Driver
-    jdbcUrl: jdbc:mysql://localhost:3306/shadow_demo_ds?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=UTF-8
-    username: root
-    password:
-
-rules:
-- !SHADOW
-  dataSources:
-    shadowDataSource:
-      productionDataSourceName: ds
-      shadowDataSourceName: ds_shadow
-  tables:
-    t_user:
-      dataSourceNames:
-        - shadowDataSource
-      shadowAlgorithmNames:
-        - user-id-insert-match-algorithm
-        - user-id-select-match-algorithm
-        - user-id-update-match-algorithm
-        - user-id-delete-match-algorithm
-        - simple-hint-algorithm
-  shadowAlgorithms:
-    user-id-insert-match-algorithm:
-      type: VALUE_MATCH
-      props:
-        operation: insert
-        column: user_type
-        value: 1
-    user-id-select-match-algorithm:
-      type: VALUE_MATCH
-      props:
-        operation: select
-        column: user_type
-        value: 1
-    user-id-delete-match-algorithm:
-      type: VALUE_MATCH
-      props:
-        operation: delete
-        column: user_type
-        value: 1
-    simple-hint-algorithm:
-      type: SIMPLE_HINT
-      props:
-        shadow: true
-        foo: bar
-- !SQL_PARSER
-  sqlCommentParseEnabled: true
-
-props:
-  sql-show: true
diff --git a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-raw-jdbc-example/src/main/resources/logback.xml b/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-raw-jdbc-example/src/main/resources/logback.xml
deleted file mode 100644
index 3d24ca1df83..00000000000
--- a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-raw-jdbc-example/src/main/resources/logback.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ 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.
-  -->
-
-<configuration>
-    <property name="log.context.name" value="shadow-raw-jdbc-example" />
-    <property name="log.charset" value="UTF-8" />
-    <property name="log.pattern" value="[%-5level] %date --%thread-- [%logger] %msg %n" />
-    <contextName>${log.context.name}</contextName>
-    
-    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
-        <encoder charset="${log.charset}">
-            <pattern>${log.pattern}</pattern>
-        </encoder>
-    </appender>
-    <root>
-        <level value="INFO" />
-        <appender-ref ref="STDOUT" />
-    </root>
-</configuration>
diff --git a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-jpa-example/pom.xml b/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-jpa-example/pom.xml
deleted file mode 100644
index 0f95db8cdee..00000000000
--- a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-jpa-example/pom.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ 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.
-  -->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>org.apache.shardingsphere.example</groupId>
-        <artifactId>shadow-example</artifactId>
-        <version>${revision}</version>
-    </parent>
-    <artifactId>shadow-spring-boot-jpa-example</artifactId>
-    <name>${project.artifactId}</name>
-    
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.shardingsphere.example</groupId>
-            <artifactId>example-spring-jpa</artifactId>
-            <version>${project.parent.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.shardingsphere</groupId>
-            <artifactId>shardingsphere-jdbc-core-spring-boot-starter</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-data-jpa</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-test</artifactId>
-        </dependency>
-    </dependencies>
-</project>
diff --git a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-jpa-example/src/main/java/org/apache/shardingsphere/example/shadow/spring/boot/jpa/ShadowSpringBootJpaExample.java b/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-jpa-example/src/main/java/org/apache/shardingsphere/example/shadow/spring/boot/jpa/ShadowSpringBootJpaExample.java
deleted file mode 100644
index 82c32db3045..00000000000
--- a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-jpa-example/src/main/java/org/apache/shardingsphere/example/shadow/spring/boot/jpa/ShadowSpringBootJpaExample.java
+++ /dev/null
@@ -1,41 +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.example.shadow.spring.boot.jpa;
-
-import org.apache.shardingsphere.example.core.api.ExampleExecuteTemplate;
-import org.apache.shardingsphere.example.core.api.service.ExampleService;
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.boot.autoconfigure.domain.EntityScan;
-import org.springframework.boot.autoconfigure.transaction.jta.JtaAutoConfiguration;
-import org.springframework.context.ConfigurableApplicationContext;
-import org.springframework.context.annotation.ComponentScan;
-
-import java.sql.SQLException;
-
-@ComponentScan("org.apache.shardingsphere.example.core.jpa")
-@EntityScan(basePackages = "org.apache.shardingsphere.example.core.jpa.entity")
-@SpringBootApplication(exclude = JtaAutoConfiguration.class)
-public class ShadowSpringBootJpaExample {
-    
-    public static void main(final String[] args) throws SQLException {
-        try (ConfigurableApplicationContext applicationContext = SpringApplication.run(ShadowSpringBootJpaExample.class, args)) {
-            ExampleExecuteTemplate.run(applicationContext.getBean("shadowExample", ExampleService.class));
-        }
-    }
-}
diff --git a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-jpa-example/src/main/resources/application-shadow-default-algorithm.properties b/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-jpa-example/src/main/resources/application-shadow-default-algorithm.properties
deleted file mode 100644
index 790fe15dc5e..00000000000
--- a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-jpa-example/src/main/resources/application-shadow-default-algorithm.properties
+++ /dev/null
@@ -1,59 +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.
-#
-
-spring.shardingsphere.datasource.names=ds,shadow-ds
-
-spring.shardingsphere.datasource.ds.jdbc-url=jdbc:mysql://localhost:3306/demo_ds?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=UTF-8
-spring.shardingsphere.datasource.ds.type=com.zaxxer.hikari.HikariDataSource
-spring.shardingsphere.datasource.ds.driver-class-name=com.mysql.jdbc.Driver
-spring.shardingsphere.datasource.ds.username=root
-spring.shardingsphere.datasource.ds.password=
-
-spring.shardingsphere.datasource.shadow-ds.jdbc-url=jdbc:mysql://localhost:3306/shadow_demo_ds?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=UTF-8
-spring.shardingsphere.datasource.shadow-ds.type=com.zaxxer.hikari.HikariDataSource
-spring.shardingsphere.datasource.shadow-ds.driver-class-name=com.mysql.jdbc.Driver
-spring.shardingsphere.datasource.shadow-ds.username=root
-spring.shardingsphere.datasource.shadow-ds.password=
-
-spring.shardingsphere.rules.shadow.data-sources.shadow-data-source.production-data-source-name=ds
-spring.shardingsphere.rules.shadow.data-sources.shadow-data-source.shadow-data-source-name=shadow-ds
-
-spring.shardingsphere.rules.shadow.tables.t_user.data-source-names=shadow-data-source
-spring.shardingsphere.rules.shadow.tables.t_user.shadow-algorithm-names=user-id-insert-match-algorithm,user-id-delete-match-algorithm,user-id-select-match-algorithm
-
-spring.shardingsphere.rules.shadow.default-shadow-algorithm-name=simple-hint-algorithm
-
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-insert-match-algorithm.type=REGEX_MATCH
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-insert-match-algorithm.props.operation=insert
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-insert-match-algorithm.props.column=user_type
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-insert-match-algorithm.props.regex=[1]
-
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-delete-match-algorithm.type=REGEX_MATCH
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-delete-match-algorithm.props.operation=delete
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-delete-match-algorithm.props.column=user_type
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-delete-match-algorithm.props.regex=[1]
-
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-select-match-algorithm.type=REGEX_MATCH
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-select-match-algorithm.props.operation=select
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-select-match-algorithm.props.column=user_type
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-select-match-algorithm.props.regex=[1]
-
-spring.shardingsphere.rules.shadow.shadow-algorithms.simple-hint-algorithm.type=SIMPLE_HINT
-spring.shardingsphere.rules.shadow.shadow-algorithms.simple-hint-algorithm.props.shadow=true
-spring.shardingsphere.rules.shadow.shadow-algorithms.simple-hint-algorithm.props.foo=bar
-
-spring.shardingsphere.rules.sql-parser.sql-comment-parse-enabled=true
diff --git a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-jpa-example/src/main/resources/application-shadow-sharding-databases.properties b/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-jpa-example/src/main/resources/application-shadow-sharding-databases.properties
deleted file mode 100644
index 0e2d39888a2..00000000000
--- a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-jpa-example/src/main/resources/application-shadow-sharding-databases.properties
+++ /dev/null
@@ -1,79 +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.
-#
-
-spring.shardingsphere.datasource.names=ds-0,ds-1,shadow-ds-0,shadow-ds-1
-
-spring.shardingsphere.datasource.ds-0.jdbc-url=jdbc:mysql://localhost:3306/demo_ds_0?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=UTF-8
-spring.shardingsphere.datasource.ds-0.type=com.zaxxer.hikari.HikariDataSource
-spring.shardingsphere.datasource.ds-0.driver-class-name=com.mysql.jdbc.Driver
-spring.shardingsphere.datasource.ds-0.username=root
-spring.shardingsphere.datasource.ds-0.password=
-
-spring.shardingsphere.datasource.ds-1.jdbc-url=jdbc:mysql://localhost:3306/demo_ds_1?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=UTF-8
-spring.shardingsphere.datasource.ds-1.type=com.zaxxer.hikari.HikariDataSource
-spring.shardingsphere.datasource.ds-1.driver-class-name=com.mysql.jdbc.Driver
-spring.shardingsphere.datasource.ds-1.username=root
-spring.shardingsphere.datasource.ds-1.password=
-
-spring.shardingsphere.datasource.shadow-ds-0.jdbc-url=jdbc:mysql://localhost:3306/shadow_demo_ds_0?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=UTF-8
-spring.shardingsphere.datasource.shadow-ds-0.type=com.zaxxer.hikari.HikariDataSource
-spring.shardingsphere.datasource.shadow-ds-0.driver-class-name=com.mysql.jdbc.Driver
-spring.shardingsphere.datasource.shadow-ds-0.username=root
-spring.shardingsphere.datasource.shadow-ds-0.password=
-
-spring.shardingsphere.datasource.shadow-ds-1.jdbc-url=jdbc:mysql://localhost:3306/shadow_demo_ds_1?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=UTF-8
-spring.shardingsphere.datasource.shadow-ds-1.type=com.zaxxer.hikari.HikariDataSource
-spring.shardingsphere.datasource.shadow-ds-1.driver-class-name=com.mysql.jdbc.Driver
-spring.shardingsphere.datasource.shadow-ds-1.username=root
-spring.shardingsphere.datasource.shadow-ds-1.password=
-
-spring.shardingsphere.rules.sharding.default-database-strategy.standard.sharding-column=user_id
-spring.shardingsphere.rules.sharding.default-database-strategy.standard.sharding-algorithm-name=database-inline
-
-spring.shardingsphere.rules.sharding.tables.t_user.actual-data-nodes=ds-$->{0..1}.t_user
-
-spring.shardingsphere.rules.sharding.sharding-algorithms.database-inline.type=INLINE
-spring.shardingsphere.rules.sharding.sharding-algorithms.database-inline.props.algorithm-expression=ds-$->{user_id % 2}
-
-spring.shardingsphere.rules.shadow.data-sources.shadow-data-source-0.production-data-source-name=ds-0
-spring.shardingsphere.rules.shadow.data-sources.shadow-data-source-0.shadow-data-source-name=shadow-ds-0
-spring.shardingsphere.rules.shadow.data-sources.shadow-data-source-1.production-data-source-name=ds-1
-spring.shardingsphere.rules.shadow.data-sources.shadow-data-source-1.shadow-data-source-name=shadow-ds-1
-
-spring.shardingsphere.rules.shadow.tables.t_user.data-source-names=shadow-data-source-0,shadow-data-source-1
-spring.shardingsphere.rules.shadow.tables.t_user.shadow-algorithm-names=user-id-insert-match-algorithm,user-id-delete-match-algorithm,user-id-select-match-algorithm,simple-hint-algorithm
-
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-insert-match-algorithm.type=REGEX_MATCH
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-insert-match-algorithm.props.operation=insert
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-insert-match-algorithm.props.column=user_type
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-insert-match-algorithm.props.regex=[1]
-
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-delete-match-algorithm.type=REGEX_MATCH
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-delete-match-algorithm.props.operation=delete
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-delete-match-algorithm.props.column=user_type
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-delete-match-algorithm.props.regex=[1]
-
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-select-match-algorithm.type=REGEX_MATCH
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-select-match-algorithm.props.operation=select
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-select-match-algorithm.props.column=user_type
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-select-match-algorithm.props.regex=[1]
-
-spring.shardingsphere.rules.shadow.shadow-algorithms.simple-hint-algorithm.type=SIMPLE_HINT
-spring.shardingsphere.rules.shadow.shadow-algorithms.simple-hint-algorithm.props.shadow=true
-spring.shardingsphere.rules.shadow.shadow-algorithms.simple-hint-algorithm.props.foo=bar
-
-spring.shardingsphere.rules.sql-parser.sql-comment-parse-enabled=true
diff --git a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-jpa-example/src/main/resources/application-shadow.properties b/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-jpa-example/src/main/resources/application-shadow.properties
deleted file mode 100644
index 42734487e8e..00000000000
--- a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-jpa-example/src/main/resources/application-shadow.properties
+++ /dev/null
@@ -1,57 +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.
-#
-
-spring.shardingsphere.datasource.names=ds,shadow-ds
-
-spring.shardingsphere.datasource.ds.jdbc-url=jdbc:mysql://localhost:3306/demo_ds?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=UTF-8
-spring.shardingsphere.datasource.ds.type=com.zaxxer.hikari.HikariDataSource
-spring.shardingsphere.datasource.ds.driver-class-name=com.mysql.jdbc.Driver
-spring.shardingsphere.datasource.ds.username=root
-spring.shardingsphere.datasource.ds.password=
-
-spring.shardingsphere.datasource.shadow-ds.jdbc-url=jdbc:mysql://localhost:3306/shadow_demo_ds?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=UTF-8
-spring.shardingsphere.datasource.shadow-ds.type=com.zaxxer.hikari.HikariDataSource
-spring.shardingsphere.datasource.shadow-ds.driver-class-name=com.mysql.jdbc.Driver
-spring.shardingsphere.datasource.shadow-ds.username=root
-spring.shardingsphere.datasource.shadow-ds.password=
-
-spring.shardingsphere.rules.shadow.data-sources.shadow-data-source.production-data-source-name=ds
-spring.shardingsphere.rules.shadow.data-sources.shadow-data-source.shadow-data-source-name=shadow-ds
-
-spring.shardingsphere.rules.shadow.tables.t_user.data-source-names=shadow-data-source
-spring.shardingsphere.rules.shadow.tables.t_user.shadow-algorithm-names=user-id-insert-match-algorithm,user-id-delete-match-algorithm,user-id-select-match-algorithm,simple-hint-algorithm
-
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-insert-match-algorithm.type=VALUE_MATCH
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-insert-match-algorithm.props.operation=insert
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-insert-match-algorithm.props.column=user_type
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-insert-match-algorithm.props.value=1
-
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-delete-match-algorithm.type=VALUE_MATCH
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-delete-match-algorithm.props.operation=delete
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-delete-match-algorithm.props.column=user_type
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-delete-match-algorithm.props.value=1
-
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-select-match-algorithm.type=VALUE_MATCH
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-select-match-algorithm.props.operation=select
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-select-match-algorithm.props.column=user_type
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-select-match-algorithm.props.value=1
-
-spring.shardingsphere.rules.shadow.shadow-algorithms.simple-hint-algorithm.type=SIMPLE_HINT
-spring.shardingsphere.rules.shadow.shadow-algorithms.simple-hint-algorithm.props.shadow=true
-spring.shardingsphere.rules.shadow.shadow-algorithms.simple-hint-algorithm.props.foo=bar
-
-spring.shardingsphere.rules.sql-parser.sql-comment-parse-enabled=true
diff --git a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-jpa-example/src/main/resources/application.properties b/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-jpa-example/src/main/resources/application.properties
deleted file mode 100644
index 71b4eace4b3..00000000000
--- a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-jpa-example/src/main/resources/application.properties
+++ /dev/null
@@ -1,24 +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.
-#
-
-spring.jpa.properties.hibernate.hbm2ddl.auto=create-drop
-spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
-spring.jpa.properties.hibernate.show_sql=false
-
-spring.profiles.active=shadow
-#spring.profiles.active=shadow-default-algorithm
-#spring.profiles.active=shadow-sharding-databases
diff --git a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-jpa-example/src/main/resources/logback.xml b/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-jpa-example/src/main/resources/logback.xml
deleted file mode 100644
index 457eff4c1a8..00000000000
--- a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-jpa-example/src/main/resources/logback.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ 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.
-  -->
-
-<configuration>
-    <property name="log.context.name" value="shadow-spring-boot-jpa-example" />
-    <property name="log.charset" value="UTF-8" />
-    <property name="log.pattern" value="[%-5level] %date --%thread-- [%logger] %msg %n" />
-    <contextName>${log.context.name}</contextName>
-    
-    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
-        <encoder charset="${log.charset}">
-            <pattern>${log.pattern}</pattern>
-        </encoder>
-    </appender>
-    <logger name="org.springframework" level="WARN" />
-    <logger name="com.zaxxer.hikari" level="WARN" />
-    <root>
-        <level value="INFO" />
-        <appender-ref ref="STDOUT" />
-    </root>
-</configuration>
diff --git a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-mybatis-example/pom.xml b/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-mybatis-example/pom.xml
deleted file mode 100644
index 0bddedf654f..00000000000
--- a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-mybatis-example/pom.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ 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.
-  -->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>org.apache.shardingsphere.example</groupId>
-        <artifactId>shadow-example</artifactId>
-        <version>${revision}</version>
-    </parent>
-    <artifactId>shadow-spring-boot-mybatis-example</artifactId>
-    <name>${project.artifactId}</name>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.shardingsphere.example</groupId>
-            <artifactId>example-spring-mybatis</artifactId>
-            <version>${project.parent.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.shardingsphere</groupId>
-            <artifactId>shardingsphere-jdbc-core-spring-boot-starter</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.mybatis.spring.boot</groupId>
-            <artifactId>mybatis-spring-boot-starter</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-test</artifactId>
-        </dependency>
-    </dependencies>
-</project>
diff --git a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-mybatis-example/src/main/java/org/apache/shardingsphere/example/shadow/spring/boot/mybatis/ShadowSpringBootMybatisExample.java b/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-mybatis-example/src/main/java/org/apache/shardingsphere/example/shadow/spring/boot/mybatis/ShadowSpringBootMybatisExample.java
deleted file mode 100644
index 3bbbb276e65..00000000000
--- a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-mybatis-example/src/main/java/org/apache/shardingsphere/example/shadow/spring/boot/mybatis/ShadowSpringBootMybatisExample.java
+++ /dev/null
@@ -1,41 +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.example.shadow.spring.boot.mybatis;
-
-import org.apache.shardingsphere.example.core.api.ExampleExecuteTemplate;
-import org.apache.shardingsphere.example.core.api.service.ExampleService;
-import org.mybatis.spring.annotation.MapperScan;
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.boot.autoconfigure.transaction.jta.JtaAutoConfiguration;
-import org.springframework.context.ConfigurableApplicationContext;
-import org.springframework.context.annotation.ComponentScan;
-
-import java.sql.SQLException;
-
-@ComponentScan("org.apache.shardingsphere.example.core.mybatis")
-@MapperScan(basePackages = "org.apache.shardingsphere.example.core.mybatis.repository")
-@SpringBootApplication(exclude = JtaAutoConfiguration.class)
-public class ShadowSpringBootMybatisExample {
-    
-    public static void main(final String[] args) throws SQLException {
-        try (ConfigurableApplicationContext applicationContext = SpringApplication.run(ShadowSpringBootMybatisExample.class, args)) {
-            ExampleExecuteTemplate.run(applicationContext.getBean("shadow", ExampleService.class));
-        }
-    }
-}
diff --git a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-mybatis-example/src/main/resources/META-INF/mybatis-config.xml b/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-mybatis-example/src/main/resources/META-INF/mybatis-config.xml
deleted file mode 100644
index 7c150d726c7..00000000000
--- a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-mybatis-example/src/main/resources/META-INF/mybatis-config.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
-  ~ 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.
-  -->
-
-<!DOCTYPE configuration
-        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
-        "http://mybatis.org/dtd/mybatis-3-config.dtd">
-<configuration>
-    <mappers>
-        <mapper resource="META-INF/mappers/ShadowUserMapper.xml"/>
-    </mappers>
-</configuration>
diff --git a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-mybatis-example/src/main/resources/application-shadow-default-algorithm.properties b/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-mybatis-example/src/main/resources/application-shadow-default-algorithm.properties
deleted file mode 100644
index 790fe15dc5e..00000000000
--- a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-mybatis-example/src/main/resources/application-shadow-default-algorithm.properties
+++ /dev/null
@@ -1,59 +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.
-#
-
-spring.shardingsphere.datasource.names=ds,shadow-ds
-
-spring.shardingsphere.datasource.ds.jdbc-url=jdbc:mysql://localhost:3306/demo_ds?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=UTF-8
-spring.shardingsphere.datasource.ds.type=com.zaxxer.hikari.HikariDataSource
-spring.shardingsphere.datasource.ds.driver-class-name=com.mysql.jdbc.Driver
-spring.shardingsphere.datasource.ds.username=root
-spring.shardingsphere.datasource.ds.password=
-
-spring.shardingsphere.datasource.shadow-ds.jdbc-url=jdbc:mysql://localhost:3306/shadow_demo_ds?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=UTF-8
-spring.shardingsphere.datasource.shadow-ds.type=com.zaxxer.hikari.HikariDataSource
-spring.shardingsphere.datasource.shadow-ds.driver-class-name=com.mysql.jdbc.Driver
-spring.shardingsphere.datasource.shadow-ds.username=root
-spring.shardingsphere.datasource.shadow-ds.password=
-
-spring.shardingsphere.rules.shadow.data-sources.shadow-data-source.production-data-source-name=ds
-spring.shardingsphere.rules.shadow.data-sources.shadow-data-source.shadow-data-source-name=shadow-ds
-
-spring.shardingsphere.rules.shadow.tables.t_user.data-source-names=shadow-data-source
-spring.shardingsphere.rules.shadow.tables.t_user.shadow-algorithm-names=user-id-insert-match-algorithm,user-id-delete-match-algorithm,user-id-select-match-algorithm
-
-spring.shardingsphere.rules.shadow.default-shadow-algorithm-name=simple-hint-algorithm
-
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-insert-match-algorithm.type=REGEX_MATCH
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-insert-match-algorithm.props.operation=insert
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-insert-match-algorithm.props.column=user_type
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-insert-match-algorithm.props.regex=[1]
-
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-delete-match-algorithm.type=REGEX_MATCH
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-delete-match-algorithm.props.operation=delete
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-delete-match-algorithm.props.column=user_type
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-delete-match-algorithm.props.regex=[1]
-
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-select-match-algorithm.type=REGEX_MATCH
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-select-match-algorithm.props.operation=select
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-select-match-algorithm.props.column=user_type
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-select-match-algorithm.props.regex=[1]
-
-spring.shardingsphere.rules.shadow.shadow-algorithms.simple-hint-algorithm.type=SIMPLE_HINT
-spring.shardingsphere.rules.shadow.shadow-algorithms.simple-hint-algorithm.props.shadow=true
-spring.shardingsphere.rules.shadow.shadow-algorithms.simple-hint-algorithm.props.foo=bar
-
-spring.shardingsphere.rules.sql-parser.sql-comment-parse-enabled=true
diff --git a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-mybatis-example/src/main/resources/application-shadow-encrypt.properties b/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-mybatis-example/src/main/resources/application-shadow-encrypt.properties
deleted file mode 100644
index 0d4c9e070df..00000000000
--- a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-mybatis-example/src/main/resources/application-shadow-encrypt.properties
+++ /dev/null
@@ -1,69 +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.
-#
-
-spring.shardingsphere.props.query.with.cipher.comlum=true
-
-spring.shardingsphere.datasource.names=ds,shadow-ds
-
-spring.shardingsphere.datasource.ds.jdbc-url=jdbc:mysql://localhost:3306/demo_ds?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=UTF-8
-spring.shardingsphere.datasource.ds.type=com.zaxxer.hikari.HikariDataSource
-spring.shardingsphere.datasource.ds.driver-class-name=com.mysql.jdbc.Driver
-spring.shardingsphere.datasource.ds.username=root
-spring.shardingsphere.datasource.ds.password=
-
-spring.shardingsphere.datasource.shadow-ds.jdbc-url=jdbc:mysql://localhost:3306/shadow_demo_ds?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=UTF-8
-spring.shardingsphere.datasource.shadow-ds.type=com.zaxxer.hikari.HikariDataSource
-spring.shardingsphere.datasource.shadow-ds.driver-class-name=com.mysql.jdbc.Driver
-spring.shardingsphere.datasource.shadow-ds.username=root
-spring.shardingsphere.datasource.shadow-ds.password=
-
-spring.shardingsphere.rules.encrypt.encryptors.name-encryptor.type=AES
-spring.shardingsphere.rules.encrypt.encryptors.name-encryptor.props.aes-key-value=123456
-spring.shardingsphere.rules.encrypt.encryptors.pwd-encryptor.type=assistedTest
-spring.shardingsphere.rules.encrypt.tables.t_shadow_user.columns.username.cipher-column=username
-spring.shardingsphere.rules.encrypt.tables.t_shadow_user.columns.username.plain-column=username_plain
-spring.shardingsphere.rules.encrypt.tables.t_shadow_user.columns.username.encryptor-name=name-encryptor
-spring.shardingsphere.rules.encrypt.tables.t_shadow_user.columns.pwd.cipher-column=pwd
-spring.shardingsphere.rules.encrypt.tables.t_shadow_user.columns.pwd.assisted-query-column=assisted_query_pwd
-spring.shardingsphere.rules.encrypt.tables.t_shadow_user.columns.pwd.encryptor-name=pwd-encryptor
-
-spring.shardingsphere.rules.shadow.data-sources.shadow-data-source.production-data-source-name=ds
-spring.shardingsphere.rules.shadow.data-sources.shadow-data-source.shadow-data-source-name=shadow-ds
-
-spring.shardingsphere.rules.shadow.tables.t_user.data-source-names=shadow-data-source
-spring.shardingsphere.rules.shadow.tables.t_user.shadow-algorithm-names=user-id-insert-match-algorithm,user-id-delete-match-algorithm,user-id-select-match-algorithm,simple-hint-algorithm
-
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-insert-match-algorithm.type=REGEX_MATCH
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-insert-match-algorithm.props.operation=insert
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-insert-match-algorithm.props.column=user_type
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-insert-match-algorithm.props.regex=[1]
-
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-delete-match-algorithm.type=REGEX_MATCH
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-delete-match-algorithm.props.operation=delete
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-delete-match-algorithm.props.column=user_type
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-delete-match-algorithm.props.regex=[1]
-
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-select-match-algorithm.type=REGEX_MATCH
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-select-match-algorithm.props.operation=select
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-select-match-algorithm.props.column=user_type
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-select-match-algorithm.props.regex=[1]
-
-spring.shardingsphere.rules.shadow.shadow-algorithms.simple-hint-algorithm.type=SIMPLE_HINT
-spring.shardingsphere.rules.shadow.shadow-algorithms.simple-hint-algorithm.props.shadow=true
-spring.shardingsphere.rules.shadow.shadow-algorithms.simple-hint-algorithm.props.foo=bar
-
-spring.shardingsphere.rules.sql-parser.sql-comment-parse-enabled=true
diff --git a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-mybatis-example/src/main/resources/application-shadow-readwrite-splitting.properties b/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-mybatis-example/src/main/resources/application-shadow-readwrite-splitting.properties
deleted file mode 100644
index 4120f44b24e..00000000000
--- a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-mybatis-example/src/main/resources/application-shadow-readwrite-splitting.properties
+++ /dev/null
@@ -1,76 +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.
-#
-
-spring.shardingsphere.datasource.names=write-ds,read-ds,shadow-write-ds,shadow-read-ds
-
-spring.shardingsphere.datasource.write-ds.jdbc-url=jdbc:mysql://localhost:3306/demo_write_ds?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=UTF-8
-spring.shardingsphere.datasource.write-ds.type=com.zaxxer.hikari.HikariDataSource
-spring.shardingsphere.datasource.write-ds.driver-class-name=com.mysql.jdbc.Driver
-spring.shardingsphere.datasource.write-ds.username=root
-spring.shardingsphere.datasource.write-ds.password=
-
-spring.shardingsphere.datasource.shadow-write-ds.jdbc-url=jdbc:mysql://localhost:3306/demo_shadow_write_ds?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=UTF-8
-spring.shardingsphere.datasource.shadow-write-ds.type=com.zaxxer.hikari.HikariDataSource
-spring.shardingsphere.datasource.shadow-write-ds.driver-class-name=com.mysql.jdbc.Driver
-spring.shardingsphere.datasource.shadow-write-ds.username=root
-spring.shardingsphere.datasource.shadow-write-ds.password=
-
-spring.shardingsphere.datasource.read-ds.jdbc-url=jdbc:mysql://localhost:3306/demo_read_ds?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=UTF-8
-spring.shardingsphere.datasource.read-ds.type=com.zaxxer.hikari.HikariDataSource
-spring.shardingsphere.datasource.read-ds.driver-class-name=com.mysql.jdbc.Driver
-spring.shardingsphere.datasource.read-ds.username=root
-spring.shardingsphere.datasource.read-ds.password=
-
-spring.shardingsphere.datasource.shadow-read-ds.jdbc-url=jdbc:mysql://localhost:3306/demo_shadow_read_ds?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=UTF-8
-spring.shardingsphere.datasource.shadow-read-ds.type=com.zaxxer.hikari.HikariDataSource
-spring.shardingsphere.datasource.shadow-read-ds.driver-class-name=com.mysql.jdbc.Driver
-spring.shardingsphere.datasource.shadow-read-ds.username=root
-spring.shardingsphere.datasource.shadow-read-ds.password=
-
-spring.shardingsphere.rules.readwrite-splitting.data-sources.readwrite_ds.static-strategy.write-data-source-name=shadow-data-source-write
-spring.shardingsphere.rules.readwrite-splitting.data-sources.readwrite_ds.static-strategy.read-data-source-names=shadow-data-source-read
-spring.shardingsphere.rules.readwrite-splitting.data-sources.readwrite_ds.load-balancer-name=round_robin
-spring.shardingsphere.rules.readwrite-splitting.load-balancers.round_robin.type=ROUND_ROBIN
-
-spring.shardingsphere.rules.shadow.data-sources.shadow-data-source-write.production-data-source-name=write-ds
-spring.shardingsphere.rules.shadow.data-sources.shadow-data-source-write.shadow-data-source-name=shadow-write-ds
-spring.shardingsphere.rules.shadow.data-sources.shadow-data-source-read.production-data-source-name=read-ds
-spring.shardingsphere.rules.shadow.data-sources.shadow-data-source-read.shadow-data-source-name=shadow-read-ds
-
-spring.shardingsphere.rules.shadow.tables.t_user.data-source-names=shadow-data-source-write,shadow-data-source-read
-spring.shardingsphere.rules.shadow.tables.t_user.shadow-algorithm-names=user-id-insert-match-algorithm,user-id-delete-match-algorithm,user-id-select-match-algorithm,simple-hint-algorithm
-
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-insert-match-algorithm.type=REGEX_MATCH
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-insert-match-algorithm.props.operation=insert
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-insert-match-algorithm.props.column=user_type
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-insert-match-algorithm.props.regex=[1]
-
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-delete-match-algorithm.type=REGEX_MATCH
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-delete-match-algorithm.props.operation=delete
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-delete-match-algorithm.props.column=user_type
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-delete-match-algorithm.props.regex=[1]
-
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-select-match-algorithm.type=REGEX_MATCH
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-select-match-algorithm.props.operation=select
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-select-match-algorithm.props.column=user_type
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-select-match-algorithm.props.regex=[1]
-
-spring.shardingsphere.rules.shadow.shadow-algorithms.simple-hint-algorithm.type=SIMPLE_HINT
-spring.shardingsphere.rules.shadow.shadow-algorithms.simple-hint-algorithm.props.shadow=true
-spring.shardingsphere.rules.shadow.shadow-algorithms.simple-hint-algorithm.props.foo=bar
-
-spring.shardingsphere.rules.sql-parser.sql-comment-parse-enabled=true
diff --git a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-mybatis-example/src/main/resources/application-shadow-sharding-databases.properties b/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-mybatis-example/src/main/resources/application-shadow-sharding-databases.properties
deleted file mode 100644
index 0e2d39888a2..00000000000
--- a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-mybatis-example/src/main/resources/application-shadow-sharding-databases.properties
+++ /dev/null
@@ -1,79 +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.
-#
-
-spring.shardingsphere.datasource.names=ds-0,ds-1,shadow-ds-0,shadow-ds-1
-
-spring.shardingsphere.datasource.ds-0.jdbc-url=jdbc:mysql://localhost:3306/demo_ds_0?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=UTF-8
-spring.shardingsphere.datasource.ds-0.type=com.zaxxer.hikari.HikariDataSource
-spring.shardingsphere.datasource.ds-0.driver-class-name=com.mysql.jdbc.Driver
-spring.shardingsphere.datasource.ds-0.username=root
-spring.shardingsphere.datasource.ds-0.password=
-
-spring.shardingsphere.datasource.ds-1.jdbc-url=jdbc:mysql://localhost:3306/demo_ds_1?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=UTF-8
-spring.shardingsphere.datasource.ds-1.type=com.zaxxer.hikari.HikariDataSource
-spring.shardingsphere.datasource.ds-1.driver-class-name=com.mysql.jdbc.Driver
-spring.shardingsphere.datasource.ds-1.username=root
-spring.shardingsphere.datasource.ds-1.password=
-
-spring.shardingsphere.datasource.shadow-ds-0.jdbc-url=jdbc:mysql://localhost:3306/shadow_demo_ds_0?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=UTF-8
-spring.shardingsphere.datasource.shadow-ds-0.type=com.zaxxer.hikari.HikariDataSource
-spring.shardingsphere.datasource.shadow-ds-0.driver-class-name=com.mysql.jdbc.Driver
-spring.shardingsphere.datasource.shadow-ds-0.username=root
-spring.shardingsphere.datasource.shadow-ds-0.password=
-
-spring.shardingsphere.datasource.shadow-ds-1.jdbc-url=jdbc:mysql://localhost:3306/shadow_demo_ds_1?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=UTF-8
-spring.shardingsphere.datasource.shadow-ds-1.type=com.zaxxer.hikari.HikariDataSource
-spring.shardingsphere.datasource.shadow-ds-1.driver-class-name=com.mysql.jdbc.Driver
-spring.shardingsphere.datasource.shadow-ds-1.username=root
-spring.shardingsphere.datasource.shadow-ds-1.password=
-
-spring.shardingsphere.rules.sharding.default-database-strategy.standard.sharding-column=user_id
-spring.shardingsphere.rules.sharding.default-database-strategy.standard.sharding-algorithm-name=database-inline
-
-spring.shardingsphere.rules.sharding.tables.t_user.actual-data-nodes=ds-$->{0..1}.t_user
-
-spring.shardingsphere.rules.sharding.sharding-algorithms.database-inline.type=INLINE
-spring.shardingsphere.rules.sharding.sharding-algorithms.database-inline.props.algorithm-expression=ds-$->{user_id % 2}
-
-spring.shardingsphere.rules.shadow.data-sources.shadow-data-source-0.production-data-source-name=ds-0
-spring.shardingsphere.rules.shadow.data-sources.shadow-data-source-0.shadow-data-source-name=shadow-ds-0
-spring.shardingsphere.rules.shadow.data-sources.shadow-data-source-1.production-data-source-name=ds-1
-spring.shardingsphere.rules.shadow.data-sources.shadow-data-source-1.shadow-data-source-name=shadow-ds-1
-
-spring.shardingsphere.rules.shadow.tables.t_user.data-source-names=shadow-data-source-0,shadow-data-source-1
-spring.shardingsphere.rules.shadow.tables.t_user.shadow-algorithm-names=user-id-insert-match-algorithm,user-id-delete-match-algorithm,user-id-select-match-algorithm,simple-hint-algorithm
-
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-insert-match-algorithm.type=REGEX_MATCH
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-insert-match-algorithm.props.operation=insert
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-insert-match-algorithm.props.column=user_type
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-insert-match-algorithm.props.regex=[1]
-
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-delete-match-algorithm.type=REGEX_MATCH
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-delete-match-algorithm.props.operation=delete
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-delete-match-algorithm.props.column=user_type
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-delete-match-algorithm.props.regex=[1]
-
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-select-match-algorithm.type=REGEX_MATCH
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-select-match-algorithm.props.operation=select
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-select-match-algorithm.props.column=user_type
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-select-match-algorithm.props.regex=[1]
-
-spring.shardingsphere.rules.shadow.shadow-algorithms.simple-hint-algorithm.type=SIMPLE_HINT
-spring.shardingsphere.rules.shadow.shadow-algorithms.simple-hint-algorithm.props.shadow=true
-spring.shardingsphere.rules.shadow.shadow-algorithms.simple-hint-algorithm.props.foo=bar
-
-spring.shardingsphere.rules.sql-parser.sql-comment-parse-enabled=true
diff --git a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-mybatis-example/src/main/resources/application-shadow.properties b/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-mybatis-example/src/main/resources/application-shadow.properties
deleted file mode 100644
index 42734487e8e..00000000000
--- a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-mybatis-example/src/main/resources/application-shadow.properties
+++ /dev/null
@@ -1,57 +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.
-#
-
-spring.shardingsphere.datasource.names=ds,shadow-ds
-
-spring.shardingsphere.datasource.ds.jdbc-url=jdbc:mysql://localhost:3306/demo_ds?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=UTF-8
-spring.shardingsphere.datasource.ds.type=com.zaxxer.hikari.HikariDataSource
-spring.shardingsphere.datasource.ds.driver-class-name=com.mysql.jdbc.Driver
-spring.shardingsphere.datasource.ds.username=root
-spring.shardingsphere.datasource.ds.password=
-
-spring.shardingsphere.datasource.shadow-ds.jdbc-url=jdbc:mysql://localhost:3306/shadow_demo_ds?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=UTF-8
-spring.shardingsphere.datasource.shadow-ds.type=com.zaxxer.hikari.HikariDataSource
-spring.shardingsphere.datasource.shadow-ds.driver-class-name=com.mysql.jdbc.Driver
-spring.shardingsphere.datasource.shadow-ds.username=root
-spring.shardingsphere.datasource.shadow-ds.password=
-
-spring.shardingsphere.rules.shadow.data-sources.shadow-data-source.production-data-source-name=ds
-spring.shardingsphere.rules.shadow.data-sources.shadow-data-source.shadow-data-source-name=shadow-ds
-
-spring.shardingsphere.rules.shadow.tables.t_user.data-source-names=shadow-data-source
-spring.shardingsphere.rules.shadow.tables.t_user.shadow-algorithm-names=user-id-insert-match-algorithm,user-id-delete-match-algorithm,user-id-select-match-algorithm,simple-hint-algorithm
-
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-insert-match-algorithm.type=VALUE_MATCH
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-insert-match-algorithm.props.operation=insert
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-insert-match-algorithm.props.column=user_type
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-insert-match-algorithm.props.value=1
-
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-delete-match-algorithm.type=VALUE_MATCH
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-delete-match-algorithm.props.operation=delete
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-delete-match-algorithm.props.column=user_type
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-delete-match-algorithm.props.value=1
-
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-select-match-algorithm.type=VALUE_MATCH
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-select-match-algorithm.props.operation=select
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-select-match-algorithm.props.column=user_type
-spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-select-match-algorithm.props.value=1
-
-spring.shardingsphere.rules.shadow.shadow-algorithms.simple-hint-algorithm.type=SIMPLE_HINT
-spring.shardingsphere.rules.shadow.shadow-algorithms.simple-hint-algorithm.props.shadow=true
-spring.shardingsphere.rules.shadow.shadow-algorithms.simple-hint-algorithm.props.foo=bar
-
-spring.shardingsphere.rules.sql-parser.sql-comment-parse-enabled=true
diff --git a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-mybatis-example/src/main/resources/application.properties b/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-mybatis-example/src/main/resources/application.properties
deleted file mode 100644
index c1526b4e607..00000000000
--- a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-mybatis-example/src/main/resources/application.properties
+++ /dev/null
@@ -1,26 +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.
-#
-
-spring.profiles.active=shadow
-#spring.profiles.active=shadow-default-algorithm
-#spring.profiles.active=shadow-readwrite-splitting
-#spring.profiles.active=shadow-sharding-databases
-#spring.profiles.active=shadow-encrypt
-
-spring.shardingsphere.props.sql-show=true
-
-mybatis.config-location=classpath:META-INF/mybatis-config.xml
diff --git a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-mybatis-example/src/main/resources/logback.xml b/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-mybatis-example/src/main/resources/logback.xml
deleted file mode 100644
index 8ed5ee272c9..00000000000
--- a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-mybatis-example/src/main/resources/logback.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ 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.
-  -->
-
-<configuration>
-    <property name="log.context.name" value="shadow-spring-boot-mybatis-example" />
-    <property name="log.charset" value="UTF-8" />
-    <property name="log.pattern" value="[%-5level] %date --%thread-- [%logger] %msg %n" />
-    <contextName>${log.context.name}</contextName>
-    
-    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
-        <encoder charset="${log.charset}">
-            <pattern>${log.pattern}</pattern>
-        </encoder>
-    </appender>
-    <logger name="org.springframework" level="WARN" />
-    <logger name="com.zaxxer.hikari" level="WARN" />
-    <root>
-        <level value="INFO" />
-        <appender-ref ref="STDOUT" />
-    </root>
-</configuration>
diff --git a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-namespace-jpa-example/pom.xml b/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-namespace-jpa-example/pom.xml
deleted file mode 100644
index 9c2503b8643..00000000000
--- a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-namespace-jpa-example/pom.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ 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.
-  -->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <artifactId>shadow-example</artifactId>
-        <groupId>org.apache.shardingsphere.example</groupId>
-        <version>${revision}</version>
-    </parent>
-    <artifactId>shadow-spring-namespace-jpa-example</artifactId>
-    <name>${project.artifactId}</name>
-    
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.shardingsphere.example</groupId>
-            <artifactId>example-spring-jpa</artifactId>
-            <version>${project.parent.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.shardingsphere</groupId>
-            <artifactId>shardingsphere-jdbc-core-spring-namespace</artifactId>
-        </dependency>
-    </dependencies>
-</project>
diff --git a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-namespace-jpa-example/src/main/java/org/apache/shardingsphere/example/shadow/spring/namespace/jpa/ShadowSpringNamespaceJpaExample.java b/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-namespace-jpa-example/src/main/java/org/apache/shardingsphere/example/shadow/spring/namespace/jpa/ShadowSpringNamespaceJpaExample.java
deleted file mode 100644
index c2061024305..00000000000
--- a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-namespace-jpa-example/src/main/java/org/apache/shardingsphere/example/shadow/spring/namespace/jpa/ShadowSpringNamespaceJpaExample.java
+++ /dev/null
@@ -1,36 +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.example.shadow.spring.namespace.jpa;
-
-import org.apache.shardingsphere.example.core.api.ExampleExecuteTemplate;
-import org.apache.shardingsphere.example.core.api.service.ExampleService;
-import org.springframework.context.ConfigurableApplicationContext;
-import org.springframework.context.support.ClassPathXmlApplicationContext;
-
-import java.sql.SQLException;
-
-public class ShadowSpringNamespaceJpaExample {
-    
-    private static final String CONFIG_FILE = "META-INF/application-shadow.xml";
-    
-    public static void main(final String[] args) throws SQLException {
-        try (ConfigurableApplicationContext applicationContext = new ClassPathXmlApplicationContext(CONFIG_FILE)) {
-            ExampleExecuteTemplate.run(applicationContext.getBean("shadowExample", ExampleService.class));
-        }
-    }
-}
diff --git a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-namespace-jpa-example/src/main/resources/META-INF/application-shadow.xml b/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-namespace-jpa-example/src/main/resources/META-INF/application-shadow.xml
deleted file mode 100644
index ff3e60dada2..00000000000
--- a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-namespace-jpa-example/src/main/resources/META-INF/application-shadow.xml
+++ /dev/null
@@ -1,128 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ 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.
-  -->
-
-<beans xmlns="http://www.springframework.org/schema/beans"
-       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-       xmlns:context="http://www.springframework.org/schema/context"
-       xmlns:tx="http://www.springframework.org/schema/tx"
-       xmlns:shardingsphere="http://shardingsphere.apache.org/schema/shardingsphere/datasource"
-       xmlns:p="http://www.springframework.org/schema/p"
-       xmlns:shadow="http://shardingsphere.apache.org/schema/shardingsphere/shadow" xmlns:sql-parser="http://shardingsphere.apache.org/schema/shardingsphere/sql-parser"
-       xsi:schemaLocation="http://www.springframework.org/schema/beans
-                           http://www.springframework.org/schema/beans/spring-beans.xsd
-                           http://www.springframework.org/schema/context
-                           http://www.springframework.org/schema/context/spring-context.xsd
-                           http://www.springframework.org/schema/tx
-                           http://www.springframework.org/schema/tx/spring-tx.xsd
-                           http://shardingsphere.apache.org/schema/shardingsphere/datasource
-                           http://shardingsphere.apache.org/schema/shardingsphere/datasource/datasource.xsd
-                           http://shardingsphere.apache.org/schema/shardingsphere/shadow
-                           http://shardingsphere.apache.org/schema/shardingsphere/shadow/shadow.xsd http://shardingsphere.apache.org/schema/shardingsphere/sql-parser http://shardingsphere.apache.org/schema/shardingsphere/sql-parser/sql-parser.xsd
-                           ">
-    <tx:annotation-driven/>
-    <context:annotation-config/>
-    <context:component-scan base-package="org.apache.shardingsphere.example.core.jpa"/>
-    
-    <bean id="ds" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
-        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
-        <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/demo_ds?serverTimezone=UTC&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
-        <property name="username" value="root"/>
-        <property name="password" value=""/>
-    </bean>
-    
-    <bean id="ds_shadow" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
-        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
-        <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/shadow_demo_ds?serverTimezone=UTC&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
-        <property name="username" value="root"/>
-        <property name="password" value=""/>
-    </bean>
-    
-    <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager" p:entityManagerFactory-ref="entityManagerFactory"/>
-    
-    <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
-        <property name="dataSource" ref="shadowDataSource"/>
-        <property name="jpaVendorAdapter">
-            <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" p:database="MYSQL"/>
-        </property>
-        <property name="packagesToScan" value="org.apache.shardingsphere.example.core.jpa.entity"/>
-        <property name="jpaProperties">
-            <props>
-                <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
-                <prop key="hibernate.hbm2ddl.auto">create-drop</prop>
-                <prop key="hibernate.show_sql">false</prop>
-            </props>
-        </property>
-    </bean>
-    
-    <shadow:shadow-algorithm id="user-id-insert-match-algorithm" type="VALUE_MATCH">
-        <props>
-            <prop key="operation">insert</prop>
-            <prop key="column">user_type</prop>
-            <prop key="value">1</prop>
-        </props>
-    </shadow:shadow-algorithm>
-    
-    <shadow:shadow-algorithm id="user-id-delete-match-algorithm" type="VALUE_MATCH">
-        <props>
-            <prop key="operation">delete</prop>
-            <prop key="column">user_type</prop>
-            <prop key="value">1</prop>
-        </props>
-    </shadow:shadow-algorithm>
-    
-    <shadow:shadow-algorithm id="user-id-select-match-algorithm" type="VALUE_MATCH">
-        <props>
-            <prop key="operation">select</prop>
-            <prop key="column">user_type</prop>
-            <prop key="value">1</prop>
-        </props>
-    </shadow:shadow-algorithm>
-    
-    <shadow:shadow-algorithm id="simple-hint-algorithm" type="SIMPLE_HINT">
-        <props>
-            <prop key="shadow">true</prop>
-            <prop key="foo">bar</prop>
-        </props>
-    </shadow:shadow-algorithm>
-    
-    <shadow:rule id="shadowRule">
-        <shadow:data-source id="shadow-data-source" production-data-source-name="ds" shadow-data-source-name="ds_shadow"/>
-        <shadow:shadow-table name="t_user" data-sources="shadow-data-source">
-            <shadow:algorithm shadow-algorithm-ref="user-id-insert-match-algorithm" />
-            <shadow:algorithm shadow-algorithm-ref="user-id-delete-match-algorithm" />
-            <shadow:algorithm shadow-algorithm-ref="user-id-select-match-algorithm" />
-            <shadow:algorithm shadow-algorithm-ref="simple-hint-algorithm" />
-        </shadow:shadow-table>
-    </shadow:rule>
-    
-    <sql-parser:rule id="sqlParseRule" sql-comment-parse-enable="true" parse-tree-cache-ref="parseTreeCache" sql-statement-cache-ref="sqlStatementCache" />
-    <sql-parser:cache-option id="sqlStatementCache" initial-capacity="1024" maximum-size="1024"/>
-    <sql-parser:cache-option id="parseTreeCache" initial-capacity="1024" maximum-size="1024"/>
-    
-    <shardingsphere:data-source id="shadowDataSource" data-source-names="ds,ds_shadow" rule-refs="shadowRule,sqlParseRule">
-        <props>
-            <prop key="sql-show">true</prop>
-        </props>
-    </shardingsphere:data-source>
-    
-    <shardingsphere:data-source id="shadowDataSource" data-source-names="ds,ds_shadow" rule-refs="shadowRule,sqlParseRule">
-        <props>
-            <prop key="sql-show">true</prop>
-        </props>
-    </shardingsphere:data-source>
-</beans>
diff --git a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-namespace-jpa-example/src/main/resources/logback.xml b/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-namespace-jpa-example/src/main/resources/logback.xml
deleted file mode 100644
index 2ed822d2864..00000000000
--- a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-namespace-jpa-example/src/main/resources/logback.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ 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.
-  -->
-
-<configuration>
-    <property name="log.context.name" value="shadow-spring-namespace-jpa-example" />
-    <property name="log.charset" value="UTF-8" />
-    <property name="log.pattern" value="[%-5level] %date --%thread-- [%logger] %msg %n" />
-    <contextName>${log.context.name}</contextName>
-    
-    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
-        <encoder charset="${log.charset}">
-            <pattern>${log.pattern}</pattern>
-        </encoder>
-    </appender>
-    <root>
-        <level value="INFO" />
-        <appender-ref ref="STDOUT" />
-    </root>
-</configuration>
diff --git a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-namespace-mybatis-example/pom.xml b/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-namespace-mybatis-example/pom.xml
deleted file mode 100644
index 829f0e65ea3..00000000000
--- a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-namespace-mybatis-example/pom.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ 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.
-  -->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <artifactId>shadow-example</artifactId>
-        <groupId>org.apache.shardingsphere.example</groupId>
-        <version>${revision}</version>
-    </parent>
-    <artifactId>shadow-spring-namespace-mybatis-example</artifactId>
-    <name>${project.artifactId}</name>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.shardingsphere.example</groupId>
-            <artifactId>example-spring-mybatis</artifactId>
-            <version>${project.parent.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.shardingsphere</groupId>
-            <artifactId>shardingsphere-jdbc-core-spring-namespace</artifactId>
-        </dependency>
-    </dependencies>
-</project>
diff --git a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-namespace-mybatis-example/src/main/java/org/apache/shardingsphere/example/shadow/spring/namespace/mybatis/ShadowSpringNamespaceMybatisExample.java b/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-namespace-mybatis-example/src/main/java/org/apache/shardingsphere/example/shadow/spring/namespace/mybatis/ShadowSpringNamespaceMybatisExample.java
deleted file mode 100644
index 085cfd7baa7..00000000000
--- a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-namespace-mybatis-example/src/main/java/org/apache/shardingsphere/example/shadow/spring/namespace/mybatis/ShadowSpringNamespaceMybatisExample.java
+++ /dev/null
@@ -1,40 +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.example.shadow.spring.namespace.mybatis;
-
-import org.apache.shardingsphere.example.core.api.ExampleExecuteTemplate;
-import org.apache.shardingsphere.example.core.api.service.ExampleService;
-import org.springframework.context.ConfigurableApplicationContext;
-import org.springframework.context.support.ClassPathXmlApplicationContext;
-
-import java.sql.SQLException;
-
-public final class ShadowSpringNamespaceMybatisExample {
-    
-    private static final String CONFIG_FILE = "META-INF/application-shadow.xml";
-//    private static final String CONFIG_FILE = "META-INF/application-shadow-default-algorithm.xml";
-//    private static final String CONFIG_FILE = "META-INF/application-shadow-encrypt.xml";
-//    private static final String CONFIG_FILE = "META-INF/application-shadow-readwrite-splitting.xml";
-//    private static final String CONFIG_FILE = "META-INF/application-shadow-sharding-databases.xml";
-    
-    public static void main(final String[] args) throws SQLException {
-        try (ConfigurableApplicationContext applicationContext = new ClassPathXmlApplicationContext(CONFIG_FILE)) {
-            ExampleExecuteTemplate.run(applicationContext.getBean("shadow", ExampleService.class));
-        }
-    }
-}
diff --git a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-namespace-mybatis-example/src/main/resources/META-INF/application-shadow-default-algorithm.xml b/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-namespace-mybatis-example/src/main/resources/META-INF/application-shadow-default-algorithm.xml
deleted file mode 100644
index 6909f659c99..00000000000
--- a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-namespace-mybatis-example/src/main/resources/META-INF/application-shadow-default-algorithm.xml
+++ /dev/null
@@ -1,116 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ 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.
-  -->
-
-<beans xmlns="http://www.springframework.org/schema/beans"
-       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-       xmlns:shardingsphere="http://shardingsphere.apache.org/schema/shardingsphere/datasource"
-       xmlns:context="http://www.springframework.org/schema/context"
-       xmlns:tx="http://www.springframework.org/schema/tx"
-       xmlns:shadow="http://shardingsphere.apache.org/schema/shardingsphere/shadow" xmlns:sql-parser="http://shardingsphere.apache.org/schema/shardingsphere/sql-parser"
-       xsi:schemaLocation="http://www.springframework.org/schema/beans
-                           http://www.springframework.org/schema/beans/spring-beans.xsd
-                           http://www.springframework.org/schema/tx
-                           http://www.springframework.org/schema/tx/spring-tx.xsd
-                           http://www.springframework.org/schema/context
-                           http://www.springframework.org/schema/context/spring-context.xsd
-                           http://shardingsphere.apache.org/schema/shardingsphere/datasource
-                           http://shardingsphere.apache.org/schema/shardingsphere/datasource/datasource.xsd
-                           http://shardingsphere.apache.org/schema/shardingsphere/shadow
-                           http://shardingsphere.apache.org/schema/shardingsphere/shadow/shadow.xsd http://shardingsphere.apache.org/schema/shardingsphere/sql-parser http://shardingsphere.apache.org/schema/shardingsphere/sql-parser/sql-parser.xsd">
-    <context:component-scan base-package="org.apache.shardingsphere.example.core.mybatis" />
-
-    <bean id="ds" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
-        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
-        <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/demo_ds?serverTimezone=UTC&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
-        <property name="username" value="root"/>
-        <property name="password" value=""/>
-    </bean>
-
-    <bean id="ds_shadow" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
-        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
-        <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/shadow_demo_ds?serverTimezone=UTC&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
-        <property name="username" value="root"/>
-        <property name="password" value=""/>
-    </bean>
-
-    <shadow:shadow-algorithm id="user-id-insert-match-algorithm" type="REGEX_MATCH">
-        <props>
-            <prop key="operation">insert</prop>
-            <prop key="column">user_type</prop>
-            <prop key="regex">[1]</prop>
-        </props>
-    </shadow:shadow-algorithm>
-
-    <shadow:shadow-algorithm id="user-id-delete-match-algorithm" type="REGEX_MATCH">
-        <props>
-            <prop key="operation">delete</prop>
-            <prop key="column">user_type</prop>
-            <prop key="regex">[1]</prop>
-        </props>
-    </shadow:shadow-algorithm>
-
-    <shadow:shadow-algorithm id="user-id-select-match-algorithm" type="REGEX_MATCH">
-        <props>
-            <prop key="operation">select</prop>
-            <prop key="column">user_type</prop>
-            <prop key="regex">[1]</prop>
-        </props>
-    </shadow:shadow-algorithm>
-
-    <shadow:shadow-algorithm id="simple-hint-algorithm" type="SIMPLE_HINT">
-        <props>
-            <prop key="shadow">true</prop>
-            <prop key="foo">bar</prop>
-        </props>
-    </shadow:shadow-algorithm>
-
-    <shadow:rule id="shadowRule">
-        <shadow:data-source id="shadow-data-source" production-data-source-name="ds" shadow-data-source-name="ds_shadow"/>
-        <shadow:shadow-table name="t_user" data-sources="shadow-data-source">
-            <shadow:algorithm shadow-algorithm-ref="user-id-insert-match-algorithm" />
-            <shadow:algorithm shadow-algorithm-ref="user-id-delete-match-algorithm" />
-            <shadow:algorithm shadow-algorithm-ref="user-id-select-match-algorithm" />
-        </shadow:shadow-table>
-        <shadow:default-shadow-algorithm-name name="simple-hint-algorithm"/>
-    </shadow:rule>
-
-    <sql-parser:rule id="sqlParseRule" sql-comment-parse-enable="true" parse-tree-cache-ref="parseTreeCache" sql-statement-cache-ref="sqlStatementCache" />
-    <sql-parser:cache-option id="sqlStatementCache" initial-capacity="1024" maximum-size="1024"/>
-    <sql-parser:cache-option id="parseTreeCache" initial-capacity="1024" maximum-size="1024"/>
-
-    <shardingsphere:data-source id="shadowDataSource" data-source-names="ds,ds_shadow" rule-refs="shadowRule,sqlParseRule">
-        <props>
-            <prop key="sql-show">true</prop>
-        </props>
-    </shardingsphere:data-source>
-
-    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
-        <property name="dataSource" ref="shadowDataSource" />
-    </bean>
-    <tx:annotation-driven />
-
-    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
-        <property name="dataSource" ref="shadowDataSource"/>
-        <property name="mapperLocations" value="classpath*:META-INF/mappers/*.xml"/>
-    </bean>
-
-    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
-        <property name="basePackage" value="org.apache.shardingsphere.example.core.mybatis.repository"/>
-        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
-    </bean>
-</beans>
diff --git a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-namespace-mybatis-example/src/main/resources/META-INF/application-shadow-encrypt.xml b/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-namespace-mybatis-example/src/main/resources/META-INF/application-shadow-encrypt.xml
deleted file mode 100644
index d11ed7c2b45..00000000000
--- a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-namespace-mybatis-example/src/main/resources/META-INF/application-shadow-encrypt.xml
+++ /dev/null
@@ -1,134 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ 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.
-  -->
-
-<beans xmlns="http://www.springframework.org/schema/beans"
-       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-       xmlns:shardingsphere="http://shardingsphere.apache.org/schema/shardingsphere/datasource"
-       xmlns:context="http://www.springframework.org/schema/context"
-       xmlns:tx="http://www.springframework.org/schema/tx"
-       xmlns:shadow="http://shardingsphere.apache.org/schema/shardingsphere/shadow"
-       xmlns:encrypt="http://shardingsphere.apache.org/schema/shardingsphere/encrypt" xmlns:sql-parser="http://shardingsphere.apache.org/schema/shardingsphere/sql-parser"
-       xsi:schemaLocation="http://www.springframework.org/schema/beans
-                           http://www.springframework.org/schema/beans/spring-beans.xsd
-                           http://www.springframework.org/schema/tx
-                           http://www.springframework.org/schema/tx/spring-tx.xsd
-                           http://www.springframework.org/schema/context
-                           http://www.springframework.org/schema/context/spring-context.xsd
-                           http://shardingsphere.apache.org/schema/shardingsphere/datasource
-                           http://shardingsphere.apache.org/schema/shardingsphere/datasource/datasource.xsd
-                           http://shardingsphere.apache.org/schema/shardingsphere/shadow
-                           http://shardingsphere.apache.org/schema/shardingsphere/shadow/shadow.xsd
-                           http://shardingsphere.apache.org/schema/shardingsphere/encrypt
-                           http://shardingsphere.apache.org/schema/shardingsphere/encrypt/encrypt.xsd http://shardingsphere.apache.org/schema/shardingsphere/sql-parser http://shardingsphere.apache.org/schema/shardingsphere/sql-parser/sql-parser.xsd">
-    <context:component-scan base-package="org.apache.shardingsphere.example.core.mybatis" />
-    
-    <bean id="ds" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
-        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
-        <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/demo_ds?serverTimezone=UTC&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
-        <property name="username" value="root"/>
-        <property name="password" value=""/>
-    </bean>
-    
-    <bean id="ds_shadow" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
-        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
-        <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/shadow_demo_ds?serverTimezone=UTC&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
-        <property name="username" value="root"/>
-        <property name="password" value=""/>
-    </bean>
-
-    <encrypt:encrypt-algorithm id="name_encryptor" type="AES">
-        <props>
-            <prop key="aes-key-value">123456</prop>
-        </props>
-    </encrypt:encrypt-algorithm>
-
-    <encrypt:encrypt-algorithm id="pwd_encryptor" type="assistedTest" />
-    
-    <encrypt:rule id="encryptRule">
-        <encrypt:table name="t_user">
-            <encrypt:column logic-column="username" cipher-column="username" plain-column="username_plain" encrypt-algorithm-ref="name_encryptor" />
-            <encrypt:column logic-column="pwd" cipher-column="pwd" assisted-query-column="assisted_query_pwd" encrypt-algorithm-ref="pwd_encryptor" />
-        </encrypt:table>
-    </encrypt:rule>
-
-    <shadow:shadow-algorithm id="user-id-insert-match-algorithm" type="REGEX_MATCH">
-        <props>
-            <prop key="operation">insert</prop>
-            <prop key="column">user_type</prop>
-            <prop key="regex">[1]</prop>
-        </props>
-    </shadow:shadow-algorithm>
-
-    <shadow:shadow-algorithm id="user-id-delete-match-algorithm" type="REGEX_MATCH">
-        <props>
-            <prop key="operation">delete</prop>
-            <prop key="column">user_type</prop>
-            <prop key="regex">[1]</prop>
-        </props>
-    </shadow:shadow-algorithm>
-
-    <shadow:shadow-algorithm id="user-id-select-match-algorithm" type="REGEX_MATCH">
-        <props>
-            <prop key="operation">select</prop>
-            <prop key="column">user_type</prop>
-            <prop key="regex">[1]</prop>
-        </props>
-    </shadow:shadow-algorithm>
-
-    <shadow:shadow-algorithm id="simple-hint-algorithm" type="SIMPLE_HINT">
-        <props>
-            <prop key="shadow">true</prop>
-            <prop key="foo">bar</prop>
-        </props>
-    </shadow:shadow-algorithm>
-
-    <shadow:rule id="shadowRule">
-        <shadow:data-source id="shadow-data-source" production-data-source-name="ds" shadow-data-source-name="ds_shadow"/>
-        <shadow:shadow-table name="t_user" data-sources="shadow-data-source">
-            <shadow:algorithm shadow-algorithm-ref="user-id-insert-match-algorithm" />
-            <shadow:algorithm shadow-algorithm-ref="user-id-delete-match-algorithm" />
-            <shadow:algorithm shadow-algorithm-ref="user-id-select-match-algorithm" />
-            <shadow:algorithm shadow-algorithm-ref="simple-hint-algorithm" />
-        </shadow:shadow-table>
-    </shadow:rule>
-
-    <sql-parser:rule id="sqlParseRule" sql-comment-parse-enable="true" parse-tree-cache-ref="parseTreeCache" sql-statement-cache-ref="sqlStatementCache" />
-    <sql-parser:cache-option id="sqlStatementCache" initial-capacity="1024" maximum-size="1024"/>
-    <sql-parser:cache-option id="parseTreeCache" initial-capacity="1024" maximum-size="1024"/>
-
-    <shardingsphere:data-source id="shadowEncryptDataSource" data-source-names="ds,ds_shadow" rule-refs="shadowRule,encryptRule,sqlParseRule">
-        <props>
-            <prop key="sql-show">true</prop>
-        </props>
-    </shardingsphere:data-source>
-
-    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
-        <property name="dataSource" ref="shadowEncryptDataSource" />
-    </bean>
-    <tx:annotation-driven />
-    
-    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
-        <property name="dataSource" ref="shadowEncryptDataSource"/>
-        <property name="mapperLocations" value="classpath*:META-INF/mappers/*.xml"/>
-    </bean>
-
-    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
-        <property name="basePackage" value="org.apache.shardingsphere.example.core.mybatis.repository"/>
-        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
-    </bean>
-</beans>
diff --git a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-namespace-mybatis-example/src/main/resources/META-INF/application-shadow-readwrite-splitting.xml b/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-namespace-mybatis-example/src/main/resources/META-INF/application-shadow-readwrite-splitting.xml
deleted file mode 100644
index 96e388d852c..00000000000
--- a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-namespace-mybatis-example/src/main/resources/META-INF/application-shadow-readwrite-splitting.xml
+++ /dev/null
@@ -1,142 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ 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.
-  -->
-
-<beans xmlns="http://www.springframework.org/schema/beans"
-       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-       xmlns:shardingsphere="http://shardingsphere.apache.org/schema/shardingsphere/datasource"
-       xmlns:context="http://www.springframework.org/schema/context"
-       xmlns:tx="http://www.springframework.org/schema/tx"
-       xmlns:shadow="http://shardingsphere.apache.org/schema/shardingsphere/shadow"
-       xmlns:readwrite-splitting="http://shardingsphere.apache.org/schema/shardingsphere/readwrite-splitting" xmlns:sql-parser="http://shardingsphere.apache.org/schema/shardingsphere/sql-parser"
-       xsi:schemaLocation="http://www.springframework.org/schema/beans
-                           http://www.springframework.org/schema/beans/spring-beans.xsd 
-                           http://www.springframework.org/schema/tx 
-                           http://www.springframework.org/schema/tx/spring-tx.xsd
-                           http://www.springframework.org/schema/context 
-                           http://www.springframework.org/schema/context/spring-context.xsd
-                           http://shardingsphere.apache.org/schema/shardingsphere/datasource
-                           http://shardingsphere.apache.org/schema/shardingsphere/datasource/datasource.xsd
-                           http://shardingsphere.apache.org/schema/shardingsphere/shadow
-                           http://shardingsphere.apache.org/schema/shardingsphere/shadow/shadow.xsd
-                           http://shardingsphere.apache.org/schema/shardingsphere/readwrite-splitting
-                           http://shardingsphere.apache.org/schema/shardingsphere/readwrite-splitting/readwrite-splitting.xsd http://shardingsphere.apache.org/schema/shardingsphere/sql-parser http://shardingsphere.apache.org/schema/shardingsphere/sql-parser/sql-parser.xsd">
-    <context:component-scan base-package="org.apache.shardingsphere.example.core.mybatis" />
-
-    <bean id="write-ds" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
-        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
-        <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/demo_write_ds?serverTimezone=UTC&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
-        <property name="username" value="root"/>
-        <property name="password" value=""/>
-    </bean>
-
-    <bean id="read-ds" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
-        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
-        <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/demo_read_ds?serverTimezone=UTC&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
-        <property name="username" value="root"/>
-        <property name="password" value=""/>
-    </bean>
-
-    <bean id="write-ds-shadow" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
-        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
-        <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/demo_shadow_write_ds?serverTimezone=UTC&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
-        <property name="username" value="root"/>
-        <property name="password" value=""/>
-    </bean>
-
-    <bean id="read-ds-shadow" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
-        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
-        <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/demo_shadow_read_ds?serverTimezone=UTC&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
-        <property name="username" value="root"/>
-        <property name="password" value=""/>
-    </bean>
-
-    <readwrite-splitting:load-balance-algorithm id="randomStrategy" type="RANDOM" />
-
-    <readwrite-splitting:rule id="readWriteSplittingRule">
-        <readwrite-splitting:data-source-rule id="demo_ds" load-balance-algorithm-ref="randomStrategy">
-            <readwrite-splitting:static-strategy id="staticStrategy" write-data-source-name="write-ds" read-data-source-names="read-ds"/>
-        </readwrite-splitting:data-source-rule>
-    </readwrite-splitting:rule>
-
-    <shadow:shadow-algorithm id="user-id-insert-match-algorithm" type="REGEX_MATCH">
-        <props>
-            <prop key="operation">insert</prop>
-            <prop key="column">user_type</prop>
-            <prop key="regex">[1]</prop>
-        </props>
-    </shadow:shadow-algorithm>
-
-    <shadow:shadow-algorithm id="user-id-delete-match-algorithm" type="REGEX_MATCH">
-        <props>
-            <prop key="operation">delete</prop>
-            <prop key="column">user_type</prop>
-            <prop key="regex">[1]</prop>
-        </props>
-    </shadow:shadow-algorithm>
-
-    <shadow:shadow-algorithm id="user-id-select-match-algorithm" type="REGEX_MATCH">
-        <props>
-            <prop key="operation">select</prop>
-            <prop key="column">user_type</prop>
-            <prop key="regex">[1]</prop>
-        </props>
-    </shadow:shadow-algorithm>
-
-    <shadow:shadow-algorithm id="simple-hint-algorithm" type="SIMPLE_HINT">
-        <props>
-            <prop key="shadow">true</prop>
-            <prop key="foo">bar</prop>
-        </props>
-    </shadow:shadow-algorithm>
-
-    <shadow:rule id="shadowRule">
-        <shadow:data-source id="shadow-data-source-write" production-data-source-name="write-ds" shadow-data-source-name="write-ds-shadow"/>
-        <shadow:data-source id="shadow-data-source-read" production-data-source-name="read-ds" shadow-data-source-name="read-ds-shadow"/>
-        <shadow:shadow-table name="t_user" data-sources="shadow-data-source-write,shadow-data-source-read">
-            <shadow:algorithm shadow-algorithm-ref="user-id-insert-match-algorithm" />
-            <shadow:algorithm shadow-algorithm-ref="user-id-delete-match-algorithm" />
-            <shadow:algorithm shadow-algorithm-ref="user-id-select-match-algorithm" />
-            <shadow:algorithm shadow-algorithm-ref="simple-hint-algorithm" />
-        </shadow:shadow-table>
-    </shadow:rule>
-
-    <sql-parser:rule id="sqlParseRule" sql-comment-parse-enable="true" parse-tree-cache-ref="parseTreeCache" sql-statement-cache-ref="sqlStatementCache" />
-    <sql-parser:cache-option id="sqlStatementCache" initial-capacity="1024" maximum-size="1024"/>
-    <sql-parser:cache-option id="parseTreeCache" initial-capacity="1024" maximum-size="1024"/>
-
-    <shardingsphere:data-source id="shadowReadWriteDataSource" data-source-names="write-ds,read-ds,write-ds-shadow,read-ds-shadow" rule-refs="shadowRule,readWriteSplittingRule,sqlParseRule">
-        <props>
-            <prop key="sql-show">true</prop>
-        </props>
-    </shardingsphere:data-source>
-
-    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
-        <property name="dataSource" ref="shadowReadWriteDataSource" />
-    </bean>
-    <tx:annotation-driven />
-    
-    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
-        <property name="dataSource" ref="shadowReadWriteDataSource"/>
-        <property name="mapperLocations" value="classpath*:META-INF/mappers/*.xml"/>
-    </bean>
-    
-    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
-        <property name="basePackage" value="org.apache.shardingsphere.example.core.mybatis.repository"/>
-        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
-    </bean>
-</beans>
diff --git a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-namespace-mybatis-example/src/main/resources/META-INF/application-shadow-sharding-databases.xml b/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-namespace-mybatis-example/src/main/resources/META-INF/application-shadow-sharding-databases.xml
deleted file mode 100644
index acae15fd5d3..00000000000
--- a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-namespace-mybatis-example/src/main/resources/META-INF/application-shadow-sharding-databases.xml
+++ /dev/null
@@ -1,145 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ 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.
-  -->
-
-<beans xmlns="http://www.springframework.org/schema/beans"
-       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-       xmlns:shardingsphere="http://shardingsphere.apache.org/schema/shardingsphere/datasource"
-       xmlns:context="http://www.springframework.org/schema/context"
-       xmlns:tx="http://www.springframework.org/schema/tx"
-       xmlns:shadow="http://shardingsphere.apache.org/schema/shardingsphere/shadow"
-       xmlns:sharding="http://shardingsphere.apache.org/schema/shardingsphere/sharding" xmlns:sql-parser="http://shardingsphere.apache.org/schema/shardingsphere/sql-parser"
-       xsi:schemaLocation="http://www.springframework.org/schema/beans
-                           http://www.springframework.org/schema/beans/spring-beans.xsd 
-                           http://www.springframework.org/schema/tx 
-                           http://www.springframework.org/schema/tx/spring-tx.xsd
-                           http://www.springframework.org/schema/context 
-                           http://www.springframework.org/schema/context/spring-context.xsd
-                           http://shardingsphere.apache.org/schema/shardingsphere/datasource
-                           http://shardingsphere.apache.org/schema/shardingsphere/datasource/datasource.xsd
-                           http://shardingsphere.apache.org/schema/shardingsphere/shadow
-                           http://shardingsphere.apache.org/schema/shardingsphere/shadow/shadow.xsd
-                           http://shardingsphere.apache.org/schema/shardingsphere/sharding
-                           http://shardingsphere.apache.org/schema/shardingsphere/sharding/sharding.xsd http://shardingsphere.apache.org/schema/shardingsphere/sql-parser http://shardingsphere.apache.org/schema/shardingsphere/sql-parser/sql-parser.xsd">
-    <context:component-scan base-package="org.apache.shardingsphere.example.core.mybatis" />
-    
-    <bean id="ds_0" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
-        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
-        <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/demo_ds_0?serverTimezone=UTC&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
-        <property name="username" value="root"/>
-        <property name="password" value=""/>
-    </bean>
-    <bean id="ds_1" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
-        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
-        <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/demo_ds_1?serverTimezone=UTC&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
-        <property name="username" value="root"/>
-        <property name="password" value=""/>
-    </bean>
-    <bean id="ds_shadow_0" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
-        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
-        <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/shadow_demo_ds_0?serverTimezone=UTC&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
-        <property name="username" value="root"/>
-        <property name="password" value=""/>
-    </bean>
-    <bean id="ds_shadow_1" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
-        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
-        <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/shadow_demo_ds_1?serverTimezone=UTC&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
-        <property name="username" value="root"/>
-        <property name="password" value=""/>
-    </bean>
-    
-    <sharding:rule id="shardingRule">
-        <sharding:table-rules>
-            <sharding:table-rule actual-data-nodes="ds_${0..1}.t_user" logic-table="t_user" database-strategy-ref="databaseStrategy"/>
-        </sharding:table-rules>
-    </sharding:rule>
-    
-    <sharding:standard-strategy id="databaseStrategy" sharding-column="user_id" algorithm-ref="inlineStrategyShardingAlgorithm" />
-    
-    <sharding:sharding-algorithm id="inlineStrategyShardingAlgorithm" type="INLINE">
-        <props>
-            <prop key="algorithm-expression">ds_${user_id % 2}</prop>
-        </props>
-    </sharding:sharding-algorithm>
-    
-    <shadow:shadow-algorithm id="user-id-insert-match-algorithm" type="REGEX_MATCH">
-        <props>
-            <prop key="operation">insert</prop>
-            <prop key="column">user_type</prop>
-            <prop key="regex">[1]</prop>
-        </props>
-    </shadow:shadow-algorithm>
-    
-    <shadow:shadow-algorithm id="user-id-delete-match-algorithm" type="REGEX_MATCH">
-        <props>
-            <prop key="operation">delete</prop>
-            <prop key="column">user_type</prop>
-            <prop key="regex">[1]</prop>
-        </props>
-    </shadow:shadow-algorithm>
-    
-    <shadow:shadow-algorithm id="user-id-select-match-algorithm" type="REGEX_MATCH">
-        <props>
-            <prop key="operation">select</prop>
-            <prop key="column">user_type</prop>
-            <prop key="regex">[1]</prop>
-        </props>
-    </shadow:shadow-algorithm>
-    
-    <shadow:shadow-algorithm id="simple-hint-algorithm" type="SIMPLE_HINT">
-        <props>
-            <prop key="shadow">true</prop>
-            <prop key="foo">bar</prop>
-        </props>
-    </shadow:shadow-algorithm>
-    
-    <shadow:rule id="shadowRule">
-        <shadow:data-source id="shadow-data-source-0" production-data-source-name="ds_0" shadow-data-source-name="ds_shadow_0"/>
-        <shadow:data-source id="shadow-data-source-1" production-data-source-name="ds_1" shadow-data-source-name="ds_shadow_1"/>
-        <shadow:shadow-table name="t_user" data-sources="shadow-data-source-0,shadow-data-source-1">
-            <shadow:algorithm shadow-algorithm-ref="user-id-insert-match-algorithm" />
-            <shadow:algorithm shadow-algorithm-ref="user-id-delete-match-algorithm" />
-            <shadow:algorithm shadow-algorithm-ref="user-id-select-match-algorithm" />
-            <shadow:algorithm shadow-algorithm-ref="simple-hint-algorithm" />
-        </shadow:shadow-table>
-    </shadow:rule>
-    
-    <sql-parser:rule id="sqlParseRule" sql-comment-parse-enable="true" parse-tree-cache-ref="parseTreeCache" sql-statement-cache-ref="sqlStatementCache" />
-    <sql-parser:cache-option id="sqlStatementCache" initial-capacity="1024" maximum-size="1024"/>
-    <sql-parser:cache-option id="parseTreeCache" initial-capacity="1024" maximum-size="1024"/>
-    
-    <shardingsphere:data-source id="shadowShardingDataSource" data-source-names="write-ds,read-ds,write-ds-shadow,read-ds-shadow" rule-refs="shadowRule,readWriteSplittingRule,sqlParseRule">
-        <props>
-            <prop key="sql-show">true</prop>
-        </props>
-    </shardingsphere:data-source>
-    
-    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
-        <property name="dataSource" ref="shadowShardingDataSource" />
-    </bean>
-    <tx:annotation-driven />
-    
-    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
-        <property name="dataSource" ref="shadowShardingDataSource"/>
-        <property name="mapperLocations" value="classpath*:META-INF/mappers/*.xml"/>
-    </bean>
-
-    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
-        <property name="basePackage" value="org.apache.shardingsphere.example.core.mybatis.repository"/>
-        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
-    </bean>
-</beans>
diff --git a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-namespace-mybatis-example/src/main/resources/META-INF/application-shadow.xml b/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-namespace-mybatis-example/src/main/resources/META-INF/application-shadow.xml
deleted file mode 100644
index 1e05d8a661f..00000000000
--- a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-namespace-mybatis-example/src/main/resources/META-INF/application-shadow.xml
+++ /dev/null
@@ -1,116 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ 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.
-  -->
-
-<beans xmlns="http://www.springframework.org/schema/beans"
-       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-       xmlns:shardingsphere="http://shardingsphere.apache.org/schema/shardingsphere/datasource"
-       xmlns:context="http://www.springframework.org/schema/context"
-       xmlns:tx="http://www.springframework.org/schema/tx"
-       xmlns:shadow="http://shardingsphere.apache.org/schema/shardingsphere/shadow" xmlns:sql-parser="http://shardingsphere.apache.org/schema/shardingsphere/sql-parser"
-       xsi:schemaLocation="http://www.springframework.org/schema/beans
-                           http://www.springframework.org/schema/beans/spring-beans.xsd
-                           http://www.springframework.org/schema/tx
-                           http://www.springframework.org/schema/tx/spring-tx.xsd
-                           http://www.springframework.org/schema/context
-                           http://www.springframework.org/schema/context/spring-context.xsd
-                           http://shardingsphere.apache.org/schema/shardingsphere/datasource
-                           http://shardingsphere.apache.org/schema/shardingsphere/datasource/datasource.xsd
-                           http://shardingsphere.apache.org/schema/shardingsphere/shadow
-                           http://shardingsphere.apache.org/schema/shardingsphere/shadow/shadow.xsd http://shardingsphere.apache.org/schema/shardingsphere/sql-parser http://shardingsphere.apache.org/schema/shardingsphere/sql-parser/sql-parser.xsd">
-    <context:component-scan base-package="org.apache.shardingsphere.example.core.mybatis" />
-
-    <bean id="ds" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
-        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
-        <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/demo_ds?serverTimezone=UTC&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
-        <property name="username" value="root"/>
-        <property name="password" value=""/>
-    </bean>
-
-    <bean id="ds_shadow" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
-        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
-        <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/shadow_demo_ds?serverTimezone=UTC&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
-        <property name="username" value="root"/>
-        <property name="password" value=""/>
-    </bean>
-
-    <shadow:shadow-algorithm id="user-id-insert-match-algorithm" type="VALUE_MATCH">
-        <props>
-            <prop key="operation">insert</prop>
-            <prop key="column">user_type</prop>
-            <prop key="value">1</prop>
-        </props>
-    </shadow:shadow-algorithm>
-
-    <shadow:shadow-algorithm id="user-id-delete-match-algorithm" type="VALUE_MATCH">
-        <props>
-            <prop key="operation">delete</prop>
-            <prop key="column">user_type</prop>
-            <prop key="value">1</prop>
-        </props>
-    </shadow:shadow-algorithm>
-
-    <shadow:shadow-algorithm id="user-id-select-match-algorithm" type="VALUE_MATCH">
-        <props>
-            <prop key="operation">select</prop>
-            <prop key="column">user_type</prop>
-            <prop key="value">1</prop>
-        </props>
-    </shadow:shadow-algorithm>
-
-    <shadow:shadow-algorithm id="simple-hint-algorithm" type="SIMPLE_HINT">
-        <props>
-            <prop key="shadow">true</prop>
-            <prop key="foo">bar</prop>
-        </props>
-    </shadow:shadow-algorithm>
-
-    <shadow:rule id="shadowRule">
-        <shadow:data-source id="shadow-data-source" production-data-source-name="ds" shadow-data-source-name="ds_shadow"/>
-        <shadow:shadow-table name="t_user" data-sources="shadow-data-source">
-            <shadow:algorithm shadow-algorithm-ref="user-id-insert-match-algorithm" />
-            <shadow:algorithm shadow-algorithm-ref="user-id-delete-match-algorithm" />
-            <shadow:algorithm shadow-algorithm-ref="user-id-select-match-algorithm" />
-            <shadow:algorithm shadow-algorithm-ref="simple-hint-algorithm" />
-        </shadow:shadow-table>
-    </shadow:rule>
-
-    <sql-parser:rule id="sqlParseRule" sql-comment-parse-enable="true" parse-tree-cache-ref="parseTreeCache" sql-statement-cache-ref="sqlStatementCache" />
-    <sql-parser:cache-option id="sqlStatementCache" initial-capacity="1024" maximum-size="1024"/>
-    <sql-parser:cache-option id="parseTreeCache" initial-capacity="1024" maximum-size="1024"/>
-
-    <shardingsphere:data-source id="shadowDataSource" data-source-names="ds,ds_shadow" rule-refs="shadowRule,sqlParseRule">
-        <props>
-            <prop key="sql-show">true</prop>
-        </props>
-    </shardingsphere:data-source>
-
-    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
-        <property name="dataSource" ref="shadowDataSource" />
-    </bean>
-    <tx:annotation-driven />
-
-    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
-        <property name="dataSource" ref="shadowDataSource"/>
-        <property name="mapperLocations" value="classpath*:META-INF/mappers/*.xml"/>
-    </bean>
-
-    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
-        <property name="basePackage" value="org.apache.shardingsphere.example.core.mybatis.repository"/>
-        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
-    </bean>
-</beans>
diff --git a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-namespace-mybatis-example/src/main/resources/logback.xml b/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-namespace-mybatis-example/src/main/resources/logback.xml
deleted file mode 100644
index e80ae968d36..00000000000
--- a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-namespace-mybatis-example/src/main/resources/logback.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ 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.
-  -->
-
-<configuration>
-    <property name="log.context.name" value="shadow-spring-namespace-mybatis-example" />
-    <property name="log.charset" value="UTF-8" />
-    <property name="log.pattern" value="[%-5level] %date --%thread-- [%logger] %msg %n" />
-    <contextName>${log.context.name}</contextName>
-    
-    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
-        <encoder charset="${log.charset}">
-            <pattern>${log.pattern}</pattern>
-        </encoder>
-    </appender>
-    <root>
-        <level value="INFO" />
-        <appender-ref ref="STDOUT" />
-    </root>
-</configuration>