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();