This is an automated email from the ASF dual-hosted git repository.
zhangliang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new e1a193db571 Refactor StorageContainerUtils (#36610)
e1a193db571 is described below
commit e1a193db57102b80abd693317caf20e5eb872d48
Author: Liang Zhang <[email protected]>
AuthorDate: Thu Sep 18 13:54:08 2025 +0800
Refactor StorageContainerUtils (#36610)
* Code format for TransactionBaseE2EIT
* Refactor StorageContainerUtils
---
.../impl/ShardingSphereProxyClusterContainer.java | 2 +-
.../impl/ShardingSphereProxyEmbeddedContainer.java | 2 +-
.../ShardingSphereProxyStandaloneContainer.java | 2 +-
.../type/natived/NativeStorageContainer.java | 11 ++------
.../atomic/util/StorageContainerUtils.java | 33 ++--------------------
.../pipeline/cases/PipelineContainerComposer.java | 4 +--
.../engine/base/TransactionBaseE2EIT.java | 10 +++----
7 files changed, 16 insertions(+), 48 deletions(-)
diff --git
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/adapter/impl/ShardingSphereProxyClusterContainer.java
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/adapter/impl/ShardingSphereProxyClusterContainer.java
index ff82a568be1..400224c6fed 100644
---
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/adapter/impl/ShardingSphereProxyClusterContainer.java
+++
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/adapter/impl/ShardingSphereProxyClusterContainer.java
@@ -78,7 +78,7 @@ public final class ShardingSphereProxyClusterContainer
extends DockerITContainer
if (null == dataSource) {
DataSourceEnvironment dataSourceEnvironment =
DatabaseTypedSPILoader.getService(DataSourceEnvironment.class, databaseType);
targetDataSourceProvider.set(StorageContainerUtils.generateDataSource(
- dataSourceEnvironment.getURL(getHost(),
getMappedPort(3307), config.getProxyDataSourceName()),
ProxyContainerConstants.USERNAME, ProxyContainerConstants.PASSWORD));
+ dataSourceEnvironment.getURL(getHost(),
getMappedPort(3307), config.getProxyDataSourceName()),
ProxyContainerConstants.USERNAME, ProxyContainerConstants.PASSWORD, 2));
}
return targetDataSourceProvider.get();
}
diff --git
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/adapter/impl/ShardingSphereProxyEmbeddedContainer.java
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/adapter/impl/ShardingSphereProxyEmbeddedContainer.java
index 98bf3099245..c40ad660df6 100644
---
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/adapter/impl/ShardingSphereProxyEmbeddedContainer.java
+++
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/adapter/impl/ShardingSphereProxyEmbeddedContainer.java
@@ -96,7 +96,7 @@ public final class ShardingSphereProxyEmbeddedContainer
implements AdapterContai
if (null == dataSource) {
DataSourceEnvironment dataSourceEnvironment =
DatabaseTypedSPILoader.getService(DataSourceEnvironment.class, databaseType);
targetDataSourceProvider.set(StorageContainerUtils.generateDataSource(dataSourceEnvironment.getURL(
- "127.0.0.1", 3307, config.getProxyDataSourceName()),
ProxyContainerConstants.USERNAME, ProxyContainerConstants.PASSWORD));
+ "127.0.0.1", 3307, config.getProxyDataSourceName()),
ProxyContainerConstants.USERNAME, ProxyContainerConstants.PASSWORD, 2));
}
return targetDataSourceProvider.get();
}
diff --git
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/adapter/impl/ShardingSphereProxyStandaloneContainer.java
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/adapter/impl/ShardingSphereProxyStandaloneContainer.java
index 51effec997e..235b25772b7 100644
---
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/adapter/impl/ShardingSphereProxyStandaloneContainer.java
+++
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/adapter/impl/ShardingSphereProxyStandaloneContainer.java
@@ -62,7 +62,7 @@ public final class ShardingSphereProxyStandaloneContainer
extends DockerITContai
if (null == dataSource) {
DataSourceEnvironment dataSourceEnvironment =
DatabaseTypedSPILoader.getService(DataSourceEnvironment.class, databaseType);
targetDataSourceProvider.set(StorageContainerUtils.generateDataSource(
- dataSourceEnvironment.getURL(getHost(),
getMappedPort(3307), config.getProxyDataSourceName()),
ProxyContainerConstants.USERNAME, ProxyContainerConstants.PASSWORD));
+ dataSourceEnvironment.getURL(getHost(),
getMappedPort(3307), config.getProxyDataSourceName()),
ProxyContainerConstants.USERNAME, ProxyContainerConstants.PASSWORD, 2));
}
return targetDataSourceProvider.get();
}
diff --git
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/type/natived/NativeStorageContainer.java
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/type/natived/NativeStorageContainer.java
index ac86b7570d3..50aa0e56113 100644
---
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/type/natived/NativeStorageContainer.java
+++
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/type/natived/NativeStorageContainer.java
@@ -78,7 +78,7 @@ public final class NativeStorageContainer implements
StorageContainer {
if (null != option) {
DataSourceEnvironment dataSourceEnvironment =
DatabaseTypedSPILoader.getService(DataSourceEnvironment.class, databaseType);
DataSource dataSource = StorageContainerUtils.generateDataSource(
- dataSourceEnvironment.getURL(env.getNativeStorageHost(),
env.getNativeStoragePort()), env.getNativeStorageUsername(),
env.getNativeStoragePassword());
+ dataSourceEnvironment.getURL(env.getNativeStorageHost(),
env.getNativeStoragePort()), env.getNativeStorageUsername(),
env.getNativeStoragePassword(), 2);
new MountSQLResourceGenerator(option).generate(0,
scenario).keySet().forEach(each -> SQLScriptUtils.execute(dataSource, each));
}
}
@@ -91,14 +91,9 @@ public final class NativeStorageContainer implements
StorageContainer {
}
private Map<String, DataSource> getDataSourceMap(final Collection<String>
databaseNames) {
- Map<String, DataSource> result = new HashMap<>(databaseNames.size(),
1F);
DataSourceEnvironment dataSourceEnvironment =
DatabaseTypedSPILoader.getService(DataSourceEnvironment.class, databaseType);
- for (String each : databaseNames) {
- DataSource dataSource = StorageContainerUtils.generateDataSource(
- dataSourceEnvironment.getURL(env.getNativeStorageHost(),
env.getNativeStoragePort(), each), env.getNativeStorageUsername(),
env.getNativeStoragePassword());
- result.put(each, dataSource);
- }
- return result;
+ return databaseNames.stream().collect(Collectors.toMap(each -> each,
each -> StorageContainerUtils.generateDataSource(
+ dataSourceEnvironment.getURL(env.getNativeStorageHost(),
env.getNativeStoragePort(), each), env.getNativeStorageUsername(),
env.getNativeStoragePassword(), 2)));
}
/**
diff --git
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/util/StorageContainerUtils.java
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/util/StorageContainerUtils.java
index 6b1bbbeb8e9..43f196d17fa 100644
---
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/util/StorageContainerUtils.java
+++
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/util/StorageContainerUtils.java
@@ -33,44 +33,17 @@ import javax.sql.DataSource;
public final class StorageContainerUtils {
/**
- * Generate datasource.
+ * Generate data source.
*
- * @param jdbcUrl JDBC URL for generating datasource
- * @param username username
- * @param password password
- * @return data source
- */
- public static DataSource generateDataSource(final String jdbcUrl, final
String username, final String password) {
- return generateDataSource(jdbcUrl, username, password, 2);
- }
-
- /**
- * Generate datasource.
- *
- * @param jdbcUrl JDBC URL for generating datasource
+ * @param jdbcUrl JDBC URL
* @param username username
* @param password password
* @param maximumPoolSize maximum pool size
* @return data source
*/
public static DataSource generateDataSource(final String jdbcUrl, final
String username, final String password, final int maximumPoolSize) {
- String driverClassName =
DatabaseTypedSPILoader.getService(DataSourceEnvironment.class,
DatabaseTypeFactory.get(jdbcUrl)).getDriverClassName();
- return generateDataSource(jdbcUrl, username, password,
maximumPoolSize, driverClassName);
- }
-
- /**
- * Generate datasource.
- *
- * @param jdbcUrl JDBC URL for generating datasource
- * @param username username
- * @param password password
- * @param maximumPoolSize maximum pool size
- * @param driverClassName driver class name
- * @return data source
- */
- public static DataSource generateDataSource(final String jdbcUrl, final
String username, final String password, final int maximumPoolSize, final String
driverClassName) {
HikariDataSource result = new HikariDataSource();
- result.setDriverClassName(driverClassName);
+
result.setDriverClassName(DatabaseTypedSPILoader.getService(DataSourceEnvironment.class,
DatabaseTypeFactory.get(jdbcUrl)).getDriverClassName());
result.setJdbcUrl(jdbcUrl);
result.setUsername(username);
result.setPassword(password);
diff --git
a/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/operation/pipeline/cases/PipelineContainerComposer.java
b/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/operation/pipeline/cases/PipelineContainerComposer.java
index 3b8a0360664..3f4fe51b586 100644
---
a/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/operation/pipeline/cases/PipelineContainerComposer.java
+++
b/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/operation/pipeline/cases/PipelineContainerComposer.java
@@ -135,9 +135,9 @@ public final class PipelineContainerComposer implements
AutoCloseable {
}
extraSQLCommand =
JAXB.unmarshal(Objects.requireNonNull(Thread.currentThread().getContextClassLoader().getResource(testParam.getScenario())),
ExtraSQLCommand.class);
containerComposer.start();
- sourceDataSource =
StorageContainerUtils.generateDataSource(getActualJdbcUrlTemplate(DS_0, false),
username, password);
+ sourceDataSource =
StorageContainerUtils.generateDataSource(getActualJdbcUrlTemplate(DS_0, false),
username, password, 2);
proxyDataSource = StorageContainerUtils.generateDataSource(
-
appendExtraParameter(containerComposer.getProxyJdbcUrl(PROXY_DATABASE)),
ProxyContainerConstants.USERNAME, ProxyContainerConstants.PASSWORD);
+
appendExtraParameter(containerComposer.getProxyJdbcUrl(PROXY_DATABASE)),
ProxyContainerConstants.USERNAME, ProxyContainerConstants.PASSWORD, 2);
init(jobType);
}
diff --git
a/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/operation/transaction/engine/base/TransactionBaseE2EIT.java
b/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/operation/transaction/engine/base/TransactionBaseE2EIT.java
index 665dad833ff..0eb23309d3f 100644
---
a/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/operation/transaction/engine/base/TransactionBaseE2EIT.java
+++
b/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/operation/transaction/engine/base/TransactionBaseE2EIT.java
@@ -148,8 +148,8 @@ public abstract class TransactionBaseE2EIT {
for (Class<? extends BaseTransactionTestCase> each :
testParam.getTransactionTestCaseClasses()) {
log.info("Transaction IT {} -> {} test begin.", testParam,
each.getSimpleName());
try {
-
each.getConstructor(TransactionTestCaseParameter.class).newInstance(new
TransactionTestCaseParameter(this, containerComposer.getDataSource(),
testParam.getTransactionTypes().get(0)))
- .execute(containerComposer);
+
each.getConstructor(TransactionTestCaseParameter.class).newInstance(
+ new TransactionTestCaseParameter(this,
containerComposer.getDataSource(),
testParam.getTransactionTypes().get(0))).execute(containerComposer);
// CHECKSTYLE:OFF
} catch (final Exception ex) {
// CHECKSTYLE:ON
@@ -167,8 +167,8 @@ public abstract class TransactionBaseE2EIT {
}
log.info("Call transaction IT {} -> {} -> {} -> {} test begin.",
testParam, transactionType, provider, each.getSimpleName());
try {
-
each.getConstructor(TransactionTestCaseParameter.class).newInstance(new
TransactionTestCaseParameter(this, containerComposer.getDataSource(),
transactionType))
- .execute(containerComposer);
+
each.getConstructor(TransactionTestCaseParameter.class).newInstance(
+ new TransactionTestCaseParameter(this,
containerComposer.getDataSource(), transactionType)).execute(containerComposer);
// CHECKSTYLE:OFF
} catch (final Exception ex) {
// CHECKSTYLE:ON
@@ -196,7 +196,7 @@ public abstract class TransactionBaseE2EIT {
* @throws SQLException SQL exception
*/
public void dropAccountTable(final Connection connection) throws
SQLException {
- executeWithLog(connection, "drop table if exists account;");
+ executeWithLog(connection, "DROP TABLE IF EXISTS account;");
}
private void alterLocalTransactionRule(final TransactionContainerComposer
containerComposer) throws SQLException {