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

zhangliang 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 67cfc6e6a69 Add DatabaseEnvironmentManager.getDatabaseNames() (#36773)
67cfc6e6a69 is described below

commit 67cfc6e6a69543a765f4b1629c5ab0e8bac3eb82
Author: Liang Zhang <[email protected]>
AuthorDate: Thu Oct 2 18:23:17 2025 +0800

    Add DatabaseEnvironmentManager.getDatabaseNames() (#36773)
---
 .../storage/type/DockerStorageContainer.java       | 19 ++++--------------
 .../storage/type/NativeStorageContainer.java       |  7 +------
 .../database/DatabaseEnvironmentManager.java       | 23 ++++++++++++++++------
 .../test/e2e/sql/it/sql/dml/BaseDMLE2EIT.java      |  4 ++--
 4 files changed, 24 insertions(+), 29 deletions(-)

diff --git 
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/type/DockerStorageContainer.java
 
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/type/DockerStorageContainer.java
index 5775993c81d..ffe3ff381f0 100644
--- 
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/type/DockerStorageContainer.java
+++ 
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/type/DockerStorageContainer.java
@@ -22,7 +22,6 @@ import com.google.common.base.Preconditions;
 import com.google.common.base.Strings;
 import lombok.Getter;
 import lombok.SneakyThrows;
-import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
 import org.apache.shardingsphere.test.e2e.env.container.DockerE2EContainer;
 import 
org.apache.shardingsphere.test.e2e.env.container.constants.StorageContainerConstants;
 import 
org.apache.shardingsphere.test.e2e.env.container.storage.StorageContainer;
@@ -42,11 +41,9 @@ import java.sql.DriverManager;
 import java.sql.SQLException;
 import java.time.Duration;
 import java.util.Collection;
-import java.util.Collections;
 import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.Map;
-import java.util.Map.Entry;
 import java.util.function.Function;
 import java.util.stream.Collectors;
 
@@ -154,20 +151,12 @@ public final class DockerStorageContainer extends 
DockerE2EContainer implements
     
     @Override
     protected void postStart() {
-        
actualDataSourceMap.putAll(createAccessDataSources(getDataSourceNames(getDataSourceNameAndTypeMap(Type.ACTUAL))));
-        
expectedDataSourceMap.putAll(createAccessDataSources(getDataSourceNames(getDataSourceNameAndTypeMap(Type.EXPECTED))));
+        
actualDataSourceMap.putAll(createAccessDataSources(DatabaseEnvironmentManager.getDatabaseNames(scenario,
 Type.ACTUAL)));
+        
expectedDataSourceMap.putAll(createAccessDataSources(DatabaseEnvironmentManager.getDatabaseNames(scenario,
 Type.EXPECTED)));
     }
     
-    private Map<String, DatabaseType> getDataSourceNameAndTypeMap(final Type 
type) {
-        return null == scenario ? Collections.emptyMap() : 
DatabaseEnvironmentManager.getDatabaseTypes(scenario, option.getType(), type);
-    }
-    
-    private Collection<String> getDataSourceNames(final Map<String, 
DatabaseType> dataSourceNameAndTypeMap) {
-        return dataSourceNameAndTypeMap.entrySet().stream().filter(entry -> 
entry.getValue() == 
option.getType()).map(Entry::getKey).collect(Collectors.toList());
-    }
-    
-    private Map<String, DataSource> createAccessDataSources(final 
Collection<String> dataSourceNames) {
-        return 
dataSourceNames.stream().distinct().collect(Collectors.toMap(Function.identity(),
 this::createAccessDataSource));
+    private Map<String, DataSource> createAccessDataSources(final 
Collection<String> databaseNames) {
+        return 
databaseNames.stream().distinct().collect(Collectors.toMap(Function.identity(), 
this::createAccessDataSource));
     }
     
     /**
diff --git 
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/type/NativeStorageContainer.java
 
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/type/NativeStorageContainer.java
index fb13d6211fc..a657b09ca6c 100644
--- 
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/type/NativeStorageContainer.java
+++ 
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/type/NativeStorageContainer.java
@@ -38,8 +38,6 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.Map.Entry;
-import java.util.stream.Collectors;
 
 /**
  * Native storage container.
@@ -82,10 +80,7 @@ public final class NativeStorageContainer implements 
StorageContainer {
     }
     
     private Map<String, DataSource> createDataSourceMap(final Type type) {
-        return null == scenario
-                ? Collections.emptyMap()
-                : 
getDataSourceMap(DatabaseEnvironmentManager.getDatabaseTypes(scenario, 
databaseType, type).entrySet().stream()
-                        .filter(entry -> entry.getValue() == 
databaseType).map(Entry::getKey).collect(Collectors.toList()));
+        return null == scenario ? Collections.emptyMap() : 
getDataSourceMap(DatabaseEnvironmentManager.getDatabaseNames(scenario, type));
     }
     
     private Map<String, DataSource> getDataSourceMap(final Collection<String> 
databaseNames) {
diff --git 
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/runtime/type/scenario/database/DatabaseEnvironmentManager.java
 
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/runtime/type/scenario/database/DatabaseEnvironmentManager.java
index cf49987ae41..fe897f1d854 100644
--- 
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/runtime/type/scenario/database/DatabaseEnvironmentManager.java
+++ 
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/runtime/type/scenario/database/DatabaseEnvironmentManager.java
@@ -45,17 +45,28 @@ public final class DatabaseEnvironmentManager {
      * Get database types.
      *
      * @param scenario scenario
-     * @param defaultDatabaseType default database type
      * @param type type
      * @return database types
      */
-    public static Map<String, DatabaseType> getDatabaseTypes(final String 
scenario, final DatabaseType defaultDatabaseType, final Type type) {
-        return createDatabaseTypes(unmarshal(new ScenarioDataPath(scenario, 
type).getDatabasesFile()).getDatabases(), defaultDatabaseType);
+    public static Collection<String> getDatabaseNames(final String scenario, 
final Type type) {
+        return unmarshal(new ScenarioDataPath(scenario, 
type).getDatabasesFile()).getDatabases();
+    }
+    
+    /**
+     * Get database name and type map.
+     *
+     * @param scenario scenario
+     * @param defaultDatabaseType default database type
+     * @param type type
+     * @return database name and type map
+     */
+    public static Map<String, DatabaseType> getDatabaseNameAndTypeMap(final 
String scenario, final DatabaseType defaultDatabaseType, final Type type) {
+        return getDatabaseNameAndTypeMap(unmarshal(new 
ScenarioDataPath(scenario, type).getDatabasesFile()).getDatabases(), 
defaultDatabaseType);
     }
     
-    private static Map<String, DatabaseType> createDatabaseTypes(final 
Collection<String> datasourceNames, final DatabaseType defaultDatabaseType) {
-        Map<String, DatabaseType> result = new 
LinkedHashMap<>(datasourceNames.size(), 1F);
-        for (String each : datasourceNames) {
+    private static Map<String, DatabaseType> getDatabaseNameAndTypeMap(final 
Collection<String> databaseNames, final DatabaseType defaultDatabaseType) {
+        Map<String, DatabaseType> result = new 
LinkedHashMap<>(databaseNames.size(), 1F);
+        for (String each : databaseNames) {
             List<String> items = Splitter.on(":").splitToList(each);
             DatabaseType databaseType = items.size() > 1 ? 
TypedSPILoader.getService(DatabaseType.class, items.get(1)) : 
defaultDatabaseType;
             result.put(items.get(0), databaseType);
diff --git 
a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/sql/it/sql/dml/BaseDMLE2EIT.java
 
b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/sql/it/sql/dml/BaseDMLE2EIT.java
index dde0f09fe7c..0189a1147b7 100644
--- 
a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/sql/it/sql/dml/BaseDMLE2EIT.java
+++ 
b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/sql/it/sql/dml/BaseDMLE2EIT.java
@@ -185,7 +185,7 @@ public abstract class BaseDMLE2EIT implements SQLE2EIT {
     }
     
     private void assertDataSet(final SQLE2EITContext context, final 
DataSetMetaData expectedDataSetMetaData, final AssertionTestParameter 
testParam) throws SQLException {
-        Map<String, DatabaseType> databaseTypes = 
DatabaseEnvironmentManager.getDatabaseTypes(testParam.getScenario(), 
testParam.getDatabaseType(), Type.ACTUAL);
+        Map<String, DatabaseType> databaseTypes = 
DatabaseEnvironmentManager.getDatabaseNameAndTypeMap(testParam.getScenario(), 
testParam.getDatabaseType(), Type.ACTUAL);
         for (String each : 
InlineExpressionParserFactory.newInstance(expectedDataSetMetaData.getDataNodes()).splitAndEvaluate())
 {
             DataNode dataNode = new DataNode(each);
             DataSource dataSource = 
getEnvironmentEngine().getActualDataSourceMap().get(dataNode.getDataSourceName());
@@ -218,7 +218,7 @@ public abstract class BaseDMLE2EIT implements SQLE2EIT {
     }
     
     private void assertDataSet(final DataSetMetaData expectedDataSetMetaData, 
final CaseTestParameter testParam, final DataSet dataSet) throws SQLException {
-        Map<String, DatabaseType> databaseTypes = 
DatabaseEnvironmentManager.getDatabaseTypes(testParam.getScenario(), 
testParam.getDatabaseType(), Type.ACTUAL);
+        Map<String, DatabaseType> databaseTypes = 
DatabaseEnvironmentManager.getDatabaseNameAndTypeMap(testParam.getScenario(), 
testParam.getDatabaseType(), Type.ACTUAL);
         for (String each : 
InlineExpressionParserFactory.newInstance(expectedDataSetMetaData.getDataNodes()).splitAndEvaluate())
 {
             DataNode dataNode = new DataNode(each);
             DatabaseType databaseType = 
databaseTypes.get(dataNode.getDataSourceName());

Reply via email to