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 b2a97d69a88 Refactor ScenarioDataPath (#36767)
b2a97d69a88 is described below

commit b2a97d69a888a441c95f397036c43daab1c0aeb9
Author: Liang Zhang <[email protected]>
AuthorDate: Wed Oct 1 00:11:59 2025 +0800

    Refactor ScenarioDataPath (#36767)
---
 .../storage/mount/MountSQLResourceGenerator.java   |  4 +--
 .../database/DatabaseEnvironmentManager.java       |  2 +-
 .../type/scenario/path/ScenarioCommonPath.java     |  4 +--
 .../type/scenario/path/ScenarioDataPath.java       | 37 ++++++++--------------
 .../test/e2e/sql/env/SQLE2EEnvironmentEngine.java  |  3 +-
 .../test/e2e/sql/it/sql/dml/BaseDMLE2EIT.java      |  4 +--
 .../test/e2e/sql/it/sql/dql/BaseDQLE2EIT.java      |  4 +--
 7 files changed, 24 insertions(+), 34 deletions(-)

diff --git 
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/mount/MountSQLResourceGenerator.java
 
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/mount/MountSQLResourceGenerator.java
index 6dbda731984..9c9dd5f6cd6 100644
--- 
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/mount/MountSQLResourceGenerator.java
+++ 
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/storage/mount/MountSQLResourceGenerator.java
@@ -87,11 +87,11 @@ public final class MountSQLResourceGenerator {
     
     private Collection<String> getToBeMountedScenarioSQLFiles(final String 
scenario) {
         Collection<String> result = new LinkedList<>();
-        String actualScenarioFile = new 
ScenarioDataPath(scenario).getInitSQLResourcePath(Type.ACTUAL, databaseType) + 
"/" + TO_BE_MOUNTED_ACTUAL_SCENARIO_SQL_FILE;
+        String actualScenarioFile = new ScenarioDataPath(scenario, 
Type.ACTUAL).getInitSQLResourcePath(databaseType) + "/" + 
TO_BE_MOUNTED_ACTUAL_SCENARIO_SQL_FILE;
         if (null != 
Thread.currentThread().getContextClassLoader().getResource(actualScenarioFile)) 
{
             result.add(actualScenarioFile);
         }
-        String expectedScenarioFile = new 
ScenarioDataPath(scenario).getInitSQLResourcePath(Type.EXPECTED, databaseType) 
+ "/" + TO_BE_MOUNTED_EXPECTED_SCENARIO_SQL_FILE;
+        String expectedScenarioFile = new ScenarioDataPath(scenario, 
Type.EXPECTED).getInitSQLResourcePath(databaseType) + "/" + 
TO_BE_MOUNTED_EXPECTED_SCENARIO_SQL_FILE;
         if (null != 
Thread.currentThread().getContextClassLoader().getResource(expectedScenarioFile))
 {
             result.add(expectedScenarioFile);
         }
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 a942e52dd02..cf49987ae41 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
@@ -50,7 +50,7 @@ public final class DatabaseEnvironmentManager {
      * @return database types
      */
     public static Map<String, DatabaseType> getDatabaseTypes(final String 
scenario, final DatabaseType defaultDatabaseType, final Type type) {
-        return createDatabaseTypes(unmarshal(new 
ScenarioDataPath(scenario).getDatabasesFile(type)).getDatabases(), 
defaultDatabaseType);
+        return createDatabaseTypes(unmarshal(new ScenarioDataPath(scenario, 
type).getDatabasesFile()).getDatabases(), defaultDatabaseType);
     }
     
     private static Map<String, DatabaseType> createDatabaseTypes(final 
Collection<String> datasourceNames, final DatabaseType defaultDatabaseType) {
diff --git 
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/runtime/type/scenario/path/ScenarioCommonPath.java
 
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/runtime/type/scenario/path/ScenarioCommonPath.java
index 2a41a1dea3f..b1956507e7f 100644
--- 
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/runtime/type/scenario/path/ScenarioCommonPath.java
+++ 
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/runtime/type/scenario/path/ScenarioCommonPath.java
@@ -28,8 +28,6 @@ import static org.junit.jupiter.api.Assertions.assertNotNull;
  */
 public final class ScenarioCommonPath {
     
-    private static final String ROOT_PATH = "env/scenario";
-    
     private static final String RULE_CONFIG_FILE = "rules.yaml";
     
     private static final String AUTHORITY_FILE = "authority.xml";
@@ -37,7 +35,7 @@ public final class ScenarioCommonPath {
     private final String scenarioDirectory;
     
     public ScenarioCommonPath(final String scenario) {
-        scenarioDirectory = String.join("/", ROOT_PATH, scenario);
+        scenarioDirectory = String.join("/", "env", "scenario", scenario);
     }
     
     /**
diff --git 
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/runtime/type/scenario/path/ScenarioDataPath.java
 
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/runtime/type/scenario/path/ScenarioDataPath.java
index d16d4e9b2e0..6255fc2fbdc 100644
--- 
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/runtime/type/scenario/path/ScenarioDataPath.java
+++ 
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/runtime/type/scenario/path/ScenarioDataPath.java
@@ -17,7 +17,6 @@
 
 package org.apache.shardingsphere.test.e2e.env.runtime.type.scenario.path;
 
-import lombok.RequiredArgsConstructor;
 import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
 
 import java.net.URL;
@@ -28,13 +27,8 @@ import static org.junit.jupiter.api.Assertions.assertNotNull;
 /**
  * Scenario data path.
  */
-@RequiredArgsConstructor
 public final class ScenarioDataPath {
     
-    private static final String ROOT_PATH = "env/scenario";
-    
-    private static final String DATA_PATH = "data";
-    
     private static final String DATABASES_FILE = "databases.xml";
     
     private static final String DATASET_FILE = "dataset.xml";
@@ -43,30 +37,32 @@ public final class ScenarioDataPath {
     
     private static final String BASIC_INIT_SQL_FILE = "init.sql";
     
-    private final String scenario;
+    private final String scenarioDirectory;
+    
+    public ScenarioDataPath(final String scenario, final Type type) {
+        scenarioDirectory = String.join("/", "env", "scenario", scenario, 
"data", type.name().toLowerCase());
+    }
     
     /**
      * Get databases file.
      *
-     * @param type data type
      * @return databases file
      */
-    public String getDatabasesFile(final Type type) {
-        return getFile(type, DATABASES_FILE);
+    public String getDatabasesFile() {
+        return getFile(DATABASES_FILE);
     }
     
     /**
      * Get data set file.
      *
-     * @param type data type
      * @return data set file
      */
-    public String getDataSetFile(final Type type) {
-        return getFile(type, DATASET_FILE);
+    public String getDataSetFile() {
+        return getFile(DATASET_FILE);
     }
     
-    private String getFile(final Type type, final String fileName) {
-        String path = String.join("/", getBasicPath(type), fileName);
+    private String getFile(final String fileName) {
+        String path = String.join("/", scenarioDirectory, fileName);
         URL url = 
Thread.currentThread().getContextClassLoader().getResource(path);
         assertNotNull(url, String.format("File `%s` must exist.", path));
         return url.getFile();
@@ -90,7 +86,7 @@ public final class ScenarioDataPath {
     
     private String getActualDatabaseInitSQLResourceFile(final String 
databaseName, final DatabaseType databaseType) {
         String initSQLFileName = String.join("-", 
Type.ACTUAL.name().toLowerCase(), databaseName, BASIC_INIT_SQL_FILE);
-        return String.join("/", getInitSQLResourcePath(Type.ACTUAL, 
databaseType), initSQLFileName);
+        return String.join("/", getInitSQLResourcePath(databaseType), 
initSQLFileName);
     }
     
     private String getActualDatabaseInitSQLFile(final String databaseName, 
final DatabaseType databaseType) {
@@ -103,16 +99,11 @@ public final class ScenarioDataPath {
     /**
      * Get init SQL resource path.
      *
-     * @param type data type
      * @param databaseType database type
      * @return init SQL resource path
      */
-    public String getInitSQLResourcePath(final Type type, final DatabaseType 
databaseType) {
-        return String.join("/", getBasicPath(type), INIT_SQL_PATH, 
databaseType.getType().toLowerCase());
-    }
-    
-    private String getBasicPath(final Type type) {
-        return String.join("/", ROOT_PATH, scenario, DATA_PATH, 
type.name().toLowerCase());
+    public String getInitSQLResourcePath(final DatabaseType databaseType) {
+        return String.join("/", scenarioDirectory, INIT_SQL_PATH, 
databaseType.getType().toLowerCase());
     }
     
     /**
diff --git 
a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/sql/env/SQLE2EEnvironmentEngine.java
 
b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/sql/env/SQLE2EEnvironmentEngine.java
index 9e0d08de355..133d15a6f8b 100644
--- 
a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/sql/env/SQLE2EEnvironmentEngine.java
+++ 
b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/sql/env/SQLE2EEnvironmentEngine.java
@@ -25,6 +25,7 @@ import 
org.apache.shardingsphere.test.e2e.env.container.util.SQLScriptUtils;
 import 
org.apache.shardingsphere.test.e2e.env.runtime.type.ArtifactEnvironment.Adapter;
 import 
org.apache.shardingsphere.test.e2e.env.runtime.type.ArtifactEnvironment.Mode;
 import 
org.apache.shardingsphere.test.e2e.env.runtime.type.scenario.path.ScenarioDataPath;
+import 
org.apache.shardingsphere.test.e2e.env.runtime.type.scenario.path.ScenarioDataPath.Type;
 import 
org.apache.shardingsphere.test.e2e.sql.env.container.compose.ContainerComposer;
 import 
org.apache.shardingsphere.test.e2e.sql.env.container.compose.ContainerComposerRegistry;
 
@@ -63,7 +64,7 @@ public final class SQLE2EEnvironmentEngine {
     }
     
     private void executeLogicDatabaseInitSQLFileOnlyOnce(final String key, 
final String scenario, final DatabaseType databaseType) {
-        Optional<String> logicDatabaseInitSQLFile = new 
ScenarioDataPath(scenario).findActualDatabaseInitSQLFile(DefaultDatabase.LOGIC_NAME,
 databaseType);
+        Optional<String> logicDatabaseInitSQLFile = new 
ScenarioDataPath(scenario, 
Type.ACTUAL).findActualDatabaseInitSQLFile(DefaultDatabase.LOGIC_NAME, 
databaseType);
         if (!logicDatabaseInitSQLFile.isPresent()) {
             return;
         }
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 112a733f5a9..dde0f09fe7c 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
@@ -93,8 +93,8 @@ public abstract class BaseDMLE2EIT implements SQLE2EIT {
      * @throws JAXBException JAXB exception
      */
     protected void init(final E2ETestParameter testParam) throws SQLException, 
IOException, JAXBException {
-        dataSetEnvironmentManager =
-                new DataSetEnvironmentManager(new 
ScenarioDataPath(testParam.getScenario()).getDataSetFile(Type.ACTUAL), 
getEnvironmentEngine().getActualDataSourceMap(), testParam.getDatabaseType());
+        dataSetEnvironmentManager = new DataSetEnvironmentManager(
+                new ScenarioDataPath(testParam.getScenario(), 
Type.ACTUAL).getDataSetFile(), getEnvironmentEngine().getActualDataSourceMap(), 
testParam.getDatabaseType());
         dataSetEnvironmentManager.fillData();
     }
     
diff --git 
a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/sql/it/sql/dql/BaseDQLE2EIT.java
 
b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/sql/it/sql/dql/BaseDQLE2EIT.java
index 4d0583a5491..1bd3c48cd9b 100644
--- 
a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/sql/it/sql/dql/BaseDQLE2EIT.java
+++ 
b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/sql/it/sql/dql/BaseDQLE2EIT.java
@@ -87,9 +87,9 @@ public abstract class BaseDQLE2EIT implements SQLE2EIT {
             synchronized (FILLED_SUITES) {
                 if (!FILLED_SUITES.contains(cacheKey)) {
                     new DataSetEnvironmentManager(
-                            new 
ScenarioDataPath(testParam.getScenario()).getDataSetFile(Type.ACTUAL), 
getEnvironmentEngine().getActualDataSourceMap(), 
testParam.getDatabaseType()).fillData();
+                            new ScenarioDataPath(testParam.getScenario(), 
Type.ACTUAL).getDataSetFile(), getEnvironmentEngine().getActualDataSourceMap(), 
testParam.getDatabaseType()).fillData();
                     new DataSetEnvironmentManager(
-                            new 
ScenarioDataPath(testParam.getScenario()).getDataSetFile(Type.EXPECTED), 
getEnvironmentEngine().getExpectedDataSourceMap(), 
testParam.getDatabaseType()).fillData();
+                            new ScenarioDataPath(testParam.getScenario(), 
Type.EXPECTED).getDataSetFile(), 
getEnvironmentEngine().getExpectedDataSourceMap(), 
testParam.getDatabaseType()).fillData();
                     FILLED_SUITES.add(cacheKey);
                 }
             }

Reply via email to