You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by pa...@apache.org on 2021/08/26 06:17:51 UTC
[shardingsphere] branch master updated: Fix example for
spring-namespace (#12015)
This is an automated email from the ASF dual-hosted git repository.
panjuan 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 eda2ecf Fix example for spring-namespace (#12015)
eda2ecf is described below
commit eda2ecff87f105d437230fdecbff79a73778727e
Author: Haoran Meng <me...@gmail.com>
AuthorDate: Thu Aug 26 14:16:35 2021 +0800
Fix example for spring-namespace (#12015)
---
.../zookeeper/cloud/application-encrypt.xml | 10 +++++-----
.../cloud/application-readwrite-splitting.xml | 9 +++++----
.../zookeeper/cloud/application-shadow.xml | 9 +++++----
.../application-sharding-databases-tables.xml | 11 ++++++-----
.../zookeeper/local/application-encrypt.xml | 13 +++++++-----
.../local/application-readwrite-splitting.xml | 13 +++++++-----
.../zookeeper/local/application-shadow.xml | 13 +++++++-----
.../application-sharding-databases-tables.xml | 13 +++++++-----
.../META-INF/zookeeper/registry-center.xml | 10 ++++------
.../parser/DataSourceBeanDefinitionParser.java | 9 ++++++---
.../resources/META-INF/namespace/datasource.xsd | 4 ++--
.../governance/ClusterEncryptNamespaceTest.java | 14 ++++++-------
.../registry/TestClusterPersistRepository.java | 23 +++++++++++++++-------
13 files changed, 88 insertions(+), 63 deletions(-)
diff --git a/examples/shardingsphere-jdbc-example/governance-example/governance-spring-namespace-mybatis-example/src/main/resources/META-INF/zookeeper/cloud/application-encrypt.xml b/examples/shardingsphere-jdbc-example/governance-example/governance-spring-namespace-mybatis-example/src/main/resources/META-INF/zookeeper/cloud/application-encrypt.xml
index f553b2c..9d439f0 100644
--- a/examples/shardingsphere-jdbc-example/governance-example/governance-spring-namespace-mybatis-example/src/main/resources/META-INF/zookeeper/cloud/application-encrypt.xml
+++ b/examples/shardingsphere-jdbc-example/governance-example/governance-spring-namespace-mybatis-example/src/main/resources/META-INF/zookeeper/cloud/application-encrypt.xml
@@ -20,20 +20,20 @@
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:governance="cluster-mode-repository.xsd"
+ xmlns:shardingsphere="http://shardingsphere.apache.org/schema/shardingsphere/datasource"
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
- cluster-mode-repository.xsd
- cluster-mode-repository.xsd">
+ 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">
<import resource="classpath*:META-INF/zookeeper/registry-center.xml" />
<context:component-scan base-package="org.apache.shardingsphere.example.core.mybatis" />
- <governance:data-source id="encryptDataSource" reg-center-ref="regCenter" />
+ <shardingsphere:data-source id="encryptDataSource">
+ <shardingsphere:mode type="Cluster" repository-ref="clusterRepository" />
+ </shardingsphere:data-source>
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="encryptDataSource" />
diff --git a/examples/shardingsphere-jdbc-example/governance-example/governance-spring-namespace-mybatis-example/src/main/resources/META-INF/zookeeper/cloud/application-readwrite-splitting.xml b/examples/shardingsphere-jdbc-example/governance-example/governance-spring-namespace-mybatis-example/src/main/resources/META-INF/zookeeper/cloud/application-readwrite-splitting.xml
index 7ed45d8..817ae59 100644
--- a/examples/shardingsphere-jdbc-example/governance-example/governance-spring-namespace-mybatis-example/src/main/resources/META-INF/zookeeper/cloud/application-readwrite-splitting.xml
+++ b/examples/shardingsphere-jdbc-example/governance-example/governance-spring-namespace-mybatis-example/src/main/resources/META-INF/zookeeper/cloud/application-readwrite-splitting.xml
@@ -20,19 +20,20 @@
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:governance="cluster-mode-repository.xsd"
+ xmlns:shardingsphere="http://shardingsphere.apache.org/schema/shardingsphere/datasource"
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
- cluster-mode-repository.xsd
- cluster-mode-repository.xsd">
+ http://shardingsphere.apache.org/schema/shardingsphere/datasource http://shardingsphere.apache.org/schema/shardingsphere/datasource/datasource.xsd">
<context:component-scan base-package="org.apache.shardingsphere.example.core.mybatis" />
<import resource="classpath*:META-INF/zookeeper/registry-center.xml" />
- <governance:data-source id="readWriteSplittingDataSource" reg-center-ref="regCenter" />
+ <shardingsphere:data-source id="readWriteSplittingDataSource">
+ <shardingsphere:mode type="Cluster" repository-ref="clusterRepository" />
+ </shardingsphere:data-source>
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="readWriteSplittingDataSource" />
diff --git a/examples/shardingsphere-jdbc-example/governance-example/governance-spring-namespace-mybatis-example/src/main/resources/META-INF/zookeeper/cloud/application-shadow.xml b/examples/shardingsphere-jdbc-example/governance-example/governance-spring-namespace-mybatis-example/src/main/resources/META-INF/zookeeper/cloud/application-shadow.xml
index cd5b30e..f31ab7c 100644
--- a/examples/shardingsphere-jdbc-example/governance-example/governance-spring-namespace-mybatis-example/src/main/resources/META-INF/zookeeper/cloud/application-shadow.xml
+++ b/examples/shardingsphere-jdbc-example/governance-example/governance-spring-namespace-mybatis-example/src/main/resources/META-INF/zookeeper/cloud/application-shadow.xml
@@ -20,20 +20,21 @@
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:governance="cluster-mode-repository.xsd"
+ xmlns:shardingsphere="http://shardingsphere.apache.org/schema/shardingsphere/datasource"
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
- cluster-mode-repository.xsd
- cluster-mode-repository.xsd">
+ http://shardingsphere.apache.org/schema/shardingsphere/datasource http://shardingsphere.apache.org/schema/shardingsphere/datasource/datasource.xsd">
<import resource="classpath*:META-INF/zookeeper/registry-center.xml" />
<context:component-scan base-package="org.apache.shardingsphere.example.core.mybatis" />
- <governance:data-source id="shadowDataSource" reg-center-ref="regCenter" />
+ <shardingsphere:data-source id="shadowDataSource">
+ <shardingsphere:mode type="Cluster" repository-ref="clusterRepository" />
+ </shardingsphere:data-source>
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="shadowDataSource" />
diff --git a/examples/shardingsphere-jdbc-example/governance-example/governance-spring-namespace-mybatis-example/src/main/resources/META-INF/zookeeper/cloud/application-sharding-databases-tables.xml b/examples/shardingsphere-jdbc-example/governance-example/governance-spring-namespace-mybatis-example/src/main/resources/META-INF/zookeeper/cloud/application-sharding-databases-tables.xml
index 558e654..725229c 100644
--- a/examples/shardingsphere-jdbc-example/governance-example/governance-spring-namespace-mybatis-example/src/main/resources/META-INF/zookeeper/cloud/application-sharding-databases-tables.xml
+++ b/examples/shardingsphere-jdbc-example/governance-example/governance-spring-namespace-mybatis-example/src/main/resources/META-INF/zookeeper/cloud/application-sharding-databases-tables.xml
@@ -20,19 +20,20 @@
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:governance="cluster-mode-repository.xsd"
+ xmlns:shardingsphere="http://shardingsphere.apache.org/schema/shardingsphere/datasource"
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
- cluster-mode-repository.xsd
- cluster-mode-repository.xsd">
+ http://shardingsphere.apache.org/schema/shardingsphere/datasource http://shardingsphere.apache.org/schema/shardingsphere/datasource/datasource.xsd">
<import resource="classpath*:META-INF/zookeeper/registry-center.xml" />
<context:component-scan base-package="org.apache.shardingsphere.example.core.mybatis" />
-
- <governance:data-source id="shardingDatabasesTablesDataSource" reg-center-ref="regCenter" />
+
+ <shardingsphere:data-source id="shardingDatabasesTablesDataSource">
+ <shardingsphere:mode type="Cluster" repository-ref="clusterRepository" />
+ </shardingsphere:data-source>
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="shardingDatabasesTablesDataSource" />
diff --git a/examples/shardingsphere-jdbc-example/governance-example/governance-spring-namespace-mybatis-example/src/main/resources/META-INF/zookeeper/local/application-encrypt.xml b/examples/shardingsphere-jdbc-example/governance-example/governance-spring-namespace-mybatis-example/src/main/resources/META-INF/zookeeper/local/application-encrypt.xml
index 81336bc..2972775 100644
--- a/examples/shardingsphere-jdbc-example/governance-example/governance-spring-namespace-mybatis-example/src/main/resources/META-INF/zookeeper/local/application-encrypt.xml
+++ b/examples/shardingsphere-jdbc-example/governance-example/governance-spring-namespace-mybatis-example/src/main/resources/META-INF/zookeeper/local/application-encrypt.xml
@@ -21,7 +21,7 @@
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:encrypt="http://shardingsphere.apache.org/schema/shardingsphere/encrypt"
- xmlns:governance="cluster-mode-repository.xsd"
+ xmlns:shardingsphere="http://shardingsphere.apache.org/schema/shardingsphere/datasource"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
@@ -30,9 +30,7 @@
http://www.springframework.org/schema/tx/spring-tx.xsd
http://shardingsphere.apache.org/schema/shardingsphere/encrypt
http://shardingsphere.apache.org/schema/shardingsphere/encrypt/encrypt.xsd
- cluster-mode-repository.xsd
- cluster-mode-repository.xsd
- ">
+ http://shardingsphere.apache.org/schema/shardingsphere/datasource http://shardingsphere.apache.org/schema/shardingsphere/datasource/datasource.xsd">
<import resource="classpath*:META-INF/zookeeper/registry-center.xml" />
<context:component-scan base-package="org.apache.shardingsphere.example.core.mybatis" />
@@ -57,7 +55,12 @@
</encrypt:table>
</encrypt:rule>
- <governance:data-source id="encryptDataSource" data-source-names="demo_ds" reg-center-ref="regCenter" rule-refs="encryptRule" />
+ <shardingsphere:data-source id="encryptDataSource" data-source-names="demo_ds" rule-refs="encryptRule">
+ <shardingsphere:mode type="Cluster" repository-ref="clusterRepository" />
+ <props>
+ <prop key="sql-show">true</prop>
+ </props>
+ </shardingsphere:data-source>
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="encryptDataSource" />
diff --git a/examples/shardingsphere-jdbc-example/governance-example/governance-spring-namespace-mybatis-example/src/main/resources/META-INF/zookeeper/local/application-readwrite-splitting.xml b/examples/shardingsphere-jdbc-example/governance-example/governance-spring-namespace-mybatis-example/src/main/resources/META-INF/zookeeper/local/application-readwrite-splitting.xml
index ae53e31..9ad109b 100644
--- a/examples/shardingsphere-jdbc-example/governance-example/governance-spring-namespace-mybatis-example/src/main/resources/META-INF/zookeeper/local/application-readwrite-splitting.xml
+++ b/examples/shardingsphere-jdbc-example/governance-example/governance-spring-namespace-mybatis-example/src/main/resources/META-INF/zookeeper/local/application-readwrite-splitting.xml
@@ -21,7 +21,7 @@
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:readwrite-splitting="http://shardingsphere.apache.org/schema/shardingsphere/readwrite-splitting"
- xmlns:governance="cluster-mode-repository.xsd"
+ xmlns:shardingsphere="http://shardingsphere.apache.org/schema/shardingsphere/datasource"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
@@ -30,9 +30,7 @@
http://www.springframework.org/schema/tx/spring-tx.xsd
http://shardingsphere.apache.org/schema/shardingsphere/readwrite-splitting
http://shardingsphere.apache.org/schema/shardingsphere/readwrite-splitting/readwrite-splitting.xsd
- cluster-mode-repository.xsd
- cluster-mode-repository.xsd
- ">
+ http://shardingsphere.apache.org/schema/shardingsphere/datasource http://shardingsphere.apache.org/schema/shardingsphere/datasource/datasource.xsd">
<import resource="classpath*:META-INF/zookeeper/registry-center.xml"/>
<context:component-scan base-package="org.apache.shardingsphere.example.core.mybatis"/>
@@ -63,7 +61,12 @@
<readwrite-splitting:data-source-rule id="demo_ds" write-data-source-name="demo_write_ds" read-data-source-names="demo_read_ds_0, demo_read_ds_1" load-balance-algorithm-ref="randomStrategy" />
</readwrite-splitting:rule>
- <governance:data-source id="readWriteSplittingDataSource" data-source-names="demo_write_ds, demo_read_ds_0, demo_read_ds_1" rule-refs="readWriteSplittingRule" reg-center-ref="regCenter" />
+ <shardingsphere:data-source id="readWriteSplittingDataSource" data-source-names="demo_write_ds, demo_read_ds_0, demo_read_ds_1" rule-refs="readWriteSplittingRule">
+ <shardingsphere:mode type="Cluster" repository-ref="clusterRepository" />
+ <props>
+ <prop key="sql-show">true</prop>
+ </props>
+ </shardingsphere:data-source>
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="readWriteSplittingDataSource" />
diff --git a/examples/shardingsphere-jdbc-example/governance-example/governance-spring-namespace-mybatis-example/src/main/resources/META-INF/zookeeper/local/application-shadow.xml b/examples/shardingsphere-jdbc-example/governance-example/governance-spring-namespace-mybatis-example/src/main/resources/META-INF/zookeeper/local/application-shadow.xml
index e92821f..4db47d1 100644
--- a/examples/shardingsphere-jdbc-example/governance-example/governance-spring-namespace-mybatis-example/src/main/resources/META-INF/zookeeper/local/application-shadow.xml
+++ b/examples/shardingsphere-jdbc-example/governance-example/governance-spring-namespace-mybatis-example/src/main/resources/META-INF/zookeeper/local/application-shadow.xml
@@ -21,7 +21,7 @@
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:governance="cluster-mode-repository.xsd"
+ xmlns:shardingsphere="http://shardingsphere.apache.org/schema/shardingsphere/datasource"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
@@ -30,9 +30,7 @@
http://www.springframework.org/schema/tx/spring-tx.xsd
http://shardingsphere.apache.org/schema/shardingsphere/shadow
http://shardingsphere.apache.org/schema/shardingsphere/shadow/shadow.xsd
- cluster-mode-repository.xsd
- cluster-mode-repository.xsd
- ">
+ http://shardingsphere.apache.org/schema/shardingsphere/datasource http://shardingsphere.apache.org/schema/shardingsphere/datasource/datasource.xsd">
<import resource="classpath*:META-INF/zookeeper/registry-center.xml" />
<context:component-scan base-package="org.apache.shardingsphere.example.core.mybatis" />
@@ -52,7 +50,12 @@
<shadow:rule id="shadowRule" column="shadow" sourceDataSourceNames="demo_ds" shadowDataSourceNames="shadow_demo_ds"/>
- <governance:data-source id="shadowDataSource" data-source-names="demo_ds,shadow_demo_ds" reg-center-ref="regCenter" rule-refs="shadowRule"/>
+ <shardingsphere:data-source id="shadowDataSource" data-source-names="demo_ds,shadow_demo_ds" rule-refs="shadowRule">
+ <shardingsphere:mode type="Cluster" repository-ref="clusterRepository" />
+ <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" />
diff --git a/examples/shardingsphere-jdbc-example/governance-example/governance-spring-namespace-mybatis-example/src/main/resources/META-INF/zookeeper/local/application-sharding-databases-tables.xml b/examples/shardingsphere-jdbc-example/governance-example/governance-spring-namespace-mybatis-example/src/main/resources/META-INF/zookeeper/local/application-sharding-databases-tables.xml
index e127410..223d2d5 100644
--- a/examples/shardingsphere-jdbc-example/governance-example/governance-spring-namespace-mybatis-example/src/main/resources/META-INF/zookeeper/local/application-sharding-databases-tables.xml
+++ b/examples/shardingsphere-jdbc-example/governance-example/governance-spring-namespace-mybatis-example/src/main/resources/META-INF/zookeeper/local/application-sharding-databases-tables.xml
@@ -21,7 +21,7 @@
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:sharding="http://shardingsphere.apache.org/schema/shardingsphere/sharding"
- xmlns:governance="cluster-mode-repository.xsd"
+ xmlns:shardingsphere="http://shardingsphere.apache.org/schema/shardingsphere/datasource"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/tx
@@ -30,9 +30,7 @@
http://www.springframework.org/schema/context/spring-context.xsd
http://shardingsphere.apache.org/schema/shardingsphere/sharding
http://shardingsphere.apache.org/schema/shardingsphere/sharding/sharding.xsd
- cluster-mode-repository.xsd
- cluster-mode-repository.xsd
- ">
+ http://shardingsphere.apache.org/schema/shardingsphere/datasource http://shardingsphere.apache.org/schema/shardingsphere/datasource/datasource.xsd">
<import resource="classpath*:META-INF/zookeeper/registry-center.xml" />
<context:component-scan base-package="org.apache.shardingsphere.example.core.mybatis" />
<bean id="demo_ds_0" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
@@ -95,7 +93,12 @@
</sharding:broadcast-table-rules>
</sharding:rule>
- <governance:data-source id="shardingDatabasesTablesDataSource" schema-name="sharding-databases-tables" data-source-names="demo_ds_0, demo_ds_1" reg-center-ref="regCenter" rule-refs="shardingRule" />
+ <shardingsphere:data-source id="shardingDatabasesTablesDataSource" schema-name="sharding-databases-tables" data-source-names="demo_ds_0, demo_ds_1" rule-refs="shardingRule">
+ <shardingsphere:mode type="Cluster" repository-ref="clusterRepository" />
+ <props>
+ <prop key="sql-show">true</prop>
+ </props>
+ </shardingsphere:data-source>
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="shardingDatabasesTablesDataSource" />
diff --git a/examples/shardingsphere-jdbc-example/governance-example/governance-spring-namespace-mybatis-example/src/main/resources/META-INF/zookeeper/registry-center.xml b/examples/shardingsphere-jdbc-example/governance-example/governance-spring-namespace-mybatis-example/src/main/resources/META-INF/zookeeper/registry-center.xml
index 7495025..f60147b 100644
--- a/examples/shardingsphere-jdbc-example/governance-example/governance-spring-namespace-mybatis-example/src/main/resources/META-INF/zookeeper/registry-center.xml
+++ b/examples/shardingsphere-jdbc-example/governance-example/governance-spring-namespace-mybatis-example/src/main/resources/META-INF/zookeeper/registry-center.xml
@@ -17,17 +17,15 @@
-->
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:governance="cluster-mode-repository.xsd"
xmlns="http://www.springframework.org/schema/beans"
+ xmlns:cluster="http://shardingsphere.apache.org/schema/shardingsphere/mode-repository/cluster"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
- cluster-mode-repository.xsd
- cluster-mode-repository.xsd
- ">
- <governance:reg-center id="regCenter" type="ZooKeeper" namespace="regCenter" server-lists="localhost:2181">
+ http://shardingsphere.apache.org/schema/shardingsphere/mode-repository/cluster http://shardingsphere.apache.org/schema/shardingsphere/mode-repository/cluster/repository.xsd">
+ <cluster:repository id="clusterRepository" type="ZooKeeper" namespace="regCenter" server-lists="localhost:2181">
<props>
<prop key="max-retries">3</prop>
<prop key="operation-timeout-milliseconds">3000</prop>
</props>
- </governance:reg-center>
+ </cluster:repository>
</beans>
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-core-spring/shardingsphere-jdbc-core-spring-namespace/src/main/java/org/apache/shardingsphere/spring/namespace/parser/DataSourceBeanDefinitionParser.java b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-core-spring/shardingsphere-jdbc-core-spring-namespace/src/main/java/org/apache/shardingsphere/spring/namespace/parser/DataSourceBeanDefinitionParser.java
index 035f1ba..25e4c21 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-core-spring/shardingsphere-jdbc-core-spring-namespace/src/main/java/org/apache/shardingsphere/spring/namespace/parser/DataSourceBeanDefinitionParser.java
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-core-spring/shardingsphere-jdbc-core-spring-namespace/src/main/java/org/apache/shardingsphere/spring/namespace/parser/DataSourceBeanDefinitionParser.java
@@ -30,6 +30,7 @@ import org.springframework.beans.factory.support.ManagedList;
import org.springframework.beans.factory.support.ManagedMap;
import org.springframework.beans.factory.xml.AbstractBeanDefinitionParser;
import org.springframework.beans.factory.xml.ParserContext;
+import org.springframework.util.StringUtils;
import org.springframework.util.xml.DomUtils;
import org.w3c.dom.Element;
@@ -48,9 +49,11 @@ public final class DataSourceBeanDefinitionParser extends AbstractBeanDefinition
BeanDefinitionBuilder factory = BeanDefinitionBuilder.rootBeanDefinition(ShardingSphereDataSource.class);
factory.addConstructorArgValue(parseSchemaName(element));
factory.addConstructorArgValue(parseModeConfiguration(element));
- factory.addConstructorArgValue(parseDataSources(element));
- factory.addConstructorArgValue(parseRuleConfigurations(element));
- factory.addConstructorArgValue(parseProperties(element, parserContext));
+ if (!StringUtils.isEmpty(element.getAttribute(DataSourceBeanDefinitionTag.DATA_SOURCE_NAMES_ATTRIBUTE))) {
+ factory.addConstructorArgValue(parseDataSources(element));
+ factory.addConstructorArgValue(parseRuleConfigurations(element));
+ factory.addConstructorArgValue(parseProperties(element, parserContext));
+ }
factory.setDestroyMethodName("close");
return factory.getBeanDefinition();
}
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-core-spring/shardingsphere-jdbc-core-spring-namespace/src/main/resources/META-INF/namespace/datasource.xsd b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-core-spring/shardingsphere-jdbc-core-spring-namespace/src/main/resources/META-INF/namespace/datasource.xsd
index 58f0f87..8082280 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-core-spring/shardingsphere-jdbc-core-spring-namespace/src/main/resources/META-INF/namespace/datasource.xsd
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-core-spring/shardingsphere-jdbc-core-spring-namespace/src/main/resources/META-INF/namespace/datasource.xsd
@@ -31,8 +31,8 @@
</xsd:all>
<xsd:attribute name="id" type="xsd:string" use="required" />
<xsd:attribute name="schema-name" type="xsd:string" default="logic_db" />
- <xsd:attribute name="data-source-names" type="xsd:string" use="required" />
- <xsd:attribute name="rule-refs" type="xsd:string" use="required" />
+ <xsd:attribute name="data-source-names" type="xsd:string"/>
+ <xsd:attribute name="rule-refs" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-namespace/src/test/java/org/apache/shardingsphere/spring/namespace/governance/ClusterEncryptNamespaceTest.java b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-namespace/src/test/java/org/apache/shardingsphere/spring/namespace/governance/ClusterEncryptNamespaceTest.java
index dd0cfda..88ee73d 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-namespace/src/test/java/org/apache/shardingsphere/spring/namespace/governance/ClusterEncryptNamespaceTest.java
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-namespace/src/test/java/org/apache/shardingsphere/spring/namespace/governance/ClusterEncryptNamespaceTest.java
@@ -18,14 +18,14 @@
package org.apache.shardingsphere.spring.namespace.governance;
import org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource;
-import org.apache.shardingsphere.encrypt.algorithm.config.AlgorithmProvidedEncryptRuleConfiguration;
+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.encrypt.spi.EncryptAlgorithm;
+import org.apache.shardingsphere.infra.config.algorithm.ShardingSphereAlgorithmConfiguration;
import org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
import org.apache.shardingsphere.infra.config.properties.ConfigurationPropertyKey;
-import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.infra.database.DefaultSchema;
+import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.spring.namespace.governance.util.EmbedTestingServer;
import org.apache.shardingsphere.spring.namespace.governance.util.FieldValueUtil;
import org.junit.BeforeClass;
@@ -55,13 +55,13 @@ public final class ClusterEncryptNamespaceTest extends AbstractJUnit4SpringConte
assertEncryptRule(getEncryptRuleConfiguration());
}
- private AlgorithmProvidedEncryptRuleConfiguration getEncryptRuleConfiguration() {
+ private EncryptRuleConfiguration getEncryptRuleConfiguration() {
ShardingSphereDataSource governanceDataSource = (ShardingSphereDataSource) applicationContext.getBean("encryptDataSourceGovernance");
ContextManager contextManager = (ContextManager) FieldValueUtil.getFieldValue(governanceDataSource, "contextManager");
- return (AlgorithmProvidedEncryptRuleConfiguration) contextManager.getMetaDataContexts().getMetaData(DefaultSchema.LOGIC_NAME).getRuleMetaData().getConfigurations().iterator().next();
+ return (EncryptRuleConfiguration) contextManager.getMetaDataContexts().getMetaData(DefaultSchema.LOGIC_NAME).getRuleMetaData().getConfigurations().iterator().next();
}
- private void assertEncryptRule(final AlgorithmProvidedEncryptRuleConfiguration config) {
+ private void assertEncryptRule(final EncryptRuleConfiguration config) {
assertThat(config.getEncryptors().size(), is(2));
assertThat(config.getTables().size(), is(1));
EncryptTableRuleConfiguration encryptTableRuleConfig = config.getTables().iterator().next();
@@ -70,7 +70,7 @@ public final class ClusterEncryptNamespaceTest extends AbstractJUnit4SpringConte
EncryptColumnRuleConfiguration orderIdColumnRuleConfig = encryptColumnRuleConfigs.next();
assertThat(userIdColumnRuleConfig.getCipherColumn(), is("user_encrypt"));
assertThat(orderIdColumnRuleConfig.getPlainColumn(), is("order_decrypt"));
- Map<String, EncryptAlgorithm> encryptAlgorithms = config.getEncryptors();
+ Map<String, ShardingSphereAlgorithmConfiguration> encryptAlgorithms = config.getEncryptors();
assertThat(encryptAlgorithms.size(), is(2));
assertThat(encryptAlgorithms.get("aes_encryptor").getType(), is("AES"));
assertThat(encryptAlgorithms.get("aes_encryptor").getProps().getProperty("aes-key-value"), is("123456"));
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-namespace/src/test/java/org/apache/shardingsphere/spring/namespace/governance/registry/TestClusterPersistRepository.java b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-namespace/src/test/java/org/apache/shardingsphere/spring/namespace/governance/registry/TestClusterPersistReposi [...]
index 21ea443..b8f8564 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-namespace/src/test/java/org/apache/shardingsphere/spring/namespace/governance/registry/TestClusterPersistRepository.java
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-namespace/src/test/java/org/apache/shardingsphere/spring/namespace/governance/registry/TestClusterPersistRepository.java
@@ -17,57 +17,66 @@
package org.apache.shardingsphere.spring.namespace.governance.registry;
+import org.apache.shardingsphere.infra.database.DefaultSchema;
import org.apache.shardingsphere.mode.repository.cluster.ClusterPersistRepository;
import org.apache.shardingsphere.mode.repository.cluster.ClusterPersistRepositoryConfiguration;
import org.apache.shardingsphere.mode.repository.cluster.listener.DataChangedEventListener;
import java.util.Collections;
+import java.util.LinkedHashMap;
import java.util.List;
+import java.util.Map;
import java.util.concurrent.TimeUnit;
public final class TestClusterPersistRepository implements ClusterPersistRepository {
+ private final Map<String, String> registryData = new LinkedHashMap<>();
+
@Override
public void init(final ClusterPersistRepositoryConfiguration config) {
+ registryData.put("/metadata", DefaultSchema.LOGIC_NAME);
}
@Override
public String get(final String key) {
- return "";
+ return registryData.get(key);
}
@Override
public List<String> getChildrenKeys(final String key) {
- return Collections.emptyList();
+ return registryData.containsKey(key) ? Collections.singletonList(registryData.get(key)) : Collections.emptyList();
}
@Override
public void persist(final String key, final String value) {
+ registryData.put(key, value);
}
@Override
public void persistEphemeral(final String key, final String value) {
+ registryData.put(key, value);
}
@Override
- public boolean tryLock(final String key, final long time, final TimeUnit unit) {
- return false;
+ public void delete(final String key) {
}
@Override
- public void releaseLock(final String key) {
+ public void watch(final String key, final DataChangedEventListener listener) {
}
@Override
- public void delete(final String key) {
+ public boolean tryLock(final String key, final long time, final TimeUnit unit) {
+ return false;
}
@Override
- public void watch(final String key, final DataChangedEventListener listener) {
+ public void releaseLock(final String key) {
}
@Override
public void close() {
+ registryData.clear();
}
@Override