This is an automated email from the ASF dual-hosted git repository.
duanzhengqiang 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 728ff122e08 Refactor BaseITCase (#21279)
728ff122e08 is described below
commit 728ff122e087d8115fa1ec8223b2feff5b4cac65
Author: Liang Zhang <[email protected]>
AuthorDate: Fri Sep 30 14:29:15 2022 +0800
Refactor BaseITCase (#21279)
* Refactor BaseITCase
* Refactor BaseITCase
* Refactor BaseITCase
---
.../general/PostgreSQLMigrationGeneralIT.java | 14 +-
.../transaction/engine/base/BaseITCase.java | 318 +++++++++------------
.../transaction/engine/entity/JdbcInfoEntity.java | 3 +
3 files changed, 146 insertions(+), 189 deletions(-)
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/migration/general/PostgreSQLMigrationGeneralIT.java
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/migration/general/PostgreSQLMigrationGeneralIT.java
index 1da9b9c08f7..1768a6f002f 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/migration/general/PostgreSQLMigrationGeneralIT.java
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/migration/general/PostgreSQLMigrationGeneralIT.java
@@ -116,14 +116,14 @@ public final class PostgreSQLMigrationGeneralIT extends
AbstractMigrationITCase
String jobId = getJobIdByTableName(getSourceTableOrderName());
waitIncrementTaskFinished(String.format("SHOW MIGRATION STATUS '%s'",
jobId));
/*
- * TODO Compatible with restart job, before stopping job,
incremental_idle_seconds=16, before checking migration,
incremental_idle_seconds=23,
- * it just pass 7 seconds, and it's not enough for PostgreSQL
incremental task to sync data
+ * TODO Compatible with restart job, before stopping job,
incremental_idle_seconds=16, before checking migration,
incremental_idle_seconds=23, it just pass 7 seconds, and it's not enough for
+ * PostgreSQL incremental task to sync data
*/
-// stopMigrationByJobId(jobId);
-// sourceExecuteWithLog(String.format("INSERT INTO %s.%s
(order_id,user_id,status) VALUES (%s, %s, '%s')", SCHEMA_NAME,
getSourceTableOrderName(), KEY_GENERATE_ALGORITHM.generateKey(),
-// 1, "afterStop"));
-// startMigrationByJobId(jobId);
-// waitIncrementTaskFinished(String.format("SHOW MIGRATION STATUS
'%s'", jobId));
+ // stopMigrationByJobId(jobId);
+ // sourceExecuteWithLog(String.format("INSERT INTO %s.%s
(order_id,user_id,status) VALUES (%s, %s, '%s')", SCHEMA_NAME,
getSourceTableOrderName(), KEY_GENERATE_ALGORITHM.generateKey(),
+ // 1, "afterStop"));
+ // startMigrationByJobId(jobId);
+ // waitIncrementTaskFinished(String.format("SHOW MIGRATION STATUS
'%s'", jobId));
assertCheckMigrationSuccess(jobId, "DATA_MATCH");
stopMigrationByJobId(jobId);
}
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-transaction/src/test/java/org/apache/shardingsphere/integration/transaction/engine/base/BaseITCase.java
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-transaction/src/test/java/org/apache/shardingsphere/integration/transaction/engine/base/BaseITCase.java
index 1220b89c0b4..c2f2ae291c0 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-transaction/src/test/java/org/apache/shardingsphere/integration/transaction/engine/base/BaseITCase.java
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-transaction/src/test/java/org/apache/shardingsphere/integration/transaction/engine/base/BaseITCase.java
@@ -81,16 +81,16 @@ public abstract class BaseITCase {
protected static final String TRANSACTION_IT = "transaction_it";
- protected static final String DS_0 = TRANSACTION_IT + "_0";
+ protected static final String DATA_SOURCE_0 = TRANSACTION_IT + "_0";
- protected static final String DS_1 = TRANSACTION_IT + "_1";
+ protected static final String DATA_SOURCE_1 = TRANSACTION_IT + "_1";
/**
* For adding resource tests.
*/
- protected static final String DS_2 = TRANSACTION_IT + "_2";
+ protected static final String DATA_SOURCE_2 = TRANSACTION_IT + "_2";
- protected static final Collection<String> ALL_DS = Arrays.asList(DS_0,
DS_1, DS_2);
+ protected static final Collection<String> ALL_DATA_SOURCES =
Arrays.asList(DATA_SOURCE_0, DATA_SOURCE_1, DATA_SOURCE_2);
protected static final List<String> ALL_XA_PROVIDERS =
Arrays.asList(TransactionTestConstants.ATOMIKOS,
TransactionTestConstants.BITRONIX, TransactionTestConstants.NARAYANA);
@@ -115,11 +115,11 @@ public abstract class BaseITCase {
log.info("Load transaction test case classes time consume: {}.",
System.currentTimeMillis() - startTime);
}
- public BaseITCase(final TransactionParameterized parameterized) {
+ public BaseITCase(final TransactionParameterized parameterized) throws
SQLException {
databaseType = parameterized.getDatabaseType();
adapter = parameterized.getAdapter();
- containerComposer = createAndStartContainerComposer(parameterized);
- commonSQLCommand = getSqlCommand();
+ containerComposer = initializeContainerComposer(parameterized);
+ commonSQLCommand = loadCommonSQLCommand();
initActualDataSources();
if (isProxyAdapter(parameterized)) {
createProxyDatabase();
@@ -128,24 +128,108 @@ public abstract class BaseITCase {
}
}
+ private BaseContainerComposer initializeContainerComposer(final
TransactionParameterized parameterized) {
+ BaseContainerComposer result = ENV.getItEnvType() ==
TransactionITEnvTypeEnum.DOCKER
+ ? new DockerContainerComposer(parameterized)
+ : new NativeContainerComposer(parameterized.getDatabaseType());
+ result.start();
+ return result;
+ }
+
+ private CommonSQLCommand loadCommonSQLCommand() {
+ return
JAXB.unmarshal(Objects.requireNonNull(BaseITCase.class.getClassLoader().getResource("env/common/command.xml")),
CommonSQLCommand.class);
+ }
+
+ private void initActualDataSources() throws SQLException {
+ JdbcInfoEntity jdbcInfo = getJdbcInfoEntity();
+ String jdbcUrl = getJdbcUrl(jdbcInfo);
+ dropDatabases(jdbcUrl, jdbcInfo);
+ createDatabases(jdbcUrl, jdbcInfo);
+ }
+
+ private JdbcInfoEntity getJdbcInfoEntity() {
+ if (ENV.getItEnvType() == TransactionITEnvTypeEnum.DOCKER) {
+ DockerStorageContainer storageContainer =
((DockerContainerComposer) containerComposer).getStorageContainer();
+ return new JdbcInfoEntity(storageContainer.getUsername(),
storageContainer.getPassword(), storageContainer.getExposedPort());
+ }
+ return ENV.getActualDatabaseJdbcInfo(getDatabaseType());
+ }
+
+ private String getJdbcUrl(final JdbcInfoEntity jdbcInfo) {
+ if (ENV.getItEnvType() == TransactionITEnvTypeEnum.DOCKER) {
+ DockerStorageContainer storageContainer =
((DockerContainerComposer) containerComposer).getStorageContainer();
+ return storageContainer.getJdbcUrl("");
+ }
+ return DataSourceEnvironment.getURL(databaseType, "localhost",
jdbcInfo.getPort());
+ }
+
+ private void dropDatabases(final String jdbcUrl, final JdbcInfoEntity
jdbcInfo) throws SQLException {
+ try (Connection connection = DriverManager.getConnection(jdbcUrl,
jdbcInfo.getUsername(), jdbcInfo.getPassword())) {
+ for (String each : ALL_DATA_SOURCES) {
+ executeWithLog(connection, String.format("DROP DATABASE IF
EXISTS %s", each));
+ }
+ }
+ }
+
+ private void createDatabases(final String jdbcUrl, final JdbcInfoEntity
jdbcInfo) throws SQLException {
+ try (Connection connection = DriverManager.getConnection(jdbcUrl,
jdbcInfo.getUsername(), jdbcInfo.getPassword())) {
+ for (String each : ALL_DATA_SOURCES) {
+ try {
+ executeWithLog(connection, String.format("CREATE DATABASE
%s", each));
+ } catch (final SQLException ex) {
+ log.error("Error occurred when create database. error
msg={}", ex.getMessage());
+ }
+ }
+ }
+ }
+
+ protected final boolean isProxyAdapter(final TransactionParameterized
parameterized) {
+ return
parameterized.getAdapter().equalsIgnoreCase(AdapterContainerConstants.PROXY);
+ }
+
+ private void createProxyDatabase() throws SQLException {
+ String jdbcUrl = getProxyJdbcUrl(databaseType);
+ try (Connection connection = DriverManager.getConnection(jdbcUrl,
ENV.getProxyUserName(), ENV.getProxyPassword())) {
+ if (ENV.getItEnvType() == TransactionITEnvTypeEnum.NATIVE) {
+ executeWithLog(connection, "DROP DATABASE IF EXISTS " +
SHARDING_DB);
+ }
+ executeWithLog(connection, "CREATE DATABASE " + SHARDING_DB);
+ }
+ dataSource = new ProxyDataSource(containerComposer, SHARDING_DB,
ENV.getProxyUserName(), ENV.getProxyPassword());
+ }
+
+ private String getProxyJdbcUrl(final DatabaseType databaseType) {
+ String defaultDatabaseName = "";
+ if (DatabaseTypeUtil.isPostgreSQL(databaseType) ||
DatabaseTypeUtil.isOpenGauss(databaseType)) {
+ defaultDatabaseName = "postgres";
+ }
+ String result = containerComposer.getProxyJdbcUrl(defaultDatabaseName);
+ if (DatabaseTypeUtil.isPostgreSQL(databaseType) ||
DatabaseTypeUtil.isOpenGauss(databaseType)) {
+ result = JDBC_URL_APPENDER.appendQueryProperties(result,
getPostgreSQLQueryProperties());
+ }
+ return result;
+ }
+
+ private Properties getPostgreSQLQueryProperties() {
+ Properties result = new Properties();
+ result.put("preferQueryMode", "extendedForPrepared");
+ return result;
+ }
+
private void createJdbcDataSource() {
if (containerComposer instanceof DockerContainerComposer) {
DockerContainerComposer dockerContainerComposer =
(DockerContainerComposer) containerComposer;
- DockerStorageContainer databaseContainer =
dockerContainerComposer.getStorageContainer();
- Map<String, DataSource> actualDataSourceMap =
databaseContainer.getActualDataSourceMap();
- actualDataSourceMap.put("ds_0",
createDataSource(databaseContainer, DS_0));
- actualDataSourceMap.put("ds_1",
createDataSource(databaseContainer, DS_1));
+ DockerStorageContainer storageContainer =
dockerContainerComposer.getStorageContainer();
+ Map<String, DataSource> actualDataSourceMap =
storageContainer.getActualDataSourceMap();
+ actualDataSourceMap.put("ds_0", createDataSource(storageContainer,
DATA_SOURCE_0));
+ actualDataSourceMap.put("ds_1", createDataSource(storageContainer,
DATA_SOURCE_1));
dataSource = new JdbcDataSource(dockerContainerComposer);
}
}
- private DataSource createDataSource(final DockerStorageContainer
databaseContainer, final String dataSourceName) {
- return
StorageContainerUtil.generateDataSource(DataSourceEnvironment.getURL(databaseType,
databaseContainer.getHost(), databaseContainer.getMappedPort(),
dataSourceName),
- databaseContainer.getUsername(),
databaseContainer.getPassword(), 50);
- }
-
- protected boolean isProxyAdapter(final TransactionParameterized
parameterized) {
- return
parameterized.getAdapter().equalsIgnoreCase(AdapterContainerConstants.PROXY);
+ private DataSource createDataSource(final DockerStorageContainer
storageContainer, final String dataSourceName) {
+ return
StorageContainerUtil.generateDataSource(DataSourceEnvironment.getURL(databaseType,
storageContainer.getHost(), storageContainer.getMappedPort(), dataSourceName),
+ storageContainer.getUsername(),
storageContainer.getPassword(), 50);
}
protected static Collection<TransactionParameterized>
getTransactionParameterizedList(final Class<? extends BaseTransactionITCase>
testCaseClass) {
@@ -213,7 +297,7 @@ public abstract class BaseITCase {
final Map<String,
TransactionParameterized> parameterizedMap, final String group) {
if
(AdapterContainerConstants.PROXY.equals(currentTestCaseInfo.getRunningAdaptor()))
{
List<TransactionType> allowTransactionTypes =
ENV.getAllowTransactionTypes().isEmpty() ?
Arrays.stream(TransactionType.values()).collect(Collectors.toList())
- :
ENV.getAllowTransactionTypes().stream().map(BaseITCase::getTransactionType).collect(Collectors.toList());
+ :
ENV.getAllowTransactionTypes().stream().map(TransactionType::valueOf).collect(Collectors.toList());
List<String> allowProviders = ENV.getAllowXAProviders().isEmpty()
? ALL_XA_PROVIDERS : ENV.getAllowXAProviders();
addTestParameters(version, currentTestCaseInfo, caseClass,
allowTransactionTypes, allowProviders, parameterizedMap, group);
} else {
@@ -227,19 +311,6 @@ public abstract class BaseITCase {
}
}
- private static TransactionType getTransactionType(final String each) {
- switch (each) {
- case "LOCAL":
- return TransactionType.LOCAL;
- case "XA":
- return TransactionType.XA;
- case "BASE":
- return TransactionType.BASE;
- default:
- throw new UnsupportedOperationException("Unsupported
transaction type.");
- }
- }
-
private static void addParametersByTransactionProvidersInJDBC(final String
version, final TransactionTestCaseRegistry currentTestCaseInfo,
final
Class<? extends BaseTransactionTestCase> caseClass, final TransactionType each,
final
Map<String, TransactionParameterized> parameterizedMap, final String group) {
@@ -275,7 +346,7 @@ public abstract class BaseITCase {
case TransactionTestConstants.OPENGAUSS:
return new OpenGaussDatabaseType();
default:
- throw new UnsupportedOperationException("Unsupported database
type.");
+ throw new
UnsupportedOperationException(String.format("Unsupported database type `%s`.",
databaseType));
}
}
@@ -287,108 +358,15 @@ public abstract class BaseITCase {
case TransactionTestConstants.OPENGAUSS:
return version;
default:
- throw new UnsupportedOperationException("Unsupported database
type.");
+ throw new
UnsupportedOperationException(String.format("Unsupported database type `%s`.",
databaseType));
}
}
- private CommonSQLCommand getSqlCommand() {
- return
JAXB.unmarshal(Objects.requireNonNull(BaseITCase.class.getClassLoader().getResource("env/common/command.xml")),
CommonSQLCommand.class);
- }
-
- private BaseContainerComposer createAndStartContainerComposer(final
TransactionParameterized parameterized) {
- BaseContainerComposer result = ENV.getItEnvType() ==
TransactionITEnvTypeEnum.DOCKER
- ? new DockerContainerComposer(parameterized)
- : new NativeContainerComposer(parameterized.getDatabaseType());
- result.start();
- return result;
- }
-
- @SneakyThrows(SQLException.class)
- private void initActualDataSources() {
- JdbcInfoEntity jdbcInfo = getJdbcInfoEntity();
- String jdbcUrl = getJdbcUrl(jdbcInfo);
- dropDatabases(jdbcUrl, jdbcInfo);
- createDatabases(jdbcUrl, jdbcInfo);
- }
-
- private String getJdbcUrl(final JdbcInfoEntity jdbcInfo) {
- String jdbcUrl;
- if (ENV.getItEnvType() == TransactionITEnvTypeEnum.DOCKER) {
- DockerContainerComposer dockerContainerComposer =
(DockerContainerComposer) containerComposer;
- DockerStorageContainer databaseContainer =
dockerContainerComposer.getStorageContainer();
- jdbcUrl = databaseContainer.getJdbcUrl("");
- } else {
- jdbcUrl = DataSourceEnvironment.getURL(databaseType, "localhost",
jdbcInfo.getPort());
- }
- return jdbcUrl;
- }
-
- private JdbcInfoEntity getJdbcInfoEntity() {
- JdbcInfoEntity jdbcInfo;
- if (ENV.getItEnvType() == TransactionITEnvTypeEnum.DOCKER) {
- DockerContainerComposer dockerContainerComposer =
(DockerContainerComposer) containerComposer;
- DockerStorageContainer databaseContainer =
dockerContainerComposer.getStorageContainer();
- jdbcInfo = new JdbcInfoEntity(databaseContainer.getUsername(),
databaseContainer.getPassword(), databaseContainer.getExposedPort());
- } else {
- jdbcInfo = ENV.getActualDatabaseJdbcInfo(getDatabaseType());
- }
- return jdbcInfo;
- }
-
- private void dropDatabases(final String jdbcUrl, final JdbcInfoEntity
jdbcInfo) throws SQLException {
- try (Connection connection = DriverManager.getConnection(jdbcUrl,
jdbcInfo.getUsername(), jdbcInfo.getPassword())) {
- for (String each : ALL_DS) {
- executeWithLog(connection, String.format("DROP DATABASE IF
EXISTS %s", each));
- }
- }
- }
-
- private void createDatabases(final String jdbcUrl, final JdbcInfoEntity
jdbcInfo) throws SQLException {
- try (Connection connection = DriverManager.getConnection(jdbcUrl,
jdbcInfo.getUsername(), jdbcInfo.getPassword())) {
- for (String each : ALL_DS) {
- try {
- executeWithLog(connection, String.format("CREATE DATABASE
%s", each));
- } catch (final SQLException ex) {
- log.error("Error occurred when create database. error
msg={}", ex.getMessage());
- }
- }
- }
- }
-
- protected Connection getProxyConnection() throws SQLException {
+ protected final Connection getProxyConnection() throws SQLException {
return dataSource.getConnection();
}
- protected void createProxyDatabase() {
- String jdbcUrl = getProxyJdbcUrl(databaseType);
- try (Connection connection = DriverManager.getConnection(jdbcUrl,
ENV.getProxyUserName(), ENV.getProxyPassword())) {
- if (ENV.getItEnvType() == TransactionITEnvTypeEnum.NATIVE) {
- executeWithLog(connection, "DROP DATABASE IF EXISTS " +
SHARDING_DB);
- }
- executeWithLog(connection, "CREATE DATABASE " + SHARDING_DB);
- } catch (final SQLException ex) {
- throw new IllegalStateException(ex);
- }
- dataSource = getProxyDataSource(SHARDING_DB);
- }
-
- private String getProxyJdbcUrl(final DatabaseType databaseType) {
- String defaultDatabaseName = "";
- if (DatabaseTypeUtil.isPostgreSQL(databaseType) ||
DatabaseTypeUtil.isOpenGauss(databaseType)) {
- defaultDatabaseName = "postgres";
- }
- String jdbcUrl =
containerComposer.getProxyJdbcUrl(defaultDatabaseName);
- if (DatabaseTypeUtil.isPostgreSQL(databaseType) ||
DatabaseTypeUtil.isOpenGauss(databaseType)) {
- jdbcUrl = JDBC_URL_APPENDER.appendQueryProperties(jdbcUrl,
getPostgreSQLQueryProperties());
- }
- return jdbcUrl;
- }
-
- protected AutoDataSource getProxyDataSource(final String databaseName) {
- return new ProxyDataSource(containerComposer, databaseName,
ENV.getProxyUserName(), ENV.getProxyPassword());
- }
-
- protected boolean waitShardingAlgorithmEffect(final int maxWaitTimes)
throws SQLException {
+ protected final boolean waitShardingAlgorithmEffect(final int
maxWaitTimes) throws SQLException {
long startTime = System.currentTimeMillis();
int waitTimes = 0;
do {
@@ -403,7 +381,7 @@ public abstract class BaseITCase {
return false;
}
- protected void addResources() throws SQLException {
+ protected final void addResources() throws SQLException {
if (DatabaseTypeUtil.isMySQL(databaseType)) {
try (Connection connection =
DriverManager.getConnection(getContainerComposer().getProxyJdbcUrl(""),
ENV.getProxyUserName(), ENV.getProxyPassword())) {
executeWithLog(connection, "USE sharding_db");
@@ -421,15 +399,23 @@ public abstract class BaseITCase {
assertThat(resourceCount, is(2));
}
- protected void addResources(final Connection connection) throws
SQLException {
+ private void addResources(final Connection connection) throws SQLException
{
String addSourceResource =
commonSQLCommand.getSourceAddResourceTemplate()
.replace("${user}",
ENV.getActualDataSourceUsername(databaseType))
.replace("${password}",
ENV.getActualDataSourcePassword(databaseType))
- .replace("${ds0}", getActualJdbcUrlTemplate(DS_0))
- .replace("${ds1}", getActualJdbcUrlTemplate(DS_1));
+ .replace("${ds0}", getActualJdbcUrlTemplate(DATA_SOURCE_0))
+ .replace("${ds1}", getActualJdbcUrlTemplate(DATA_SOURCE_1));
executeWithLog(connection, addSourceResource);
}
+ private String getActualJdbcUrlTemplate(final String databaseName) {
+ if (ENV.getItEnvType() == TransactionITEnvTypeEnum.DOCKER) {
+ DockerStorageContainer storageContainer =
((DockerContainerComposer) containerComposer).getStorageContainer();
+ return DataSourceEnvironment.getURL(getDatabaseType(),
getDatabaseType().getType().toLowerCase() + ".host",
storageContainer.getExposedPort(), databaseName);
+ }
+ return DataSourceEnvironment.getURL(getDatabaseType(), "127.0.0.1",
ENV.getActualDataSourceDefaultPort(databaseType), databaseName);
+ }
+
/**
* Add ds_2 resource to proxy.
*
@@ -437,14 +423,14 @@ public abstract class BaseITCase {
* @throws SQLException SQL exception
*/
@SneakyThrows(InterruptedException.class)
- public void addNewResource(final Connection connection) throws
SQLException {
+ public final void addNewResource(final Connection connection) throws
SQLException {
String addSourceResource =
commonSQLCommand.getSourceAddNewResourceTemplate()
.replace("${user}",
ENV.getActualDataSourceUsername(databaseType))
.replace("${password}",
ENV.getActualDataSourcePassword(databaseType))
- .replace("${ds2}", getActualJdbcUrlTemplate(DS_2));
+ .replace("${ds2}", getActualJdbcUrlTemplate(DATA_SOURCE_2));
executeWithLog(connection, addSourceResource);
int resourceCount = countWithLog("SHOW DATABASE RESOURCES FROM
sharding_db");
- Thread.sleep(5000);
+ Thread.sleep(5000L);
assertThat(resourceCount, is(3));
}
@@ -454,7 +440,7 @@ public abstract class BaseITCase {
* @param connection connection
* @throws SQLException SQL exception
*/
- public void createThreeDataSourceAccountTableRule(final Connection
connection) throws SQLException {
+ public final void createThreeDataSourceAccountTableRule(final Connection
connection) throws SQLException {
executeWithLog(connection, "DROP SHARDING TABLE RULE account;");
executeWithLog(connection,
getCommonSQLCommand().getCreateThreeDataSourceAccountTableRule());
int ruleCount = countWithLog("SHOW SHARDING TABLE RULES FROM
sharding_db;");
@@ -467,37 +453,13 @@ public abstract class BaseITCase {
* @param connection connection
* @throws SQLException SQL exception
*/
- public void createOriginalAccountTableRule(final Connection connection)
throws SQLException {
+ public final void createOriginalAccountTableRule(final Connection
connection) throws SQLException {
executeWithLog(connection, "DROP SHARDING TABLE RULE account;");
executeWithLog(connection,
getCommonSQLCommand().getCreateOneDataSourceAccountTableRule());
- int ruleCount = countWithLog("SHOW SHARDING TABLE RULES FROM
sharding_db;");
- assertThat(ruleCount, is(3));
- }
-
- private String getActualJdbcUrlTemplate(final String databaseName) {
- if (ENV.getItEnvType() == TransactionITEnvTypeEnum.DOCKER) {
- DockerStorageContainer databaseContainer =
((DockerContainerComposer) containerComposer).getStorageContainer();
- return DataSourceEnvironment.getURL(getDatabaseType(),
getDatabaseType().getType().toLowerCase() + ".host",
databaseContainer.getExposedPort(), databaseName);
- } else {
- return DataSourceEnvironment.getURL(getDatabaseType(),
"127.0.0.1", ENV.getActualDataSourceDefaultPort(databaseType), databaseName);
- }
+ assertThat(countWithLog("SHOW SHARDING TABLE RULES FROM
sharding_db;"), is(3));
}
- protected void initShardingAlgorithm() throws SQLException {
- Connection connection = getProxyConnection();
- executeWithLog(connection,
commonSQLCommand.getCreateDatabaseShardingAlgorithm());
- executeWithLog(connection,
commonSQLCommand.getCreateDatabaseIdShardingAlgorithm());
- executeWithLog(connection,
commonSQLCommand.getCreateOrderShardingAlgorithm());
- executeWithLog(connection,
commonSQLCommand.getCreateOrderItemShardingAlgorithm());
- executeWithLog(connection,
commonSQLCommand.getCreateAccountShardingAlgorithm());
- }
-
- protected void createSchema(final String schemaName) throws SQLException {
- Connection connection = getProxyConnection();
- executeWithLog(connection, String.format("CREATE SCHEMA %s",
schemaName));
- }
-
- protected int countWithLog(final String sql) throws SQLException {
+ private int countWithLog(final String sql) throws SQLException {
Connection connection = getProxyConnection();
int retryNumber = 0;
while (retryNumber <= 3) {
@@ -518,26 +480,18 @@ public abstract class BaseITCase {
throw new RuntimeException("Can't get result from proxy.");
}
- protected void executeWithLog(final Connection connection, final String
sql) throws SQLException {
- log.info("Connection execute:{}.", sql);
- connection.createStatement().execute(sql);
- ThreadUtil.sleep(1, TimeUnit.SECONDS);
+ protected final void initShardingAlgorithm() throws SQLException {
+ Connection connection = getProxyConnection();
+ executeWithLog(connection,
commonSQLCommand.getCreateDatabaseShardingAlgorithm());
+ executeWithLog(connection,
commonSQLCommand.getCreateDatabaseIdShardingAlgorithm());
+ executeWithLog(connection,
commonSQLCommand.getCreateOrderShardingAlgorithm());
+ executeWithLog(connection,
commonSQLCommand.getCreateOrderItemShardingAlgorithm());
+ executeWithLog(connection,
commonSQLCommand.getCreateAccountShardingAlgorithm());
}
- protected void executeUpdateWithLog(final Connection connection, final
String sql) throws SQLException {
- log.info("Connection execute update:{}.", sql);
- connection.createStatement().executeUpdate(sql);
+ protected final void executeWithLog(final Connection connection, final
String sql) throws SQLException {
+ log.info("Connection execute:{}.", sql);
+ connection.createStatement().execute(sql);
ThreadUtil.sleep(1, TimeUnit.SECONDS);
}
-
- /**
- * Get query properties by database type.
- *
- * @return query properties
- */
- public static Properties getPostgreSQLQueryProperties() {
- Properties result = new Properties();
- result.put("preferQueryMode", "extendedForPrepared");
- return result;
- }
}
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-transaction/src/test/java/org/apache/shardingsphere/integration/transaction/engine/entity/JdbcInfoEntity.java
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-transaction/src/test/java/org/apache/shardingsphere/integration/transaction/engine/entity/JdbcInfoEntity.java
index c13b755a2d2..49f18a025ce 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-transaction/src/test/java/org/apache/shardingsphere/integration/transaction/engine/entity/JdbcInfoEntity.java
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-transaction/src/test/java/org/apache/shardingsphere/integration/transaction/engine/entity/JdbcInfoEntity.java
@@ -20,6 +20,9 @@ package
org.apache.shardingsphere.integration.transaction.engine.entity;
import lombok.Data;
import lombok.RequiredArgsConstructor;
+/**
+ * JDBC info entity.
+ */
@RequiredArgsConstructor
@Data
public final class JdbcInfoEntity {