Skip to content

Commit 3cb4f2e

Browse files
authored
Merge DockerStorageContainer's option and databaseType (#36588)
* Merge DockerStorageContainer's option and databaseType * Merge DockerStorageContainer's option and databaseType
1 parent 574ca69 commit 3cb4f2e

File tree

7 files changed

+32
-42
lines changed

7 files changed

+32
-42
lines changed

test/e2e/agent/engine/src/test/java/org/apache/shardingsphere/test/e2e/agent/engine/env/AgentE2ETestEnvironment.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ private void createProxyEnvironment(final DockerITContainer agentPluginContainer
117117
ShardingSphereProxyClusterContainer proxyContainer = new ShardingSphereProxyClusterContainer(databaseType, getAdaptorContainerConfiguration());
118118
proxyContainer.withLogConsumer(testConfig.isLogEnabled() ? this::collectLogs : null);
119119
DockerStorageContainer storageContainer = new DockerStorageContainer(
120-
databaseType, imageConfig.getMysqlImage(), DatabaseTypedSPILoader.getService(StorageContainerConfigurationOption.class, databaseType), null);
120+
imageConfig.getMysqlImage(), DatabaseTypedSPILoader.getService(StorageContainerConfigurationOption.class, databaseType), null);
121121
proxyContainer.dependsOn(storageContainer);
122122
containers.registerContainer(storageContainer);
123123
GovernanceContainer governanceContainer = GovernanceContainerFactory.newInstance("ZooKeeper");
@@ -149,7 +149,7 @@ private AdaptorContainerConfiguration getAdaptorContainerConfiguration() {
149149
private void createJDBCEnvironment(final DockerITContainer agentPluginContainer) {
150150
containers = new ITContainers();
151151
DockerStorageContainer storageContainer = new DockerStorageContainer(
152-
databaseType, imageConfig.getMysqlImage(), DatabaseTypedSPILoader.getService(StorageContainerConfigurationOption.class, databaseType), null);
152+
imageConfig.getMysqlImage(), DatabaseTypedSPILoader.getService(StorageContainerConfigurationOption.class, databaseType), null);
153153
ShardingSphereJdbcAgentContainer jdbcAgentContainer = new ShardingSphereJdbcAgentContainer(
154154
imageConfig.getJdbcProjectImage(), testConfig.getPluginType(), testConfig.isLogEnabled() ? this::collectLogs : null);
155155
jdbcAgentContainer.dependsOn(storageContainer);

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ public static StorageContainer newInstance(final DatabaseType databaseType, fina
6161
case "PostgreSQL":
6262
case "openGauss":
6363
case "MariaDB":
64-
return new DockerStorageContainer(databaseType, storageContainerImage, option, scenario);
64+
return new DockerStorageContainer(storageContainerImage, option, scenario);
6565
case "Hive":
6666
return new HiveContainer(storageContainerImage, option, scenario);
6767
case "H2":

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

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
package org.apache.shardingsphere.test.e2e.env.container.atomic.storage.mount;
1919

2020
import lombok.RequiredArgsConstructor;
21-
import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
2221
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.option.StorageContainerConfigurationOption;
2322

2423
import java.io.File;
@@ -34,8 +33,6 @@ public final class MountConfigurationResourceGenerator {
3433

3534
private final StorageContainerConfigurationOption option;
3635

37-
private final DatabaseType databaseType;
38-
3936
/**
4037
* Generate mount configuration resource map.
4138
*
@@ -49,8 +46,8 @@ public Map<String, String> generate(final int majorVersion, final String scenari
4946
for (String each : mountedConfigResources) {
5047
String fileName = new File(each).getName();
5148
String configFile = option.getSupportedMajorVersions().isEmpty()
52-
? String.format("container/%s/cnf/%s", databaseType.getType().toLowerCase(), fileName)
53-
: String.format("container/%s/cnf/%d/%s", databaseType.getType().toLowerCase(), majorVersion, fileName);
49+
? String.format("container/%s/cnf/%s", option.getDatabaseType().toLowerCase(), fileName)
50+
: String.format("container/%s/cnf/%d/%s", option.getDatabaseType().toLowerCase(), majorVersion, fileName);
5451
result.put(getToBeMountedConfigurationFile(configFile, scenario), each);
5552
}
5653
return result;

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

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
package org.apache.shardingsphere.test.e2e.env.container.atomic.storage.mount;
1919

2020
import lombok.RequiredArgsConstructor;
21-
import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
2221
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.option.StorageContainerConfigurationOption;
2322
import org.apache.shardingsphere.test.e2e.env.runtime.scenario.path.ScenarioDataPath;
2423
import org.apache.shardingsphere.test.e2e.env.runtime.scenario.path.ScenarioDataPath.Type;
@@ -47,8 +46,6 @@ public final class MountSQLResourceGenerator {
4746

4847
private final StorageContainerConfigurationOption option;
4948

50-
private final DatabaseType databaseType;
51-
5249
/**
5350
* Generate mount SQL resource map.
5451
*
@@ -59,38 +56,38 @@ public final class MountSQLResourceGenerator {
5956
public Map<String, String> generate(final int majorVersion, final String scenario) {
6057
Collection<String> toBeMountedSQLFiles = new LinkedList<>();
6158
for (String each : TO_BE_MOUNTED_COMMON_SQL_FILES) {
62-
findToBeMountedCommonSQLFile(databaseType, each).ifPresent(optional -> toBeMountedSQLFiles.add("/" + optional));
59+
findToBeMountedCommonSQLFile(each).ifPresent(optional -> toBeMountedSQLFiles.add("/" + optional));
6360
}
64-
String toBeMountedStandardEnvSQLFilePath = String.format("env/container/%s/init-sql/%s", databaseType.getType().toLowerCase(), TO_BE_MOUNTED_STANDARD_ENV_SQL_FILE);
61+
String toBeMountedStandardEnvSQLFilePath = String.format("env/container/%s/init-sql/%s", option.getDatabaseType().toLowerCase(), TO_BE_MOUNTED_STANDARD_ENV_SQL_FILE);
6562
if (null != Thread.currentThread().getContextClassLoader().getResource(toBeMountedStandardEnvSQLFilePath)) {
6663
toBeMountedSQLFiles.add("/" + toBeMountedStandardEnvSQLFilePath);
6764
}
6865
for (String each : option.getAdditionalEnvMountedSQLResources(majorVersion)) {
69-
getToBeMountedAdditionalEnvSQLFile(databaseType, each).ifPresent(optional -> toBeMountedSQLFiles.add("/" + optional));
66+
getToBeMountedAdditionalEnvSQLFile(each).ifPresent(optional -> toBeMountedSQLFiles.add("/" + optional));
7067
}
71-
for (String each : getToBeMountedScenarioSQLFiles(databaseType, scenario)) {
68+
for (String each : getToBeMountedScenarioSQLFiles(scenario)) {
7269
toBeMountedSQLFiles.add("/" + each);
7370
}
7471
return toBeMountedSQLFiles.stream().collect(Collectors.toMap(each -> each, each -> "/docker-entrypoint-initdb.d/" + new File(each).getName()));
7572
}
7673

77-
private Optional<String> findToBeMountedCommonSQLFile(final DatabaseType databaseType, final String toBeMountedSQLFile) {
78-
String toBeMountedFilePath = String.format("container/%s/init-sql/%s", databaseType.getType().toLowerCase(), toBeMountedSQLFile);
74+
private Optional<String> findToBeMountedCommonSQLFile(final String toBeMountedSQLFile) {
75+
String toBeMountedFilePath = String.format("container/%s/init-sql/%s", option.getDatabaseType().toLowerCase(), toBeMountedSQLFile);
7976
return null == Thread.currentThread().getContextClassLoader().getResource(toBeMountedFilePath) ? Optional.empty() : Optional.of(toBeMountedFilePath);
8077
}
8178

82-
private Optional<String> getToBeMountedAdditionalEnvSQLFile(final DatabaseType databaseType, final String sqlFile) {
83-
String toBeMountedFilePath = String.format("env/container/%s/init-sql/%s", databaseType.getType().toLowerCase(), sqlFile);
79+
private Optional<String> getToBeMountedAdditionalEnvSQLFile(final String sqlFile) {
80+
String toBeMountedFilePath = String.format("env/container/%s/init-sql/%s", option.getDatabaseType().toLowerCase(), sqlFile);
8481
return null == Thread.currentThread().getContextClassLoader().getResource(toBeMountedFilePath) ? Optional.empty() : Optional.of(toBeMountedFilePath);
8582
}
8683

87-
private Collection<String> getToBeMountedScenarioSQLFiles(final DatabaseType databaseType, final String scenario) {
84+
private Collection<String> getToBeMountedScenarioSQLFiles(final String scenario) {
8885
Collection<String> result = new LinkedList<>();
89-
String actualScenarioFile = new ScenarioDataPath(scenario).getInitSQLResourcePath(Type.ACTUAL, databaseType) + "/" + TO_BE_MOUNTED_ACTUAL_SCENARIO_SQL_FILE;
86+
String actualScenarioFile = new ScenarioDataPath(scenario).getInitSQLResourcePath(Type.ACTUAL, option.getType()) + "/" + TO_BE_MOUNTED_ACTUAL_SCENARIO_SQL_FILE;
9087
if (null != Thread.currentThread().getContextClassLoader().getResource(actualScenarioFile)) {
9188
result.add(actualScenarioFile);
9289
}
93-
String expectedScenarioFile = new ScenarioDataPath(scenario).getInitSQLResourcePath(Type.EXPECTED, databaseType) + "/" + TO_BE_MOUNTED_EXPECTED_SCENARIO_SQL_FILE;
90+
String expectedScenarioFile = new ScenarioDataPath(scenario).getInitSQLResourcePath(Type.EXPECTED, option.getType()) + "/" + TO_BE_MOUNTED_EXPECTED_SCENARIO_SQL_FILE;
9491
if (null != Thread.currentThread().getContextClassLoader().getResource(expectedScenarioFile)) {
9592
result.add(expectedScenarioFile);
9693
}

test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/type/docker/DockerStorageContainer.java

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,6 @@
5151
*/
5252
public class DockerStorageContainer extends DockerITContainer implements StorageContainer {
5353

54-
private final DatabaseType databaseType;
55-
5654
private final StorageContainerConfigurationOption option;
5755

5856
private final String scenario;
@@ -66,25 +64,24 @@ public class DockerStorageContainer extends DockerITContainer implements Storage
6664
@Getter
6765
private final Map<String, DataSource> expectedDataSourceMap = new LinkedHashMap<>();
6866

69-
public DockerStorageContainer(final DatabaseType databaseType, final String containerImage, final StorageContainerConfigurationOption option, final String scenario) {
70-
super(databaseType.getType().toLowerCase(), getContainerImage(containerImage, option, databaseType));
71-
this.databaseType = databaseType;
67+
public DockerStorageContainer(final String containerImage, final StorageContainerConfigurationOption option, final String scenario) {
68+
super(option.getDatabaseType().toLowerCase(), getContainerImage(containerImage, option));
7269
this.option = option;
7370
this.scenario = scenario;
74-
majorVersion = new DockerImageVersion(getContainerImage(containerImage, option, databaseType)).getMajorVersion();
71+
majorVersion = new DockerImageVersion(getContainerImage(containerImage, option)).getMajorVersion();
7572
}
7673

77-
private static String getContainerImage(final String containerImage, final StorageContainerConfigurationOption option, final DatabaseType databaseType) {
78-
Preconditions.checkNotNull(option, "Can not support database type `%s`", databaseType.getType());
74+
private static String getContainerImage(final String containerImage, final StorageContainerConfigurationOption option) {
75+
Preconditions.checkNotNull(option, "Can not support database type `%s`", option.getDatabaseType());
7976
return Strings.isNullOrEmpty(containerImage) ? option.getDefaultImageName() : containerImage;
8077
}
8178

8279
@Override
8380
protected final void configure() {
8481
setCommands();
8582
addEnvironments();
86-
mapResources(new MountConfigurationResourceGenerator(option, databaseType).generate(majorVersion, scenario));
87-
mapResources(new MountSQLResourceGenerator(option, databaseType).generate(majorVersion, scenario));
83+
mapResources(new MountConfigurationResourceGenerator(option).generate(majorVersion, scenario));
84+
mapResources(new MountSQLResourceGenerator(option).generate(majorVersion, scenario));
8885
setPrivilegedMode();
8986
withExposedPorts(getExposedPort());
9087
setWaitStrategy(new JdbcConnectionWaitStrategy(() -> DriverManager.getConnection(getURL(), StorageContainerConstants.CHECK_READY_USER, StorageContainerConstants.CHECK_READY_PASSWORD)));
@@ -110,8 +107,8 @@ private void setPrivilegedMode() {
110107

111108
private String getURL() {
112109
return option.getDefaultDatabaseName(majorVersion)
113-
.map(optional -> DataSourceEnvironment.getURL(databaseType, "localhost", getFirstMappedPort(), optional))
114-
.orElseGet(() -> DataSourceEnvironment.getURL(databaseType, "localhost", getFirstMappedPort()));
110+
.map(optional -> DataSourceEnvironment.getURL(option.getType(), "localhost", getFirstMappedPort(), optional))
111+
.orElseGet(() -> DataSourceEnvironment.getURL(option.getType(), "localhost", getFirstMappedPort()));
115112
}
116113

117114
@Override
@@ -121,11 +118,11 @@ protected void postStart() {
121118
}
122119

123120
private Map<String, DatabaseType> getDataSourceNameAndTypeMap(final Type type) {
124-
return null == scenario ? Collections.emptyMap() : DatabaseEnvironmentManager.getDatabaseTypes(scenario, databaseType, type);
121+
return null == scenario ? Collections.emptyMap() : DatabaseEnvironmentManager.getDatabaseTypes(scenario, option.getType(), type);
125122
}
126123

127124
private Collection<String> getDataSourceNames(final Map<String, DatabaseType> dataSourceNameAndTypeMap) {
128-
return dataSourceNameAndTypeMap.entrySet().stream().filter(entry -> entry.getValue() == databaseType).map(Entry::getKey).collect(Collectors.toList());
125+
return dataSourceNameAndTypeMap.entrySet().stream().filter(entry -> entry.getValue() == option.getType()).map(Entry::getKey).collect(Collectors.toList());
129126
}
130127

131128
private Map<String, DataSource> createAccessDataSources(final Collection<String> dataSourceNames) {
@@ -149,7 +146,8 @@ public final DataSource createAccessDataSource(final String dataSourceName) {
149146
* @return JDBC URL
150147
*/
151148
public final String getJdbcUrl(final String dataSourceName) {
152-
return DataSourceEnvironment.getURL(databaseType, getHost(), getMappedPort(), Strings.isNullOrEmpty(dataSourceName) ? option.getDefaultDatabaseName(majorVersion).orElse("") : dataSourceName);
149+
return DataSourceEnvironment.getURL(
150+
option.getType(), getHost(), getMappedPort(), Strings.isNullOrEmpty(dataSourceName) ? option.getDefaultDatabaseName(majorVersion).orElse("") : dataSourceName);
153151
}
154152

155153
/**
@@ -172,7 +170,7 @@ public final int getMappedPort() {
172170

173171
@Override
174172
public final String getAbbreviation() {
175-
return databaseType.getType().toLowerCase();
173+
return option.getDatabaseType().toLowerCase();
176174
}
177175

178176
@Override

test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/type/docker/impl/HiveContainer.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,6 @@
1818
package org.apache.shardingsphere.test.e2e.env.container.atomic.storage.type.docker.impl;
1919

2020
import lombok.extern.slf4j.Slf4j;
21-
import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
22-
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
2321
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.option.StorageContainerConfigurationOption;
2422
import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.type.docker.DockerStorageContainer;
2523

@@ -32,7 +30,7 @@
3230
public final class HiveContainer extends DockerStorageContainer {
3331

3432
public HiveContainer(final String containerImage, final StorageContainerConfigurationOption option, final String scenario) {
35-
super(TypedSPILoader.getService(DatabaseType.class, "Hive"), containerImage, option, scenario);
33+
super(containerImage, option, scenario);
3634
}
3735

3836
@Override

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ private void initDatabase() {
7575
DataSource dataSource = StorageContainerUtils.generateDataSource(
7676
DataSourceEnvironment.getURL(databaseType, E2ETestEnvironment.getInstance().getNativeStorageHost(), E2ETestEnvironment.getInstance().getNativeStoragePort()),
7777
E2ETestEnvironment.getInstance().getNativeStorageUsername(), E2ETestEnvironment.getInstance().getNativeStoragePassword());
78-
new MountSQLResourceGenerator(option, databaseType).generate(0, scenario).keySet().forEach(each -> SQLScriptUtils.execute(dataSource, each));
78+
new MountSQLResourceGenerator(option).generate(0, scenario).keySet().forEach(each -> SQLScriptUtils.execute(dataSource, each));
7979
}
8080

8181
private Map<String, DataSource> createDataSourceMap(final Type type) {

0 commit comments

Comments
 (0)