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 a8e43fd262d Merge DataSourceEnvironment and StorageContainerOption
(#36655)
a8e43fd262d is described below
commit a8e43fd262dc69dcf9bdff6f81dfa8abfe035149
Author: Liang Zhang <[email protected]>
AuthorDate: Sun Sep 21 16:26:34 2025 +0800
Merge DataSourceEnvironment and StorageContainerOption (#36655)
* Merge DataSourceEnvironment and StorageContainerOption
* Merge DataSourceEnvironment and StorageContainerOption
---
.../agent/engine/env/AgentE2ETestEnvironment.java | 6 +-
.../impl/ShardingSphereProxyDockerContainer.java | 11 ++-
.../impl/ShardingSphereProxyEmbeddedContainer.java | 7 +-
.../mount/MountConfigurationResourceGenerator.java | 11 ++-
.../storage/mount/MountSQLResourceGenerator.java | 17 ++--
.../option/StorageContainerConnectOption.java} | 10 +-
...tion.java => StorageContainerCreateOption.java} | 8 +-
.../storage/option/StorageContainerOption.java | 104 ++-------------------
.../hive/HiveStorageContainerConnectOption.java} | 13 +--
.../HiveStorageContainerCreateOption.java} | 13 +--
.../dialect/hive/HiveStorageContainerOption.java} | 27 ++----
.../MariaDBStorageContainerConnectOption.java} | 13 +--
.../MariaDBStorageContainerCreateOption.java} | 13 +--
.../mariadb/MariaDBStorageContainerOption.java} | 29 +++---
.../mysql/MySQLStorageContainerConnectOption.java} | 13 +--
.../MySQLStorageContainerCreateOption.java} | 13 +--
.../mysql/MySQLStorageContainerOption.java} | 29 +++---
.../OpenGaussStorageContainerConnectOption.java} | 13 +--
.../OpenGaussStorageContainerCreateOption.java} | 13 +--
.../OpenGaussStorageContainerOption.java} | 27 ++----
.../PostgreSQLStorageContainerConnectOption.java} | 13 +--
.../PostgreSQLStorageContainerCreateOption.java} | 13 +--
.../PostgreSQLStorageContainerOption.java} | 27 ++----
.../storage/type/DockerStorageContainer.java | 51 +++++-----
.../storage/type/NativeStorageContainer.java | 13 ++-
.../env/container/util/StorageContainerUtils.java | 4 +-
...container.storage.option.StorageContainerOption | 10 +-
...2e.env.runtime.datasource.DataSourceEnvironment | 22 -----
.../pipeline/cases/PipelineContainerComposer.java | 9 +-
.../pipeline/env/PipelineE2EEnvironment.java | 2 +-
.../docker/PipelineDockerContainerComposer.java | 3 +-
...lectPipelineNativeContainerDropTableOption.java | 6 +-
.../natived/PipelineNativeContainerComposer.java | 6 +-
...iaDBPipelineNativeContainerDropTableOption.java | 6 +-
...ySQLPipelineNativeContainerDropTableOption.java | 6 +-
...aussPipelineNativeContainerDropTableOption.java | 6 +-
...aclePipelineNativeContainerDropTableOption.java | 6 +-
...eSQLPipelineNativeContainerDropTableOption.java | 6 +-
.../engine/base/TransactionBaseE2EIT.java | 9 +-
.../transaction/env/TransactionE2EEnvironment.java | 12 +--
40 files changed, 212 insertions(+), 408 deletions(-)
diff --git
a/test/e2e/agent/engine/src/test/java/org/apache/shardingsphere/test/e2e/agent/engine/env/AgentE2ETestEnvironment.java
b/test/e2e/agent/engine/src/test/java/org/apache/shardingsphere/test/e2e/agent/engine/env/AgentE2ETestEnvironment.java
index 34bc8c6780a..c04b6f1c59e 100644
---
a/test/e2e/agent/engine/src/test/java/org/apache/shardingsphere/test/e2e/agent/engine/env/AgentE2ETestEnvironment.java
+++
b/test/e2e/agent/engine/src/test/java/org/apache/shardingsphere/test/e2e/agent/engine/env/AgentE2ETestEnvironment.java
@@ -117,7 +117,8 @@ public final class AgentE2ETestEnvironment {
containers = new ITContainers(null);
ShardingSphereProxyDockerContainer proxyContainer = new
ShardingSphereProxyDockerContainer(databaseType,
getAdaptorContainerConfiguration());
proxyContainer.withLogConsumer(testConfig.isLogEnabled() ?
this::collectLogs : null);
- StorageContainer storageContainer = new
DockerStorageContainer(imageConfig.getMysqlImage(),
DatabaseTypedSPILoader.getService(StorageContainerOption.class, databaseType),
null);
+ StorageContainer storageContainer = new DockerStorageContainer(
+ imageConfig.getMysqlImage(),
DatabaseTypedSPILoader.getService(StorageContainerOption.class, databaseType),
null);
proxyContainer.dependsOn(storageContainer);
containers.registerContainer(storageContainer);
GovernanceContainer governanceContainer = new
GovernanceContainer(TypedSPILoader.getService(GovernanceContainerOption.class,
"ZooKeeper"));
@@ -148,7 +149,8 @@ public final class AgentE2ETestEnvironment {
private void createJDBCEnvironment(final DockerITContainer
agentPluginContainer) {
containers = new ITContainers(null);
- StorageContainer storageContainer = new
DockerStorageContainer(imageConfig.getMysqlImage(),
DatabaseTypedSPILoader.getService(StorageContainerOption.class, databaseType),
null);
+ StorageContainer storageContainer = new DockerStorageContainer(
+ imageConfig.getMysqlImage(),
DatabaseTypedSPILoader.getService(StorageContainerOption.class, databaseType),
null);
ShardingSphereJdbcAgentContainer jdbcAgentContainer = new
ShardingSphereJdbcAgentContainer(
imageConfig.getJdbcProjectImage(), testConfig.getPluginType(),
testConfig.isLogEnabled() ? this::collectLogs : null);
jdbcAgentContainer.dependsOn(storageContainer);
diff --git
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/adapter/impl/ShardingSphereProxyDockerContainer.java
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/adapter/impl/ShardingSphereProxyDockerContainer.java
index 3ef46599ad5..de57170b22b 100644
---
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/adapter/impl/ShardingSphereProxyDockerContainer.java
+++
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/adapter/impl/ShardingSphereProxyDockerContainer.java
@@ -24,9 +24,10 @@ import
org.apache.shardingsphere.test.e2e.env.container.DockerITContainer;
import
org.apache.shardingsphere.test.e2e.env.container.adapter.AdapterContainer;
import
org.apache.shardingsphere.test.e2e.env.container.adapter.config.AdaptorContainerConfiguration;
import
org.apache.shardingsphere.test.e2e.env.container.constants.ProxyContainerConstants;
+import
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerConnectOption;
+import
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerOption;
import
org.apache.shardingsphere.test.e2e.env.container.util.JdbcConnectCheckingWaitStrategy;
import
org.apache.shardingsphere.test.e2e.env.container.util.StorageContainerUtils;
-import
org.apache.shardingsphere.test.e2e.env.runtime.datasource.DataSourceEnvironment;
import javax.sql.DataSource;
import java.sql.DriverManager;
@@ -41,14 +42,14 @@ public final class ShardingSphereProxyDockerContainer
extends DockerITContainer
private final AdaptorContainerConfiguration config;
- private final DataSourceEnvironment dataSourceEnvironment;
+ private final StorageContainerConnectOption storageContainerConnectOption;
private final AtomicReference<DataSource> targetDataSourceProvider = new
AtomicReference<>();
public ShardingSphereProxyDockerContainer(final DatabaseType databaseType,
final AdaptorContainerConfiguration config) {
super(ProxyContainerConstants.PROXY_CONTAINER_NAME_PREFIX,
config.getAdapterContainerImage());
this.config = config;
- dataSourceEnvironment =
DatabaseTypedSPILoader.getService(DataSourceEnvironment.class, databaseType);
+ storageContainerConnectOption =
DatabaseTypedSPILoader.getService(StorageContainerOption.class,
databaseType).getConnectOption();
}
@Override
@@ -63,7 +64,7 @@ public final class ShardingSphereProxyDockerContainer extends
DockerITContainer
addEnv("TZ", "UTC");
mapResources(config.getMountedResources());
setWaitStrategy(new JdbcConnectCheckingWaitStrategy(() ->
DriverManager.getConnection(
- dataSourceEnvironment.getURL(getHost(), getMappedPort(3307),
config.getProxyDataSourceName()), ProxyContainerConstants.USER,
ProxyContainerConstants.PASSWORD)));
+ storageContainerConnectOption.getURL(getHost(),
getMappedPort(3307), config.getProxyDataSourceName()),
ProxyContainerConstants.USER, ProxyContainerConstants.PASSWORD)));
withStartupTimeout(Duration.of(120L, ChronoUnit.SECONDS));
}
@@ -72,7 +73,7 @@ public final class ShardingSphereProxyDockerContainer extends
DockerITContainer
DataSource dataSource = targetDataSourceProvider.get();
if (null == dataSource) {
targetDataSourceProvider.set(StorageContainerUtils.generateDataSource(
- dataSourceEnvironment.getURL(getHost(),
getMappedPort(3307), config.getProxyDataSourceName()),
ProxyContainerConstants.USER, ProxyContainerConstants.PASSWORD, 2));
+ storageContainerConnectOption.getURL(getHost(),
getMappedPort(3307), config.getProxyDataSourceName()),
ProxyContainerConstants.USER, ProxyContainerConstants.PASSWORD, 2));
}
return targetDataSourceProvider.get();
}
diff --git
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/adapter/impl/ShardingSphereProxyEmbeddedContainer.java
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/adapter/impl/ShardingSphereProxyEmbeddedContainer.java
index 8082846db3f..45107d5e4fd 100644
---
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/adapter/impl/ShardingSphereProxyEmbeddedContainer.java
+++
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/adapter/impl/ShardingSphereProxyEmbeddedContainer.java
@@ -37,11 +37,12 @@ import
org.apache.shardingsphere.test.e2e.env.container.adapter.AdapterContainer
import
org.apache.shardingsphere.test.e2e.env.container.adapter.config.AdaptorContainerConfiguration;
import
org.apache.shardingsphere.test.e2e.env.container.constants.ProxyContainerConstants;
import
org.apache.shardingsphere.test.e2e.env.container.constants.StorageContainerConstants;
+import
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerConnectOption;
+import
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerOption;
import
org.apache.shardingsphere.test.e2e.env.container.storage.type.NativeStorageContainer;
import
org.apache.shardingsphere.test.e2e.env.container.util.JdbcConnectCheckingWaitStrategy;
import
org.apache.shardingsphere.test.e2e.env.container.util.StorageContainerUtils;
import org.apache.shardingsphere.test.e2e.env.runtime.E2ETestEnvironment;
-import
org.apache.shardingsphere.test.e2e.env.runtime.datasource.DataSourceEnvironment;
import org.testcontainers.containers.GenericContainer;
import org.testcontainers.lifecycle.Startable;
import org.testcontainers.utility.Base58;
@@ -210,8 +211,8 @@ public final class ShardingSphereProxyEmbeddedContainer
implements EmbeddedITCon
public DataSource getTargetDataSource(final String serverLists) {
DataSource dataSource = targetDataSourceProvider.get();
if (null == dataSource) {
- DataSourceEnvironment dataSourceEnvironment =
DatabaseTypedSPILoader.getService(DataSourceEnvironment.class, databaseType);
-
targetDataSourceProvider.set(StorageContainerUtils.generateDataSource(dataSourceEnvironment.getURL(
+ StorageContainerConnectOption storageContainerConnectOption =
DatabaseTypedSPILoader.getService(StorageContainerOption.class,
databaseType).getConnectOption();
+
targetDataSourceProvider.set(StorageContainerUtils.generateDataSource(storageContainerConnectOption.getURL(
"127.0.0.1", 3307, config.getProxyDataSourceName()),
ProxyContainerConstants.USER, ProxyContainerConstants.PASSWORD, 2));
}
return targetDataSourceProvider.get();
diff --git
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/mount/MountConfigurationResourceGenerator.java
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/mount/MountConfigurationResourceGenerator.java
index a58fcc2b3d4..ddb64f9c6d9 100644
---
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/mount/MountConfigurationResourceGenerator.java
+++
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/mount/MountConfigurationResourceGenerator.java
@@ -18,7 +18,8 @@
package org.apache.shardingsphere.test.e2e.env.container.storage.mount;
import lombok.RequiredArgsConstructor;
-import
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerOption;
+import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
+import
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerCreateOption;
import java.io.File;
import java.util.Collection;
@@ -31,7 +32,9 @@ import java.util.Map;
@RequiredArgsConstructor
public final class MountConfigurationResourceGenerator {
- private final StorageContainerOption option;
+ private final DatabaseType databaseType;
+
+ private final StorageContainerCreateOption option;
/**
* Generate mount configuration resource map.
@@ -46,8 +49,8 @@ public final class MountConfigurationResourceGenerator {
for (String each : mountedConfigResources) {
String fileName = new File(each).getName();
String configFile = option.getSupportedMajorVersions().isEmpty()
- ? String.format("container/%s/cnf/%s",
option.getDatabaseType().toLowerCase(), fileName)
- : String.format("container/%s/cnf/%d/%s",
option.getDatabaseType().toLowerCase(), majorVersion, fileName);
+ ? String.format("container/%s/cnf/%s",
databaseType.getType().toLowerCase(), fileName)
+ : String.format("container/%s/cnf/%d/%s",
databaseType.getType().toLowerCase(), majorVersion, fileName);
result.put(getToBeMountedConfigurationFile(configFile, scenario),
each);
}
return result;
diff --git
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/mount/MountSQLResourceGenerator.java
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/mount/MountSQLResourceGenerator.java
index 0e5f742cc71..6dbda731984 100644
---
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/mount/MountSQLResourceGenerator.java
+++
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/mount/MountSQLResourceGenerator.java
@@ -18,7 +18,8 @@
package org.apache.shardingsphere.test.e2e.env.container.storage.mount;
import lombok.RequiredArgsConstructor;
-import
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerOption;
+import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
+import
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerCreateOption;
import
org.apache.shardingsphere.test.e2e.env.runtime.type.scenario.path.ScenarioDataPath;
import
org.apache.shardingsphere.test.e2e.env.runtime.type.scenario.path.ScenarioDataPath.Type;
@@ -45,7 +46,9 @@ public final class MountSQLResourceGenerator {
private static final String TO_BE_MOUNTED_EXPECTED_SCENARIO_SQL_FILE =
"60-scenario-expected-init.sql";
- private final StorageContainerOption option;
+ private final DatabaseType databaseType;
+
+ private final StorageContainerCreateOption option;
/**
* Generate mount SQL resource map.
@@ -59,7 +62,7 @@ public final class MountSQLResourceGenerator {
for (String each : TO_BE_MOUNTED_COMMON_SQL_FILES) {
findToBeMountedCommonSQLFile(each).ifPresent(optional ->
toBeMountedSQLFiles.add("/" + optional));
}
- String toBeMountedStandardEnvSQLFilePath =
String.format("env/container/%s/init-sql/%s",
option.getDatabaseType().toLowerCase(), TO_BE_MOUNTED_STANDARD_ENV_SQL_FILE);
+ String toBeMountedStandardEnvSQLFilePath =
String.format("env/container/%s/init-sql/%s",
databaseType.getType().toLowerCase(), TO_BE_MOUNTED_STANDARD_ENV_SQL_FILE);
if (null !=
Thread.currentThread().getContextClassLoader().getResource(toBeMountedStandardEnvSQLFilePath))
{
toBeMountedSQLFiles.add("/" + toBeMountedStandardEnvSQLFilePath);
}
@@ -73,22 +76,22 @@ public final class MountSQLResourceGenerator {
}
private Optional<String> findToBeMountedCommonSQLFile(final String
toBeMountedSQLFile) {
- String toBeMountedFilePath = String.format("container/%s/init-sql/%s",
option.getDatabaseType().toLowerCase(), toBeMountedSQLFile);
+ String toBeMountedFilePath = String.format("container/%s/init-sql/%s",
databaseType.getType().toLowerCase(), toBeMountedSQLFile);
return null ==
Thread.currentThread().getContextClassLoader().getResource(toBeMountedFilePath)
? Optional.empty() : Optional.of(toBeMountedFilePath);
}
private Optional<String> getToBeMountedAdditionalEnvSQLFile(final String
sqlFile) {
- String toBeMountedFilePath =
String.format("env/container/%s/init-sql/%s",
option.getDatabaseType().toLowerCase(), sqlFile);
+ String toBeMountedFilePath =
String.format("env/container/%s/init-sql/%s",
databaseType.getType().toLowerCase(), sqlFile);
return null ==
Thread.currentThread().getContextClassLoader().getResource(toBeMountedFilePath)
? Optional.empty() : Optional.of(toBeMountedFilePath);
}
private Collection<String> getToBeMountedScenarioSQLFiles(final String
scenario) {
Collection<String> result = new LinkedList<>();
- String actualScenarioFile = new
ScenarioDataPath(scenario).getInitSQLResourcePath(Type.ACTUAL,
option.getType()) + "/" + TO_BE_MOUNTED_ACTUAL_SCENARIO_SQL_FILE;
+ String actualScenarioFile = new
ScenarioDataPath(scenario).getInitSQLResourcePath(Type.ACTUAL, databaseType) +
"/" + TO_BE_MOUNTED_ACTUAL_SCENARIO_SQL_FILE;
if (null !=
Thread.currentThread().getContextClassLoader().getResource(actualScenarioFile))
{
result.add(actualScenarioFile);
}
- String expectedScenarioFile = new
ScenarioDataPath(scenario).getInitSQLResourcePath(Type.EXPECTED,
option.getType()) + "/" + TO_BE_MOUNTED_EXPECTED_SCENARIO_SQL_FILE;
+ String expectedScenarioFile = new
ScenarioDataPath(scenario).getInitSQLResourcePath(Type.EXPECTED, databaseType)
+ "/" + TO_BE_MOUNTED_EXPECTED_SCENARIO_SQL_FILE;
if (null !=
Thread.currentThread().getContextClassLoader().getResource(expectedScenarioFile))
{
result.add(expectedScenarioFile);
}
diff --git
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/runtime/datasource/DataSourceEnvironment.java
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/StorageContainerConnectOption.java
similarity index 81%
rename from
test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/runtime/datasource/DataSourceEnvironment.java
rename to
test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/StorageContainerConnectOption.java
index 61f8d37d6c6..0b5189775b2 100644
---
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/runtime/datasource/DataSourceEnvironment.java
+++
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/StorageContainerConnectOption.java
@@ -15,16 +15,12 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.test.e2e.env.runtime.datasource;
-
-import org.apache.shardingsphere.database.connector.core.spi.DatabaseTypedSPI;
-import org.apache.shardingsphere.infra.spi.annotation.SingletonSPI;
+package org.apache.shardingsphere.test.e2e.env.container.storage.option;
/**
- * Data source environment.
+ * Storage container connect option.
*/
-@SingletonSPI
-public interface DataSourceEnvironment extends DatabaseTypedSPI {
+public interface StorageContainerConnectOption {
/**
* Get driver class name.
diff --git
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/StorageContainerOption.java
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/StorageContainerCreateOption.java
similarity index 92%
copy from
test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/StorageContainerOption.java
copy to
test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/StorageContainerCreateOption.java
index 4992ce9e9ca..6082b99595a 100644
---
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/StorageContainerOption.java
+++
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/StorageContainerCreateOption.java
@@ -17,19 +17,15 @@
package org.apache.shardingsphere.test.e2e.env.container.storage.option;
-import org.apache.shardingsphere.database.connector.core.spi.DatabaseTypedSPI;
-import org.apache.shardingsphere.infra.spi.annotation.SingletonSPI;
-
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Optional;
/**
- * Storage container option.
+ * Storage container create option.
*/
-@SingletonSPI
-public interface StorageContainerOption extends DatabaseTypedSPI {
+public interface StorageContainerCreateOption {
/**
* Get container port.
diff --git
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/StorageContainerOption.java
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/StorageContainerOption.java
index 4992ce9e9ca..ada1d0a8bf0 100644
---
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/StorageContainerOption.java
+++
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/StorageContainerOption.java
@@ -20,113 +20,23 @@ package
org.apache.shardingsphere.test.e2e.env.container.storage.option;
import org.apache.shardingsphere.database.connector.core.spi.DatabaseTypedSPI;
import org.apache.shardingsphere.infra.spi.annotation.SingletonSPI;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-
/**
- * Storage container option.
+ * Storage container create option.
*/
@SingletonSPI
public interface StorageContainerOption extends DatabaseTypedSPI {
/**
- * Get container port.
- *
- * @return container port
- */
- int getPort();
-
- /**
- * Get default container image name.
- *
- * @return default container image name
- */
- String getDefaultImageName();
-
- /**
- * Get container command.
- *
- * @return container command
- */
- String getCommand();
-
- /**
- * Get container environments.
- *
- * @return container environments
- */
- Map<String, String> getEnvironments();
-
- /**
- * Get mounted configuration resources.
- *
- * @return mounted configuration resources
- */
- Collection<String> getMountedConfigurationResources();
-
- /**
- * Get additional env mounted SQL resources.
- *
- * @param majorVersion major version
- * @return additional env mounted SQL resources
- */
- Collection<String> getAdditionalEnvMountedSQLResources(int majorVersion);
-
- /**
- * Get supported major versions.
- *
- * @return supported major versions
- */
- List<Integer> getSupportedMajorVersions();
-
- /**
- * Whether with privileged mode.
- *
- * @return is with privileged mode or not
- */
- boolean withPrivilegedMode();
-
- /**
- * Get the default database name.
- *
- * @param majorVersion major version
- * @return default database name
- */
- Optional<String> getDefaultDatabaseName(int majorVersion);
-
- /**
- * Get container startup timeout seconds.
- *
- * @return container startup timeout seconds
- */
- long getStartupTimeoutSeconds();
-
- /**
- * Whether support docker entrypoint.
- *
- * @return is support docker entrypoint or not
- */
- default boolean isSupportDockerEntrypoint() {
- return true;
- }
-
- /**
- * Get default user when unsupported docker entrypoint.
+ * Get storage container create option.
*
- * @return default user
+ * @return storage container create option
*/
- default Optional<String> getDefaultUserWhenUnsupportedDockerEntrypoint() {
- return Optional.empty();
- }
+ StorageContainerCreateOption getCreateOption();
/**
- * Get default password when unsupported docker entrypoint.
+ * Get storage container connect option.
*
- * @return default password
+ * @return storage container connect option
*/
- default Optional<String>
getDefaultPasswordWhenUnsupportedDockerEntrypoint() {
- return Optional.empty();
- }
+ StorageContainerConnectOption getConnectOption();
}
diff --git
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/runtime/datasource/dialect/HiveDataSourceEnvironment.java
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/hive/HiveStorageContainerConnectOption.java
similarity index 78%
copy from
test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/runtime/datasource/dialect/HiveDataSourceEnvironment.java
copy to
test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/hive/HiveStorageContainerConnectOption.java
index f9dfb02a5c7..2282546a668 100644
---
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/runtime/datasource/dialect/HiveDataSourceEnvironment.java
+++
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/hive/HiveStorageContainerConnectOption.java
@@ -15,14 +15,14 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.test.e2e.env.runtime.datasource.dialect;
+package
org.apache.shardingsphere.test.e2e.env.container.storage.option.dialect.hive;
-import
org.apache.shardingsphere.test.e2e.env.runtime.datasource.DataSourceEnvironment;
+import
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerConnectOption;
/**
- * Data source environment for Hive.
+ * Storage container connect option for Hive.
*/
-public final class HiveDataSourceEnvironment implements DataSourceEnvironment {
+public final class HiveStorageContainerConnectOption implements
StorageContainerConnectOption {
@Override
public String getDriverClassName() {
@@ -38,9 +38,4 @@ public final class HiveDataSourceEnvironment implements
DataSourceEnvironment {
public String getURL(final String host, final int port, final String
dataSourceName) {
return
String.format("jdbc:hive2://%s:%s/%s?ssl=false&useUnicode=true&characterEncoding=utf-8",
host, port, dataSourceName);
}
-
- @Override
- public String getDatabaseType() {
- return "Hive";
- }
}
diff --git
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/HiveStorageContainerOption.java
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/hive/HiveStorageContainerCreateOption.java
similarity index 92%
rename from
test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/HiveStorageContainerOption.java
rename to
test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/hive/HiveStorageContainerCreateOption.java
index 301b3dd2092..d3e17b03375 100644
---
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/HiveStorageContainerOption.java
+++
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/hive/HiveStorageContainerCreateOption.java
@@ -15,9 +15,9 @@
* limitations under the License.
*/
-package
org.apache.shardingsphere.test.e2e.env.container.storage.option.dialect;
+package
org.apache.shardingsphere.test.e2e.env.container.storage.option.dialect.hive;
-import
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerOption;
+import
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerCreateOption;
import java.util.Collection;
import java.util.Collections;
@@ -27,9 +27,9 @@ import java.util.Map;
import java.util.Optional;
/**
- * Storage container option for Hive.
+ * Storage container craete option for Hive.
*/
-public final class HiveStorageContainerOption implements
StorageContainerOption {
+public final class HiveStorageContainerCreateOption implements
StorageContainerCreateOption {
@Override
public int getPort() {
@@ -99,9 +99,4 @@ public final class HiveStorageContainerOption implements
StorageContainerOption
public Optional<String>
getDefaultPasswordWhenUnsupportedDockerEntrypoint() {
return Optional.of("");
}
-
- @Override
- public String getDatabaseType() {
- return "Hive";
- }
}
diff --git
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/runtime/datasource/dialect/HiveDataSourceEnvironment.java
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/hive/HiveStorageContainerOption.java
similarity index 53%
rename from
test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/runtime/datasource/dialect/HiveDataSourceEnvironment.java
rename to
test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/hive/HiveStorageContainerOption.java
index f9dfb02a5c7..0b271ba3f0d 100644
---
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/runtime/datasource/dialect/HiveDataSourceEnvironment.java
+++
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/hive/HiveStorageContainerOption.java
@@ -15,29 +15,22 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.test.e2e.env.runtime.datasource.dialect;
+package
org.apache.shardingsphere.test.e2e.env.container.storage.option.dialect.hive;
-import
org.apache.shardingsphere.test.e2e.env.runtime.datasource.DataSourceEnvironment;
+import lombok.Getter;
+import
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerConnectOption;
+import
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerCreateOption;
+import
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerOption;
/**
- * Data source environment for Hive.
+ * Storage container option for Hive.
*/
-public final class HiveDataSourceEnvironment implements DataSourceEnvironment {
+@Getter
+public final class HiveStorageContainerOption implements
StorageContainerOption {
- @Override
- public String getDriverClassName() {
- return "org.apache.hive.jdbc.HiveDriver";
- }
+ private final StorageContainerCreateOption createOption = new
HiveStorageContainerCreateOption();
- @Override
- public String getURL(final String host, final int port) {
- return String.format("jdbc:hive2://%s:%s/", host, port);
- }
-
- @Override
- public String getURL(final String host, final int port, final String
dataSourceName) {
- return
String.format("jdbc:hive2://%s:%s/%s?ssl=false&useUnicode=true&characterEncoding=utf-8",
host, port, dataSourceName);
- }
+ private final StorageContainerConnectOption connectOption = new
HiveStorageContainerConnectOption();
@Override
public String getDatabaseType() {
diff --git
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/runtime/datasource/dialect/MariaDBDataSourceEnvironment.java
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/mariadb/MariaDBStorageContainerConnectOption.java
similarity index 80%
rename from
test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/runtime/datasource/dialect/MariaDBDataSourceEnvironment.java
rename to
test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/mariadb/MariaDBStorageContainerConnectOption.java
index b2aca9d8751..4e48b47f957 100644
---
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/runtime/datasource/dialect/MariaDBDataSourceEnvironment.java
+++
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/mariadb/MariaDBStorageContainerConnectOption.java
@@ -15,14 +15,14 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.test.e2e.env.runtime.datasource.dialect;
+package
org.apache.shardingsphere.test.e2e.env.container.storage.option.dialect.mariadb;
-import
org.apache.shardingsphere.test.e2e.env.runtime.datasource.DataSourceEnvironment;
+import
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerConnectOption;
/**
- * Data source environment for MariaDB.
+ * Storage container connect option for MariaDB.
*/
-public final class MariaDBDataSourceEnvironment implements
DataSourceEnvironment {
+public final class MariaDBStorageContainerConnectOption implements
StorageContainerConnectOption {
@Override
public String getDriverClassName() {
@@ -42,9 +42,4 @@ public final class MariaDBDataSourceEnvironment implements
DataSourceEnvironment
private String getQueryProperties() {
return
"useSSL=false&useServerPrepStmts=true&useLocalSessionState=true&characterEncoding=utf-8&allowMultiQueries=true&rewriteBatchedStatements=true";
}
-
- @Override
- public String getDatabaseType() {
- return "MariaDB";
- }
}
diff --git
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/MariaDBStorageContainerOption.java
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/mariadb/MariaDBStorageContainerCreateOption.java
similarity index 90%
rename from
test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/MariaDBStorageContainerOption.java
rename to
test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/mariadb/MariaDBStorageContainerCreateOption.java
index e95b10316ca..657eedcc789 100644
---
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/MariaDBStorageContainerOption.java
+++
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/mariadb/MariaDBStorageContainerCreateOption.java
@@ -15,9 +15,9 @@
* limitations under the License.
*/
-package
org.apache.shardingsphere.test.e2e.env.container.storage.option.dialect;
+package
org.apache.shardingsphere.test.e2e.env.container.storage.option.dialect.mariadb;
-import
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerOption;
+import
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerCreateOption;
import org.apache.shardingsphere.test.e2e.env.container.util.ContainerUtils;
import java.util.Collection;
@@ -28,9 +28,9 @@ import java.util.Map;
import java.util.Optional;
/**
- * Storage container option for MariaDB.
+ * Storage container craete option for MariaDB.
*/
-public final class MariaDBStorageContainerOption implements
StorageContainerOption {
+public final class MariaDBStorageContainerCreateOption implements
StorageContainerCreateOption {
@Override
public int getPort() {
@@ -84,9 +84,4 @@ public final class MariaDBStorageContainerOption implements
StorageContainerOpti
public long getStartupTimeoutSeconds() {
return 120L;
}
-
- @Override
- public String getDatabaseType() {
- return "MariaDB";
- }
}
diff --git
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/runtime/datasource/dialect/OpenGaussDataSourceEnvironment.java
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/mariadb/MariaDBStorageContainerOption.java
similarity index 53%
copy from
test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/runtime/datasource/dialect/OpenGaussDataSourceEnvironment.java
copy to
test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/mariadb/MariaDBStorageContainerOption.java
index ccada15dc66..e2503a49e01 100644
---
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/runtime/datasource/dialect/OpenGaussDataSourceEnvironment.java
+++
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/mariadb/MariaDBStorageContainerOption.java
@@ -15,32 +15,25 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.test.e2e.env.runtime.datasource.dialect;
+package
org.apache.shardingsphere.test.e2e.env.container.storage.option.dialect.mariadb;
-import
org.apache.shardingsphere.test.e2e.env.runtime.datasource.DataSourceEnvironment;
+import lombok.Getter;
+import
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerConnectOption;
+import
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerCreateOption;
+import
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerOption;
/**
- * Data source environment for openGauss.
+ * Storage container option for MariaDB.
*/
-public final class OpenGaussDataSourceEnvironment implements
DataSourceEnvironment {
+@Getter
+public final class MariaDBStorageContainerOption implements
StorageContainerOption {
- @Override
- public String getDriverClassName() {
- return "org.opengauss.Driver";
- }
+ private final StorageContainerCreateOption createOption = new
MariaDBStorageContainerCreateOption();
- @Override
- public String getURL(final String host, final int port) {
- return String.format("jdbc:opengauss://%s:%s/", host, port);
- }
-
- @Override
- public String getURL(final String host, final int port, final String
dataSourceName) {
- return String.format("jdbc:opengauss://%s:%s/%s?batchMode=OFF", host,
port, dataSourceName);
- }
+ private final StorageContainerConnectOption connectOption = new
MariaDBStorageContainerConnectOption();
@Override
public String getDatabaseType() {
- return "openGauss";
+ return "MariaDB";
}
}
diff --git
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/runtime/datasource/dialect/MySQLDataSourceEnvironment.java
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/mysql/MySQLStorageContainerConnectOption.java
similarity index 81%
rename from
test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/runtime/datasource/dialect/MySQLDataSourceEnvironment.java
rename to
test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/mysql/MySQLStorageContainerConnectOption.java
index e4a4c00fd3d..8f443ad93eb 100644
---
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/runtime/datasource/dialect/MySQLDataSourceEnvironment.java
+++
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/mysql/MySQLStorageContainerConnectOption.java
@@ -15,14 +15,14 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.test.e2e.env.runtime.datasource.dialect;
+package
org.apache.shardingsphere.test.e2e.env.container.storage.option.dialect.mysql;
-import
org.apache.shardingsphere.test.e2e.env.runtime.datasource.DataSourceEnvironment;
+import
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerConnectOption;
/**
- * Data source environment for MySQL.
+ * Storage container connect option for MySQL.
*/
-public final class MySQLDataSourceEnvironment implements DataSourceEnvironment
{
+public final class MySQLStorageContainerConnectOption implements
StorageContainerConnectOption {
@Override
public String getDriverClassName() {
@@ -43,9 +43,4 @@ public final class MySQLDataSourceEnvironment implements
DataSourceEnvironment {
return
"useSSL=true&requireSSL=true&enabledTLSProtocols=TLSv1.2,TLSv1.3&verifyServerCertificate=false"
+
"&useServerPrepStmts=true&useLocalSessionState=true&characterEncoding=utf-8&allowPublicKeyRetrieval=true&allowMultiQueries=true&rewriteBatchedStatements=true";
}
-
- @Override
- public String getDatabaseType() {
- return "MySQL";
- }
}
diff --git
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/MySQLStorageContainerOption.java
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/mysql/MySQLStorageContainerCreateOption.java
similarity index 91%
rename from
test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/MySQLStorageContainerOption.java
rename to
test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/mysql/MySQLStorageContainerCreateOption.java
index f8e3948f573..c67ae95a737 100644
---
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/MySQLStorageContainerOption.java
+++
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/mysql/MySQLStorageContainerCreateOption.java
@@ -15,9 +15,9 @@
* limitations under the License.
*/
-package
org.apache.shardingsphere.test.e2e.env.container.storage.option.dialect;
+package
org.apache.shardingsphere.test.e2e.env.container.storage.option.dialect.mysql;
-import
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerOption;
+import
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerCreateOption;
import org.apache.shardingsphere.test.e2e.env.container.util.ContainerUtils;
import java.util.Arrays;
@@ -30,9 +30,9 @@ import java.util.Map;
import java.util.Optional;
/**
- * Storage container option for MySQL.
+ * Storage container craete option for MySQL.
*/
-public final class MySQLStorageContainerOption implements
StorageContainerOption {
+public final class MySQLStorageContainerCreateOption implements
StorageContainerCreateOption {
@Override
public int getPort() {
@@ -90,9 +90,4 @@ public final class MySQLStorageContainerOption implements
StorageContainerOption
public long getStartupTimeoutSeconds() {
return 120L;
}
-
- @Override
- public String getDatabaseType() {
- return "MySQL";
- }
}
diff --git
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/runtime/datasource/dialect/OpenGaussDataSourceEnvironment.java
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/mysql/MySQLStorageContainerOption.java
similarity index 53%
copy from
test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/runtime/datasource/dialect/OpenGaussDataSourceEnvironment.java
copy to
test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/mysql/MySQLStorageContainerOption.java
index ccada15dc66..027743b928e 100644
---
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/runtime/datasource/dialect/OpenGaussDataSourceEnvironment.java
+++
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/mysql/MySQLStorageContainerOption.java
@@ -15,32 +15,25 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.test.e2e.env.runtime.datasource.dialect;
+package
org.apache.shardingsphere.test.e2e.env.container.storage.option.dialect.mysql;
-import
org.apache.shardingsphere.test.e2e.env.runtime.datasource.DataSourceEnvironment;
+import lombok.Getter;
+import
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerConnectOption;
+import
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerCreateOption;
+import
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerOption;
/**
- * Data source environment for openGauss.
+ * Storage container option for MySQL.
*/
-public final class OpenGaussDataSourceEnvironment implements
DataSourceEnvironment {
+@Getter
+public final class MySQLStorageContainerOption implements
StorageContainerOption {
- @Override
- public String getDriverClassName() {
- return "org.opengauss.Driver";
- }
+ private final StorageContainerCreateOption createOption = new
MySQLStorageContainerCreateOption();
- @Override
- public String getURL(final String host, final int port) {
- return String.format("jdbc:opengauss://%s:%s/", host, port);
- }
-
- @Override
- public String getURL(final String host, final int port, final String
dataSourceName) {
- return String.format("jdbc:opengauss://%s:%s/%s?batchMode=OFF", host,
port, dataSourceName);
- }
+ private final StorageContainerConnectOption connectOption = new
MySQLStorageContainerConnectOption();
@Override
public String getDatabaseType() {
- return "openGauss";
+ return "MySQL";
}
}
diff --git
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/runtime/datasource/dialect/OpenGaussDataSourceEnvironment.java
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/opengauss/OpenGaussStorageContainerConnectOption.java
similarity index 77%
copy from
test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/runtime/datasource/dialect/OpenGaussDataSourceEnvironment.java
copy to
test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/opengauss/OpenGaussStorageContainerConnectOption.java
index ccada15dc66..1c55ecfca92 100644
---
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/runtime/datasource/dialect/OpenGaussDataSourceEnvironment.java
+++
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/opengauss/OpenGaussStorageContainerConnectOption.java
@@ -15,14 +15,14 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.test.e2e.env.runtime.datasource.dialect;
+package
org.apache.shardingsphere.test.e2e.env.container.storage.option.dialect.opengauss;
-import
org.apache.shardingsphere.test.e2e.env.runtime.datasource.DataSourceEnvironment;
+import
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerConnectOption;
/**
- * Data source environment for openGauss.
+ * Storage container connect option for openGauss.
*/
-public final class OpenGaussDataSourceEnvironment implements
DataSourceEnvironment {
+public final class OpenGaussStorageContainerConnectOption implements
StorageContainerConnectOption {
@Override
public String getDriverClassName() {
@@ -38,9 +38,4 @@ public final class OpenGaussDataSourceEnvironment implements
DataSourceEnvironme
public String getURL(final String host, final int port, final String
dataSourceName) {
return String.format("jdbc:opengauss://%s:%s/%s?batchMode=OFF", host,
port, dataSourceName);
}
-
- @Override
- public String getDatabaseType() {
- return "openGauss";
- }
}
diff --git
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/OpenGaussStorageContainerOption.java
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/opengauss/OpenGaussStorageContainerCreateOption.java
similarity index 90%
rename from
test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/OpenGaussStorageContainerOption.java
rename to
test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/opengauss/OpenGaussStorageContainerCreateOption.java
index f53c539615a..d32cc177c0d 100644
---
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/OpenGaussStorageContainerOption.java
+++
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/opengauss/OpenGaussStorageContainerCreateOption.java
@@ -15,10 +15,10 @@
* limitations under the License.
*/
-package
org.apache.shardingsphere.test.e2e.env.container.storage.option.dialect;
+package
org.apache.shardingsphere.test.e2e.env.container.storage.option.dialect.opengauss;
import
org.apache.shardingsphere.test.e2e.env.container.constants.StorageContainerConstants;
-import
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerOption;
+import
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerCreateOption;
import java.util.Arrays;
import java.util.Collection;
@@ -28,9 +28,9 @@ import java.util.Map;
import java.util.Optional;
/**
- * Storage container option for openGauss.
+ * Storage container craete option for openGauss.
*/
-public final class OpenGaussStorageContainerOption implements
StorageContainerOption {
+public final class OpenGaussStorageContainerCreateOption implements
StorageContainerCreateOption {
@Override
public int getPort() {
@@ -81,9 +81,4 @@ public final class OpenGaussStorageContainerOption implements
StorageContainerOp
public long getStartupTimeoutSeconds() {
return 120L;
}
-
- @Override
- public String getDatabaseType() {
- return "openGauss";
- }
}
diff --git
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/runtime/datasource/dialect/OpenGaussDataSourceEnvironment.java
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/opengauss/OpenGaussStorageContainerOption.java
similarity index 54%
rename from
test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/runtime/datasource/dialect/OpenGaussDataSourceEnvironment.java
rename to
test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/opengauss/OpenGaussStorageContainerOption.java
index ccada15dc66..c381870526d 100644
---
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/runtime/datasource/dialect/OpenGaussDataSourceEnvironment.java
+++
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/opengauss/OpenGaussStorageContainerOption.java
@@ -15,29 +15,22 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.test.e2e.env.runtime.datasource.dialect;
+package
org.apache.shardingsphere.test.e2e.env.container.storage.option.dialect.opengauss;
-import
org.apache.shardingsphere.test.e2e.env.runtime.datasource.DataSourceEnvironment;
+import lombok.Getter;
+import
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerConnectOption;
+import
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerCreateOption;
+import
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerOption;
/**
- * Data source environment for openGauss.
+ * Storage container option for openGauss.
*/
-public final class OpenGaussDataSourceEnvironment implements
DataSourceEnvironment {
+@Getter
+public final class OpenGaussStorageContainerOption implements
StorageContainerOption {
- @Override
- public String getDriverClassName() {
- return "org.opengauss.Driver";
- }
+ private final StorageContainerCreateOption createOption = new
OpenGaussStorageContainerCreateOption();
- @Override
- public String getURL(final String host, final int port) {
- return String.format("jdbc:opengauss://%s:%s/", host, port);
- }
-
- @Override
- public String getURL(final String host, final int port, final String
dataSourceName) {
- return String.format("jdbc:opengauss://%s:%s/%s?batchMode=OFF", host,
port, dataSourceName);
- }
+ private final StorageContainerConnectOption connectOption = new
OpenGaussStorageContainerConnectOption();
@Override
public String getDatabaseType() {
diff --git
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/runtime/datasource/dialect/PostgreSQLDataSourceEnvironment.java
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/postgresql/PostgreSQLStorageContainerConnectOption.java
similarity index 77%
copy from
test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/runtime/datasource/dialect/PostgreSQLDataSourceEnvironment.java
copy to
test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/postgresql/PostgreSQLStorageContainerConnectOption.java
index 6b5ecf76150..a7719e892e8 100644
---
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/runtime/datasource/dialect/PostgreSQLDataSourceEnvironment.java
+++
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/postgresql/PostgreSQLStorageContainerConnectOption.java
@@ -15,14 +15,14 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.test.e2e.env.runtime.datasource.dialect;
+package
org.apache.shardingsphere.test.e2e.env.container.storage.option.dialect.postgresql;
-import
org.apache.shardingsphere.test.e2e.env.runtime.datasource.DataSourceEnvironment;
+import
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerConnectOption;
/**
- * Data source environment for PostgreSQL.
+ * Storage container connect option for PostgreSQL.
*/
-public final class PostgreSQLDataSourceEnvironment implements
DataSourceEnvironment {
+public final class PostgreSQLStorageContainerConnectOption implements
StorageContainerConnectOption {
@Override
public String getDriverClassName() {
@@ -38,9 +38,4 @@ public final class PostgreSQLDataSourceEnvironment implements
DataSourceEnvironm
public String getURL(final String host, final int port, final String
dataSourceName) {
return
String.format("jdbc:postgresql://%s:%s/%s?ssl=on&sslmode=prefer", host, port,
dataSourceName);
}
-
- @Override
- public String getDatabaseType() {
- return "PostgreSQL";
- }
}
diff --git
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/PostgreSQLStorageContainerOption.java
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/postgresql/PostgreSQLStorageContainerCreateOption.java
similarity index 90%
rename from
test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/PostgreSQLStorageContainerOption.java
rename to
test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/postgresql/PostgreSQLStorageContainerCreateOption.java
index 4446ffe4fd8..e48aac92737 100644
---
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/PostgreSQLStorageContainerOption.java
+++
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/postgresql/PostgreSQLStorageContainerCreateOption.java
@@ -15,10 +15,10 @@
* limitations under the License.
*/
-package
org.apache.shardingsphere.test.e2e.env.container.storage.option.dialect;
+package
org.apache.shardingsphere.test.e2e.env.container.storage.option.dialect.postgresql;
import
org.apache.shardingsphere.test.e2e.env.container.constants.StorageContainerConstants;
-import
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerOption;
+import
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerCreateOption;
import java.util.Collection;
import java.util.Collections;
@@ -28,9 +28,9 @@ import java.util.Map;
import java.util.Optional;
/**
- * Storage container option for PostgreSQL.
+ * Storage container craete option for PostgreSQL.
*/
-public final class PostgreSQLStorageContainerOption implements
StorageContainerOption {
+public final class PostgreSQLStorageContainerCreateOption implements
StorageContainerCreateOption {
@Override
public int getPort() {
@@ -84,9 +84,4 @@ public final class PostgreSQLStorageContainerOption
implements StorageContainerO
public long getStartupTimeoutSeconds() {
return 120L;
}
-
- @Override
- public String getDatabaseType() {
- return "PostgreSQL";
- }
}
diff --git
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/runtime/datasource/dialect/PostgreSQLDataSourceEnvironment.java
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/postgresql/PostgreSQLStorageContainerOption.java
similarity index 53%
rename from
test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/runtime/datasource/dialect/PostgreSQLDataSourceEnvironment.java
rename to
test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/postgresql/PostgreSQLStorageContainerOption.java
index 6b5ecf76150..a3be0e579a2 100644
---
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/runtime/datasource/dialect/PostgreSQLDataSourceEnvironment.java
+++
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/option/dialect/postgresql/PostgreSQLStorageContainerOption.java
@@ -15,29 +15,22 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.test.e2e.env.runtime.datasource.dialect;
+package
org.apache.shardingsphere.test.e2e.env.container.storage.option.dialect.postgresql;
-import
org.apache.shardingsphere.test.e2e.env.runtime.datasource.DataSourceEnvironment;
+import lombok.Getter;
+import
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerConnectOption;
+import
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerCreateOption;
+import
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerOption;
/**
- * Data source environment for PostgreSQL.
+ * Storage container option for PostgreSQL.
*/
-public final class PostgreSQLDataSourceEnvironment implements
DataSourceEnvironment {
+@Getter
+public final class PostgreSQLStorageContainerOption implements
StorageContainerOption {
- @Override
- public String getDriverClassName() {
- return "org.postgresql.Driver";
- }
+ private final StorageContainerCreateOption createOption = new
PostgreSQLStorageContainerCreateOption();
- @Override
- public String getURL(final String host, final int port) {
- return String.format("jdbc:postgresql://%s:%s/?ssl=on&sslmode=prefer",
host, port);
- }
-
- @Override
- public String getURL(final String host, final int port, final String
dataSourceName) {
- return
String.format("jdbc:postgresql://%s:%s/%s?ssl=on&sslmode=prefer", host, port,
dataSourceName);
- }
+ private final StorageContainerConnectOption connectOption = new
PostgreSQLStorageContainerConnectOption();
@Override
public String getDatabaseType() {
diff --git
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/type/DockerStorageContainer.java
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/type/DockerStorageContainer.java
index 26dd53e88b9..6d788e7164e 100644
---
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/type/DockerStorageContainer.java
+++
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/type/DockerStorageContainer.java
@@ -22,7 +22,6 @@ import com.google.common.base.Preconditions;
import com.google.common.base.Strings;
import lombok.Getter;
import lombok.SneakyThrows;
-import
org.apache.shardingsphere.database.connector.core.spi.DatabaseTypedSPILoader;
import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
import org.apache.shardingsphere.test.e2e.env.container.DockerITContainer;
import
org.apache.shardingsphere.test.e2e.env.container.constants.StorageContainerConstants;
@@ -34,7 +33,6 @@ import
org.apache.shardingsphere.test.e2e.env.container.util.DockerImageVersion;
import
org.apache.shardingsphere.test.e2e.env.container.util.JdbcConnectCheckingWaitStrategy;
import org.apache.shardingsphere.test.e2e.env.container.util.SQLScriptUtils;
import
org.apache.shardingsphere.test.e2e.env.container.util.StorageContainerUtils;
-import
org.apache.shardingsphere.test.e2e.env.runtime.datasource.DataSourceEnvironment;
import
org.apache.shardingsphere.test.e2e.env.runtime.type.scenario.database.DatabaseEnvironmentManager;
import
org.apache.shardingsphere.test.e2e.env.runtime.type.scenario.path.ScenarioDataPath.Type;
@@ -63,8 +61,6 @@ public final class DockerStorageContainer extends
DockerITContainer implements S
private final int majorVersion;
- private final DataSourceEnvironment dataSourceEnvironment;
-
@Getter
private final Map<String, DataSource> actualDataSourceMap = new
LinkedHashMap<>();
@@ -76,12 +72,11 @@ public final class DockerStorageContainer extends
DockerITContainer implements S
this.option = option;
this.scenario = scenario;
majorVersion = new
DockerImageVersion(getContainerImage(containerImage, option)).getMajorVersion();
- dataSourceEnvironment =
DatabaseTypedSPILoader.getService(DataSourceEnvironment.class,
option.getType());
}
private static String getContainerImage(final String containerImage, final
StorageContainerOption option) {
Preconditions.checkNotNull(option, "Can not support database type
`%s`", option.getDatabaseType());
- return Strings.isNullOrEmpty(containerImage) ?
option.getDefaultImageName() : containerImage;
+ return Strings.isNullOrEmpty(containerImage) ?
option.getCreateOption().getDefaultImageName() : containerImage;
}
@Override
@@ -96,56 +91,61 @@ public final class DockerStorageContainer extends
DockerITContainer implements S
}
private void setCommands() {
- String command = option.getCommand();
+ String command = option.getCreateOption().getCommand();
if (!Strings.isNullOrEmpty(command)) {
setCommand(command);
}
}
private void addEnvironments() {
- option.getEnvironments().forEach(this::addEnv);
+ option.getCreateOption().getEnvironments().forEach(this::addEnv);
}
private void mountConfigurations() {
- mapResources(new
MountConfigurationResourceGenerator(option).generate(majorVersion, scenario));
+ mapResources(new MountConfigurationResourceGenerator(option.getType(),
option.getCreateOption()).generate(majorVersion, scenario));
}
private void mountSQLFiles() {
- if (option.isSupportDockerEntrypoint()) {
- mapResources(new
MountSQLResourceGenerator(option).generate(majorVersion, scenario));
+ if (option.getCreateOption().isSupportDockerEntrypoint()) {
+ mapResources(new MountSQLResourceGenerator(option.getType(),
option.getCreateOption()).generate(majorVersion, scenario));
}
}
private void setPrivilegedMode() {
- if (option.withPrivilegedMode()) {
+ if (option.getCreateOption().withPrivilegedMode()) {
withPrivilegedMode(true);
}
}
private void setWaitStrategy() {
- String user = option.isSupportDockerEntrypoint() ?
StorageContainerConstants.CHECK_READY_USER :
option.getDefaultUserWhenUnsupportedDockerEntrypoint().orElse("");
- String password = option.isSupportDockerEntrypoint() ?
StorageContainerConstants.CHECK_READY_PASSWORD :
option.getDefaultPasswordWhenUnsupportedDockerEntrypoint().orElse("");
+ String user = option.getCreateOption().isSupportDockerEntrypoint()
+ ? StorageContainerConstants.CHECK_READY_USER
+ :
option.getCreateOption().getDefaultUserWhenUnsupportedDockerEntrypoint().orElse("");
+ String password = option.getCreateOption().isSupportDockerEntrypoint()
+ ? StorageContainerConstants.CHECK_READY_PASSWORD
+ :
option.getCreateOption().getDefaultPasswordWhenUnsupportedDockerEntrypoint().orElse("");
setWaitStrategy(new JdbcConnectCheckingWaitStrategy(() ->
DriverManager.getConnection(getURL(), user, password)));
-
withStartupTimeout(Duration.ofSeconds(option.getStartupTimeoutSeconds()));
+
withStartupTimeout(Duration.ofSeconds(option.getCreateOption().getStartupTimeoutSeconds()));
}
private String getURL() {
- return option.getDefaultDatabaseName(majorVersion)
- .map(optional -> dataSourceEnvironment.getURL("localhost",
getFirstMappedPort(), optional))
- .orElseGet(() -> dataSourceEnvironment.getURL("localhost",
getFirstMappedPort()));
+ return option.getCreateOption().getDefaultDatabaseName(majorVersion)
+ .map(optional -> option.getConnectOption().getURL("localhost",
getFirstMappedPort(), optional))
+ .orElseGet(() -> option.getConnectOption().getURL("localhost",
getFirstMappedPort()));
}
@SneakyThrows({SQLException.class, InterruptedException.class})
@Override
protected void containerIsStarted(final InspectContainerResponse
containerInfo) {
- if (option.isSupportDockerEntrypoint()) {
+ if (option.getCreateOption().isSupportDockerEntrypoint()) {
return;
}
Thread.sleep(10000L);
try (
- Connection connection =
DriverManager.getConnection(dataSourceEnvironment.getURL("localhost",
getFirstMappedPort()),
-
option.getDefaultUserWhenUnsupportedDockerEntrypoint().orElse(""),
option.getDefaultPasswordWhenUnsupportedDockerEntrypoint().orElse(""))) {
- for (String each : new
MountSQLResourceGenerator(option).generate(majorVersion, scenario).keySet()) {
+ Connection connection =
DriverManager.getConnection(option.getConnectOption().getURL("localhost",
getFirstMappedPort()),
+
option.getCreateOption().getDefaultUserWhenUnsupportedDockerEntrypoint().orElse(""),
+
option.getCreateOption().getDefaultPasswordWhenUnsupportedDockerEntrypoint().orElse("")))
{
+ for (String each : new MountSQLResourceGenerator(option.getType(),
option.getCreateOption()).generate(majorVersion, scenario).keySet()) {
SQLScriptUtils.execute(connection, each);
}
}
@@ -186,9 +186,8 @@ public final class DockerStorageContainer extends
DockerITContainer implements S
* @return JDBC URL
*/
public String getJdbcUrl(final String dataSourceName) {
- DataSourceEnvironment dataSourceEnvironment =
DatabaseTypedSPILoader.getService(DataSourceEnvironment.class,
option.getType());
- String toBeConnectedDataSourceName =
Strings.isNullOrEmpty(dataSourceName) ?
option.getDefaultDatabaseName(majorVersion).orElse("") : dataSourceName;
- return dataSourceEnvironment.getURL(getHost(), getMappedPort(),
toBeConnectedDataSourceName);
+ String toBeConnectedDataSourceName =
Strings.isNullOrEmpty(dataSourceName) ?
option.getCreateOption().getDefaultDatabaseName(majorVersion).orElse("") :
dataSourceName;
+ return option.getConnectOption().getURL(getHost(), getMappedPort(),
toBeConnectedDataSourceName);
}
/**
@@ -197,7 +196,7 @@ public final class DockerStorageContainer extends
DockerITContainer implements S
* @return exposed database container port
*/
public int getExposedPort() {
- return option.getPort();
+ return option.getCreateOption().getPort();
}
/**
diff --git
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/type/NativeStorageContainer.java
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/type/NativeStorageContainer.java
index d129cf00869..f5507421597 100644
---
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/type/NativeStorageContainer.java
+++
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/type/NativeStorageContainer.java
@@ -24,11 +24,11 @@ import
org.apache.shardingsphere.database.connector.core.type.DatabaseType;
import
org.apache.shardingsphere.test.e2e.env.container.constants.StorageContainerConstants;
import
org.apache.shardingsphere.test.e2e.env.container.storage.StorageContainer;
import
org.apache.shardingsphere.test.e2e.env.container.storage.mount.MountSQLResourceGenerator;
+import
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerConnectOption;
import
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerOption;
import org.apache.shardingsphere.test.e2e.env.container.util.SQLScriptUtils;
import
org.apache.shardingsphere.test.e2e.env.container.util.StorageContainerUtils;
import org.apache.shardingsphere.test.e2e.env.runtime.E2ETestEnvironment;
-import
org.apache.shardingsphere.test.e2e.env.runtime.datasource.DataSourceEnvironment;
import
org.apache.shardingsphere.test.e2e.env.runtime.type.NativeStorageEnvironment;
import
org.apache.shardingsphere.test.e2e.env.runtime.type.scenario.database.DatabaseEnvironmentManager;
import
org.apache.shardingsphere.test.e2e.env.runtime.type.scenario.path.ScenarioDataPath.Type;
@@ -77,9 +77,9 @@ public final class NativeStorageContainer implements
StorageContainer {
private void initDatabase() {
if (null != option) {
- DataSourceEnvironment dataSourceEnvironment =
DatabaseTypedSPILoader.getService(DataSourceEnvironment.class, databaseType);
- DataSource dataSource =
StorageContainerUtils.generateDataSource(dataSourceEnvironment.getURL(env.getHost(),
env.getPort()), env.getUser(), env.getPassword(), 2);
- new MountSQLResourceGenerator(option).generate(0,
scenario).keySet().forEach(each -> SQLScriptUtils.execute(dataSource, each));
+ StorageContainerConnectOption storageContainerConnectOption =
DatabaseTypedSPILoader.getService(StorageContainerOption.class,
databaseType).getConnectOption();
+ DataSource dataSource =
StorageContainerUtils.generateDataSource(storageContainerConnectOption.getURL(env.getHost(),
env.getPort()), env.getUser(), env.getPassword(), 2);
+ new MountSQLResourceGenerator(option.getType(),
option.getCreateOption()).generate(0, scenario).keySet().forEach(each ->
SQLScriptUtils.execute(dataSource, each));
}
}
@@ -91,10 +91,9 @@ public final class NativeStorageContainer implements
StorageContainer {
}
private Map<String, DataSource> getDataSourceMap(final Collection<String>
databaseNames) {
- DataSourceEnvironment dataSourceEnvironment =
DatabaseTypedSPILoader.getService(DataSourceEnvironment.class, databaseType);
Map<String, DataSource> result = new HashMap<>(databaseNames.size(),
1F);
for (String each : databaseNames) {
- DataSource dataSource =
StorageContainerUtils.generateDataSource(dataSourceEnvironment.getURL(env.getHost(),
env.getPort(), each), env.getUser(), env.getPassword(), 2);
+ DataSource dataSource =
StorageContainerUtils.generateDataSource(option.getConnectOption().getURL(env.getHost(),
env.getPort(), each), env.getUser(), env.getPassword(), 2);
result.put(each, dataSource);
}
return result;
@@ -106,7 +105,7 @@ public final class NativeStorageContainer implements
StorageContainer {
* @return exposed port
*/
public int getExposedPort() {
- return null == option ? 0 : option.getPort();
+ return null == option ? 0 : option.getCreateOption().getPort();
}
@Override
diff --git
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/util/StorageContainerUtils.java
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/util/StorageContainerUtils.java
index 7ca8aa67927..6890e49e92f 100644
---
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/util/StorageContainerUtils.java
+++
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/util/StorageContainerUtils.java
@@ -22,7 +22,7 @@ import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import
org.apache.shardingsphere.database.connector.core.spi.DatabaseTypedSPILoader;
import
org.apache.shardingsphere.database.connector.core.type.DatabaseTypeFactory;
-import
org.apache.shardingsphere.test.e2e.env.runtime.datasource.DataSourceEnvironment;
+import
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerOption;
import javax.sql.DataSource;
@@ -43,7 +43,7 @@ public final class StorageContainerUtils {
*/
public static DataSource generateDataSource(final String jdbcUrl, final
String username, final String password, final int maximumPoolSize) {
HikariDataSource result = new HikariDataSource();
-
result.setDriverClassName(DatabaseTypedSPILoader.getService(DataSourceEnvironment.class,
DatabaseTypeFactory.get(jdbcUrl)).getDriverClassName());
+
result.setDriverClassName(DatabaseTypedSPILoader.getService(StorageContainerOption.class,
DatabaseTypeFactory.get(jdbcUrl)).getConnectOption().getDriverClassName());
result.setJdbcUrl(jdbcUrl);
result.setUsername(username);
result.setPassword(password);
diff --git
a/test/e2e/env/src/test/resources/META-INF/services/org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerOption
b/test/e2e/env/src/test/resources/META-INF/services/org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerOption
index f13a2ca23ea..6ef86592c34 100644
---
a/test/e2e/env/src/test/resources/META-INF/services/org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerOption
+++
b/test/e2e/env/src/test/resources/META-INF/services/org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerOption
@@ -15,8 +15,8 @@
# limitations under the License.
#
-org.apache.shardingsphere.test.e2e.env.container.storage.option.dialect.MySQLStorageContainerOption
-org.apache.shardingsphere.test.e2e.env.container.storage.option.dialect.PostgreSQLStorageContainerOption
-org.apache.shardingsphere.test.e2e.env.container.storage.option.dialect.MariaDBStorageContainerOption
-org.apache.shardingsphere.test.e2e.env.container.storage.option.dialect.OpenGaussStorageContainerOption
-org.apache.shardingsphere.test.e2e.env.container.storage.option.dialect.HiveStorageContainerOption
+org.apache.shardingsphere.test.e2e.env.container.storage.option.dialect.mysql.MySQLStorageContainerOption
+org.apache.shardingsphere.test.e2e.env.container.storage.option.dialect.postgresql.PostgreSQLStorageContainerOption
+org.apache.shardingsphere.test.e2e.env.container.storage.option.dialect.mariadb.MariaDBStorageContainerOption
+org.apache.shardingsphere.test.e2e.env.container.storage.option.dialect.opengauss.OpenGaussStorageContainerOption
+org.apache.shardingsphere.test.e2e.env.container.storage.option.dialect.hive.HiveStorageContainerOption
diff --git
a/test/e2e/env/src/test/resources/META-INF/services/org.apache.shardingsphere.test.e2e.env.runtime.datasource.DataSourceEnvironment
b/test/e2e/env/src/test/resources/META-INF/services/org.apache.shardingsphere.test.e2e.env.runtime.datasource.DataSourceEnvironment
deleted file mode 100644
index 5b253bc8d61..00000000000
---
a/test/e2e/env/src/test/resources/META-INF/services/org.apache.shardingsphere.test.e2e.env.runtime.datasource.DataSourceEnvironment
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-org.apache.shardingsphere.test.e2e.env.runtime.datasource.dialect.MySQLDataSourceEnvironment
-org.apache.shardingsphere.test.e2e.env.runtime.datasource.dialect.PostgreSQLDataSourceEnvironment
-org.apache.shardingsphere.test.e2e.env.runtime.datasource.dialect.MariaDBDataSourceEnvironment
-org.apache.shardingsphere.test.e2e.env.runtime.datasource.dialect.OpenGaussDataSourceEnvironment
-org.apache.shardingsphere.test.e2e.env.runtime.datasource.dialect.HiveDataSourceEnvironment
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 ebb5e862291..e4518b589d3 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
@@ -43,9 +43,10 @@ import
org.apache.shardingsphere.infra.yaml.config.pojo.YamlRootConfiguration;
import
org.apache.shardingsphere.single.yaml.config.YamlSingleRuleConfiguration;
import
org.apache.shardingsphere.test.e2e.env.container.constants.ProxyContainerConstants;
import
org.apache.shardingsphere.test.e2e.env.container.constants.StorageContainerConstants;
+import
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerConnectOption;
+import
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerOption;
import
org.apache.shardingsphere.test.e2e.env.container.storage.type.DockerStorageContainer;
import
org.apache.shardingsphere.test.e2e.env.container.util.StorageContainerUtils;
-import
org.apache.shardingsphere.test.e2e.env.runtime.datasource.DataSourceEnvironment;
import
org.apache.shardingsphere.test.e2e.operation.pipeline.command.ExtraSQLCommand;
import
org.apache.shardingsphere.test.e2e.operation.pipeline.env.PipelineE2EEnvironment;
import
org.apache.shardingsphere.test.e2e.operation.pipeline.env.enums.PipelineEnvTypeEnum;
@@ -279,14 +280,14 @@ public final class PipelineContainerComposer implements
AutoCloseable {
* @return actual JDBC URL template
*/
public String getActualJdbcUrlTemplate(final String databaseName, final
boolean isInContainer, final int storageContainerIndex) {
- DataSourceEnvironment dataSourceEnvironment =
DatabaseTypedSPILoader.getService(DataSourceEnvironment.class, databaseType);
+ StorageContainerConnectOption option =
DatabaseTypedSPILoader.getService(StorageContainerOption.class,
databaseType).getConnectOption();
if (PipelineEnvTypeEnum.DOCKER ==
PipelineE2EEnvironment.getInstance().getItEnvType()) {
DockerStorageContainer storageContainer =
((PipelineDockerContainerComposer)
containerComposer).getStorageContainers().get(storageContainerIndex);
return isInContainer
- ?
dataSourceEnvironment.getURL(storageContainer.getNetworkAliases().get(0),
storageContainer.getExposedPort(), databaseName)
+ ?
option.getURL(storageContainer.getNetworkAliases().get(0),
storageContainer.getExposedPort(), databaseName)
: storageContainer.getJdbcUrl(databaseName);
}
- return dataSourceEnvironment.getURL("127.0.0.1",
PipelineE2EEnvironment.getInstance().getActualDatabasePort(databaseType),
databaseName);
+ return option.getURL("127.0.0.1",
PipelineE2EEnvironment.getInstance().getActualDatabasePort(databaseType),
databaseName);
}
/**
diff --git
a/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/operation/pipeline/env/PipelineE2EEnvironment.java
b/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/operation/pipeline/env/PipelineE2EEnvironment.java
index 39b740616ba..6c07a64ce38 100644
---
a/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/operation/pipeline/env/PipelineE2EEnvironment.java
+++
b/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/operation/pipeline/env/PipelineE2EEnvironment.java
@@ -71,7 +71,7 @@ public final class PipelineE2EEnvironment {
* @return actual database port
*/
public int getActualDatabasePort(final DatabaseType databaseType) {
- int defaultPort =
DatabaseTypedSPILoader.getService(StorageContainerOption.class,
databaseType).getPort();
+ int defaultPort =
DatabaseTypedSPILoader.getService(StorageContainerOption.class,
databaseType).getCreateOption().getPort();
return
Integer.parseInt(props.getProperty(String.format("pipeline.it.native.%s.port",
databaseType.getType().toLowerCase()), String.valueOf(defaultPort)));
}
diff --git
a/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/operation/pipeline/framework/container/compose/docker/PipelineDockerContainerComposer.java
b/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/operation/pipeline/framework/container/compose/docker/PipelineDockerContainerComposer.java
index 3df786c5a84..4dcb96218fb 100644
---
a/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/operation/pipeline/framework/container/compose/docker/PipelineDockerContainerComposer.java
+++
b/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/operation/pipeline/framework/container/compose/docker/PipelineDockerContainerComposer.java
@@ -29,7 +29,6 @@ import
org.apache.shardingsphere.test.e2e.env.container.governance.GovernanceCon
import
org.apache.shardingsphere.test.e2e.env.container.governance.option.GovernanceContainerOption;
import
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerOption;
import
org.apache.shardingsphere.test.e2e.env.container.storage.type.DockerStorageContainer;
-import
org.apache.shardingsphere.test.e2e.env.runtime.datasource.DataSourceEnvironment;
import
org.apache.shardingsphere.test.e2e.operation.pipeline.env.PipelineE2EEnvironment;
import
org.apache.shardingsphere.test.e2e.operation.pipeline.env.enums.PipelineProxyTypeEnum;
import
org.apache.shardingsphere.test.e2e.operation.pipeline.framework.container.compose.PipelineBaseContainerComposer;
@@ -91,7 +90,7 @@ public final class PipelineDockerContainerComposer extends
PipelineBaseContainer
host = proxyContainer.getHost();
port = proxyContainer.getFirstMappedPort();
}
- return DatabaseTypedSPILoader.getService(DataSourceEnvironment.class,
ProxyDatabaseTypeUtils.getProxyDatabaseType(databaseType)).getURL(host, port,
databaseName);
+ return DatabaseTypedSPILoader.getService(StorageContainerOption.class,
ProxyDatabaseTypeUtils.getProxyDatabaseType(databaseType)).getConnectOption().getURL(host,
port, databaseName);
}
@Override
diff --git
a/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/operation/pipeline/framework/container/compose/natived/DialectPipelineNativeContainerDropTableOption.java
b/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/operation/pipeline/framework/container/compose/natived/DialectPipelineNativeContainerDropTableOption.java
index dd35b787f60..ce22f451688 100644
---
a/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/operation/pipeline/framework/container/compose/natived/DialectPipelineNativeContainerDropTableOption.java
+++
b/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/operation/pipeline/framework/container/compose/natived/DialectPipelineNativeContainerDropTableOption.java
@@ -19,7 +19,7 @@ package
org.apache.shardingsphere.test.e2e.operation.pipeline.framework.containe
import org.apache.shardingsphere.database.connector.core.spi.DatabaseTypedSPI;
import org.apache.shardingsphere.infra.spi.annotation.SingletonSPI;
-import
org.apache.shardingsphere.test.e2e.env.runtime.datasource.DataSourceEnvironment;
+import
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerConnectOption;
import java.util.Optional;
@@ -32,12 +32,12 @@ public interface
DialectPipelineNativeContainerDropTableOption extends DatabaseT
/**
* Get JDBC URL.
*
- * @param dataSourceEnvironment data source environment
+ * @param storageContainerConnectOption data source environment
* @param actualDatabasePort actual database port
* @param databaseName database name
* @return JDBC URL
*/
- String getJdbcUrl(DataSourceEnvironment dataSourceEnvironment, int
actualDatabasePort, String databaseName);
+ String getJdbcUrl(StorageContainerConnectOption
storageContainerConnectOption, int actualDatabasePort, String databaseName);
/**
* Get query all schema and table mapper SQL.
diff --git
a/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/operation/pipeline/framework/container/compose/natived/PipelineNativeContainerComposer.java
b/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/operation/pipeline/framework/container/compose/natived/PipelineNativeContainerComposer.java
index c39cce2bc28..3225d7c51cc 100644
---
a/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/operation/pipeline/framework/container/compose/natived/PipelineNativeContainerComposer.java
+++
b/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/operation/pipeline/framework/container/compose/natived/PipelineNativeContainerComposer.java
@@ -20,7 +20,7 @@ package
org.apache.shardingsphere.test.e2e.operation.pipeline.framework.containe
import lombok.SneakyThrows;
import
org.apache.shardingsphere.database.connector.core.spi.DatabaseTypedSPILoader;
import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
-import
org.apache.shardingsphere.test.e2e.env.runtime.datasource.DataSourceEnvironment;
+import
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerOption;
import
org.apache.shardingsphere.test.e2e.operation.pipeline.env.PipelineE2EEnvironment;
import
org.apache.shardingsphere.test.e2e.operation.pipeline.framework.container.compose.PipelineBaseContainerComposer;
import
org.apache.shardingsphere.test.e2e.operation.pipeline.util.ProxyDatabaseTypeUtils;
@@ -57,7 +57,7 @@ public final class PipelineNativeContainerComposer extends
PipelineBaseContainer
int actualDatabasePort = ENV.getActualDatabasePort(databaseType);
String username = ENV.getActualDataSourceUsername(databaseType);
String password = ENV.getActualDataSourcePassword(databaseType);
- String jdbcUrl =
dropTableOption.getJdbcUrl(DatabaseTypedSPILoader.getService(DataSourceEnvironment.class,
databaseType), actualDatabasePort, databaseName);
+ String jdbcUrl =
dropTableOption.getJdbcUrl(DatabaseTypedSPILoader.getService(StorageContainerOption.class,
databaseType).getConnectOption(), actualDatabasePort, databaseName);
try (Connection connection = DriverManager.getConnection(jdbcUrl,
username, password)) {
dropTable(connection, databaseName);
}
@@ -91,7 +91,7 @@ public final class PipelineNativeContainerComposer extends
PipelineBaseContainer
@Override
public String getProxyJdbcUrl(final String databaseName) {
- return DatabaseTypedSPILoader.getService(DataSourceEnvironment.class,
ProxyDatabaseTypeUtils.getProxyDatabaseType(databaseType)).getURL("localhost",
3307, databaseName);
+ return DatabaseTypedSPILoader.getService(StorageContainerOption.class,
ProxyDatabaseTypeUtils.getProxyDatabaseType(databaseType)).getConnectOption().getURL("localhost",
3307, databaseName);
}
@Override
diff --git
a/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/operation/pipeline/framework/container/compose/natived/dialect/MariaDBPipelineNativeContainerDropTableOption.java
b/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/operation/pipeline/framework/container/compose/natived/dialect/MariaDBPipelineNativeContainerDropTableOption.java
index 955fa33b3f4..d9286443a23 100644
---
a/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/operation/pipeline/framework/container/compose/natived/dialect/MariaDBPipelineNativeContainerDropTableOption.java
+++
b/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/operation/pipeline/framework/container/compose/natived/dialect/MariaDBPipelineNativeContainerDropTableOption.java
@@ -17,7 +17,7 @@
package
org.apache.shardingsphere.test.e2e.operation.pipeline.framework.container.compose.natived.dialect;
-import
org.apache.shardingsphere.test.e2e.env.runtime.datasource.DataSourceEnvironment;
+import
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerConnectOption;
import
org.apache.shardingsphere.test.e2e.operation.pipeline.framework.container.compose.natived.DialectPipelineNativeContainerDropTableOption;
import java.util.Optional;
@@ -30,8 +30,8 @@ public final class
MariaDBPipelineNativeContainerDropTableOption implements Dial
private final DialectPipelineNativeContainerDropTableOption delegated =
new MySQLPipelineNativeContainerDropTableOption();
@Override
- public String getJdbcUrl(final DataSourceEnvironment
dataSourceEnvironment, final int actualDatabasePort, final String databaseName)
{
- return delegated.getJdbcUrl(dataSourceEnvironment, actualDatabasePort,
databaseName);
+ public String getJdbcUrl(final StorageContainerConnectOption
storageContainerConnectOption, final int actualDatabasePort, final String
databaseName) {
+ return delegated.getJdbcUrl(storageContainerConnectOption,
actualDatabasePort, databaseName);
}
@Override
diff --git
a/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/operation/pipeline/framework/container/compose/natived/dialect/MySQLPipelineNativeContainerDropTableOption.java
b/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/operation/pipeline/framework/container/compose/natived/dialect/MySQLPipelineNativeContainerDropTableOption.java
index 0676b052c00..bcdd167f06d 100644
---
a/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/operation/pipeline/framework/container/compose/natived/dialect/MySQLPipelineNativeContainerDropTableOption.java
+++
b/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/operation/pipeline/framework/container/compose/natived/dialect/MySQLPipelineNativeContainerDropTableOption.java
@@ -20,7 +20,7 @@ package
org.apache.shardingsphere.test.e2e.operation.pipeline.framework.containe
import
org.apache.shardingsphere.database.connector.core.jdbcurl.appender.JdbcUrlAppender;
import org.apache.shardingsphere.infra.util.props.PropertiesBuilder;
import org.apache.shardingsphere.infra.util.props.PropertiesBuilder.Property;
-import
org.apache.shardingsphere.test.e2e.env.runtime.datasource.DataSourceEnvironment;
+import
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerConnectOption;
import
org.apache.shardingsphere.test.e2e.operation.pipeline.framework.container.compose.natived.DialectPipelineNativeContainerDropTableOption;
import java.util.Optional;
@@ -31,8 +31,8 @@ import java.util.Optional;
public final class MySQLPipelineNativeContainerDropTableOption implements
DialectPipelineNativeContainerDropTableOption {
@Override
- public String getJdbcUrl(final DataSourceEnvironment
dataSourceEnvironment, final int actualDatabasePort, final String databaseName)
{
- return new
JdbcUrlAppender().appendQueryProperties(dataSourceEnvironment.getURL("localhost",
actualDatabasePort, databaseName),
+ public String getJdbcUrl(final StorageContainerConnectOption
storageContainerConnectOption, final int actualDatabasePort, final String
databaseName) {
+ return new
JdbcUrlAppender().appendQueryProperties(storageContainerConnectOption.getURL("localhost",
actualDatabasePort, databaseName),
PropertiesBuilder.build(new
Property("allowPublicKeyRetrieval", Boolean.TRUE.toString())));
}
diff --git
a/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/operation/pipeline/framework/container/compose/natived/dialect/OpenGaussPipelineNativeContainerDropTableOption.java
b/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/operation/pipeline/framework/container/compose/natived/dialect/OpenGaussPipelineNativeContainerDropTableOption.java
index 9e5bed2ee75..fac693a5cbf 100644
---
a/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/operation/pipeline/framework/container/compose/natived/dialect/OpenGaussPipelineNativeContainerDropTableOption.java
+++
b/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/operation/pipeline/framework/container/compose/natived/dialect/OpenGaussPipelineNativeContainerDropTableOption.java
@@ -17,7 +17,7 @@
package
org.apache.shardingsphere.test.e2e.operation.pipeline.framework.container.compose.natived.dialect;
-import
org.apache.shardingsphere.test.e2e.env.runtime.datasource.DataSourceEnvironment;
+import
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerConnectOption;
import
org.apache.shardingsphere.test.e2e.operation.pipeline.framework.container.compose.natived.DialectPipelineNativeContainerDropTableOption;
import java.util.Optional;
@@ -30,8 +30,8 @@ public final class
OpenGaussPipelineNativeContainerDropTableOption implements Di
private final DialectPipelineNativeContainerDropTableOption delegated =
new PostgreSQLPipelineNativeContainerDropTableOption();
@Override
- public String getJdbcUrl(final DataSourceEnvironment
dataSourceEnvironment, final int actualDatabasePort, final String databaseName)
{
- return delegated.getJdbcUrl(dataSourceEnvironment, actualDatabasePort,
databaseName);
+ public String getJdbcUrl(final StorageContainerConnectOption
storageContainerConnectOption, final int actualDatabasePort, final String
databaseName) {
+ return delegated.getJdbcUrl(storageContainerConnectOption,
actualDatabasePort, databaseName);
}
@Override
diff --git
a/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/operation/pipeline/framework/container/compose/natived/dialect/OraclePipelineNativeContainerDropTableOption.java
b/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/operation/pipeline/framework/container/compose/natived/dialect/OraclePipelineNativeContainerDropTableOption.java
index 8fc7b9aca57..879710f8758 100644
---
a/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/operation/pipeline/framework/container/compose/natived/dialect/OraclePipelineNativeContainerDropTableOption.java
+++
b/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/operation/pipeline/framework/container/compose/natived/dialect/OraclePipelineNativeContainerDropTableOption.java
@@ -17,7 +17,7 @@
package
org.apache.shardingsphere.test.e2e.operation.pipeline.framework.container.compose.natived.dialect;
-import
org.apache.shardingsphere.test.e2e.env.runtime.datasource.DataSourceEnvironment;
+import
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerConnectOption;
import
org.apache.shardingsphere.test.e2e.operation.pipeline.framework.container.compose.natived.DialectPipelineNativeContainerDropTableOption;
import java.util.Optional;
@@ -28,8 +28,8 @@ import java.util.Optional;
public final class OraclePipelineNativeContainerDropTableOption implements
DialectPipelineNativeContainerDropTableOption {
@Override
- public String getJdbcUrl(final DataSourceEnvironment
dataSourceEnvironment, final int actualDatabasePort, final String databaseName)
{
- return dataSourceEnvironment.getURL("localhost", actualDatabasePort,
"");
+ public String getJdbcUrl(final StorageContainerConnectOption
storageContainerConnectOption, final int actualDatabasePort, final String
databaseName) {
+ return storageContainerConnectOption.getURL("localhost",
actualDatabasePort, "");
}
@Override
diff --git
a/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/operation/pipeline/framework/container/compose/natived/dialect/PostgreSQLPipelineNativeContainerDropTableOption.java
b/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/operation/pipeline/framework/container/compose/natived/dialect/PostgreSQLPipelineNativeContainerDropTableOption.java
index 083363f0baa..5ea3ce0e33a 100644
---
a/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/operation/pipeline/framework/container/compose/natived/dialect/PostgreSQLPipelineNativeContainerDropTableOption.java
+++
b/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/operation/pipeline/framework/container/compose/natived/dialect/PostgreSQLPipelineNativeContainerDropTableOption.java
@@ -17,7 +17,7 @@
package
org.apache.shardingsphere.test.e2e.operation.pipeline.framework.container.compose.natived.dialect;
-import
org.apache.shardingsphere.test.e2e.env.runtime.datasource.DataSourceEnvironment;
+import
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerConnectOption;
import
org.apache.shardingsphere.test.e2e.operation.pipeline.framework.container.compose.natived.DialectPipelineNativeContainerDropTableOption;
import java.util.Optional;
@@ -28,8 +28,8 @@ import java.util.Optional;
public final class PostgreSQLPipelineNativeContainerDropTableOption implements
DialectPipelineNativeContainerDropTableOption {
@Override
- public String getJdbcUrl(final DataSourceEnvironment
dataSourceEnvironment, final int actualDatabasePort, final String databaseName)
{
- return dataSourceEnvironment.getURL("localhost", actualDatabasePort,
databaseName);
+ public String getJdbcUrl(final StorageContainerConnectOption
storageContainerConnectOption, final int actualDatabasePort, final String
databaseName) {
+ return storageContainerConnectOption.getURL("localhost",
actualDatabasePort, databaseName);
}
@Override
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 1a4f7b32314..cb99070fdcd 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
@@ -25,8 +25,9 @@ import
org.apache.shardingsphere.database.connector.core.spi.DatabaseTypedSPILoa
import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import
org.apache.shardingsphere.test.e2e.env.container.adapter.enums.AdapterType;
+import
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerConnectOption;
+import
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerOption;
import
org.apache.shardingsphere.test.e2e.env.container.storage.type.DockerStorageContainer;
-import
org.apache.shardingsphere.test.e2e.env.runtime.datasource.DataSourceEnvironment;
import
org.apache.shardingsphere.test.e2e.operation.transaction.cases.base.BaseTransactionTestCase;
import
org.apache.shardingsphere.test.e2e.operation.transaction.cases.base.BaseTransactionTestCase.TransactionTestCaseParameter;
import
org.apache.shardingsphere.test.e2e.operation.transaction.engine.command.CommonSQLCommand;
@@ -276,12 +277,12 @@ public abstract class TransactionBaseE2EIT {
}
private String getActualJdbcUrlTemplate(final String databaseName, final
TransactionContainerComposer containerComposer) {
- DataSourceEnvironment dataSourceEnvironment =
DatabaseTypedSPILoader.getService(DataSourceEnvironment.class,
containerComposer.getDatabaseType());
+ StorageContainerConnectOption option =
DatabaseTypedSPILoader.getService(StorageContainerOption.class,
containerComposer.getDatabaseType()).getConnectOption();
if (ENV.getItEnvType() == TransactionE2EEnvTypeEnum.DOCKER) {
DockerStorageContainer storageContainer = (DockerStorageContainer)
((TransactionDockerContainerComposer)
containerComposer.getContainerComposer()).getStorageContainer();
- return
dataSourceEnvironment.getURL(containerComposer.getDatabaseType().getType().toLowerCase()
+ ".host", storageContainer.getExposedPort(), databaseName);
+ return
option.getURL(containerComposer.getDatabaseType().getType().toLowerCase() +
".host", storageContainer.getExposedPort(), databaseName);
}
- return dataSourceEnvironment.getURL("127.0.0.1",
ENV.getActualDataSourceDefaultPort(containerComposer.getDatabaseType()),
databaseName);
+ return option.getURL("127.0.0.1",
ENV.getActualDataSourceDefaultPort(containerComposer.getDatabaseType()),
databaseName);
}
/**
diff --git
a/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/operation/transaction/env/TransactionE2EEnvironment.java
b/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/operation/transaction/env/TransactionE2EEnvironment.java
index 53258eff21f..d3353bd6e3a 100644
---
a/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/operation/transaction/env/TransactionE2EEnvironment.java
+++
b/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/operation/transaction/env/TransactionE2EEnvironment.java
@@ -23,9 +23,9 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
import
org.apache.shardingsphere.test.e2e.env.container.constants.ProxyContainerConstants;
import
org.apache.shardingsphere.test.e2e.env.container.constants.StorageContainerConstants;
-import
org.apache.shardingsphere.test.e2e.env.container.storage.option.dialect.MySQLStorageContainerOption;
-import
org.apache.shardingsphere.test.e2e.env.container.storage.option.dialect.OpenGaussStorageContainerOption;
-import
org.apache.shardingsphere.test.e2e.env.container.storage.option.dialect.PostgreSQLStorageContainerOption;
+import
org.apache.shardingsphere.test.e2e.env.container.storage.option.dialect.mysql.MySQLStorageContainerCreateOption;
+import
org.apache.shardingsphere.test.e2e.env.container.storage.option.dialect.opengauss.OpenGaussStorageContainerCreateOption;
+import
org.apache.shardingsphere.test.e2e.env.container.storage.option.dialect.postgresql.PostgreSQLStorageContainerCreateOption;
import
org.apache.shardingsphere.test.e2e.operation.transaction.env.enums.TransactionE2EEnvTypeEnum;
import
org.apache.shardingsphere.test.e2e.operation.transaction.env.enums.TransactionTestCaseRegistry;
@@ -113,11 +113,11 @@ public final class TransactionE2EEnvironment {
public int getActualDataSourceDefaultPort(final DatabaseType databaseType)
{
switch (databaseType.getType()) {
case "MySQL":
- return
Integer.parseInt(props.getOrDefault("transaction.it.native.mysql.port", new
MySQLStorageContainerOption().getPort()).toString());
+ return
Integer.parseInt(props.getOrDefault("transaction.it.native.mysql.port", new
MySQLStorageContainerCreateOption().getPort()).toString());
case "PostgreSQL":
- return
Integer.parseInt(props.getOrDefault("transaction.it.native.postgresql.port",
new PostgreSQLStorageContainerOption().getPort()).toString());
+ return
Integer.parseInt(props.getOrDefault("transaction.it.native.postgresql.port",
new PostgreSQLStorageContainerCreateOption().getPort()).toString());
case "openGauss":
- return
Integer.parseInt(props.getOrDefault("transaction.it.native.opengauss.port", new
OpenGaussStorageContainerOption().getPort()).toString());
+ return
Integer.parseInt(props.getOrDefault("transaction.it.native.opengauss.port", new
OpenGaussStorageContainerCreateOption().getPort()).toString());
default:
throw new
UnsupportedOperationException(String.format("Unsupported database type: `%s`",
databaseType.getType()));
}