Skip to content

Commit 1ebcf8b

Browse files
authored
Refactor StorageContainerFactory (#36573)
* Refactor StorageContainerFactory * Refactor StorageContainerFactory
1 parent 6fe8a2e commit 1ebcf8b

File tree

8 files changed

+19
-60
lines changed

8 files changed

+19
-60
lines changed

test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/StorageContainerFactory.java

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
import lombok.AccessLevel;
2121
import lombok.NoArgsConstructor;
2222
import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
23-
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.StorageContainerConfiguration;
23+
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.option.StorageContainerConfigurationOption;
2424
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.type.docker.DockerStorageContainer;
2525
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.type.docker.impl.HiveContainer;
2626
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.type.embedded.impl.H2Container;
@@ -36,34 +36,36 @@ public final class StorageContainerFactory {
3636
* Create new instance of storage container.
3737
*
3838
* @param databaseType database type
39-
* @param storageContainerConfig storage container configuration
39+
* @param option storage container configuration option
40+
* @param scenario scenario
4041
* @return created instance
4142
* @throws RuntimeException runtime exception
4243
*/
43-
public static StorageContainer newInstance(final DatabaseType databaseType, final StorageContainerConfiguration storageContainerConfig) {
44-
return newInstance(databaseType, E2ETestEnvironment.getInstance().getClusterEnvironment().getDatabaseImages().get(databaseType), storageContainerConfig);
44+
public static StorageContainer newInstance(final DatabaseType databaseType, final StorageContainerConfigurationOption option, final String scenario) {
45+
return newInstance(databaseType, E2ETestEnvironment.getInstance().getClusterEnvironment().getDatabaseImages().get(databaseType), option, scenario);
4546
}
4647

4748
/**
4849
* Create new instance of storage container.
4950
*
5051
* @param databaseType database type
5152
* @param storageContainerImage storage container image
52-
* @param storageContainerConfig storage container configuration
53+
* @param option storage container configuration option
54+
* @param scenario scenario
5355
* @return created instance
5456
* @throws RuntimeException runtime exception
5557
*/
56-
public static StorageContainer newInstance(final DatabaseType databaseType, final String storageContainerImage, final StorageContainerConfiguration storageContainerConfig) {
58+
public static StorageContainer newInstance(final DatabaseType databaseType, final String storageContainerImage, final StorageContainerConfigurationOption option, final String scenario) {
5759
switch (databaseType.getType()) {
5860
case "MySQL":
5961
case "PostgreSQL":
6062
case "openGauss":
6163
case "MariaDB":
62-
return new DockerStorageContainer(databaseType, storageContainerImage, storageContainerConfig.getConfigurationOption(), storageContainerConfig.getScenario());
64+
return new DockerStorageContainer(databaseType, storageContainerImage, option, scenario);
6365
case "Hive":
64-
return new HiveContainer(storageContainerImage, storageContainerConfig.getConfigurationOption(), storageContainerConfig.getScenario());
66+
return new HiveContainer(storageContainerImage, option, scenario);
6567
case "H2":
66-
return new H2Container(storageContainerConfig.getScenario());
68+
return new H2Container(scenario);
6769
default:
6870
throw new RuntimeException(String.format("Database `%s` is unknown.", databaseType.getType()));
6971
}

test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/config/StorageContainerConfiguration.java

Lines changed: 0 additions & 34 deletions
This file was deleted.

test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/operation/pipeline/cases/createtable/CreateTableSQLGeneratorIT.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
2323
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
2424
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.StorageContainerFactory;
25-
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.StorageContainerConfiguration;
2625
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.option.StorageContainerConfigurationOptionFactory;
2726
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.type.docker.DockerStorageContainer;
2827
import org.apache.shardingsphere.test.e2e.operation.pipeline.entity.CreateTableSQLGeneratorAssertionEntity;
@@ -93,8 +92,8 @@ void assertGenerateCreateTableSQL(final PipelineTestParameter testParam) throws
9392
}
9493

9594
private void startStorageContainer(final DatabaseType databaseType, final String storageContainerImage) {
96-
StorageContainerConfiguration storageContainerConfig = new StorageContainerConfiguration(null, StorageContainerConfigurationOptionFactory.newInstance(databaseType));
97-
storageContainer = (DockerStorageContainer) StorageContainerFactory.newInstance(databaseType, storageContainerImage, storageContainerConfig);
95+
storageContainer = (DockerStorageContainer) StorageContainerFactory.newInstance(
96+
databaseType, storageContainerImage, StorageContainerConfigurationOptionFactory.newInstance(databaseType), null);
9897
storageContainer.start();
9998
}
10099

test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/operation/pipeline/framework/container/compose/DockerContainerComposer.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
import org.apache.shardingsphere.test.e2e.env.container.atomic.governance.GovernanceContainer;
2727
import org.apache.shardingsphere.test.e2e.env.container.atomic.governance.impl.ZookeeperContainer;
2828
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.StorageContainerFactory;
29-
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.StorageContainerConfiguration;
3029
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.option.StorageContainerConfigurationOptionFactory;
3130
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.type.docker.DockerStorageContainer;
3231
import org.apache.shardingsphere.test.e2e.env.runtime.DataSourceEnvironment;
@@ -61,10 +60,8 @@ public DockerContainerComposer(final DatabaseType databaseType, final String sto
6160
throw new InvalidParameterException("storageContainerCount must >= 1");
6261
}
6362
for (int i = 0; i < storageContainerCount; i++) {
64-
StorageContainerConfiguration storageContainerConfig;
65-
storageContainerConfig = new StorageContainerConfiguration(null, StorageContainerConfigurationOptionFactory.newInstance(databaseType));
6663
DockerStorageContainer storageContainer = getContainers().registerContainer(
67-
(DockerStorageContainer) StorageContainerFactory.newInstance(databaseType, storageContainerImage, storageContainerConfig));
64+
(DockerStorageContainer) StorageContainerFactory.newInstance(databaseType, storageContainerImage, StorageContainerConfigurationOptionFactory.newInstance(databaseType), null));
6865
storageContainer.setNetworkAliases(Collections.singletonList(String.join(".", databaseType.getType().toLowerCase() + "_" + i, "host")));
6966
storageContainers.add(storageContainer);
7067
}

test/e2e/operation/showprocesslist/src/test/java/org/apache/shardingsphere/test/e2e/operation/showprocesslist/container/composer/ClusterShowProcessListContainerComposer.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
import org.apache.shardingsphere.test.e2e.env.container.atomic.governance.GovernanceContainerFactory;
3131
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.StorageContainer;
3232
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.StorageContainerFactory;
33-
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.StorageContainerConfiguration;
3433
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.option.StorageContainerConfigurationOption;
3534
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.option.StorageContainerConfigurationOptionFactory;
3635
import org.apache.shardingsphere.test.e2e.env.container.atomic.util.AdapterContainerUtils;
@@ -59,8 +58,7 @@ public ClusterShowProcessListContainerComposer(final ShowProcessListTestParamete
5958
containers = new ITContainers(testParam.getScenario());
6059
governanceContainer = isClusterMode(testParam.getRunMode()) ? containers.registerContainer(GovernanceContainerFactory.newInstance("ZooKeeper")) : null;
6160
StorageContainerConfigurationOption option = StorageContainerConfigurationOptionFactory.newInstance(testParam.getDatabaseType());
62-
StorageContainer storageContainer = containers.registerContainer(
63-
StorageContainerFactory.newInstance(testParam.getDatabaseType(), "", new StorageContainerConfiguration(testParam.getScenario(), option)));
61+
StorageContainer storageContainer = containers.registerContainer(StorageContainerFactory.newInstance(testParam.getDatabaseType(), "", option, testParam.getScenario()));
6462
AdaptorContainerConfiguration containerConfig = new AdaptorContainerConfiguration(testParam.getScenario(), new LinkedList<>(),
6563
getMountedResources(testParam.getScenario(), testParam.getDatabaseType(), testParam.getRunMode(), testParam.getGovernanceCenter()), AdapterContainerUtils.getAdapterContainerImage(),
6664
"");

test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/operation/transaction/framework/container/compose/DockerContainerComposer.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@
3333
import org.apache.shardingsphere.test.e2e.env.container.atomic.governance.impl.ZookeeperContainer;
3434
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.StorageContainer;
3535
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.StorageContainerFactory;
36-
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.StorageContainerConfiguration;
3736
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.option.StorageContainerConfigurationOptionFactory;
3837
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.type.docker.DockerStorageContainer;
3938
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.type.natived.NativeStorageContainer;
@@ -68,8 +67,8 @@ public DockerContainerComposer(final TransactionTestParameter testParam) {
6867
governanceContainer = getContainers().registerContainer(new ZookeeperContainer());
6968
TransactionE2EEnvTypeEnum envType = TransactionE2EEnvironment.getInstance().getItEnvType();
7069
if (TransactionE2EEnvTypeEnum.DOCKER == envType) {
71-
storageContainer = getContainers().registerContainer((DockerStorageContainer) StorageContainerFactory.newInstance(databaseType, testParam.getStorageContainerImage(),
72-
new StorageContainerConfiguration(testParam.getScenario(), StorageContainerConfigurationOptionFactory.newInstance(databaseType))));
70+
storageContainer = getContainers().registerContainer((DockerStorageContainer) StorageContainerFactory.newInstance(
71+
databaseType, testParam.getStorageContainerImage(), StorageContainerConfigurationOptionFactory.newInstance(databaseType), testParam.getScenario()));
7372
} else {
7473
storageContainer = getContainers().registerContainer(new NativeStorageContainer(databaseType, testParam.getScenario()));
7574
}

test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/sql/env/container/compose/mode/ClusterContainerComposer.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
import org.apache.shardingsphere.test.e2e.env.container.atomic.governance.GovernanceContainerFactory;
3131
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.StorageContainer;
3232
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.StorageContainerFactory;
33-
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.StorageContainerConfiguration;
3433
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.option.StorageContainerConfigurationOptionFactory;
3534
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.type.natived.NativeStorageContainer;
3635
import org.apache.shardingsphere.test.e2e.env.runtime.E2ETestEnvironment;
@@ -60,7 +59,7 @@ public ClusterContainerComposer(final String scenario, final DatabaseType databa
6059
governanceContainer = containers.registerContainer(GovernanceContainerFactory.newInstance("ZooKeeper"));
6160
Type envType = E2ETestEnvironment.getInstance().getClusterEnvironment().getType();
6261
storageContainer = containers.registerContainer(Type.DOCKER == envType
63-
? StorageContainerFactory.newInstance(databaseType, new StorageContainerConfiguration(scenario, StorageContainerConfigurationOptionFactory.newInstance(databaseType)))
62+
? StorageContainerFactory.newInstance(databaseType, StorageContainerConfigurationOptionFactory.newInstance(databaseType), scenario)
6463
: new NativeStorageContainer(databaseType, scenario));
6564
AdaptorContainerConfiguration containerConfig = SQLE2EProxyContainerConfigurationFactory.newInstance(scenario, "cluster", databaseType);
6665
AdapterContainer adapterContainer = AdapterContainerFactory.newInstance(adapterMode, adapterType, databaseType, scenario, containerConfig, storageContainer, envType.name());

test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/sql/env/container/compose/mode/StandaloneContainerComposer.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
import org.apache.shardingsphere.test.e2e.env.container.atomic.enums.AdapterType;
2828
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.StorageContainer;
2929
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.StorageContainerFactory;
30-
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.StorageContainerConfiguration;
3130
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.option.StorageContainerConfigurationOptionFactory;
3231
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.type.natived.NativeStorageContainer;
3332
import org.apache.shardingsphere.test.e2e.env.runtime.E2ETestEnvironment;
@@ -53,7 +52,7 @@ public StandaloneContainerComposer(final String scenario, final DatabaseType dat
5352
containers = new ITContainers(scenario);
5453
Type envType = E2ETestEnvironment.getInstance().getClusterEnvironment().getType();
5554
storageContainer = containers.registerContainer(Type.DOCKER == envType
56-
? StorageContainerFactory.newInstance(databaseType, new StorageContainerConfiguration(scenario, StorageContainerConfigurationOptionFactory.newInstance(databaseType)))
55+
? StorageContainerFactory.newInstance(databaseType, StorageContainerConfigurationOptionFactory.newInstance(databaseType), scenario)
5756
: new NativeStorageContainer(databaseType, scenario));
5857
AdaptorContainerConfiguration containerConfig = SQLE2EProxyContainerConfigurationFactory.newInstance(scenario, "standalone", databaseType);
5958
AdapterContainer adapterContainer = AdapterContainerFactory.newInstance(adapterMode, adapterType, databaseType, scenario, containerConfig, storageContainer, envType.name());

0 commit comments

Comments
 (0)