This is an automated email from the ASF dual-hosted git repository.

zhaojinchao 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 340fa42ca09 Remove the dependency on E2ETestParameter from 
ContainerComposerRegistry. (#31987)
340fa42ca09 is described below

commit 340fa42ca09042cb7a8c4ee85454dfc25225f9d4
Author: Cong Hu <[email protected]>
AuthorDate: Fri Jul 5 18:29:06 2024 +0800

    Remove the dependency on E2ETestParameter from ContainerComposerRegistry. 
(#31987)
---
 .../compose/ContainerComposerRegistry.java         | 23 ++++++++++++----------
 .../compose/mode/ClusterContainerComposer.java     | 15 ++++++--------
 .../compose/mode/StandaloneContainerComposer.java  | 13 +++++-------
 .../e2e/engine/composer/E2EContainerComposer.java  |  5 ++++-
 4 files changed, 28 insertions(+), 28 deletions(-)

diff --git 
a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/container/compose/ContainerComposerRegistry.java
 
b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/container/compose/ContainerComposerRegistry.java
index 0df7bd2f0cf..0ca340fbaa3 100644
--- 
a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/container/compose/ContainerComposerRegistry.java
+++ 
b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/container/compose/ContainerComposerRegistry.java
@@ -19,11 +19,11 @@ package 
org.apache.shardingsphere.test.e2e.container.compose;
 
 import com.google.common.base.Preconditions;
 import lombok.SneakyThrows;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
 import 
org.apache.shardingsphere.test.e2e.container.compose.mode.ClusterContainerComposer;
 import 
org.apache.shardingsphere.test.e2e.container.compose.mode.StandaloneContainerComposer;
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.enums.AdapterType;
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.enums.AdapterMode;
-import 
org.apache.shardingsphere.test.e2e.framework.param.model.E2ETestParameter;
 
 import javax.sql.DataSource;
 import java.util.HashMap;
@@ -43,29 +43,32 @@ public final class ContainerComposerRegistry implements 
AutoCloseable {
     /**
      * Get container composer.
      *
-     * @param testParam test parameter
+     * @param key key
+     * @param scenario scenario
+     * @param databaseType databaseType
+     * @param adapterMode adapterMode
+     * @param adapterType adapterType
      * @return composed container
      */
-    public ContainerComposer getContainerComposer(final E2ETestParameter 
testParam) {
-        String key = testParam.getKey();
+    public ContainerComposer getContainerComposer(final String key, final 
String scenario, final DatabaseType databaseType, final AdapterMode 
adapterMode, final AdapterType adapterType) {
         if (containerComposers.containsKey(key)) {
             return containerComposers.get(key);
         }
         synchronized (containerComposers) {
             if (!containerComposers.containsKey(key)) {
-                containerComposers.put(key, 
createContainerComposer(testParam));
+                containerComposers.put(key, 
createContainerComposer(isClusterMode(adapterMode, adapterType), scenario, 
databaseType, adapterMode, adapterType));
             }
             return containerComposers.get(key);
         }
     }
     
-    private ContainerComposer createContainerComposer(final E2ETestParameter 
testParam) {
-        return isClusterMode(testParam) ? new 
ClusterContainerComposer(testParam) : new 
StandaloneContainerComposer(testParam);
+    private boolean isClusterMode(final AdapterMode adapterMode, final 
AdapterType adapterType) {
+        // TODO cluster mode often throw exception sometimes, issue is #15517
+        return AdapterMode.CLUSTER == adapterMode && AdapterType.PROXY == 
adapterType;
     }
     
-    private boolean isClusterMode(final E2ETestParameter testParam) {
-        // TODO cluster mode often throw exception sometimes, issue is #15517
-        return 
AdapterMode.CLUSTER.getValue().equalsIgnoreCase(testParam.getMode()) && 
AdapterType.PROXY.getValue().equalsIgnoreCase(testParam.getAdapter());
+    private ContainerComposer createContainerComposer(final boolean 
clusterMode, final String scenario, final DatabaseType databaseType, final 
AdapterMode adapterMode, final AdapterType adapterType) {
+        return clusterMode ? new ClusterContainerComposer(scenario, 
databaseType, adapterMode, adapterType) : new 
StandaloneContainerComposer(scenario, databaseType, adapterMode, adapterType);
     }
     
     @Override
diff --git 
a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/container/compose/mode/ClusterContainerComposer.java
 
b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/container/compose/mode/ClusterContainerComposer.java
index 3435c55b256..84bb91bb234 100644
--- 
a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/container/compose/mode/ClusterContainerComposer.java
+++ 
b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/container/compose/mode/ClusterContainerComposer.java
@@ -17,6 +17,7 @@
 
 package org.apache.shardingsphere.test.e2e.container.compose.mode;
 
+import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
 import org.apache.shardingsphere.test.e2e.container.compose.ContainerComposer;
 import 
org.apache.shardingsphere.test.e2e.container.config.ProxyClusterContainerConfigurationFactory;
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.DockerITContainer;
@@ -32,7 +33,6 @@ import 
org.apache.shardingsphere.test.e2e.env.container.atomic.storage.StorageCo
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.storage.StorageContainerFactory;
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.impl.StorageContainerConfigurationFactory;
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.util.AdapterContainerUtils;
-import 
org.apache.shardingsphere.test.e2e.framework.param.model.E2ETestParameter;
 
 import javax.sql.DataSource;
 import java.util.Map;
@@ -50,18 +50,15 @@ public final class ClusterContainerComposer implements 
ContainerComposer {
     
     private final AdapterContainer adapterContainer;
     
-    public ClusterContainerComposer(final E2ETestParameter testParam) {
-        String scenario = testParam.getScenario();
+    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"));
         // TODO add more version of databases
-        storageContainer = 
containers.registerContainer(StorageContainerFactory.newInstance(testParam.getDatabaseType(),
 "",
-                
StorageContainerConfigurationFactory.newInstance(testParam.getDatabaseType(), 
scenario)));
-        AdaptorContainerConfiguration containerConfig = 
ProxyClusterContainerConfigurationFactory.newInstance(
-                scenario, testParam.getDatabaseType(), 
AdapterContainerUtils.getAdapterContainerImage());
-        AdapterContainer adapterContainer = 
AdapterContainerFactory.newInstance(AdapterMode.valueOf(testParam.getMode().toUpperCase()),
-                AdapterType.valueOf(testParam.getAdapter().toUpperCase()), 
testParam.getDatabaseType(), storageContainer, scenario, containerConfig);
+        storageContainer = 
containers.registerContainer(StorageContainerFactory.newInstance(databaseType, 
"",
+                StorageContainerConfigurationFactory.newInstance(databaseType, 
scenario)));
+        AdaptorContainerConfiguration containerConfig = 
ProxyClusterContainerConfigurationFactory.newInstance(scenario, databaseType, 
AdapterContainerUtils.getAdapterContainerImage());
+        AdapterContainer adapterContainer = 
AdapterContainerFactory.newInstance(adapterMode, adapterType, databaseType, 
storageContainer, scenario, containerConfig);
         if (adapterContainer instanceof DockerITContainer) {
             ((DockerITContainer) 
adapterContainer).dependsOn(governanceContainer, storageContainer);
         }
diff --git 
a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/container/compose/mode/StandaloneContainerComposer.java
 
b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/container/compose/mode/StandaloneContainerComposer.java
index b7d35937801..d0ae9efbd17 100644
--- 
a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/container/compose/mode/StandaloneContainerComposer.java
+++ 
b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/container/compose/mode/StandaloneContainerComposer.java
@@ -17,6 +17,7 @@
 
 package org.apache.shardingsphere.test.e2e.container.compose.mode;
 
+import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
 import org.apache.shardingsphere.test.e2e.container.compose.ContainerComposer;
 import 
org.apache.shardingsphere.test.e2e.container.config.ProxyStandaloneContainerConfigurationFactory;
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.DockerITContainer;
@@ -28,7 +29,6 @@ import 
org.apache.shardingsphere.test.e2e.env.container.atomic.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.config.impl.StorageContainerConfigurationFactory;
-import 
org.apache.shardingsphere.test.e2e.framework.param.model.E2ETestParameter;
 
 import javax.sql.DataSource;
 import java.util.Map;
@@ -44,15 +44,12 @@ public final class StandaloneContainerComposer implements 
ContainerComposer {
     
     private final AdapterContainer adapterContainer;
     
-    public StandaloneContainerComposer(final E2ETestParameter testParam) {
-        String scenario = testParam.getScenario();
+    public StandaloneContainerComposer(final String scenario, final 
DatabaseType databaseType, final AdapterMode adapterMode, final AdapterType 
adapterType) {
         containers = new ITContainers(scenario);
         // TODO add more version of databases
-        storageContainer = 
containers.registerContainer(StorageContainerFactory.newInstance(testParam.getDatabaseType(),
 "",
-                
StorageContainerConfigurationFactory.newInstance(testParam.getDatabaseType(), 
scenario)));
-        adapterContainer = 
containers.registerContainer(AdapterContainerFactory.newInstance(AdapterMode.valueOf(testParam.getMode().toUpperCase()),
-                AdapterType.valueOf(testParam.getAdapter().toUpperCase()),
-                testParam.getDatabaseType(), storageContainer, scenario, 
ProxyStandaloneContainerConfigurationFactory.newInstance(scenario, 
testParam.getDatabaseType())));
+        storageContainer = 
containers.registerContainer(StorageContainerFactory.newInstance(databaseType, 
"", StorageContainerConfigurationFactory.newInstance(databaseType, scenario)));
+        adapterContainer = 
containers.registerContainer(AdapterContainerFactory.newInstance(adapterMode, 
adapterType, databaseType, storageContainer, scenario,
+                
ProxyStandaloneContainerConfigurationFactory.newInstance(scenario, 
databaseType)));
         if (adapterContainer instanceof DockerITContainer) {
             ((DockerITContainer) adapterContainer).dependsOn(storageContainer);
         }
diff --git 
a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/composer/E2EContainerComposer.java
 
b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/composer/E2EContainerComposer.java
index 4896945c66b..c1e036f2d55 100644
--- 
a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/composer/E2EContainerComposer.java
+++ 
b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/composer/E2EContainerComposer.java
@@ -24,6 +24,8 @@ import 
org.apache.shardingsphere.infra.database.core.DefaultDatabase;
 import org.apache.shardingsphere.test.e2e.container.compose.ContainerComposer;
 import 
org.apache.shardingsphere.test.e2e.container.compose.ContainerComposerRegistry;
 import org.apache.shardingsphere.test.e2e.engine.TotalSuitesCountCalculator;
+import 
org.apache.shardingsphere.test.e2e.env.container.atomic.enums.AdapterMode;
+import 
org.apache.shardingsphere.test.e2e.env.container.atomic.enums.AdapterType;
 import 
org.apache.shardingsphere.test.e2e.env.runtime.scenario.path.ScenarioDataPath;
 import 
org.apache.shardingsphere.test.e2e.framework.param.model.E2ETestParameter;
 import org.h2.tools.RunScript;
@@ -65,7 +67,8 @@ public abstract class E2EContainerComposer {
     private final Map<String, DataSource> expectedDataSourceMap;
     
     protected E2EContainerComposer(final E2ETestParameter testParam) {
-        containerComposer = 
CONTAINER_COMPOSER_REGISTRY.getContainerComposer(testParam);
+        containerComposer = 
CONTAINER_COMPOSER_REGISTRY.getContainerComposer(testParam.getKey(), 
testParam.getScenario(), testParam.getDatabaseType(),
+                AdapterMode.valueOf(testParam.getMode().toUpperCase()), 
AdapterType.valueOf(testParam.getAdapter().toUpperCase()));
         containerComposer.start();
         actualDataSourceMap = containerComposer.getActualDataSourceMap();
         targetDataSource = containerComposer.getTargetDataSource();

Reply via email to