Skip to content

Commit 789ee8c

Browse files
authored
Refactor Database's ContainerConfigurationFactory (#36460)
* Refactor Database's ContainerConfigurationFactory * Refactor Database's ContainerConfigurationFactory
1 parent ee4dc0b commit 789ee8c

File tree

13 files changed

+48
-53
lines changed

13 files changed

+48
-53
lines changed
Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,16 @@
1515
* limitations under the License.
1616
*/
1717

18-
package org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.impl;
18+
package org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config;
1919

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;
24-
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.impl.h2.H2ContainerConfigurationFactory;
25-
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.impl.mariadb.MariaDBContainerConfigurationFactory;
26-
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.impl.mysql.MySQLContainerConfigurationFactory;
27-
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.impl.opengauss.OpenGaussContainerConfigurationFactory;
28-
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.impl.postgresql.PostgreSQLContainerConfigurationFactory;
23+
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.dialect.H2ContainerConfigurationFactory;
24+
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.dialect.MariaDBContainerConfigurationFactory;
25+
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.dialect.MySQLContainerConfigurationFactory;
26+
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.dialect.OpenGaussContainerConfigurationFactory;
27+
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.dialect.PostgreSQLContainerConfigurationFactory;
2928

3029
/**
3130
* Storage container configuration factory.
Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
* limitations under the License.
1616
*/
1717

18-
package org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.impl.h2;
18+
package org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.dialect;
1919

2020
import lombok.AccessLevel;
2121
import lombok.NoArgsConstructor;
@@ -36,6 +36,8 @@
3636
@NoArgsConstructor(access = AccessLevel.PRIVATE)
3737
public final class H2ContainerConfigurationFactory {
3838

39+
private static final DatabaseType DATABASE_TYPE = TypedSPILoader.getService(DatabaseType.class, "H2");
40+
3941
/**
4042
* Create new instance of h2 container configuration.
4143
*
@@ -55,12 +57,9 @@ public static StorageContainerConfiguration newInstance() {
5557
*/
5658
public static StorageContainerConfiguration newInstance(final String scenario) {
5759
Map<String, String> mountedResources = new HashMap<>(2, 1F);
58-
mountedResources.put(new ScenarioDataPath(scenario).getInitSQLResourcePath(Type.ACTUAL, TypedSPILoader.getService(DatabaseType.class, "H2")) + "/01-actual-init.sql",
59-
"/docker-entrypoint-initdb.d/01-actual-init.sql");
60-
mountedResources.put(new ScenarioDataPath(scenario).getInitSQLResourcePath(Type.EXPECTED, TypedSPILoader.getService(DatabaseType.class, "H2")) + "/01-expected-init.sql",
61-
"/docker-entrypoint-initdb.d/01-expected-init.sql");
60+
mountedResources.put(new ScenarioDataPath(scenario).getInitSQLResourcePath(Type.ACTUAL, DATABASE_TYPE) + "/01-actual-init.sql", "/docker-entrypoint-initdb.d/01-actual-init.sql");
61+
mountedResources.put(new ScenarioDataPath(scenario).getInitSQLResourcePath(Type.EXPECTED, DATABASE_TYPE) + "/01-expected-init.sql", "/docker-entrypoint-initdb.d/01-expected-init.sql");
6262
return new StorageContainerConfiguration(scenario, "", Collections.emptyMap(), mountedResources,
63-
DatabaseEnvironmentManager.getDatabaseTypes(scenario, TypedSPILoader.getService(DatabaseType.class, "H2")),
64-
DatabaseEnvironmentManager.getExpectedDatabaseTypes(scenario, TypedSPILoader.getService(DatabaseType.class, "H2")));
63+
DatabaseEnvironmentManager.getDatabaseTypes(scenario, DATABASE_TYPE), DatabaseEnvironmentManager.getExpectedDatabaseTypes(scenario, DATABASE_TYPE));
6564
}
6665
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
* limitations under the License.
1616
*/
1717

18-
package org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.impl.mariadb;
18+
package org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.dialect;
1919

2020
import lombok.AccessLevel;
2121
import lombok.NoArgsConstructor;
Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
* limitations under the License.
1616
*/
1717

18-
package org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.impl.mysql;
18+
package org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.dialect;
1919

2020
import lombok.AccessLevel;
2121
import lombok.NoArgsConstructor;
@@ -39,6 +39,8 @@
3939
@NoArgsConstructor(access = AccessLevel.PRIVATE)
4040
public final class MySQLContainerConfigurationFactory {
4141

42+
private static final DatabaseType DATABASE_TYPE = TypedSPILoader.getService(DatabaseType.class, "MySQL");
43+
4244
/**
4345
* Create new instance of MySQL container configuration.
4446
*
@@ -47,8 +49,7 @@ public final class MySQLContainerConfigurationFactory {
4749
*/
4850
public static StorageContainerConfiguration newInstance(final String scenario) {
4951
return new StorageContainerConfiguration(getCommand(), getContainerEnvironments(), getMountedResources(scenario),
50-
DatabaseEnvironmentManager.getDatabaseTypes(scenario, TypedSPILoader.getService(DatabaseType.class, "MySQL")),
51-
DatabaseEnvironmentManager.getExpectedDatabaseTypes(scenario, TypedSPILoader.getService(DatabaseType.class, "MySQL")));
52+
DatabaseEnvironmentManager.getDatabaseTypes(scenario, DATABASE_TYPE), DatabaseEnvironmentManager.getExpectedDatabaseTypes(scenario, DATABASE_TYPE));
5253
}
5354

5455
/**
@@ -81,13 +82,11 @@ private static Map<String, String> getContainerEnvironments() {
8182
return result;
8283
}
8384

84-
private static Map<String, String> getMountedResources() {
85-
Map<String, String> result = new HashMap<>(1, 1F);
86-
String path = "env/mysql/01-initdb.sql";
87-
URL url = Thread.currentThread().getContextClassLoader().getResource(path);
88-
if (null != url) {
89-
result.put(path, "/docker-entrypoint-initdb.d/01-initdb.sql");
90-
}
85+
private static Map<String, String> getMountedResources(final String scenario) {
86+
Map<String, String> result = new HashMap<>(3, 1F);
87+
result.put(new ScenarioDataPath(scenario).getInitSQLResourcePath(Type.ACTUAL, DATABASE_TYPE) + "/01-actual-init.sql", "/docker-entrypoint-initdb.d/01-actual-init.sql");
88+
result.put(new ScenarioDataPath(scenario).getInitSQLResourcePath(Type.EXPECTED, DATABASE_TYPE) + "/01-expected-init.sql", "/docker-entrypoint-initdb.d/01-expected-init.sql");
89+
result.put("/env/mysql/my.cnf", MySQLContainer.MYSQL_CONF_IN_CONTAINER);
9190
return result;
9291
}
9392

@@ -101,13 +100,13 @@ private static Map<String, String> getMountedResources(final int majorVersion) {
101100
return result;
102101
}
103102

104-
private static Map<String, String> getMountedResources(final String scenario) {
105-
Map<String, String> result = new HashMap<>(3, 1F);
106-
result.put(new ScenarioDataPath(scenario).getInitSQLResourcePath(Type.ACTUAL, TypedSPILoader.getService(DatabaseType.class, "MySQL")) + "/01-actual-init.sql",
107-
"/docker-entrypoint-initdb.d/01-actual-init.sql");
108-
result.put(new ScenarioDataPath(scenario).getInitSQLResourcePath(Type.EXPECTED, TypedSPILoader.getService(DatabaseType.class, "MySQL")) + "/01-expected-init.sql",
109-
"/docker-entrypoint-initdb.d/01-expected-init.sql");
110-
result.put("/env/mysql/my.cnf", MySQLContainer.MYSQL_CONF_IN_CONTAINER);
103+
private static Map<String, String> getMountedResources() {
104+
Map<String, String> result = new HashMap<>(1, 1F);
105+
String path = "env/mysql/01-initdb.sql";
106+
URL url = Thread.currentThread().getContextClassLoader().getResource(path);
107+
if (null != url) {
108+
result.put(path, "/docker-entrypoint-initdb.d/01-initdb.sql");
109+
}
111110
return result;
112111
}
113112
}
Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
* limitations under the License.
1616
*/
1717

18-
package org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.impl.opengauss;
18+
package org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.dialect;
1919

2020
import lombok.AccessLevel;
2121
import lombok.NoArgsConstructor;
@@ -38,6 +38,8 @@
3838
@NoArgsConstructor(access = AccessLevel.PRIVATE)
3939
public final class OpenGaussContainerConfigurationFactory {
4040

41+
private static final DatabaseType DATABASE_TYPE = TypedSPILoader.getService(DatabaseType.class, "openGauss");
42+
4143
/**
4244
* Create new instance of openGauss container configuration.
4345
*
@@ -55,8 +57,7 @@ public static StorageContainerConfiguration newInstance() {
5557
*/
5658
public static StorageContainerConfiguration newInstance(final String scenario) {
5759
return new StorageContainerConfiguration(getCommand(), getContainerEnvironments(), getMountedResources(scenario),
58-
DatabaseEnvironmentManager.getDatabaseTypes(scenario, TypedSPILoader.getService(DatabaseType.class, "openGauss")),
59-
DatabaseEnvironmentManager.getExpectedDatabaseTypes(scenario, TypedSPILoader.getService(DatabaseType.class, "openGauss")));
60+
DatabaseEnvironmentManager.getDatabaseTypes(scenario, DATABASE_TYPE), DatabaseEnvironmentManager.getExpectedDatabaseTypes(scenario, DATABASE_TYPE));
6061
}
6162

6263
private static String getCommand() {
@@ -77,10 +78,8 @@ private static Map<String, String> getMountedResources() {
7778

7879
private static Map<String, String> getMountedResources(final String scenario) {
7980
Map<String, String> result = new HashMap<>(4, 1F);
80-
result.put(new ScenarioDataPath(scenario).getInitSQLResourcePath(Type.ACTUAL, TypedSPILoader.getService(DatabaseType.class, "openGauss")) + "/01-actual-init.sql",
81-
"/docker-entrypoint-initdb.d/01-actual-init.sql");
82-
result.put(new ScenarioDataPath(scenario).getInitSQLResourcePath(Type.EXPECTED, TypedSPILoader.getService(DatabaseType.class, "openGauss")) + "/01-expected-init.sql",
83-
"/docker-entrypoint-initdb.d/01-expected-init.sql");
81+
result.put(new ScenarioDataPath(scenario).getInitSQLResourcePath(Type.ACTUAL, DATABASE_TYPE) + "/01-actual-init.sql", "/docker-entrypoint-initdb.d/01-actual-init.sql");
82+
result.put(new ScenarioDataPath(scenario).getInitSQLResourcePath(Type.EXPECTED, DATABASE_TYPE) + "/01-expected-init.sql", "/docker-entrypoint-initdb.d/01-expected-init.sql");
8483
result.put("/env/postgresql/postgresql.conf", OpenGaussContainer.OPENGAUSS_CONF_IN_CONTAINER);
8584
result.put("/env/opengauss/pg_hba.conf", OpenGaussContainer.OPENGAUSS_HBA_IN_CONF_CONTAINER);
8685
return result;
Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
* limitations under the License.
1616
*/
1717

18-
package org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.impl.postgresql;
18+
package org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.dialect;
1919

2020
import lombok.AccessLevel;
2121
import lombok.NoArgsConstructor;
@@ -38,6 +38,8 @@
3838
@NoArgsConstructor(access = AccessLevel.PRIVATE)
3939
public final class PostgreSQLContainerConfigurationFactory {
4040

41+
private static final DatabaseType DATABASE_TYPE = TypedSPILoader.getService(DatabaseType.class, "PostgreSQL");
42+
4143
/**
4244
* Create new instance of PostgreSQL container configuration.
4345
*
@@ -55,8 +57,7 @@ public static StorageContainerConfiguration newInstance() {
5557
*/
5658
public static StorageContainerConfiguration newInstance(final String scenario) {
5759
return new StorageContainerConfiguration(getCommand(), getContainerEnvironments(), getMountedResources(scenario),
58-
DatabaseEnvironmentManager.getDatabaseTypes(scenario, TypedSPILoader.getService(DatabaseType.class, "PostgreSQL")),
59-
DatabaseEnvironmentManager.getExpectedDatabaseTypes(scenario, TypedSPILoader.getService(DatabaseType.class, "PostgreSQL")));
60+
DatabaseEnvironmentManager.getDatabaseTypes(scenario, DATABASE_TYPE), DatabaseEnvironmentManager.getExpectedDatabaseTypes(scenario, DATABASE_TYPE));
6061
}
6162

6263
private static String getCommand() {
@@ -76,10 +77,8 @@ private static Map<String, String> getMountedResources() {
7677

7778
private static Map<String, String> getMountedResources(final String scenario) {
7879
Map<String, String> result = new HashMap<>(3, 1F);
79-
result.put(new ScenarioDataPath(scenario).getInitSQLResourcePath(Type.ACTUAL, TypedSPILoader.getService(DatabaseType.class, "PostgreSQL")) + "/01-actual-init.sql",
80-
"/docker-entrypoint-initdb.d/01-actual-init.sql");
81-
result.put(new ScenarioDataPath(scenario).getInitSQLResourcePath(Type.EXPECTED, TypedSPILoader.getService(DatabaseType.class, "PostgreSQL")) + "/01-expected-init.sql",
82-
"/docker-entrypoint-initdb.d/01-expected-init.sql");
80+
result.put(new ScenarioDataPath(scenario).getInitSQLResourcePath(Type.ACTUAL, DATABASE_TYPE) + "/01-actual-init.sql", "/docker-entrypoint-initdb.d/01-actual-init.sql");
81+
result.put(new ScenarioDataPath(scenario).getInitSQLResourcePath(Type.EXPECTED, DATABASE_TYPE) + "/01-expected-init.sql", "/docker-entrypoint-initdb.d/01-expected-init.sql");
8382
result.put("/env/postgresql/postgresql.conf", PostgreSQLContainer.POSTGRESQL_CONF_IN_CONTAINER);
8483
return result;
8584
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
import org.apache.shardingsphere.test.e2e.env.container.atomic.constants.StorageContainerConstants;
2424
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.StorageContainer;
2525
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.StorageContainerConfiguration;
26-
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.impl.StorageContainerConfigurationFactory;
26+
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.StorageContainerConfigurationFactory;
2727
import org.apache.shardingsphere.test.e2e.env.container.atomic.util.SQLScriptUtils;
2828
import org.apache.shardingsphere.test.e2e.env.container.atomic.util.StorageContainerUtils;
2929
import org.apache.shardingsphere.test.e2e.env.runtime.DataSourceEnvironment;

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.DockerStorageContainer;
2525
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.StorageContainerFactory;
2626
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.StorageContainerConfiguration;
27-
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.impl.StorageContainerConfigurationFactory;
27+
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.StorageContainerConfigurationFactory;
2828
import org.apache.shardingsphere.test.e2e.operation.pipeline.entity.CreateTableSQLGeneratorAssertionEntity;
2929
import org.apache.shardingsphere.test.e2e.operation.pipeline.entity.CreateTableSQLGeneratorAssertionsRootEntity;
3030
import org.apache.shardingsphere.test.e2e.operation.pipeline.entity.CreateTableSQLGeneratorOutputEntity;

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.DockerStorageContainer;
3030
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.StorageContainerFactory;
3131
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.StorageContainerConfiguration;
32-
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.impl.StorageContainerConfigurationFactory;
32+
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.StorageContainerConfigurationFactory;
3333
import org.apache.shardingsphere.test.e2e.env.runtime.DataSourceEnvironment;
3434
import org.apache.shardingsphere.test.e2e.operation.pipeline.env.PipelineE2EEnvironment;
3535
import org.apache.shardingsphere.test.e2e.operation.pipeline.env.enums.PipelineProxyTypeEnum;

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
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.impl.StorageContainerConfigurationFactory;
33+
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.StorageContainerConfigurationFactory;
3434
import org.apache.shardingsphere.test.e2e.env.container.atomic.util.AdapterContainerUtils;
3535
import org.apache.shardingsphere.test.e2e.operation.showprocesslist.env.ShowProcessListEnvironment;
3636
import org.apache.shardingsphere.test.e2e.operation.showprocesslist.parameter.ShowProcessListTestParameter;

0 commit comments

Comments
 (0)