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

panjuan 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 11b21da  Add AdapterContainerFactory (#15317)
11b21da is described below

commit 11b21da8a7c83d58b7140f22768812b71c4526bb
Author: Liang Zhang <[email protected]>
AuthorDate: Wed Feb 9 17:26:39 2022 +0800

    Add AdapterContainerFactory (#15317)
---
 .../test/integration/engine/BaseITCase.java        |  4 +--
 .../framework/compose/ComposedContainer.java       | 22 +++---------
 .../compose/mode/ClusterComposedContainer.java     |  6 ++--
 .../compose/mode/MemoryComposedContainer.java      |  4 +--
 ...AdapterContainer.java => AdapterContainer.java} |  8 ++---
 .../AdapterContainerFactory.java}                  | 39 ++++++++++------------
 .../adapter/impl/ShardingSphereJDBCContainer.java  |  4 +--
 .../adapter/impl/ShardingSphereProxyContainer.java |  4 +--
 .../container/storage/StorageContainerFactory.java |  2 +-
 9 files changed, 38 insertions(+), 55 deletions(-)

diff --git 
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/BaseITCase.java
 
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/BaseITCase.java
index 9e767d8..7d2a567 100644
--- 
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/BaseITCase.java
+++ 
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/BaseITCase.java
@@ -25,7 +25,7 @@ import 
org.apache.shardingsphere.test.integration.cases.SQLCommandType;
 import 
org.apache.shardingsphere.test.integration.cases.assertion.IntegrationTestCase;
 import 
org.apache.shardingsphere.test.integration.framework.compose.ComposedContainer;
 import 
org.apache.shardingsphere.test.integration.framework.compose.mode.ClusterComposedContainer;
-import 
org.apache.shardingsphere.test.integration.framework.container.adapter.ShardingSphereAdapterContainer;
+import 
org.apache.shardingsphere.test.integration.framework.container.adapter.AdapterContainer;
 import 
org.apache.shardingsphere.test.integration.framework.container.storage.StorageContainer;
 import 
org.apache.shardingsphere.test.integration.framework.param.model.ParameterizedArray;
 import 
org.apache.shardingsphere.test.integration.framework.runner.ShardingSphereIntegrationTestParameterized;
@@ -63,7 +63,7 @@ public abstract class BaseITCase {
     
     private final StorageContainer storageContainer;
     
-    private final ShardingSphereAdapterContainer adapterContainer;
+    private final AdapterContainer adapterContainer;
     
     private Map<String, DataSource> dataSourceMap;
     
diff --git 
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/compose/ComposedContainer.java
 
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/compose/ComposedContainer.java
index 919a602..877f1b9 100644
--- 
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/compose/ComposedContainer.java
+++ 
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/compose/ComposedContainer.java
@@ -21,9 +21,8 @@ import lombok.AccessLevel;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import 
org.apache.shardingsphere.test.integration.framework.container.ShardingSphereContainer;
-import 
org.apache.shardingsphere.test.integration.framework.container.adapter.ShardingSphereAdapterContainer;
-import 
org.apache.shardingsphere.test.integration.framework.container.adapter.impl.ShardingSphereJDBCContainer;
-import 
org.apache.shardingsphere.test.integration.framework.container.adapter.impl.ShardingSphereProxyContainer;
+import 
org.apache.shardingsphere.test.integration.framework.container.adapter.AdapterContainer;
+import 
org.apache.shardingsphere.test.integration.framework.container.adapter.AdapterContainerFactory;
 import 
org.apache.shardingsphere.test.integration.framework.container.storage.StorageContainer;
 import 
org.apache.shardingsphere.test.integration.framework.container.storage.StorageContainerFactory;
 import 
org.apache.shardingsphere.test.integration.framework.logging.ContainerLogs;
@@ -67,19 +66,8 @@ public abstract class ComposedContainer extends 
ExternalResource implements Clos
         return StorageContainerFactory.newInstance(parameterizedArray, 
network, suiteName);
     }
     
-    protected ShardingSphereAdapterContainer createAdapterContainer() {
-        Supplier<ShardingSphereAdapterContainer> supplier = () -> {
-            switch (parameterizedArray.getAdapter()) {
-                case "proxy":
-                    return new 
ShardingSphereProxyContainer(parameterizedArray);
-                case "jdbc":
-                    return new ShardingSphereJDBCContainer(parameterizedArray);
-                default:
-                    throw new RuntimeException(String.format("Adapter[%s] is 
unknown.", parameterizedArray.getAdapter()));
-                
-            }
-        };
-        return createContainer(supplier, "adapter");
+    protected AdapterContainer createAdapterContainer() {
+        return AdapterContainerFactory.newInstance(parameterizedArray, 
network, suiteName);
     }
     
     protected final <T extends ShardingSphereContainer> T 
createContainer(final Supplier<T> supplier, final String hostname) {
@@ -128,7 +116,7 @@ public abstract class ComposedContainer extends 
ExternalResource implements Clos
      *
      * @return ShardingSphere adapter container
      */
-    public abstract ShardingSphereAdapterContainer getAdapterContainer();
+    public abstract AdapterContainer getAdapterContainer();
     
     /**
      * Get storage container.
diff --git 
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/compose/mode/ClusterComposedContainer.java
 
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/compose/mode/ClusterComposedContainer.java
index bb8b111..bc618c7 100644
--- 
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/compose/mode/ClusterComposedContainer.java
+++ 
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/compose/mode/ClusterComposedContainer.java
@@ -20,7 +20,7 @@ package 
org.apache.shardingsphere.test.integration.framework.compose.mode;
 import lombok.AccessLevel;
 import lombok.Getter;
 import 
org.apache.shardingsphere.test.integration.framework.compose.ComposedContainer;
-import 
org.apache.shardingsphere.test.integration.framework.container.adapter.ShardingSphereAdapterContainer;
+import 
org.apache.shardingsphere.test.integration.framework.container.adapter.AdapterContainer;
 import 
org.apache.shardingsphere.test.integration.framework.container.adapter.impl.ShardingSphereProxyContainer;
 import 
org.apache.shardingsphere.test.integration.framework.container.governance.ZookeeperContainer;
 import 
org.apache.shardingsphere.test.integration.framework.container.storage.StorageContainer;
@@ -39,9 +39,9 @@ public final class ClusterComposedContainer extends 
ComposedContainer {
     
     private final StorageContainer storageContainer;
     
-    private final ShardingSphereAdapterContainer adapterContainer;
+    private final AdapterContainer adapterContainer;
     
-    private final ShardingSphereAdapterContainer adapterContainerForReader;
+    private final AdapterContainer adapterContainerForReader;
     
     @Getter(AccessLevel.NONE)
     private final ZookeeperContainer zookeeperContainer;
diff --git 
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/compose/mode/MemoryComposedContainer.java
 
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/compose/mode/MemoryComposedContainer.java
index 8bbac9f..ef23aaf 100644
--- 
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/compose/mode/MemoryComposedContainer.java
+++ 
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/compose/mode/MemoryComposedContainer.java
@@ -19,7 +19,7 @@ package 
org.apache.shardingsphere.test.integration.framework.compose.mode;
 
 import lombok.Getter;
 import 
org.apache.shardingsphere.test.integration.framework.compose.ComposedContainer;
-import 
org.apache.shardingsphere.test.integration.framework.container.adapter.ShardingSphereAdapterContainer;
+import 
org.apache.shardingsphere.test.integration.framework.container.adapter.AdapterContainer;
 import 
org.apache.shardingsphere.test.integration.framework.container.storage.StorageContainer;
 import 
org.apache.shardingsphere.test.integration.framework.param.model.ParameterizedArray;
 
@@ -31,7 +31,7 @@ public final class MemoryComposedContainer extends 
ComposedContainer {
     
     private final StorageContainer storageContainer;
     
-    private final ShardingSphereAdapterContainer adapterContainer;
+    private final AdapterContainer adapterContainer;
     
     public MemoryComposedContainer(final String suiteName, final 
ParameterizedArray parameterizedArray) {
         super(suiteName, parameterizedArray);
diff --git 
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/adapter/ShardingSphereAdapterContainer.java
 
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/adapter/AdapterContainer.java
similarity index 89%
rename from 
shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/adapter/ShardingSphereAdapterContainer.java
rename to 
shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/adapter/AdapterContainer.java
index 20b681d..694bb6c 100644
--- 
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/adapter/ShardingSphereAdapterContainer.java
+++ 
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/adapter/AdapterContainer.java
@@ -35,19 +35,19 @@ import java.util.Collection;
 import java.util.Collections;
 
 /**
- * ShardingSphere adapter container.
+ * Adapter container.
  */
 @Getter
-public abstract class ShardingSphereAdapterContainer extends 
ShardingSphereContainer {
+public abstract class AdapterContainer extends ShardingSphereContainer {
     
     private final YamlUserConfiguration authentication;
     
-    public ShardingSphereAdapterContainer(final String dockerName, final 
String dockerImageName, final ParameterizedArray parameterizedArray) {
+    public AdapterContainer(final String dockerName, final String 
dockerImageName, final ParameterizedArray parameterizedArray) {
         this(dockerName, dockerImageName, false, parameterizedArray);
     }
     
     @SneakyThrows
-    public ShardingSphereAdapterContainer(final String name, final String 
dockerImageName, final boolean isFakedContainer, final ParameterizedArray 
parameterizedArray) {
+    public AdapterContainer(final String name, final String dockerImageName, 
final boolean isFakedContainer, final ParameterizedArray parameterizedArray) {
         super(name, dockerImageName, isFakedContainer, parameterizedArray);
         this.authentication = loadAuthentication(parameterizedArray);
     }
diff --git 
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/storage/StorageContainerFactory.java
 
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/adapter/AdapterContainerFactory.java
similarity index 61%
copy from 
shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/storage/StorageContainerFactory.java
copy to 
shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/adapter/AdapterContainerFactory.java
index 383a038..eb23b69 100644
--- 
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/storage/StorageContainerFactory.java
+++ 
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/adapter/AdapterContainerFactory.java
@@ -15,13 +15,12 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.test.integration.framework.container.storage;
+package org.apache.shardingsphere.test.integration.framework.container.adapter;
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
-import 
org.apache.shardingsphere.test.integration.framework.container.storage.impl.H2Container;
-import 
org.apache.shardingsphere.test.integration.framework.container.storage.impl.MySQLContainer;
-import 
org.apache.shardingsphere.test.integration.framework.container.storage.impl.PostgreSQLContainer;
+import 
org.apache.shardingsphere.test.integration.framework.container.adapter.impl.ShardingSphereJDBCContainer;
+import 
org.apache.shardingsphere.test.integration.framework.container.adapter.impl.ShardingSphereProxyContainer;
 import 
org.apache.shardingsphere.test.integration.framework.logging.ContainerLogs;
 import 
org.apache.shardingsphere.test.integration.framework.param.model.ParameterizedArray;
 import org.testcontainers.containers.Network;
@@ -29,37 +28,33 @@ import org.testcontainers.containers.Network;
 import java.util.Collections;
 
 /**
- * Storage container factory.
+ * Adapter container factory.
  */
 @NoArgsConstructor(access = AccessLevel.PRIVATE)
-public final class StorageContainerFactory {
+public final class AdapterContainerFactory {
     
     /**
-     * Create new instance of storage container.
-     * 
+     * Create new instance of adapter container.
+     *
      * @param parameterizedArray parameterized array
      * @param network network
      * @param suiteName suite name
-     * @return new instance of storage container
+     * @return new instance of adapter container
      */
-    public static StorageContainer newInstance(final ParameterizedArray 
parameterizedArray, final Network network, final String suiteName) {
-        StorageContainer result;
-        String databaseType = parameterizedArray.getDatabaseType().getName();
-        switch (databaseType) {
-            case "MySQL":
-                result = new MySQLContainer(parameterizedArray);
+    public static AdapterContainer newInstance(final ParameterizedArray 
parameterizedArray, final Network network, final String suiteName) {
+        AdapterContainer result;
+        switch (parameterizedArray.getAdapter()) {
+            case "proxy":
+                result = new ShardingSphereProxyContainer(parameterizedArray);
                 break;
-            case "PostgreSQL" :
-                result = new PostgreSQLContainer(parameterizedArray);
-                break;
-            case "H2":
-                result = new H2Container(parameterizedArray);
+            case "jdbc":
+                result = new ShardingSphereJDBCContainer(parameterizedArray);
                 break;
             default:
-                throw new RuntimeException("Unknown storage type " + 
parameterizedArray.getDatabaseType());
+                throw new RuntimeException(String.format("Adapter [%s] is 
unknown.", parameterizedArray.getAdapter()));
         }
         result.setNetwork(network);
-        
result.setNetworkAliases(Collections.singletonList(databaseType.toLowerCase() + 
"." + parameterizedArray.getScenario() + ".host"));
+        result.setNetworkAliases(Collections.singletonList("adapter"));
         result.withLogConsumer(ContainerLogs.newConsumer(String.join("-", 
suiteName, result.getName())));
         return result;
     }
diff --git 
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/adapter/impl/ShardingSphereJDBCContainer.java
 
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/adapter/impl/ShardingSphereJDBCContainer.java
index 5dbcc8d..a3c7b57 100644
--- 
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/adapter/impl/ShardingSphereJDBCContainer.java
+++ 
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/adapter/impl/ShardingSphereJDBCContainer.java
@@ -29,7 +29,7 @@ import 
org.apache.shardingsphere.infra.yaml.config.swapper.mode.ModeConfiguratio
 import org.apache.shardingsphere.infra.yaml.engine.YamlEngine;
 import org.apache.shardingsphere.test.integration.env.EnvironmentPath;
 import 
org.apache.shardingsphere.test.integration.framework.container.ShardingSphereContainer;
-import 
org.apache.shardingsphere.test.integration.framework.container.adapter.ShardingSphereAdapterContainer;
+import 
org.apache.shardingsphere.test.integration.framework.container.adapter.AdapterContainer;
 import 
org.apache.shardingsphere.test.integration.framework.container.storage.StorageContainer;
 import 
org.apache.shardingsphere.test.integration.framework.param.model.ParameterizedArray;
 import org.testcontainers.containers.wait.strategy.WaitStrategy;
@@ -50,7 +50,7 @@ import java.util.stream.Collectors;
 /**
  * ShardingSphere JDBC container.
  */
-public final class ShardingSphereJDBCContainer extends 
ShardingSphereAdapterContainer {
+public final class ShardingSphereJDBCContainer extends AdapterContainer {
     
     private final AtomicBoolean isHealthy = new AtomicBoolean();
     
diff --git 
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/adapter/impl/ShardingSphereProxyContainer.java
 
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/adapter/impl/ShardingSphereProxyContainer.java
index 842656c..7e94820 100644
--- 
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/adapter/impl/ShardingSphereProxyContainer.java
+++ 
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/adapter/impl/ShardingSphereProxyContainer.java
@@ -21,7 +21,7 @@ import com.zaxxer.hikari.HikariConfig;
 import com.zaxxer.hikari.HikariDataSource;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.shardingsphere.test.integration.env.DataSourceEnvironment;
-import 
org.apache.shardingsphere.test.integration.framework.container.adapter.ShardingSphereAdapterContainer;
+import 
org.apache.shardingsphere.test.integration.framework.container.adapter.AdapterContainer;
 import 
org.apache.shardingsphere.test.integration.framework.param.model.ParameterizedArray;
 import org.testcontainers.containers.BindMode;
 import org.testcontainers.containers.wait.strategy.LogMessageWaitStrategy;
@@ -35,7 +35,7 @@ import java.util.concurrent.atomic.AtomicReference;
  * ShardingSphere proxy container.
  */
 @Slf4j
-public final class ShardingSphereProxyContainer extends 
ShardingSphereAdapterContainer {
+public final class ShardingSphereProxyContainer extends AdapterContainer {
     
     private static final String AGENT_HOME_IN_CONTAINER = 
"/usr/local/shardingsphere-agent";
     
diff --git 
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/storage/StorageContainerFactory.java
 
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/storage/StorageContainerFactory.java
index 383a038..747c327 100644
--- 
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/storage/StorageContainerFactory.java
+++ 
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/storage/StorageContainerFactory.java
@@ -56,7 +56,7 @@ public final class StorageContainerFactory {
                 result = new H2Container(parameterizedArray);
                 break;
             default:
-                throw new RuntimeException("Unknown storage type " + 
parameterizedArray.getDatabaseType());
+                throw new RuntimeException(String.format("Database [%s] is 
unknown.", databaseType));
         }
         result.setNetwork(network);
         
result.setNetworkAliases(Collections.singletonList(databaseType.toLowerCase() + 
"." + parameterizedArray.getScenario() + ".host"));

Reply via email to