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 5b13d739ee5 Refactor NativeStorageContainer (#36656) 5b13d739ee5 is described below commit 5b13d739ee5a0c2c8a1c4afddbd48f7d213090ce Author: Liang Zhang <zhangli...@apache.org> AuthorDate: Sun Sep 21 17:30:57 2025 +0800 Refactor NativeStorageContainer (#36656) --- .../e2e/agent/engine/env/AgentE2ETestEnvironment.java | 15 +++++++-------- .../container/storage/type/NativeStorageContainer.java | 4 +--- 2 files changed, 8 insertions(+), 11 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 c04b6f1c59e..f925b9d56e8 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 @@ -98,11 +98,12 @@ public final class AgentE2ETestEnvironment { if (!AgentE2ETestConfiguration.getInstance().containsTestParameter()) { return; } + StorageContainerOption storageContainerOption = DatabaseTypedSPILoader.getService(StorageContainerOption.class, databaseType); Optional<DockerITContainer> agentPluginContainer = TypedSPILoader.findService(AgentPluginContainerFactory.class, testConfig.getPluginType()).map(AgentPluginContainerFactory::create); if (AdapterType.PROXY.getValue().equalsIgnoreCase(testConfig.getAdapter())) { - createProxyEnvironment(agentPluginContainer.orElse(null)); + createProxyEnvironment(storageContainerOption, agentPluginContainer.orElse(null)); } else if (AdapterType.JDBC.getValue().equalsIgnoreCase(testConfig.getAdapter())) { - createJDBCEnvironment(agentPluginContainer.orElse(null)); + createJDBCEnvironment(storageContainerOption, agentPluginContainer.orElse(null)); } log.info("Waiting to collect data ..."); long collectDataWaitSeconds = testConfig.getCollectDataWaitSeconds(); @@ -113,12 +114,11 @@ public final class AgentE2ETestEnvironment { initialized = true; } - private void createProxyEnvironment(final DockerITContainer agentPluginContainer) { + private void createProxyEnvironment(final StorageContainerOption storageContainerOption, final DockerITContainer agentPluginContainer) { 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(), storageContainerOption, null); proxyContainer.dependsOn(storageContainer); containers.registerContainer(storageContainer); GovernanceContainer governanceContainer = new GovernanceContainer(TypedSPILoader.getService(GovernanceContainerOption.class, "ZooKeeper")); @@ -147,10 +147,9 @@ public final class AgentE2ETestEnvironment { return new AdaptorContainerConfiguration("sharding_db", Collections.emptyList(), mountedResources, imageConfig.getProxyImage(), ""); } - private void createJDBCEnvironment(final DockerITContainer agentPluginContainer) { + private void createJDBCEnvironment(final StorageContainerOption storageContainerOption, 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(), storageContainerOption, 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/storage/type/NativeStorageContainer.java b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/type/NativeStorageContainer.java index f5507421597..18a805d8db4 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,7 +24,6 @@ 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; @@ -77,8 +76,7 @@ public final class NativeStorageContainer implements StorageContainer { private void initDatabase() { if (null != option) { - StorageContainerConnectOption storageContainerConnectOption = DatabaseTypedSPILoader.getService(StorageContainerOption.class, databaseType).getConnectOption(); - DataSource dataSource = StorageContainerUtils.generateDataSource(storageContainerConnectOption.getURL(env.getHost(), env.getPort()), env.getUser(), env.getPassword(), 2); + DataSource dataSource = StorageContainerUtils.generateDataSource(option.getConnectOption().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)); } }