add orchestration proxy raw jdbc test case
diff --git a/sharding-proxy-example/proxy-orchestration-example/pom.xml b/sharding-proxy-example/proxy-orchestration-example/pom.xml
index c523e86..3c5d193 100644
--- a/sharding-proxy-example/proxy-orchestration-example/pom.xml
+++ b/sharding-proxy-example/proxy-orchestration-example/pom.xml
@@ -15,6 +15,8 @@
<packaging>pom</packaging>
<modules>
+ <module>sharding-proxy-orchestration-raw-jdbc-mysql-example</module>
+ <module>sharding-proxy-orchestration-raw-jdbc-postgresql-example</module>
<module>sharding-proxy-orchestration-spring-namespace-mybatis-mysql-example</module>
<module>sharding-proxy-orchestration-spring-namespace-mybatis-postgresql-example</module>
<module>sharding-proxy-orchestration-spring-boot-mybatis-mysql-example</module>
diff --git a/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-mysql-example/pom.xml b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-mysql-example/pom.xml
new file mode 100644
index 0000000..d861918
--- /dev/null
+++ b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-mysql-example/pom.xml
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<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>proxy-sharding-example</artifactId>
+ <groupId>org.apache.shardingsphere.example</groupId>
+ <version>4.0.0-RC4-SNAPSHOT</version>
+ </parent>
+ <groupId>org.apache.shardingsphere.example</groupId>
+ <artifactId>sharding-proxy-orchestration-raw-jdbc-mysql-example</artifactId>
+
+ <name>AcceptanceTest::proxy::orchestration::mysql::sharding::raw-jdbc</name>
+ <!-- FIXME change it to the project's website -->
+ <url>http://www.example.com</url>
+
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ <maven.compiler.source>1.7</maven.compiler.source>
+ <maven.compiler.target>1.7</maven.compiler.target>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.11</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere.example</groupId>
+ <artifactId>config-utility</artifactId>
+ <version>${project.version}</version>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere.example</groupId>
+ <artifactId>example-api</artifactId>
+ <version>${project.version}</version>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere.example</groupId>
+ <artifactId>example-raw-jdbc</artifactId>
+ <version>${project.version}</version>
+ <scope>compile</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
+ <plugins>
+ <!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle -->
+ <plugin>
+ <artifactId>maven-clean-plugin</artifactId>
+ <version>3.1.0</version>
+ </plugin>
+ <!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->
+ <plugin>
+ <artifactId>maven-resources-plugin</artifactId>
+ <version>3.0.2</version>
+ </plugin>
+ <plugin>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>3.8.0</version>
+ </plugin>
+ <plugin>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>2.22.1</version>
+ </plugin>
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <version>3.0.2</version>
+ </plugin>
+ <plugin>
+ <artifactId>maven-install-plugin</artifactId>
+ <version>2.5.2</version>
+ </plugin>
+ <plugin>
+ <artifactId>maven-deploy-plugin</artifactId>
+ <version>2.8.2</version>
+ </plugin>
+ <!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle -->
+ <plugin>
+ <artifactId>maven-site-plugin</artifactId>
+ <version>3.7.1</version>
+ </plugin>
+ <plugin>
+ <artifactId>maven-project-info-reports-plugin</artifactId>
+ <version>3.0.0</version>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ </build>
+</project>
diff --git a/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-mysql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaEncryptTest.java b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-mysql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaEncryptTest.java
new file mode 100644
index 0000000..3b39ab5
--- /dev/null
+++ b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-mysql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaEncryptTest.java
@@ -0,0 +1,24 @@
+package org.apache.shardingsphere.example;
+
+import org.apache.shardingsphere.example.core.api.ExampleExecuteTemplate;
+import org.apache.shardingsphere.example.core.api.service.ExampleService;
+import org.apache.shardingsphere.example.core.jdbc.common.RawJdbcAssertUtils;
+import org.apache.shardingsphere.example.core.jdbc.repository.UserRepositoryImpl;
+import org.apache.shardingsphere.example.core.jdbc.service.UserServiceImpl;
+import org.apache.shardingsphere.example.factory.DataSourceFactory;
+import org.apache.shardingsphere.example.type.ShardingType;
+import org.junit.Test;
+
+import javax.sql.DataSource;
+import java.sql.SQLException;
+
+public class RawJDBCJavaEncryptTest {
+
+ @Test
+ public void assertCommonService() throws SQLException {
+ DataSource dataSource = DataSourceFactory.newInstance(ShardingType.ENCRYPT);
+ ExampleService exampleService = new UserServiceImpl(new UserRepositoryImpl(dataSource));
+ ExampleExecuteTemplate.run(exampleService);
+ RawJdbcAssertUtils.assertEncrypt(exampleService);
+ }
+}
diff --git a/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-mysql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaMasterSlaveTest.java b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-mysql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaMasterSlaveTest.java
new file mode 100644
index 0000000..fb76397
--- /dev/null
+++ b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-mysql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaMasterSlaveTest.java
@@ -0,0 +1,26 @@
+package org.apache.shardingsphere.example;
+
+import org.apache.shardingsphere.example.core.api.ExampleExecuteTemplate;
+import org.apache.shardingsphere.example.core.api.service.ExampleService;
+import org.apache.shardingsphere.example.core.jdbc.common.RawJdbcAssertUtils;
+import org.apache.shardingsphere.example.core.jdbc.repository.mysql.AddressRepositoryImpl;
+import org.apache.shardingsphere.example.core.jdbc.repository.mysql.OrderItemRepositoryImpl;
+import org.apache.shardingsphere.example.core.jdbc.repository.mysql.OrderRepositoryImpl;
+import org.apache.shardingsphere.example.core.jdbc.service.OrderServiceImpl;
+import org.apache.shardingsphere.example.factory.DataSourceFactory;
+import org.apache.shardingsphere.example.type.ShardingType;
+import org.junit.Test;
+
+import javax.sql.DataSource;
+import java.sql.SQLException;
+
+public class RawJDBCJavaMasterSlaveTest {
+
+ @Test
+ public void assertCommonService() throws SQLException {
+ DataSource dataSource = DataSourceFactory.newInstance(ShardingType.MASTER_SLAVE);
+ ExampleService exampleService = new OrderServiceImpl(new OrderRepositoryImpl(dataSource), new OrderItemRepositoryImpl(dataSource), new AddressRepositoryImpl(dataSource));
+ ExampleExecuteTemplate.run(exampleService);
+ RawJdbcAssertUtils.assertMasterSlaves(exampleService);
+ }
+}
diff --git a/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-mysql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaShardingEncryptTest.java b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-mysql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaShardingEncryptTest.java
new file mode 100644
index 0000000..b908fd3
--- /dev/null
+++ b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-mysql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaShardingEncryptTest.java
@@ -0,0 +1,23 @@
+package org.apache.shardingsphere.example;
+
+import org.apache.shardingsphere.example.core.api.ExampleExecuteTemplate;
+import org.apache.shardingsphere.example.core.api.service.ExampleService;
+import org.apache.shardingsphere.example.core.jdbc.common.RawJdbcAssertUtils;
+import org.apache.shardingsphere.example.core.jdbc.repository.mysql.UserRepositoryImpl;
+import org.apache.shardingsphere.example.core.jdbc.service.UserServiceImpl;
+import org.apache.shardingsphere.example.factory.DataSourceFactory;
+import org.apache.shardingsphere.example.type.ShardingType;
+import org.junit.Test;
+
+import javax.sql.DataSource;
+import java.sql.SQLException;
+
+public class RawJDBCJavaShardingEncryptTest {
+ @Test
+ public void assertCommonService() throws SQLException {
+ DataSource dataSource = DataSourceFactory.newInstance(ShardingType.SHARDING_ENCRYPT);
+ ExampleService exampleService = new UserServiceImpl(new UserRepositoryImpl(dataSource));
+ ExampleExecuteTemplate.run(exampleService);
+ RawJdbcAssertUtils.assertShardingEncrypt(exampleService);
+ }
+}
diff --git a/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-mysql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaShardingMasterSlave.java b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-mysql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaShardingMasterSlave.java
new file mode 100644
index 0000000..c65cf9c
--- /dev/null
+++ b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-mysql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaShardingMasterSlave.java
@@ -0,0 +1,25 @@
+package org.apache.shardingsphere.example;
+
+import org.apache.shardingsphere.example.core.api.ExampleExecuteTemplate;
+import org.apache.shardingsphere.example.core.api.service.ExampleService;
+import org.apache.shardingsphere.example.core.jdbc.common.RawJdbcAssertUtils;
+import org.apache.shardingsphere.example.core.jdbc.repository.mysql.AddressRepositoryImpl;
+import org.apache.shardingsphere.example.core.jdbc.repository.mysql.OrderItemRepositoryImpl;
+import org.apache.shardingsphere.example.core.jdbc.repository.mysql.OrderRepositoryImpl;
+import org.apache.shardingsphere.example.core.jdbc.service.OrderServiceImpl;
+import org.apache.shardingsphere.example.factory.DataSourceFactory;
+import org.apache.shardingsphere.example.type.ShardingType;
+import org.junit.Test;
+
+import javax.sql.DataSource;
+import java.sql.SQLException;
+
+public class RawJDBCJavaShardingMasterSlave {
+ @Test
+ public void assertCommonService() throws SQLException {
+ DataSource dataSource = DataSourceFactory.newInstance(ShardingType.SHARDING_MASTER_SLAVE);
+ ExampleService exampleService = new OrderServiceImpl(new OrderRepositoryImpl(dataSource), new OrderItemRepositoryImpl(dataSource), new AddressRepositoryImpl(dataSource));
+ ExampleExecuteTemplate.run(exampleService);
+ RawJdbcAssertUtils.assertShardingMasterSlaves(exampleService);
+ }
+}
diff --git a/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-mysql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaShardingMasterSlaveEncrypt.java b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-mysql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaShardingMasterSlaveEncrypt.java
new file mode 100644
index 0000000..ac644f3
--- /dev/null
+++ b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-mysql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaShardingMasterSlaveEncrypt.java
@@ -0,0 +1,23 @@
+package org.apache.shardingsphere.example;
+
+import org.apache.shardingsphere.example.core.api.ExampleExecuteTemplate;
+import org.apache.shardingsphere.example.core.api.service.ExampleService;
+import org.apache.shardingsphere.example.core.jdbc.common.RawJdbcAssertUtils;
+import org.apache.shardingsphere.example.core.jdbc.repository.mysql.UserRepositoryImpl;
+import org.apache.shardingsphere.example.core.jdbc.service.UserServiceImpl;
+import org.apache.shardingsphere.example.factory.DataSourceFactory;
+import org.apache.shardingsphere.example.type.ShardingType;
+import org.junit.Test;
+
+import javax.sql.DataSource;
+import java.sql.SQLException;
+
+public class RawJDBCJavaShardingMasterSlaveEncrypt {
+ @Test
+ public void assertCommonService() throws SQLException {
+ DataSource dataSource = DataSourceFactory.newInstance(ShardingType.SHARDING_MASTER_SLAVE_ENCRYPT);
+ ExampleService exampleService = new UserServiceImpl(new UserRepositoryImpl(dataSource));
+ ExampleExecuteTemplate.run(exampleService);
+ RawJdbcAssertUtils.assertShardingMasterSlaveEncrypt(exampleService);
+ }
+}
diff --git a/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-mysql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaShardingTest.java b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-mysql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaShardingTest.java
new file mode 100644
index 0000000..0c424cc
--- /dev/null
+++ b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-mysql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaShardingTest.java
@@ -0,0 +1,25 @@
+package org.apache.shardingsphere.example;
+
+import org.apache.shardingsphere.example.core.api.ExampleExecuteTemplate;
+import org.apache.shardingsphere.example.core.api.service.ExampleService;
+import org.apache.shardingsphere.example.core.jdbc.common.RawJdbcAssertUtils;
+import org.apache.shardingsphere.example.core.jdbc.repository.mysql.AddressRepositoryImpl;
+import org.apache.shardingsphere.example.core.jdbc.repository.mysql.OrderItemRepositoryImpl;
+import org.apache.shardingsphere.example.core.jdbc.repository.mysql.OrderRepositoryImpl;
+import org.apache.shardingsphere.example.core.jdbc.service.OrderServiceImpl;
+import org.apache.shardingsphere.example.factory.DataSourceFactory;
+import org.apache.shardingsphere.example.type.ShardingType;
+import org.junit.Test;
+
+import javax.sql.DataSource;
+import java.sql.SQLException;
+
+public class RawJDBCJavaShardingTest {
+ @Test
+ public void assertCommonService() throws SQLException {
+ DataSource dataSource = DataSourceFactory.newInstance(ShardingType.SHARDING_DATABASES_AND_TABLES);
+ ExampleService exampleService = new OrderServiceImpl(new OrderRepositoryImpl(dataSource), new OrderItemRepositoryImpl(dataSource), new AddressRepositoryImpl(dataSource));
+ ExampleExecuteTemplate.run(exampleService);
+ RawJdbcAssertUtils.assertShardingTableDatabases(exampleService);
+ }
+}
diff --git a/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-mysql-example/src/test/java/org/apache/shardingsphere/example/factory/DataSourceFactory.java b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-mysql-example/src/test/java/org/apache/shardingsphere/example/factory/DataSourceFactory.java
new file mode 100644
index 0000000..7bdbc48
--- /dev/null
+++ b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-mysql-example/src/test/java/org/apache/shardingsphere/example/factory/DataSourceFactory.java
@@ -0,0 +1,47 @@
+/*
+ * 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.factory;
+
+import org.apache.shardingsphere.example.core.api.DataSourceUtil;
+import org.apache.shardingsphere.example.core.api.DatabaseType;
+import org.apache.shardingsphere.example.type.ShardingType;
+
+import javax.sql.DataSource;
+import java.sql.SQLException;
+
+public class DataSourceFactory {
+
+ public static DataSource newInstance(final ShardingType shardingType) throws SQLException {
+ switch (shardingType) {
+ case SHARDING_ENCRYPT:
+ return DataSourceUtil.createDataSource("sharding_encrypt", DatabaseType.PROXY_MYSQL);
+ case SHARDING_DATABASES_AND_TABLES:
+ return DataSourceUtil.createDataSource("sharding_db", DatabaseType.PROXY_MYSQL);
+ case MASTER_SLAVE:
+ return DataSourceUtil.createDataSource("master_slave_db", DatabaseType.PROXY_MYSQL);
+ case SHARDING_MASTER_SLAVE:
+ return DataSourceUtil.createDataSource("sharding_master_slave_db", DatabaseType.PROXY_MYSQL);
+ case SHARDING_MASTER_SLAVE_ENCRYPT:
+ return DataSourceUtil.createDataSource("sharding_master_slave_encrypt_db", DatabaseType.PROXY_MYSQL);
+ case ENCRYPT:
+ return DataSourceUtil.createDataSource("encrypt_db", DatabaseType.PROXY_MYSQL);
+ default:
+ throw new UnsupportedOperationException(shardingType.name());
+ }
+ }
+}
diff --git a/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-postgresql-example/pom.xml b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-postgresql-example/pom.xml
new file mode 100644
index 0000000..762a8e8
--- /dev/null
+++ b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-postgresql-example/pom.xml
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<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>proxy-sharding-example</artifactId>
+ <groupId>org.apache.shardingsphere.example</groupId>
+ <version>4.0.0-RC4-SNAPSHOT</version>
+ </parent>
+ <groupId>org.apache.shardingsphere.example</groupId>
+ <artifactId>sharding-proxy-orchestration-raw-jdbc-postgresql-example</artifactId>
+
+ <name>AcceptanceTest::proxy::orchestration::postgresql::sharding::raw-jdbc</name>
+ <!-- FIXME change it to the project's website -->
+ <url>http://www.example.com</url>
+
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ <maven.compiler.source>1.7</maven.compiler.source>
+ <maven.compiler.target>1.7</maven.compiler.target>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.11</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere.example</groupId>
+ <artifactId>config-utility</artifactId>
+ <version>${project.version}</version>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere.example</groupId>
+ <artifactId>example-api</artifactId>
+ <version>${project.version}</version>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere.example</groupId>
+ <artifactId>example-raw-jdbc</artifactId>
+ <version>${project.version}</version>
+ <scope>compile</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
+ <plugins>
+ <!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle -->
+ <plugin>
+ <artifactId>maven-clean-plugin</artifactId>
+ <version>3.1.0</version>
+ </plugin>
+ <!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->
+ <plugin>
+ <artifactId>maven-resources-plugin</artifactId>
+ <version>3.0.2</version>
+ </plugin>
+ <plugin>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>3.8.0</version>
+ </plugin>
+ <plugin>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>2.22.1</version>
+ </plugin>
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <version>3.0.2</version>
+ </plugin>
+ <plugin>
+ <artifactId>maven-install-plugin</artifactId>
+ <version>2.5.2</version>
+ </plugin>
+ <plugin>
+ <artifactId>maven-deploy-plugin</artifactId>
+ <version>2.8.2</version>
+ </plugin>
+ <!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle -->
+ <plugin>
+ <artifactId>maven-site-plugin</artifactId>
+ <version>3.7.1</version>
+ </plugin>
+ <plugin>
+ <artifactId>maven-project-info-reports-plugin</artifactId>
+ <version>3.0.0</version>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ </build>
+</project>
diff --git a/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-postgresql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaEncryptTest.java b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-postgresql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaEncryptTest.java
new file mode 100644
index 0000000..3f309cf
--- /dev/null
+++ b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-postgresql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaEncryptTest.java
@@ -0,0 +1,24 @@
+package org.apache.shardingsphere.example;
+
+import org.apache.shardingsphere.example.core.api.ExampleExecuteTemplate;
+import org.apache.shardingsphere.example.core.api.service.ExampleService;
+import org.apache.shardingsphere.example.core.jdbc.common.RawJdbcAssertUtils;
+import org.apache.shardingsphere.example.core.jdbc.repository.postgresql.UserRepositoryImpl;
+import org.apache.shardingsphere.example.core.jdbc.service.UserServiceImpl;
+import org.apache.shardingsphere.example.factory.DataSourceFactory;
+import org.apache.shardingsphere.example.type.ShardingType;
+import org.junit.Test;
+
+import javax.sql.DataSource;
+import java.sql.SQLException;
+
+public class RawJDBCJavaEncryptTest {
+
+ @Test
+ public void assertCommonService() throws SQLException {
+ DataSource dataSource = DataSourceFactory.newInstance(ShardingType.ENCRYPT);
+ ExampleService exampleService = new UserServiceImpl(new UserRepositoryImpl(dataSource));
+ ExampleExecuteTemplate.run(exampleService);
+ RawJdbcAssertUtils.assertEncrypt(exampleService);
+ }
+}
diff --git a/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-postgresql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaMasterSlaveTest.java b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-postgresql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaMasterSlaveTest.java
new file mode 100644
index 0000000..2292636
--- /dev/null
+++ b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-postgresql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaMasterSlaveTest.java
@@ -0,0 +1,26 @@
+package org.apache.shardingsphere.example;
+
+import org.apache.shardingsphere.example.core.api.ExampleExecuteTemplate;
+import org.apache.shardingsphere.example.core.api.service.ExampleService;
+import org.apache.shardingsphere.example.core.jdbc.common.RawJdbcAssertUtils;
+import org.apache.shardingsphere.example.core.jdbc.repository.postgresql.AddressRepositoryImpl;
+import org.apache.shardingsphere.example.core.jdbc.repository.postgresql.OrderItemRepositoryImpl;
+import org.apache.shardingsphere.example.core.jdbc.repository.postgresql.OrderRepositoryImpl;
+import org.apache.shardingsphere.example.core.jdbc.service.OrderServiceImpl;
+import org.apache.shardingsphere.example.factory.DataSourceFactory;
+import org.apache.shardingsphere.example.type.ShardingType;
+import org.junit.Test;
+
+import javax.sql.DataSource;
+import java.sql.SQLException;
+
+public class RawJDBCJavaMasterSlaveTest {
+
+ @Test
+ public void assertCommonService() throws SQLException {
+ DataSource dataSource = DataSourceFactory.newInstance(ShardingType.MASTER_SLAVE);
+ ExampleService exampleService = new OrderServiceImpl(new OrderRepositoryImpl(dataSource), new OrderItemRepositoryImpl(dataSource), new AddressRepositoryImpl(dataSource));
+ ExampleExecuteTemplate.run(exampleService);
+ RawJdbcAssertUtils.assertMasterSlaves(exampleService);
+ }
+}
diff --git a/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-postgresql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaShardingEncryptTest.java b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-postgresql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaShardingEncryptTest.java
new file mode 100644
index 0000000..83ffa23
--- /dev/null
+++ b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-postgresql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaShardingEncryptTest.java
@@ -0,0 +1,23 @@
+package org.apache.shardingsphere.example;
+
+import org.apache.shardingsphere.example.core.api.ExampleExecuteTemplate;
+import org.apache.shardingsphere.example.core.api.service.ExampleService;
+import org.apache.shardingsphere.example.core.jdbc.common.RawJdbcAssertUtils;
+import org.apache.shardingsphere.example.core.jdbc.repository.postgresql.UserRepositoryImpl;
+import org.apache.shardingsphere.example.core.jdbc.service.UserServiceImpl;
+import org.apache.shardingsphere.example.factory.DataSourceFactory;
+import org.apache.shardingsphere.example.type.ShardingType;
+import org.junit.Test;
+
+import javax.sql.DataSource;
+import java.sql.SQLException;
+
+public class RawJDBCJavaShardingEncryptTest {
+ @Test
+ public void assertCommonService() throws SQLException {
+ DataSource dataSource = DataSourceFactory.newInstance(ShardingType.SHARDING_ENCRYPT);
+ ExampleService exampleService = new UserServiceImpl(new UserRepositoryImpl(dataSource));
+ ExampleExecuteTemplate.run(exampleService);
+ RawJdbcAssertUtils.assertShardingEncrypt(exampleService);
+ }
+}
diff --git a/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-postgresql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaShardingMasterSlave.java b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-postgresql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaShardingMasterSlave.java
new file mode 100644
index 0000000..1fab281
--- /dev/null
+++ b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-postgresql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaShardingMasterSlave.java
@@ -0,0 +1,25 @@
+package org.apache.shardingsphere.example;
+
+import org.apache.shardingsphere.example.core.api.ExampleExecuteTemplate;
+import org.apache.shardingsphere.example.core.api.service.ExampleService;
+import org.apache.shardingsphere.example.core.jdbc.common.RawJdbcAssertUtils;
+import org.apache.shardingsphere.example.core.jdbc.repository.postgresql.AddressRepositoryImpl;
+import org.apache.shardingsphere.example.core.jdbc.repository.postgresql.OrderItemRepositoryImpl;
+import org.apache.shardingsphere.example.core.jdbc.repository.postgresql.OrderRepositoryImpl;
+import org.apache.shardingsphere.example.core.jdbc.service.OrderServiceImpl;
+import org.apache.shardingsphere.example.factory.DataSourceFactory;
+import org.apache.shardingsphere.example.type.ShardingType;
+import org.junit.Test;
+
+import javax.sql.DataSource;
+import java.sql.SQLException;
+
+public class RawJDBCJavaShardingMasterSlave {
+ @Test
+ public void assertCommonService() throws SQLException {
+ DataSource dataSource = DataSourceFactory.newInstance(ShardingType.SHARDING_MASTER_SLAVE);
+ ExampleService exampleService = new OrderServiceImpl(new OrderRepositoryImpl(dataSource), new OrderItemRepositoryImpl(dataSource), new AddressRepositoryImpl(dataSource));
+ ExampleExecuteTemplate.run(exampleService);
+ RawJdbcAssertUtils.assertShardingMasterSlaves(exampleService);
+ }
+}
diff --git a/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-postgresql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaShardingMasterSlaveEncrypt.java b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-postgresql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaShardingMasterSlaveEncrypt.java
new file mode 100644
index 0000000..9330b8f
--- /dev/null
+++ b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-postgresql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaShardingMasterSlaveEncrypt.java
@@ -0,0 +1,23 @@
+package org.apache.shardingsphere.example;
+
+import org.apache.shardingsphere.example.core.api.ExampleExecuteTemplate;
+import org.apache.shardingsphere.example.core.api.service.ExampleService;
+import org.apache.shardingsphere.example.core.jdbc.common.RawJdbcAssertUtils;
+import org.apache.shardingsphere.example.core.jdbc.repository.postgresql.UserRepositoryImpl;
+import org.apache.shardingsphere.example.core.jdbc.service.UserServiceImpl;
+import org.apache.shardingsphere.example.factory.DataSourceFactory;
+import org.apache.shardingsphere.example.type.ShardingType;
+import org.junit.Test;
+
+import javax.sql.DataSource;
+import java.sql.SQLException;
+
+public class RawJDBCJavaShardingMasterSlaveEncrypt {
+ @Test
+ public void assertCommonService() throws SQLException {
+ DataSource dataSource = DataSourceFactory.newInstance(ShardingType.SHARDING_MASTER_SLAVE_ENCRYPT);
+ ExampleService exampleService = new UserServiceImpl(new UserRepositoryImpl(dataSource));
+ ExampleExecuteTemplate.run(exampleService);
+ RawJdbcAssertUtils.assertShardingMasterSlaveEncrypt(exampleService);
+ }
+}
diff --git a/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-postgresql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaShardingTest.java b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-postgresql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaShardingTest.java
new file mode 100644
index 0000000..43d9dfe
--- /dev/null
+++ b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-postgresql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaShardingTest.java
@@ -0,0 +1,25 @@
+package org.apache.shardingsphere.example;
+
+import org.apache.shardingsphere.example.core.api.ExampleExecuteTemplate;
+import org.apache.shardingsphere.example.core.api.service.ExampleService;
+import org.apache.shardingsphere.example.core.jdbc.common.RawJdbcAssertUtils;
+import org.apache.shardingsphere.example.core.jdbc.repository.postgresql.AddressRepositoryImpl;
+import org.apache.shardingsphere.example.core.jdbc.repository.postgresql.OrderItemRepositoryImpl;
+import org.apache.shardingsphere.example.core.jdbc.repository.postgresql.OrderRepositoryImpl;
+import org.apache.shardingsphere.example.core.jdbc.service.OrderServiceImpl;
+import org.apache.shardingsphere.example.factory.DataSourceFactory;
+import org.apache.shardingsphere.example.type.ShardingType;
+import org.junit.Test;
+
+import javax.sql.DataSource;
+import java.sql.SQLException;
+
+public class RawJDBCJavaShardingTest {
+ @Test
+ public void assertCommonService() throws SQLException {
+ DataSource dataSource = DataSourceFactory.newInstance(ShardingType.SHARDING_DATABASES_AND_TABLES);
+ ExampleService exampleService = new OrderServiceImpl(new OrderRepositoryImpl(dataSource), new OrderItemRepositoryImpl(dataSource), new AddressRepositoryImpl(dataSource));
+ ExampleExecuteTemplate.run(exampleService);
+ RawJdbcAssertUtils.assertPgTempShardingTableDatabases(exampleService);
+ }
+}
diff --git a/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-postgresql-example/src/test/java/org/apache/shardingsphere/example/factory/DataSourceFactory.java b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-postgresql-example/src/test/java/org/apache/shardingsphere/example/factory/DataSourceFactory.java
new file mode 100644
index 0000000..12cbf4c
--- /dev/null
+++ b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-postgresql-example/src/test/java/org/apache/shardingsphere/example/factory/DataSourceFactory.java
@@ -0,0 +1,47 @@
+/*
+ * 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.factory;
+
+import org.apache.shardingsphere.example.core.api.DataSourceUtil;
+import org.apache.shardingsphere.example.core.api.DatabaseType;
+import org.apache.shardingsphere.example.type.ShardingType;
+
+import javax.sql.DataSource;
+import java.sql.SQLException;
+
+public class DataSourceFactory {
+
+ public static DataSource newInstance(final ShardingType shardingType) throws SQLException {
+ switch (shardingType) {
+ case SHARDING_ENCRYPT:
+ return DataSourceUtil.createDataSource("sharding_encrypt", DatabaseType.PROXY_POSTGRESQL);
+ case SHARDING_DATABASES_AND_TABLES:
+ return DataSourceUtil.createDataSource("sharding_db", DatabaseType.PROXY_POSTGRESQL);
+ case MASTER_SLAVE:
+ return DataSourceUtil.createDataSource("master_slave_db", DatabaseType.PROXY_POSTGRESQL);
+ case SHARDING_MASTER_SLAVE:
+ return DataSourceUtil.createDataSource("sharding_master_slave_db", DatabaseType.PROXY_POSTGRESQL);
+ case SHARDING_MASTER_SLAVE_ENCRYPT:
+ return DataSourceUtil.createDataSource("sharding_master_slave_encrypt_db", DatabaseType.PROXY_POSTGRESQL);
+ case ENCRYPT:
+ return DataSourceUtil.createDataSource("encrypt_db", DatabaseType.PROXY_POSTGRESQL);
+ default:
+ throw new UnsupportedOperationException(shardingType.name());
+ }
+ }
+}