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 852f1dbda63 Merge TransactionE2EEnvironment and E2ETestEnvironment 
(#36709)
852f1dbda63 is described below

commit 852f1dbda635113377d3b23c0f565afbf9b28a1c
Author: Liang Zhang <[email protected]>
AuthorDate: Thu Sep 25 22:29:33 2025 +0800

    Merge TransactionE2EEnvironment and E2ETestEnvironment (#36709)
    
    * Merge TransactionE2EEnvironment and E2ETestEnvironment
    
    * Merge TransactionE2EEnvironment and E2ETestEnvironment
    
    * Merge TransactionE2EEnvironment and E2ETestEnvironment
    
    * Merge TransactionE2EEnvironment and E2ETestEnvironment
    
    * Merge TransactionE2EEnvironment and E2ETestEnvironment
    
    * Merge TransactionE2EEnvironment and E2ETestEnvironment
    
    * Merge TransactionE2EEnvironment and E2ETestEnvironment
---
 .../e2e/env/runtime/type/ArtifactEnvironment.java  | 24 ++++++---
 .../engine/base/TransactionBaseE2EIT.java          | 48 +++++++----------
 .../engine/base/TransactionContainerComposer.java  |  8 +--
 .../transaction/env/TransactionE2EEnvironment.java | 62 +++-------------------
 .../TransactionDockerContainerComposer.java        | 12 ++---
 .../src/test/resources/env/e2e-env.properties      |  8 +--
 .../sql/src/test/resources/env/e2e-env.properties  |  2 +
 7 files changed, 62 insertions(+), 102 deletions(-)

diff --git 
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/runtime/type/ArtifactEnvironment.java
 
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/runtime/type/ArtifactEnvironment.java
index da94fb8ba1f..fcd6d72ea9b 100644
--- 
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/runtime/type/ArtifactEnvironment.java
+++ 
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/runtime/type/ArtifactEnvironment.java
@@ -25,7 +25,9 @@ import 
org.apache.shardingsphere.infra.spi.ShardingSphereServiceLoader;
 import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
 
 import java.util.Collection;
+import java.util.Collections;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.Optional;
 import java.util.Properties;
@@ -47,6 +49,8 @@ public final class ArtifactEnvironment {
     
     private final Map<DatabaseType, String> databaseImages;
     
+    private final Map<String, String> proxyPortBindingMap;
+    
     public ArtifactEnvironment(final Properties props) {
         modes = 
Splitter.on(",").trimResults().splitToList(props.getProperty("e2e.artifact.modes",
 "")).stream()
                 .filter(each -> !each.isEmpty()).map(each -> 
Mode.valueOf(each.toUpperCase())).collect(Collectors.toList());
@@ -54,6 +58,16 @@ public final class ArtifactEnvironment {
         regCenterType = props.getProperty("e2e.artifact.regcenter");
         databaseTypes = getDatabaseTypes(props);
         databaseImages = getDatabaseImages(props);
+        proxyPortBindingMap = getProxyPortBindingMap(props);
+    }
+    
+    private Collection<String> getAdapters(final Properties props) {
+        return 
Splitter.on(",").trimResults().splitToList(props.getProperty("e2e.artifact.adapters",
 "")).stream().filter(each -> !each.isEmpty()).collect(Collectors.toList());
+    }
+    
+    private Collection<DatabaseType> getDatabaseTypes(final Properties props) {
+        return 
Splitter.on(",").trimResults().splitToList(props.getProperty("e2e.artifact.databases",
 "")).stream()
+                .filter(each -> !each.isEmpty()).map(each -> 
TypedSPILoader.getService(DatabaseType.class, 
each.trim())).collect(Collectors.toSet());
     }
     
     private Map<DatabaseType, String> getDatabaseImages(final Properties 
props) {
@@ -65,13 +79,9 @@ public final class ArtifactEnvironment {
         return result;
     }
     
-    private Collection<String> getAdapters(final Properties props) {
-        return 
Splitter.on(",").trimResults().splitToList(props.getProperty("e2e.artifact.adapters",
 "")).stream().filter(each -> !each.isEmpty()).collect(Collectors.toList());
-    }
-    
-    private Collection<DatabaseType> getDatabaseTypes(final Properties props) {
-        return 
Splitter.on(",").trimResults().splitToList(props.getProperty("e2e.artifact.databases",
 "")).stream()
-                .filter(each -> !each.isEmpty()).map(each -> 
TypedSPILoader.getService(DatabaseType.class, 
each.trim())).collect(Collectors.toSet());
+    private Map<String, String> getProxyPortBindingMap(final Properties props) 
{
+        List<String> portBindingPair = 
Splitter.on(":").trimResults().splitToList(props.getProperty("e2e.artifact.proxy.port.bindings",
 ""));
+        return 2 == portBindingPair.size() ? 
Collections.singletonMap(portBindingPair.get(0), portBindingPair.get(1)) : 
Collections.emptyMap();
     }
     
     public enum Mode {
diff --git 
a/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/operation/transaction/engine/base/TransactionBaseE2EIT.java
 
b/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/operation/transaction/engine/base/TransactionBaseE2EIT.java
index bce77a3aa62..dd18f915369 100644
--- 
a/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/operation/transaction/engine/base/TransactionBaseE2EIT.java
+++ 
b/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/operation/transaction/engine/base/TransactionBaseE2EIT.java
@@ -27,6 +27,7 @@ import 
org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
 import 
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerConnectOption;
 import 
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerOption;
 import 
org.apache.shardingsphere.test.e2e.env.container.storage.type.DockerStorageContainer;
+import org.apache.shardingsphere.test.e2e.env.runtime.E2ETestEnvironment;
 import 
org.apache.shardingsphere.test.e2e.env.runtime.type.ArtifactEnvironment.Adapter;
 import org.apache.shardingsphere.test.e2e.env.runtime.type.RunEnvironment.Type;
 import 
org.apache.shardingsphere.test.e2e.operation.transaction.cases.base.BaseTransactionTestCase;
@@ -81,7 +82,9 @@ public abstract class TransactionBaseE2EIT {
     
     private static final List<Class<? extends BaseTransactionTestCase>> 
TEST_CASES = TestCaseClassScanner.scan();
     
-    private static final TransactionE2EEnvironment ENV = 
TransactionE2EEnvironment.getInstance();
+    private static final E2ETestEnvironment ENV = 
E2ETestEnvironment.getInstance();
+    
+    private static final TransactionE2EEnvironment TRANSACTION_ENV = 
TransactionE2EEnvironment.getInstance();
     
     private final CommonSQLCommand commonSQL;
     
@@ -267,8 +270,8 @@ public abstract class TransactionBaseE2EIT {
      */
     public void addResource(final Connection connection, final String 
databaseName, final TransactionContainerComposer containerComposer) throws 
SQLException {
         String addSourceResource = commonSQL.getSourceAddNewResourceTemplate()
-                .replace("${user}", ENV.getActualDataSourceUsername())
-                .replace("${password}", ENV.getActualDataSourcePassword())
+                .replace("${user}", 
ENV.getNativeStorageEnvironment().getUser())
+                .replace("${password}", 
ENV.getNativeStorageEnvironment().getPassword())
                 .replace("${ds2}", getActualJdbcUrlTemplate(databaseName, 
containerComposer));
         executeWithLog(connection, addSourceResource);
         int resourceCount = countWithLog("SHOW STORAGE UNITS FROM 
sharding_db", containerComposer);
@@ -278,11 +281,11 @@ public abstract class TransactionBaseE2EIT {
     
     private String getActualJdbcUrlTemplate(final String databaseName, final 
TransactionContainerComposer containerComposer) {
         StorageContainerConnectOption option = 
DatabaseTypedSPILoader.getService(StorageContainerOption.class, 
containerComposer.getDatabaseType()).getConnectOption();
-        if (Type.DOCKER == ENV.getType()) {
+        if (Type.DOCKER == ENV.getRunEnvironment().getType()) {
             DockerStorageContainer storageContainer = (DockerStorageContainer) 
((TransactionDockerContainerComposer) 
containerComposer.getContainerComposer()).getStorageContainer();
             return 
option.getURL(containerComposer.getDatabaseType().getType().toLowerCase() + 
".host", storageContainer.getExposedPort(), databaseName);
         }
-        return option.getURL("127.0.0.1", 
ENV.getActualDataSourceDefaultPort(containerComposer.getDatabaseType()), 
databaseName);
+        return option.getURL("127.0.0.1", 
ENV.getNativeStorageEnvironment().getPort(), databaseName);
     }
     
     /**
@@ -329,7 +332,7 @@ public abstract class TransactionBaseE2EIT {
     }
     
     private static boolean isEnabled() {
-        return !ENV.getScenarios().isEmpty() && null != ENV.getType();
+        return !TRANSACTION_ENV.getCases().isEmpty() && null != 
ENV.getRunEnvironment().getType();
     }
     
     private static final class TestCaseArgumentsProvider implements 
ArgumentsProvider {
@@ -342,7 +345,7 @@ public abstract class TransactionBaseE2EIT {
         }
         
         private Collection<TransactionTestParameter> 
getTransactionTestParameters(final Class<? extends TransactionBaseE2EIT> 
testCaseClass) {
-            TransactionTestCaseRegistry currentTestCaseInfo = 
ENV.getTransactionTestCaseRegistryMap().get(testCaseClass.getName());
+            TransactionTestCaseRegistry currentTestCaseInfo = 
TRANSACTION_ENV.getTransactionTestCaseRegistryMap().get(testCaseClass.getName());
             Collection<TransactionTestParameter> result = 
getTestParameters(currentTestCaseInfo);
             // TODO zhangcheng make sure the test cases should not empty
             if (result.isEmpty()) {
@@ -352,19 +355,7 @@ public abstract class TransactionBaseE2EIT {
         }
         
         private Collection<TransactionTestParameter> getTestParameters(final 
TransactionTestCaseRegistry registry) {
-            Collection<TransactionTestParameter> result = new LinkedList<>();
-            if 
(TransactionTestConstants.MYSQL.equalsIgnoreCase(registry.getDbType())) {
-                result.addAll(getTestParameters(registry, 
ENV.getMysqlVersions()));
-            } else if 
(TransactionTestConstants.POSTGRESQL.equalsIgnoreCase(registry.getDbType())) {
-                result.addAll(getTestParameters(registry, 
ENV.getPostgresqlVersions()));
-            } else if 
(TransactionTestConstants.OPENGAUSS.equalsIgnoreCase(registry.getDbType())) {
-                result.addAll(getTestParameters(registry, 
ENV.getOpenGaussVersions()));
-            }
-            return result;
-        }
-        
-        private Collection<TransactionTestParameter> getTestParameters(final 
TransactionTestCaseRegistry registry, final List<String> databaseVersions) {
-            return databaseVersions.stream().flatMap(each -> 
getTestParameters(registry, each).stream()).collect(Collectors.toList());
+            return getTestParameters(registry, 
ENV.getArtifactEnvironment().getDatabaseImages().get(TypedSPILoader.getService(DatabaseType.class,
 registry.getDbType())));
         }
         
         private Collection<TransactionTestParameter> getTestParameters(final 
TransactionTestCaseRegistry registry, final String databaseVersion) {
@@ -373,7 +364,7 @@ public abstract class TransactionBaseE2EIT {
                 log.warn("Transaction test cases are empty.");
             }
             for (Class<? extends BaseTransactionTestCase> each : TEST_CASES) {
-                if (!ENV.getScenarios().isEmpty() && 
!ENV.getScenarios().contains(each.getSimpleName())) {
+                if (!TRANSACTION_ENV.getCases().isEmpty() && 
!ENV.getScenarios().contains(each.getSimpleName())) {
                     log.info("Collect transaction test case, need to run cases 
don't contain this, skip: {}.", each.getName());
                     continue;
                 }
@@ -400,14 +391,14 @@ public abstract class TransactionBaseE2EIT {
         private void setTestParameters(final Map<String, 
TransactionTestParameter> testParams, final TransactionTestCaseRegistry 
registry, final String databaseVersion,
                                        final TransactionTestCase 
transactionTestCase, final String scenario, final Class<? extends 
BaseTransactionTestCase> caseClass) {
             if (Adapter.PROXY.getValue().equals(registry.getRunningAdaptor())) 
{
-                List<TransactionType> allowedTransactionTypes = 
ENV.getAllowTransactionTypes().isEmpty() ? 
Arrays.stream(TransactionType.values()).collect(Collectors.toList())
-                        : 
ENV.getAllowTransactionTypes().stream().map(TransactionType::valueOf).collect(Collectors.toList());
-                List<String> allowedProviders = 
ENV.getAllowXAProviders().isEmpty() ? ALL_XA_PROVIDERS : 
ENV.getAllowXAProviders();
+                List<TransactionType> allowedTransactionTypes = 
TRANSACTION_ENV.getAllowTransactionTypes().isEmpty() ? 
Arrays.stream(TransactionType.values()).collect(Collectors.toList())
+                        : 
TRANSACTION_ENV.getAllowTransactionTypes().stream().map(TransactionType::valueOf).collect(Collectors.toList());
+                List<String> allowedProviders = 
TRANSACTION_ENV.getAllowXAProviders().isEmpty() ? ALL_XA_PROVIDERS : 
TRANSACTION_ENV.getAllowXAProviders();
                 setTestParameters(testParams, registry, databaseVersion, 
allowedTransactionTypes, allowedProviders, scenario, caseClass);
                 return;
             }
             for (TransactionType each : 
transactionTestCase.transactionTypes()) {
-                if (!ENV.getAllowTransactionTypes().isEmpty() && 
!ENV.getAllowTransactionTypes().contains(each.toString())) {
+                if (!TRANSACTION_ENV.getAllowTransactionTypes().isEmpty() && 
!TRANSACTION_ENV.getAllowTransactionTypes().contains(each.toString())) {
                     log.info("Collect transaction test case, need to run 
transaction types don't contain this, skip: {}-{}.", caseClass.getName(), each);
                     continue;
                 }
@@ -422,7 +413,7 @@ public abstract class TransactionBaseE2EIT {
                 return;
             }
             if (TransactionType.XA == transactionType) {
-                for (String each : ENV.getAllowXAProviders().isEmpty() ? 
ALL_XA_PROVIDERS : ENV.getAllowXAProviders()) {
+                for (String each : 
TRANSACTION_ENV.getAllowXAProviders().isEmpty() ? ALL_XA_PROVIDERS : 
TRANSACTION_ENV.getAllowXAProviders()) {
                     setTestParameters(testParams, registry, databaseVersion, 
Collections.singletonList(transactionType), Collections.singletonList(each), 
scenario, caseClass);
                 }
             }
@@ -431,8 +422,9 @@ public abstract class TransactionBaseE2EIT {
         private void setTestParameters(final Map<String, 
TransactionTestParameter> testParams, final TransactionTestCaseRegistry 
registry, final String databaseVersion,
                                        final List<TransactionType> 
transactionTypes, final List<String> providers, final String scenario, final 
Class<? extends BaseTransactionTestCase> caseClass) {
             String key = getUniqueKey(registry.getDbType(), 
registry.getRunningAdaptor(), transactionTypes, providers, scenario);
-            testParams.putIfAbsent(key, new 
TransactionTestParameter(getDatabaseType(registry.getDbType()), 
registry.getRunningAdaptor(), ENV.getPortBindings(), transactionTypes, 
providers,
-                    getStorageContainerImageName(registry.getDbType(), 
databaseVersion), scenario, new LinkedList<>()));
+            testParams.putIfAbsent(
+                    key, new 
TransactionTestParameter(getDatabaseType(registry.getDbType()), 
registry.getRunningAdaptor(), TRANSACTION_ENV.getPortBindings(), 
transactionTypes, providers,
+                            getStorageContainerImageName(registry.getDbType(), 
databaseVersion), scenario, new LinkedList<>()));
             testParams.get(key).getTransactionTestCaseClasses().add(caseClass);
         }
         
diff --git 
a/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/operation/transaction/engine/base/TransactionContainerComposer.java
 
b/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/operation/transaction/engine/base/TransactionContainerComposer.java
index 574bf67e87b..e06f81eddcf 100644
--- 
a/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/operation/transaction/engine/base/TransactionContainerComposer.java
+++ 
b/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/operation/transaction/engine/base/TransactionContainerComposer.java
@@ -19,9 +19,9 @@ package 
org.apache.shardingsphere.test.e2e.operation.transaction.engine.base;
 
 import lombok.Getter;
 import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
+import org.apache.shardingsphere.test.e2e.env.runtime.E2ETestEnvironment;
 import 
org.apache.shardingsphere.test.e2e.env.runtime.type.ArtifactEnvironment.Adapter;
 import org.apache.shardingsphere.test.e2e.env.runtime.type.RunEnvironment.Type;
-import 
org.apache.shardingsphere.test.e2e.operation.transaction.env.TransactionE2EEnvironment;
 import 
org.apache.shardingsphere.test.e2e.operation.transaction.framework.container.compose.TransactionBaseContainerComposer;
 import 
org.apache.shardingsphere.test.e2e.operation.transaction.framework.container.compose.TransactionDockerContainerComposer;
 import 
org.apache.shardingsphere.test.e2e.operation.transaction.framework.container.compose.TransactionNativeContainerComposer;
@@ -35,8 +35,6 @@ import javax.sql.DataSource;
 @Getter
 public final class TransactionContainerComposer implements AutoCloseable {
     
-    private static final TransactionE2EEnvironment ENV = 
TransactionE2EEnvironment.getInstance();
-    
     private final DatabaseType databaseType;
     
     private final TransactionBaseContainerComposer containerComposer;
@@ -50,7 +48,9 @@ public final class TransactionContainerComposer implements 
AutoCloseable {
     }
     
     private TransactionBaseContainerComposer initContainerComposer(final 
TransactionTestParameter testParam) {
-        TransactionBaseContainerComposer result = Type.NATIVE == ENV.getType() 
? new TransactionNativeContainerComposer() : new 
TransactionDockerContainerComposer(testParam);
+        TransactionBaseContainerComposer result = Type.NATIVE == 
E2ETestEnvironment.getInstance().getRunEnvironment().getType()
+                ? new TransactionNativeContainerComposer()
+                : new TransactionDockerContainerComposer(testParam);
         result.start();
         return result;
     }
diff --git 
a/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/operation/transaction/env/TransactionE2EEnvironment.java
 
b/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/operation/transaction/env/TransactionE2EEnvironment.java
index 69c791c4144..799abcfdf09 100644
--- 
a/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/operation/transaction/env/TransactionE2EEnvironment.java
+++ 
b/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/operation/transaction/env/TransactionE2EEnvironment.java
@@ -19,17 +19,12 @@ package 
org.apache.shardingsphere.test.e2e.operation.transaction.env;
 
 import com.google.common.base.Strings;
 import lombok.Getter;
-import 
org.apache.shardingsphere.database.connector.core.spi.DatabaseTypedSPILoader;
-import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
-import 
org.apache.shardingsphere.test.e2e.env.container.constants.ProxyContainerConstants;
-import 
org.apache.shardingsphere.test.e2e.env.container.constants.StorageContainerConstants;
-import 
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerOption;
-import org.apache.shardingsphere.test.e2e.env.runtime.type.RunEnvironment.Type;
 import 
org.apache.shardingsphere.test.e2e.operation.transaction.env.enums.TransactionTestCaseRegistry;
 
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.Arrays;
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -43,18 +38,10 @@ public final class TransactionE2EEnvironment {
     
     private final Properties props;
     
-    private final List<String> scenarios;
-    
-    private final Type type;
+    private final Collection<String> cases;
     
     private final List<String> portBindings;
     
-    private final List<String> mysqlVersions;
-    
-    private final List<String> postgresqlVersions;
-    
-    private final List<String> openGaussVersions;
-    
     private final List<String> allowTransactionTypes;
     
     private final List<String> allowXAProviders;
@@ -63,21 +50,13 @@ public final class TransactionE2EEnvironment {
     
     private TransactionE2EEnvironment() {
         props = loadProperties();
-        scenarios = splitProperty("e2e.scenarios");
-        type = props.containsKey("e2e.run.type") ? null : 
Type.valueOf(props.getProperty("e2e.run.type").toUpperCase());
-        portBindings = splitProperty("e2e.proxy.port.bindings");
-        mysqlVersions = splitProperty("e2e.artifact.database.mysql.image");
-        postgresqlVersions = 
splitProperty("e2e.artifact.database.postgresql.image");
-        openGaussVersions = 
splitProperty("e2e.artifact.database.opengauss.image");
+        cases = splitProperty("e2e.cases");
+        portBindings = splitProperty("e2e.artifact.proxy.port.bindings");
         allowTransactionTypes = 
splitProperty("transaction.e2e.env.transtypes");
         allowXAProviders = splitProperty("transaction.e2e.env.xa.providers");
         transactionTestCaseRegistryMap = initTransactionTestCaseRegistryMap();
     }
     
-    private List<String> splitProperty(final String key) {
-        return Arrays.stream(props.getOrDefault(key, 
"").toString().split(",")).filter(each -> 
!Strings.isNullOrEmpty(each)).map(String::trim).collect(Collectors.toList());
-    }
-    
     private Properties loadProperties() {
         Properties result = new Properties();
         try (InputStream inputStream = 
Thread.currentThread().getContextClassLoader().getResourceAsStream("env/e2e-env.properties"))
 {
@@ -91,6 +70,10 @@ public final class TransactionE2EEnvironment {
         return result;
     }
     
+    private List<String> splitProperty(final String key) {
+        return Arrays.stream(props.getOrDefault(key, 
"").toString().split(",")).filter(each -> 
!Strings.isNullOrEmpty(each)).map(String::trim).collect(Collectors.toList());
+    }
+    
     private Map<String, TransactionTestCaseRegistry> 
initTransactionTestCaseRegistryMap() {
         Map<String, TransactionTestCaseRegistry> result = new 
HashMap<>(TransactionTestCaseRegistry.values().length, 1F);
         for (TransactionTestCaseRegistry each : 
TransactionTestCaseRegistry.values()) {
@@ -99,35 +82,6 @@ public final class TransactionE2EEnvironment {
         return result;
     }
     
-    /**
-     * Get actual data source default port.
-     *
-     * @param databaseType database type
-     * @return default port
-     */
-    public int getActualDataSourceDefaultPort(final DatabaseType databaseType) 
{
-        int defaultPort = 
DatabaseTypedSPILoader.getService(StorageContainerOption.class, 
databaseType).getCreateOption().getPort();
-        return Integer.parseInt(props.getOrDefault("e2e.native.storage.port", 
defaultPort).toString());
-    }
-    
-    /**
-     * Get actual data source username.
-     *
-     * @return actual data source username
-     */
-    public String getActualDataSourceUsername() {
-        return type == Type.NATIVE ? 
String.valueOf(props.getOrDefault("e2e.native.storage.username", 
ProxyContainerConstants.USER)) : StorageContainerConstants.OPERATION_USER;
-    }
-    
-    /**
-     * Get actual data source password.
-     *
-     * @return actual data source password
-     */
-    public String getActualDataSourcePassword() {
-        return type == Type.NATIVE ? 
props.getOrDefault("e2e.native.storage.password", 
ProxyContainerConstants.PASSWORD).toString() : 
StorageContainerConstants.OPERATION_PASSWORD;
-    }
-    
     /**
      * Get instance.
      *
diff --git 
a/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/operation/transaction/framework/container/compose/TransactionDockerContainerComposer.java
 
b/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/operation/transaction/framework/container/compose/TransactionDockerContainerComposer.java
index 739b2153b14..5eca7fc2c7e 100644
--- 
a/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/operation/transaction/framework/container/compose/TransactionDockerContainerComposer.java
+++ 
b/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/operation/transaction/framework/container/compose/TransactionDockerContainerComposer.java
@@ -35,9 +35,9 @@ import 
org.apache.shardingsphere.test.e2e.env.container.storage.StorageContainer
 import 
org.apache.shardingsphere.test.e2e.env.container.storage.option.StorageContainerOption;
 import 
org.apache.shardingsphere.test.e2e.env.container.storage.type.DockerStorageContainer;
 import 
org.apache.shardingsphere.test.e2e.env.container.storage.type.NativeStorageContainer;
+import org.apache.shardingsphere.test.e2e.env.runtime.E2ETestEnvironment;
 import 
org.apache.shardingsphere.test.e2e.env.runtime.type.ArtifactEnvironment.Adapter;
 import org.apache.shardingsphere.test.e2e.env.runtime.type.RunEnvironment.Type;
-import 
org.apache.shardingsphere.test.e2e.operation.transaction.env.TransactionE2EEnvironment;
 import 
org.apache.shardingsphere.test.e2e.operation.transaction.framework.container.config.TransactionProxyContainerConfigurationFactory;
 import 
org.apache.shardingsphere.test.e2e.operation.transaction.framework.param.TransactionTestParameter;
 
@@ -61,17 +61,17 @@ public final class TransactionDockerContainerComposer 
extends TransactionBaseCon
         super(testParam.getScenario());
         DatabaseType databaseType = testParam.getDatabaseType();
         GovernanceContainer governanceContainer = 
getContainers().registerContainer(new 
GovernanceContainer(TypedSPILoader.getService(GovernanceContainerOption.class, 
"ZooKeeper")));
-        if (Type.DOCKER == TransactionE2EEnvironment.getInstance().getType()) {
-            storageContainer = getContainers().registerContainer(new 
DockerStorageContainer(
-                    testParam.getStorageContainerImage(), 
DatabaseTypedSPILoader.getService(StorageContainerOption.class, databaseType), 
testParam.getScenario()));
+        Type type = 
E2ETestEnvironment.getInstance().getRunEnvironment().getType();
+        if (Type.DOCKER == type) {
+            storageContainer = getContainers().registerContainer(
+                    new 
DockerStorageContainer(testParam.getStorageContainerImage(), 
DatabaseTypedSPILoader.getService(StorageContainerOption.class, databaseType), 
testParam.getScenario()));
         } else {
             storageContainer = getContainers().registerContainer(new 
NativeStorageContainer(databaseType, testParam.getScenario()));
         }
         if (Adapter.PROXY.getValue().equalsIgnoreCase(testParam.getAdapter())) 
{
             jdbcContainer = null;
             AdaptorContainerConfiguration containerConfig = 
TransactionProxyContainerConfigurationFactory.newInstance(testParam.getScenario(),
 databaseType, testParam.getPortBindings());
-            proxyContainer = AdapterContainerFactory.newInstance(
-                    Adapter.PROXY, databaseType, testParam.getScenario(), 
containerConfig, storageContainer, 
TransactionE2EEnvironment.getInstance().getType().name());
+            proxyContainer = 
AdapterContainerFactory.newInstance(Adapter.PROXY, databaseType, 
testParam.getScenario(), containerConfig, storageContainer, type.name());
             if (proxyContainer instanceof DockerE2EContainer) {
                 ((DockerE2EContainer) 
proxyContainer).dependsOn(governanceContainer, storageContainer);
             }
diff --git 
a/test/e2e/operation/transaction/src/test/resources/env/e2e-env.properties 
b/test/e2e/operation/transaction/src/test/resources/env/e2e-env.properties
index 91230d650c7..9b0fa8d6938 100644
--- a/test/e2e/operation/transaction/src/test/resources/env/e2e-env.properties
+++ b/test/e2e/operation/transaction/src/test/resources/env/e2e-env.properties
@@ -15,8 +15,10 @@
 # limitations under the License.
 #
 
-#e2e.scenarios=ClassicTransferTestCase
-e2e.scenarios=TransactionDeadlockTestCase, MultiJDBCConnectionsTestCase, 
MultiTransactionInConnectionTestCase, MultiOperationsCommitAndRollbackTestCase, 
MySQLAutoCommitTestCase, PostgreSQLAutoCommitTestCase, 
BroadcastTableTransactionTestCase, ExceptionInTransactionTestCase, 
MultiTableCommitAndRollbackTestCase, SingleTableCommitAndRollbackTestCase, 
MySQLSetReadOnlyTestCase, MySQLLocalTruncateTestCase, MySQLXATruncateTestCase, 
OpenGaussCursorTestCase, NestedTransactionTestCase, ReadwriteSp [...]
+#e2e.cases=ClassicTransferTestCase
+e2e.cases=TransactionDeadlockTestCase, MultiJDBCConnectionsTestCase, 
MultiTransactionInConnectionTestCase, MultiOperationsCommitAndRollbackTestCase, 
MySQLAutoCommitTestCase, PostgreSQLAutoCommitTestCase, 
BroadcastTableTransactionTestCase, ExceptionInTransactionTestCase, 
MultiTableCommitAndRollbackTestCase, SingleTableCommitAndRollbackTestCase, 
MySQLSetReadOnlyTestCase, MySQLLocalTruncateTestCase, MySQLXATruncateTestCase, 
OpenGaussCursorTestCase, NestedTransactionTestCase, ReadwriteSplitt [...]
+
+e2e.scenarios=default,cursor,readwrite-splitting
 
 #e2e.run.type=DOCKER,NATIVE
 e2e.run.type=
@@ -26,7 +28,7 @@ transaction.e2e.env.transtypes=LOCAL, XA
 # transaction.e2e.env.xa.providers=Atomikos, Narayana
 transaction.e2e.env.xa.providers=Atomikos, Narayana
 
-#e2e.proxy.port.bindings=63308:3308
+#e2e.artifact.proxy.port.bindings=63308:3308
 
 #e2e.artifact.database.mysql.image=mysql:5.7,mysql:8.0
 e2e.artifact.database.mysql.image=
diff --git a/test/e2e/sql/src/test/resources/env/e2e-env.properties 
b/test/e2e/sql/src/test/resources/env/e2e-env.properties
index 11836088cf5..91d35e2c32a 100644
--- a/test/e2e/sql/src/test/resources/env/e2e-env.properties
+++ b/test/e2e/sql/src/test/resources/env/e2e-env.properties
@@ -38,6 +38,8 @@ e2e.artifact.databases=
 
 #e2e.artifact.database.mysql.image=mysql:8.2.0
 
+#e2e.artifact.proxy.port.bindings=63308:3308
+
 e2e.native.storage.host=127.0.0.1
 e2e.native.storage.port=3306
 e2e.native.storage.username=root

Reply via email to