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 3d6d79a1dbd Rename StorageContainerOption (#36624)
3d6d79a1dbd is described below

commit 3d6d79a1dbd51968837b8d20a4c904eb5b713db2
Author: Liang Zhang <[email protected]>
AuthorDate: Fri Sep 19 00:55:43 2025 +0800

    Rename StorageContainerOption (#36624)
---
 .../agent/engine/env/AgentE2ETestEnvironment.java  |  4 +-
 .../container/governance/GovernanceContainer.java  | 22 +++++++++--
 .../GovernanceContainerOption.java}                | 43 ++++++++++++----------
 .../impl/ZookeeperGovernanceContainerOption.java}  | 29 ++++++++-------
 .../storage/type/DockerStorageContainer.java       |  2 +-
 ...ner.governance.option.GovernanceContainerOption | 18 +++++++++
 .../docker/PipelineDockerContainerComposer.java    |  5 ++-
 .../ClusterShowProcessListContainerComposer.java   |  7 +++-
 .../TransactionDockerContainerComposer.java        |  5 ++-
 .../compose/mode/ClusterContainerComposer.java     |  5 ++-
 10 files changed, 92 insertions(+), 48 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 26aee425587..ca4b44d165e 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
@@ -38,7 +38,7 @@ import 
org.apache.shardingsphere.test.e2e.env.container.adapter.enums.AdapterTyp
 import 
org.apache.shardingsphere.test.e2e.env.container.adapter.impl.ShardingSphereProxyClusterContainer;
 import 
org.apache.shardingsphere.test.e2e.env.container.constants.ProxyContainerConstants;
 import 
org.apache.shardingsphere.test.e2e.env.container.governance.GovernanceContainer;
-import 
org.apache.shardingsphere.test.e2e.env.container.governance.GovernanceContainerFactory;
+import 
org.apache.shardingsphere.test.e2e.env.container.governance.option.GovernanceContainerOption;
 import 
org.apache.shardingsphere.test.e2e.env.container.storage.StorageContainer;
 import 
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerOption;
 import 
org.apache.shardingsphere.test.e2e.env.container.storage.type.DockerStorageContainer;
@@ -120,7 +120,7 @@ public final class AgentE2ETestEnvironment {
         StorageContainer storageContainer = new 
DockerStorageContainer(imageConfig.getMysqlImage(), 
DatabaseTypedSPILoader.getService(StorageContainerOption.class, databaseType), 
null);
         proxyContainer.dependsOn(storageContainer);
         containers.registerContainer(storageContainer);
-        GovernanceContainer governanceContainer = 
GovernanceContainerFactory.newInstance("ZooKeeper");
+        GovernanceContainer governanceContainer = new 
GovernanceContainer(TypedSPILoader.getService(GovernanceContainerOption.class, 
"ZooKeeper"));
         proxyContainer.dependsOn(governanceContainer);
         containers.registerContainer(governanceContainer);
         if (null != agentPluginContainer) {
diff --git 
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/governance/GovernanceContainer.java
 
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/governance/GovernanceContainer.java
index 920f18755ed..ef28b5b9d66 100644
--- 
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/governance/GovernanceContainer.java
+++ 
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/governance/GovernanceContainer.java
@@ -18,14 +18,21 @@
 package org.apache.shardingsphere.test.e2e.env.container.governance;
 
 import org.apache.shardingsphere.test.e2e.env.container.DockerITContainer;
+import 
org.apache.shardingsphere.test.e2e.env.container.governance.option.GovernanceContainerOption;
+import org.testcontainers.containers.wait.strategy.LogMessageWaitStrategy;
 
 /**
  * Governance container.
  */
-public abstract class GovernanceContainer extends DockerITContainer {
+public final class GovernanceContainer extends DockerITContainer {
     
-    protected GovernanceContainer(final String name, final String 
containerImage) {
-        super(name, containerImage);
+    private final GovernanceContainerOption option;
+    
+    public GovernanceContainer(final GovernanceContainerOption option) {
+        super(option.getType().toString().toLowerCase(), 
option.getDefaultImageName());
+        this.option = option;
+        setWaitStrategy(new 
LogMessageWaitStrategy().withRegEx(option.getSuccessLogPattern()));
+        withExposedPorts(option.getPort());
     }
     
     /**
@@ -33,5 +40,12 @@ public abstract class GovernanceContainer extends 
DockerITContainer {
      *
      * @return server list
      */
-    public abstract String getServerLists();
+    public String getServerLists() {
+        return getHost() + ":" + getMappedPort(option.getPort());
+    }
+    
+    @Override
+    public String getAbbreviation() {
+        return getName();
+    }
 }
diff --git 
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/governance/GovernanceContainerFactory.java
 
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/governance/option/GovernanceContainerOption.java
similarity index 52%
rename from 
test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/governance/GovernanceContainerFactory.java
rename to 
test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/governance/option/GovernanceContainerOption.java
index 07027efcc40..7ef2bfefa8d 100644
--- 
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/governance/GovernanceContainerFactory.java
+++ 
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/governance/option/GovernanceContainerOption.java
@@ -15,32 +15,35 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.test.e2e.env.container.governance;
+package org.apache.shardingsphere.test.e2e.env.container.governance.option;
 
-import lombok.AccessLevel;
-import lombok.NoArgsConstructor;
-import 
org.apache.shardingsphere.test.e2e.env.container.governance.impl.ZookeeperContainer;
+import org.apache.shardingsphere.infra.spi.annotation.SingletonSPI;
+import org.apache.shardingsphere.infra.spi.type.typed.TypedSPI;
 
 /**
- * Governance container factory.
+ * Governance container option.
  */
-@NoArgsConstructor(access = AccessLevel.PRIVATE)
-public final class GovernanceContainerFactory {
+@SingletonSPI
+public interface GovernanceContainerOption extends TypedSPI {
     
     /**
-     * Create new instance of governance container.
+     * Get container port.
      *
-     * @param type governance center type
-     * @return created instance
-     * @throws RuntimeException runtime exception
+     * @return container port
      */
-    @SuppressWarnings("SwitchStatementWithTooFewBranches")
-    public static GovernanceContainer newInstance(final String type) {
-        switch (type) {
-            case "ZooKeeper":
-                return new ZookeeperContainer();
-            default:
-                throw new RuntimeException(String.format("Governance center 
[%s] is unknown.", type));
-        }
-    }
+    int getPort();
+    
+    /**
+     * Get default container image name.
+     *
+     * @return default container image name
+     */
+    String getDefaultImageName();
+    
+    /**
+     * Get success log pattern.
+     *
+     * @return success log pattern
+     */
+    String getSuccessLogPattern();
 }
diff --git 
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/governance/impl/ZookeeperContainer.java
 
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/governance/option/impl/ZookeeperGovernanceContainerOption.java
similarity index 63%
rename from 
test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/governance/impl/ZookeeperContainer.java
rename to 
test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/governance/option/impl/ZookeeperGovernanceContainerOption.java
index 07077fe03a7..5af42caf6ca 100644
--- 
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/governance/impl/ZookeeperContainer.java
+++ 
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/governance/option/impl/ZookeeperGovernanceContainerOption.java
@@ -15,29 +15,32 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.test.e2e.env.container.governance.impl;
+package 
org.apache.shardingsphere.test.e2e.env.container.governance.option.impl;
 
-import 
org.apache.shardingsphere.test.e2e.env.container.governance.GovernanceContainer;
-import org.testcontainers.containers.wait.strategy.LogMessageWaitStrategy;
+import 
org.apache.shardingsphere.test.e2e.env.container.governance.option.GovernanceContainerOption;
 
 /**
- * Zookeeper container.
+ * Governance container option for Zookeeper.
  */
-public final class ZookeeperContainer extends GovernanceContainer {
+public final class ZookeeperGovernanceContainerOption implements 
GovernanceContainerOption {
     
-    public ZookeeperContainer() {
-        super("zookeeper", "zookeeper:3.6.2");
-        setWaitStrategy(new 
LogMessageWaitStrategy().withRegEx(".*PrepRequestProcessor \\(sid:[0-9]+\\) 
started.*"));
-        withExposedPorts(2181);
+    @Override
+    public int getPort() {
+        return 2181;
+    }
+    
+    @Override
+    public String getDefaultImageName() {
+        return "zookeeper:3.6.2";
     }
     
     @Override
-    public String getServerLists() {
-        return getHost() + ":" + getMappedPort(2181);
+    public String getSuccessLogPattern() {
+        return ".*PrepRequestProcessor \\(sid:[0-9]+\\) started.*";
     }
     
     @Override
-    public String getAbbreviation() {
-        return "zk";
+    public Object getType() {
+        return "ZooKeeper";
     }
 }
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 7b279bb0776..d04fd1bfce4 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
@@ -210,7 +210,7 @@ public final class DockerStorageContainer extends 
DockerITContainer implements S
     
     @Override
     public String getAbbreviation() {
-        return option.getDatabaseType().toLowerCase();
+        return getName();
     }
     
     @Override
diff --git 
a/test/e2e/env/src/test/resources/META-INF/services/org.apache.shardingsphere.test.e2e.env.container.governance.option.GovernanceContainerOption
 
b/test/e2e/env/src/test/resources/META-INF/services/org.apache.shardingsphere.test.e2e.env.container.governance.option.GovernanceContainerOption
new file mode 100644
index 00000000000..e387dcb099d
--- /dev/null
+++ 
b/test/e2e/env/src/test/resources/META-INF/services/org.apache.shardingsphere.test.e2e.env.container.governance.option.GovernanceContainerOption
@@ -0,0 +1,18 @@
+#
+# 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.container.governance.option.impl.ZookeeperGovernanceContainerOption
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 5da7fb1ec87..899119fc8ac 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
@@ -21,11 +21,12 @@ import lombok.Getter;
 import 
org.apache.shardingsphere.database.connector.core.spi.DatabaseTypedSPILoader;
 import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
 import org.apache.shardingsphere.infra.exception.ShardingSpherePreconditions;
+import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
 import 
org.apache.shardingsphere.test.e2e.env.container.adapter.config.AdaptorContainerConfiguration;
 import 
org.apache.shardingsphere.test.e2e.env.container.adapter.impl.ShardingSphereProxyClusterContainer;
 import 
org.apache.shardingsphere.test.e2e.env.container.adapter.impl.ShardingSphereProxyEmbeddedContainer;
 import 
org.apache.shardingsphere.test.e2e.env.container.governance.GovernanceContainer;
-import 
org.apache.shardingsphere.test.e2e.env.container.governance.impl.ZookeeperContainer;
+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;
@@ -55,7 +56,7 @@ public final class PipelineDockerContainerComposer extends 
PipelineBaseContainer
     public PipelineDockerContainerComposer(final DatabaseType databaseType, 
final String storageContainerImage, final int storageContainerCount) {
         this.databaseType = databaseType;
         ShardingSpherePreconditions.checkState(storageContainerCount >= 1, () 
-> new InvalidParameterException("storageContainerCount must >= 1"));
-        GovernanceContainer governanceContainer = 
getContainers().registerContainer(new ZookeeperContainer());
+        GovernanceContainer governanceContainer = 
getContainers().registerContainer(new 
GovernanceContainer(TypedSPILoader.getService(GovernanceContainerOption.class, 
"ZooKeeper")));
         for (int i = 0; i < storageContainerCount; i++) {
             DockerStorageContainer storageContainer = 
getContainers().registerContainer(
                     new DockerStorageContainer(storageContainerImage, 
DatabaseTypedSPILoader.getService(StorageContainerOption.class, databaseType), 
null));
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 2acdc4b8705..a93d9d2aad3 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
@@ -19,6 +19,7 @@ package 
org.apache.shardingsphere.test.e2e.operation.showprocesslist.container.c
 
 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.DockerITContainer;
 import org.apache.shardingsphere.test.e2e.env.container.ITContainers;
 import 
org.apache.shardingsphere.test.e2e.env.container.adapter.AdapterContainer;
@@ -28,7 +29,7 @@ import 
org.apache.shardingsphere.test.e2e.env.container.adapter.enums.AdapterMod
 import 
org.apache.shardingsphere.test.e2e.env.container.adapter.enums.AdapterType;
 import 
org.apache.shardingsphere.test.e2e.env.container.constants.ProxyContainerConstants;
 import 
org.apache.shardingsphere.test.e2e.env.container.governance.GovernanceContainer;
-import 
org.apache.shardingsphere.test.e2e.env.container.governance.GovernanceContainerFactory;
+import 
org.apache.shardingsphere.test.e2e.env.container.governance.option.GovernanceContainerOption;
 import 
org.apache.shardingsphere.test.e2e.env.container.storage.StorageContainer;
 import 
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerOption;
 import 
org.apache.shardingsphere.test.e2e.env.container.storage.type.DockerStorageContainer;
@@ -56,7 +57,9 @@ 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;
+        governanceContainer = isClusterMode(testParam.getRunMode())
+                ? containers.registerContainer(new 
GovernanceContainer(TypedSPILoader.getService(GovernanceContainerOption.class, 
"ZooKeeper")))
+                : null;
         StorageContainer storageContainer = containers.registerContainer(
                 new DockerStorageContainer("", 
DatabaseTypedSPILoader.getService(StorageContainerOption.class, 
testParam.getDatabaseType()), testParam.getScenario()));
         AdaptorContainerConfiguration containerConfig = new 
AdaptorContainerConfiguration(testParam.getScenario(), new LinkedList<>(),
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 2417a4b21d5..ba092ef37d0 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
@@ -22,6 +22,7 @@ import lombok.Getter;
 import lombok.extern.slf4j.Slf4j;
 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.DockerITContainer;
 import 
org.apache.shardingsphere.test.e2e.env.container.adapter.AdapterContainer;
 import 
org.apache.shardingsphere.test.e2e.env.container.adapter.AdapterContainerFactory;
@@ -31,7 +32,7 @@ import 
org.apache.shardingsphere.test.e2e.env.container.adapter.enums.AdapterTyp
 import 
org.apache.shardingsphere.test.e2e.env.container.adapter.impl.ShardingSphereJdbcEmbeddedContainer;
 import 
org.apache.shardingsphere.test.e2e.env.container.adapter.impl.ShardingSphereProxyEmbeddedContainer;
 import 
org.apache.shardingsphere.test.e2e.env.container.governance.GovernanceContainer;
-import 
org.apache.shardingsphere.test.e2e.env.container.governance.impl.ZookeeperContainer;
+import 
org.apache.shardingsphere.test.e2e.env.container.governance.option.GovernanceContainerOption;
 import 
org.apache.shardingsphere.test.e2e.env.container.storage.StorageContainer;
 import 
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerOption;
 import 
org.apache.shardingsphere.test.e2e.env.container.storage.type.DockerStorageContainer;
@@ -60,7 +61,7 @@ public final class TransactionDockerContainerComposer extends 
TransactionBaseCon
     public TransactionDockerContainerComposer(final TransactionTestParameter 
testParam) {
         super(testParam.getScenario());
         DatabaseType databaseType = testParam.getDatabaseType();
-        GovernanceContainer governanceContainer = 
getContainers().registerContainer(new ZookeeperContainer());
+        GovernanceContainer governanceContainer = 
getContainers().registerContainer(new 
GovernanceContainer(TypedSPILoader.getService(GovernanceContainerOption.class, 
"ZooKeeper")));
         TransactionE2EEnvTypeEnum envType = 
TransactionE2EEnvironment.getInstance().getItEnvType();
         if (TransactionE2EEnvTypeEnum.DOCKER == envType) {
             storageContainer = getContainers().registerContainer(new 
DockerStorageContainer(
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 9e76ae1f298..768f4cfc001 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
@@ -19,6 +19,7 @@ package 
org.apache.shardingsphere.test.e2e.sql.env.container.compose.mode;
 
 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.DockerITContainer;
 import org.apache.shardingsphere.test.e2e.env.container.ITContainers;
 import 
org.apache.shardingsphere.test.e2e.env.container.adapter.AdapterContainer;
@@ -28,7 +29,7 @@ import 
org.apache.shardingsphere.test.e2e.env.container.adapter.enums.AdapterMod
 import 
org.apache.shardingsphere.test.e2e.env.container.adapter.enums.AdapterType;
 import 
org.apache.shardingsphere.test.e2e.env.container.adapter.impl.ShardingSphereProxyEmbeddedContainer;
 import 
org.apache.shardingsphere.test.e2e.env.container.governance.GovernanceContainer;
-import 
org.apache.shardingsphere.test.e2e.env.container.governance.GovernanceContainerFactory;
+import 
org.apache.shardingsphere.test.e2e.env.container.governance.option.GovernanceContainerOption;
 import 
org.apache.shardingsphere.test.e2e.env.container.storage.StorageContainer;
 import 
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerOption;
 import 
org.apache.shardingsphere.test.e2e.env.container.storage.type.DockerStorageContainer;
@@ -57,7 +58,7 @@ public final class ClusterContainerComposer implements 
ContainerComposer {
     public ClusterContainerComposer(final String scenario, final DatabaseType 
databaseType, final AdapterMode adapterMode, final AdapterType adapterType) {
         containers = new ITContainers(scenario);
         // TODO support other types of governance
-        governanceContainer = 
containers.registerContainer(GovernanceContainerFactory.newInstance("ZooKeeper"));
+        governanceContainer = containers.registerContainer(new 
GovernanceContainer(TypedSPILoader.getService(GovernanceContainerOption.class, 
"ZooKeeper")));
         Type envType = 
E2ETestEnvironment.getInstance().getClusterEnvironment().getType();
         storageContainer = containers.registerContainer(Type.DOCKER == envType
                 ? new 
DockerStorageContainer(E2ETestEnvironment.getInstance().getClusterEnvironment().getDatabaseImages().get(databaseType),

Reply via email to