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 fbf67e79c4c Remove StorageContainerFactory (#36619)
fbf67e79c4c is described below

commit fbf67e79c4ce3e288f64f68e88dcb708d4cb8123
Author: Liang Zhang <[email protected]>
AuthorDate: Thu Sep 18 19:40:22 2025 +0800

    Remove StorageContainerFactory (#36619)
---
 .../agent/engine/env/AgentE2ETestEnvironment.java  | 10 ++--
 .../atomic/storage/StorageContainerFactory.java    | 68 ----------------------
 .../createtable/CreateTableSQLGeneratorIT.java     |  4 +-
 .../docker/PipelineDockerContainerComposer.java    |  5 +-
 .../ClusterShowProcessListContainerComposer.java   |  8 +--
 .../TransactionDockerContainerComposer.java        |  9 ++-
 .../compose/mode/ClusterContainerComposer.java     |  7 ++-
 .../compose/mode/StandaloneContainerComposer.java  |  5 +-
 8 files changed, 22 insertions(+), 94 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 215fde2c0cd..659422e05c9 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
@@ -34,14 +34,14 @@ import 
org.apache.shardingsphere.test.e2e.agent.fixture.proxy.ProxyRequestExecut
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.DockerITContainer;
 import org.apache.shardingsphere.test.e2e.env.container.atomic.ITContainers;
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.adapter.config.AdaptorContainerConfiguration;
+import 
org.apache.shardingsphere.test.e2e.env.container.atomic.adapter.enums.AdapterType;
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.adapter.impl.ShardingSphereProxyClusterContainer;
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.constants.ProxyContainerConstants;
-import 
org.apache.shardingsphere.test.e2e.env.container.atomic.adapter.enums.AdapterType;
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.governance.GovernanceContainer;
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.governance.GovernanceContainerFactory;
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.storage.StorageContainer;
-import 
org.apache.shardingsphere.test.e2e.env.container.atomic.storage.StorageContainerFactory;
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.storage.option.StorageContainerConfigurationOption;
+import 
org.apache.shardingsphere.test.e2e.env.container.atomic.storage.type.DockerStorageContainer;
 import org.awaitility.Awaitility;
 import org.testcontainers.containers.output.OutputFrame;
 
@@ -117,8 +117,7 @@ public final class AgentE2ETestEnvironment {
         containers = new ITContainers(null);
         ShardingSphereProxyClusterContainer proxyContainer = new 
ShardingSphereProxyClusterContainer(databaseType, 
getAdaptorContainerConfiguration());
         proxyContainer.withLogConsumer(testConfig.isLogEnabled() ? 
this::collectLogs : null);
-        StorageContainer storageContainer = 
StorageContainerFactory.newInstance(
-                databaseType, imageConfig.getMysqlImage(), 
DatabaseTypedSPILoader.getService(StorageContainerConfigurationOption.class, 
databaseType), null);
+        StorageContainer storageContainer = new 
DockerStorageContainer(imageConfig.getMysqlImage(), 
DatabaseTypedSPILoader.getService(StorageContainerConfigurationOption.class, 
databaseType), null);
         proxyContainer.dependsOn(storageContainer);
         containers.registerContainer(storageContainer);
         GovernanceContainer governanceContainer = 
GovernanceContainerFactory.newInstance("ZooKeeper");
@@ -149,8 +148,7 @@ public final class AgentE2ETestEnvironment {
     
     private void createJDBCEnvironment(final DockerITContainer 
agentPluginContainer) {
         containers = new ITContainers(null);
-        StorageContainer storageContainer = 
StorageContainerFactory.newInstance(
-                databaseType, imageConfig.getMysqlImage(), 
DatabaseTypedSPILoader.getService(StorageContainerConfigurationOption.class, 
databaseType), null);
+        StorageContainer storageContainer = new 
DockerStorageContainer(imageConfig.getMysqlImage(), 
DatabaseTypedSPILoader.getService(StorageContainerConfigurationOption.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/atomic/storage/StorageContainerFactory.java
 
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/StorageContainerFactory.java
deleted file mode 100644
index 13402378079..00000000000
--- 
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/StorageContainerFactory.java
+++ /dev/null
@@ -1,68 +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.
- */
-
-package org.apache.shardingsphere.test.e2e.env.container.atomic.storage;
-
-import lombok.AccessLevel;
-import lombok.NoArgsConstructor;
-import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
-import 
org.apache.shardingsphere.test.e2e.env.container.atomic.storage.option.StorageContainerConfigurationOption;
-import 
org.apache.shardingsphere.test.e2e.env.container.atomic.storage.type.DockerStorageContainer;
-import org.apache.shardingsphere.test.e2e.env.runtime.E2ETestEnvironment;
-
-/**
- * Storage container factory.
- */
-@NoArgsConstructor(access = AccessLevel.PRIVATE)
-public final class StorageContainerFactory {
-    
-    /**
-     * Create new instance of storage container.
-     *
-     * @param databaseType database type
-     * @param option storage container configuration option
-     * @param scenario scenario
-     * @return created instance
-     * @throws RuntimeException runtime exception
-     */
-    public static StorageContainer newInstance(final DatabaseType 
databaseType, final StorageContainerConfigurationOption option, final String 
scenario) {
-        return newInstance(databaseType, 
E2ETestEnvironment.getInstance().getClusterEnvironment().getDatabaseImages().get(databaseType),
 option, scenario);
-    }
-    
-    /**
-     * Create new instance of storage container.
-     *
-     * @param databaseType database type
-     * @param storageContainerImage storage container image
-     * @param option storage container configuration option
-     * @param scenario scenario
-     * @return created instance
-     * @throws RuntimeException runtime exception
-     */
-    public static StorageContainer newInstance(final DatabaseType 
databaseType, final String storageContainerImage, final 
StorageContainerConfigurationOption option, final String scenario) {
-        switch (databaseType.getType()) {
-            case "MySQL":
-            case "PostgreSQL":
-            case "openGauss":
-            case "MariaDB":
-            case "Hive":
-                return new DockerStorageContainer(storageContainerImage, 
option, scenario);
-            default:
-                throw new RuntimeException(String.format("Database `%s` is 
unknown.", databaseType.getType()));
-        }
-    }
-}
diff --git 
a/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/operation/pipeline/cases/createtable/CreateTableSQLGeneratorIT.java
 
b/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/operation/pipeline/cases/createtable/CreateTableSQLGeneratorIT.java
index deb905bd368..36c4d820143 100644
--- 
a/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/operation/pipeline/cases/createtable/CreateTableSQLGeneratorIT.java
+++ 
b/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/operation/pipeline/cases/createtable/CreateTableSQLGeneratorIT.java
@@ -21,7 +21,6 @@ import 
org.apache.shardingsphere.data.pipeline.core.sqlbuilder.dialect.DialectPi
 import 
org.apache.shardingsphere.database.connector.core.spi.DatabaseTypedSPILoader;
 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.atomic.storage.StorageContainerFactory;
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.storage.option.StorageContainerConfigurationOption;
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.storage.type.DockerStorageContainer;
 import 
org.apache.shardingsphere.test.e2e.operation.pipeline.entity.CreateTableSQLGeneratorAssertionEntity;
@@ -92,8 +91,7 @@ class CreateTableSQLGeneratorIT {
     }
     
     private void startStorageContainer(final DatabaseType databaseType, final 
String storageContainerImage) {
-        storageContainer = (DockerStorageContainer) 
StorageContainerFactory.newInstance(
-                databaseType, storageContainerImage, 
DatabaseTypedSPILoader.findService(StorageContainerConfigurationOption.class, 
databaseType).orElse(null), null);
+        storageContainer = new DockerStorageContainer(storageContainerImage, 
DatabaseTypedSPILoader.getService(StorageContainerConfigurationOption.class, 
databaseType), null);
         storageContainer.start();
     }
     
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 ed20d7300fe..defc5459078 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
@@ -26,7 +26,6 @@ import 
org.apache.shardingsphere.test.e2e.env.container.atomic.adapter.impl.Shar
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.adapter.impl.ShardingSphereProxyEmbeddedContainer;
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.governance.GovernanceContainer;
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.governance.impl.ZookeeperContainer;
-import 
org.apache.shardingsphere.test.e2e.env.container.atomic.storage.StorageContainerFactory;
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.storage.option.StorageContainerConfigurationOption;
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.storage.type.DockerStorageContainer;
 import 
org.apache.shardingsphere.test.e2e.env.runtime.datasource.DataSourceEnvironment;
@@ -58,8 +57,8 @@ public final class PipelineDockerContainerComposer extends 
PipelineBaseContainer
         ShardingSpherePreconditions.checkState(storageContainerCount >= 1, () 
-> new InvalidParameterException("storageContainerCount must >= 1"));
         GovernanceContainer governanceContainer = 
getContainers().registerContainer(new ZookeeperContainer());
         for (int i = 0; i < storageContainerCount; i++) {
-            DockerStorageContainer storageContainer = 
getContainers().registerContainer((DockerStorageContainer) 
StorageContainerFactory.newInstance(
-                    databaseType, storageContainerImage, 
DatabaseTypedSPILoader.findService(StorageContainerConfigurationOption.class, 
databaseType).orElse(null), null));
+            DockerStorageContainer storageContainer = 
getContainers().registerContainer(
+                    new DockerStorageContainer(storageContainerImage, 
DatabaseTypedSPILoader.getService(StorageContainerConfigurationOption.class, 
databaseType), null));
             
storageContainer.setNetworkAliases(Collections.singletonList(String.join(".", 
databaseType.getType().toLowerCase() + "_" + i, "host")));
             storageContainers.add(storageContainer);
         }
diff --git 
a/test/e2e/operation/showprocesslist/src/test/java/org/apache/shardingsphere/test/e2e/operation/showprocesslist/container/composer/ClusterShowProcessListContainerComposer.java
 
b/test/e2e/operation/showprocesslist/src/test/java/org/apache/shardingsphere/test/e2e/operation/showprocesslist/container/composer/ClusterShowProcessListContainerComposer.java
index 673af33224c..33b99c6e2b5 100644
--- 
a/test/e2e/operation/showprocesslist/src/test/java/org/apache/shardingsphere/test/e2e/operation/showprocesslist/container/composer/ClusterShowProcessListContainerComposer.java
+++ 
b/test/e2e/operation/showprocesslist/src/test/java/org/apache/shardingsphere/test/e2e/operation/showprocesslist/container/composer/ClusterShowProcessListContainerComposer.java
@@ -24,14 +24,14 @@ import 
org.apache.shardingsphere.test.e2e.env.container.atomic.ITContainers;
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.adapter.AdapterContainer;
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.adapter.AdapterContainerFactory;
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.adapter.config.AdaptorContainerConfiguration;
-import 
org.apache.shardingsphere.test.e2e.env.container.atomic.constants.ProxyContainerConstants;
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.adapter.enums.AdapterMode;
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.adapter.enums.AdapterType;
+import 
org.apache.shardingsphere.test.e2e.env.container.atomic.constants.ProxyContainerConstants;
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.governance.GovernanceContainer;
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.governance.GovernanceContainerFactory;
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.storage.StorageContainer;
-import 
org.apache.shardingsphere.test.e2e.env.container.atomic.storage.StorageContainerFactory;
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.storage.option.StorageContainerConfigurationOption;
+import 
org.apache.shardingsphere.test.e2e.env.container.atomic.storage.type.DockerStorageContainer;
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.util.AdapterContainerUtils;
 import 
org.apache.shardingsphere.test.e2e.operation.showprocesslist.env.ShowProcessListEnvironment;
 import 
org.apache.shardingsphere.test.e2e.operation.showprocesslist.parameter.ShowProcessListTestParameter;
@@ -57,8 +57,8 @@ public final class ClusterShowProcessListContainerComposer 
implements AutoClosea
     public ClusterShowProcessListContainerComposer(final 
ShowProcessListTestParameter testParam) {
         containers = new ITContainers(testParam.getScenario());
         governanceContainer = isClusterMode(testParam.getRunMode()) ? 
containers.registerContainer(GovernanceContainerFactory.newInstance("ZooKeeper"))
 : null;
-        StorageContainerConfigurationOption option = 
DatabaseTypedSPILoader.findService(StorageContainerConfigurationOption.class, 
testParam.getDatabaseType()).orElse(null);
-        StorageContainer storageContainer = 
containers.registerContainer(StorageContainerFactory.newInstance(testParam.getDatabaseType(),
 "", option, testParam.getScenario()));
+        StorageContainer storageContainer = containers.registerContainer(
+                new DockerStorageContainer("", 
DatabaseTypedSPILoader.getService(StorageContainerConfigurationOption.class, 
testParam.getDatabaseType()), testParam.getScenario()));
         AdaptorContainerConfiguration containerConfig = new 
AdaptorContainerConfiguration(testParam.getScenario(), new LinkedList<>(),
                 getMountedResources(testParam.getScenario(), 
testParam.getDatabaseType(), testParam.getRunMode(), 
testParam.getGovernanceCenter()), 
AdapterContainerUtils.getAdapterContainerImage(),
                 "");
diff --git 
a/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/operation/transaction/framework/container/compose/TransactionDockerContainerComposer.java
 
b/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/operation/transaction/framework/container/compose/TransactionDockerContainerComposer.java
index ebee0c0d803..7d440017804 100644
--- 
a/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/operation/transaction/framework/container/compose/TransactionDockerContainerComposer.java
+++ 
b/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/operation/transaction/framework/container/compose/TransactionDockerContainerComposer.java
@@ -26,14 +26,13 @@ import 
org.apache.shardingsphere.test.e2e.env.container.atomic.DockerITContainer
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.adapter.AdapterContainer;
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.adapter.AdapterContainerFactory;
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.adapter.config.AdaptorContainerConfiguration;
-import 
org.apache.shardingsphere.test.e2e.env.container.atomic.adapter.impl.ShardingSphereJdbcEmbeddedContainer;
-import 
org.apache.shardingsphere.test.e2e.env.container.atomic.adapter.impl.ShardingSphereProxyEmbeddedContainer;
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.adapter.enums.AdapterMode;
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.adapter.enums.AdapterType;
+import 
org.apache.shardingsphere.test.e2e.env.container.atomic.adapter.impl.ShardingSphereJdbcEmbeddedContainer;
+import 
org.apache.shardingsphere.test.e2e.env.container.atomic.adapter.impl.ShardingSphereProxyEmbeddedContainer;
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.governance.GovernanceContainer;
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.governance.impl.ZookeeperContainer;
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.storage.StorageContainer;
-import 
org.apache.shardingsphere.test.e2e.env.container.atomic.storage.StorageContainerFactory;
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.storage.option.StorageContainerConfigurationOption;
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.storage.type.DockerStorageContainer;
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.storage.type.NativeStorageContainer;
@@ -64,8 +63,8 @@ public final class TransactionDockerContainerComposer extends 
TransactionBaseCon
         GovernanceContainer governanceContainer = 
getContainers().registerContainer(new ZookeeperContainer());
         TransactionE2EEnvTypeEnum envType = 
TransactionE2EEnvironment.getInstance().getItEnvType();
         if (TransactionE2EEnvTypeEnum.DOCKER == envType) {
-            storageContainer = 
getContainers().registerContainer((DockerStorageContainer) 
StorageContainerFactory.newInstance(databaseType,
-                    testParam.getStorageContainerImage(), 
DatabaseTypedSPILoader.findService(StorageContainerConfigurationOption.class, 
databaseType).orElse(null), testParam.getScenario()));
+            storageContainer = getContainers().registerContainer(new 
DockerStorageContainer(
+                    testParam.getStorageContainerImage(), 
DatabaseTypedSPILoader.getService(StorageContainerConfigurationOption.class, 
databaseType), testParam.getScenario()));
         } else {
             storageContainer = getContainers().registerContainer(new 
NativeStorageContainer(databaseType, testParam.getScenario()));
         }
diff --git 
a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/sql/env/container/compose/mode/ClusterContainerComposer.java
 
b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/sql/env/container/compose/mode/ClusterContainerComposer.java
index 920f4a66601..bd3d86679de 100644
--- 
a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/sql/env/container/compose/mode/ClusterContainerComposer.java
+++ 
b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/sql/env/container/compose/mode/ClusterContainerComposer.java
@@ -24,14 +24,14 @@ import 
org.apache.shardingsphere.test.e2e.env.container.atomic.ITContainers;
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.adapter.AdapterContainer;
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.adapter.AdapterContainerFactory;
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.adapter.config.AdaptorContainerConfiguration;
-import 
org.apache.shardingsphere.test.e2e.env.container.atomic.adapter.impl.ShardingSphereProxyEmbeddedContainer;
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.adapter.enums.AdapterMode;
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.adapter.enums.AdapterType;
+import 
org.apache.shardingsphere.test.e2e.env.container.atomic.adapter.impl.ShardingSphereProxyEmbeddedContainer;
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.governance.GovernanceContainer;
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.governance.GovernanceContainerFactory;
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.storage.StorageContainer;
-import 
org.apache.shardingsphere.test.e2e.env.container.atomic.storage.StorageContainerFactory;
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.storage.option.StorageContainerConfigurationOption;
+import 
org.apache.shardingsphere.test.e2e.env.container.atomic.storage.type.DockerStorageContainer;
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.storage.type.NativeStorageContainer;
 import org.apache.shardingsphere.test.e2e.env.runtime.E2ETestEnvironment;
 import 
org.apache.shardingsphere.test.e2e.env.runtime.cluster.ClusterEnvironment.Type;
@@ -60,7 +60,8 @@ public final class ClusterContainerComposer implements 
ContainerComposer {
         governanceContainer = 
containers.registerContainer(GovernanceContainerFactory.newInstance("ZooKeeper"));
         Type envType = 
E2ETestEnvironment.getInstance().getClusterEnvironment().getType();
         storageContainer = containers.registerContainer(Type.DOCKER == envType
-                ? StorageContainerFactory.newInstance(databaseType, 
DatabaseTypedSPILoader.findService(StorageContainerConfigurationOption.class, 
databaseType).orElse(null), scenario)
+                ? new 
DockerStorageContainer(E2ETestEnvironment.getInstance().getClusterEnvironment().getDatabaseImages().get(databaseType),
+                        
DatabaseTypedSPILoader.getService(StorageContainerConfigurationOption.class, 
databaseType), scenario)
                 : new NativeStorageContainer(databaseType, scenario));
         AdaptorContainerConfiguration containerConfig = 
SQLE2EProxyContainerConfigurationFactory.newInstance(scenario, "cluster", 
databaseType);
         AdapterContainer adapterContainer = 
AdapterContainerFactory.newInstance(adapterMode, adapterType, databaseType, 
scenario, containerConfig, storageContainer, envType.name());
diff --git 
a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/sql/env/container/compose/mode/StandaloneContainerComposer.java
 
b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/sql/env/container/compose/mode/StandaloneContainerComposer.java
index 5af53ddd2b5..3cb6f473e94 100644
--- 
a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/sql/env/container/compose/mode/StandaloneContainerComposer.java
+++ 
b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/sql/env/container/compose/mode/StandaloneContainerComposer.java
@@ -27,8 +27,8 @@ import 
org.apache.shardingsphere.test.e2e.env.container.atomic.adapter.config.Ad
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.adapter.enums.AdapterMode;
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.adapter.enums.AdapterType;
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.storage.StorageContainer;
-import 
org.apache.shardingsphere.test.e2e.env.container.atomic.storage.StorageContainerFactory;
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.storage.option.StorageContainerConfigurationOption;
+import 
org.apache.shardingsphere.test.e2e.env.container.atomic.storage.type.DockerStorageContainer;
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.storage.type.NativeStorageContainer;
 import org.apache.shardingsphere.test.e2e.env.runtime.E2ETestEnvironment;
 import 
org.apache.shardingsphere.test.e2e.env.runtime.cluster.ClusterEnvironment.Type;
@@ -53,7 +53,8 @@ public final class StandaloneContainerComposer implements 
ContainerComposer {
         containers = new ITContainers(scenario);
         Type envType = 
E2ETestEnvironment.getInstance().getClusterEnvironment().getType();
         storageContainer = containers.registerContainer(Type.DOCKER == envType
-                ? StorageContainerFactory.newInstance(databaseType, 
DatabaseTypedSPILoader.findService(StorageContainerConfigurationOption.class, 
databaseType).orElse(null), scenario)
+                ? new 
DockerStorageContainer(E2ETestEnvironment.getInstance().getClusterEnvironment().getDatabaseImages().get(databaseType),
+                        
DatabaseTypedSPILoader.getService(StorageContainerConfigurationOption.class, 
databaseType), scenario)
                 : new NativeStorageContainer(databaseType, scenario));
         AdaptorContainerConfiguration containerConfig = 
SQLE2EProxyContainerConfigurationFactory.newInstance(scenario, "standalone", 
databaseType);
         AdapterContainer adapterContainer = 
AdapterContainerFactory.newInstance(adapterMode, adapterType, databaseType, 
scenario, containerConfig, storageContainer, envType.name());

Reply via email to