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"));