This is an automated email from the ASF dual-hosted git repository.
duanzhengqiang 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 8c962be Decouple ComposedContainer and @rule (#15333)
8c962be is described below
commit 8c962be8d8cdf2d2c87f144c6a566cd57bb2bdb5
Author: Liang Zhang <[email protected]>
AuthorDate: Thu Feb 10 15:20:24 2022 +0800
Decouple ComposedContainer and @rule (#15333)
* Refactor ShardingSphereContainer
* Decouple ComposedContainer and @Rule
* Fix checkstyle
---
.../test/integration/engine/BaseITCase.java | 4 +---
.../test/integration/engine/dal/GeneralDALIT.java | 4 +++-
.../test/integration/engine/dcl/GeneralDCLIT.java | 4 +++-
.../test/integration/engine/ddl/GeneralDDLIT.java | 4 +++-
.../integration/engine/dml/AdditionalDMLIT.java | 4 +++-
.../test/integration/engine/dml/BatchDMLIT.java | 4 +++-
.../test/integration/engine/dml/GeneralDMLIT.java | 4 +++-
.../integration/engine/dql/AdditionalDQLIT.java | 4 +++-
.../test/integration/engine/dql/BaseDQLIT.java | 2 +-
.../test/integration/engine/dql/GeneralDQLIT.java | 4 +++-
.../test/integration/engine/ral/GeneralRALIT.java | 4 +++-
.../test/integration/engine/rdl/GeneralRDLIT.java | 4 +++-
.../test/integration/engine/rql/GeneralRQLIT.java | 4 +++-
.../framework/compose/ComposedContainer.java | 23 ++--------------------
.../compose/ComposedContainerManager.java | 13 +++++++++++-
.../container/ShardingSphereContainer.java | 22 +++++++++------------
.../container/ShardingSphereContainers.java | 16 +++++++++------
17 files changed, 68 insertions(+), 56 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 7d2a567..7cf0898 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
@@ -31,7 +31,6 @@ import
org.apache.shardingsphere.test.integration.framework.param.model.Paramete
import
org.apache.shardingsphere.test.integration.framework.runner.ShardingSphereIntegrationTestParameterized;
import org.junit.After;
import org.junit.Before;
-import org.junit.Rule;
import org.junit.runner.RunWith;
import javax.sql.DataSource;
@@ -48,8 +47,7 @@ public abstract class BaseITCase {
public static final String NOT_VERIFY_FLAG = "NOT_VERIFY";
- @Rule
- public final ComposedContainer composedContainer;
+ private final ComposedContainer composedContainer;
private final String adapter;
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dal/GeneralDALIT.java
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dal/GeneralDALIT.java
index 5cd1d22..3d3713e 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dal/GeneralDALIT.java
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dal/GeneralDALIT.java
@@ -25,6 +25,7 @@ import
org.apache.shardingsphere.test.integration.framework.param.model.Assertio
import
org.apache.shardingsphere.test.integration.framework.param.model.ParameterizedArray;
import
org.apache.shardingsphere.test.integration.framework.runner.parallel.annotaion.ParallelLevel;
import
org.apache.shardingsphere.test.integration.framework.runner.parallel.annotaion.ParallelRuntimeStrategy;
+import org.junit.ClassRule;
import org.junit.Test;
import org.junit.runners.Parameterized.Parameters;
@@ -39,7 +40,8 @@ import java.util.stream.Collectors;
@ParallelRuntimeStrategy(ParallelLevel.SCENARIO)
public final class GeneralDALIT extends BaseDALIT {
- private static final ComposedContainerManager COMPOSED_CONTAINER_MANAGER =
new ComposedContainerManager("GeneralDALIT");
+ @ClassRule
+ public static final ComposedContainerManager COMPOSED_CONTAINER_MANAGER =
new ComposedContainerManager("GeneralDALIT");
public GeneralDALIT(final AssertionParameterizedArray parameterizedArray) {
super(parameterizedArray);
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dcl/GeneralDCLIT.java
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dcl/GeneralDCLIT.java
index 59089c8..2e6d9cd 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dcl/GeneralDCLIT.java
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dcl/GeneralDCLIT.java
@@ -25,6 +25,7 @@ import
org.apache.shardingsphere.test.integration.framework.param.model.Assertio
import
org.apache.shardingsphere.test.integration.framework.param.model.ParameterizedArray;
import
org.apache.shardingsphere.test.integration.framework.runner.parallel.annotaion.ParallelLevel;
import
org.apache.shardingsphere.test.integration.framework.runner.parallel.annotaion.ParallelRuntimeStrategy;
+import org.junit.ClassRule;
import org.junit.Test;
import org.junit.runners.Parameterized.Parameters;
@@ -37,7 +38,8 @@ import java.util.stream.Collectors;
@ParallelRuntimeStrategy(ParallelLevel.SCENARIO)
public final class GeneralDCLIT extends BaseDCLIT {
- private static final ComposedContainerManager COMPOSED_CONTAINER_MANAGER =
new ComposedContainerManager("GeneralDCLIT");
+ @ClassRule
+ public static final ComposedContainerManager COMPOSED_CONTAINER_MANAGER =
new ComposedContainerManager("GeneralDCLIT");
public GeneralDCLIT(final AssertionParameterizedArray parameterizedArray) {
super(parameterizedArray);
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/ddl/GeneralDDLIT.java
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/ddl/GeneralDDLIT.java
index eaae2fa..5f4c725 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/ddl/GeneralDDLIT.java
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/ddl/GeneralDDLIT.java
@@ -24,6 +24,7 @@ import
org.apache.shardingsphere.test.integration.framework.param.ParameterizedA
import
org.apache.shardingsphere.test.integration.framework.param.model.AssertionParameterizedArray;
import
org.apache.shardingsphere.test.integration.framework.runner.parallel.annotaion.ParallelLevel;
import
org.apache.shardingsphere.test.integration.framework.runner.parallel.annotaion.ParallelRuntimeStrategy;
+import org.junit.ClassRule;
import org.junit.Test;
import org.junit.runners.Parameterized.Parameters;
@@ -40,7 +41,8 @@ import static org.junit.Assert.assertFalse;
@ParallelRuntimeStrategy(ParallelLevel.SCENARIO)
public final class GeneralDDLIT extends BaseDDLIT {
- private static final ComposedContainerManager COMPOSED_CONTAINER_MANAGER =
new ComposedContainerManager("GeneralDDLIT");
+ @ClassRule
+ public static final ComposedContainerManager COMPOSED_CONTAINER_MANAGER =
new ComposedContainerManager("GeneralDDLIT");
public GeneralDDLIT(final AssertionParameterizedArray parameterizedArray) {
super(parameterizedArray);
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dml/AdditionalDMLIT.java
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dml/AdditionalDMLIT.java
index ffc73a6..a6dfffe 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dml/AdditionalDMLIT.java
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dml/AdditionalDMLIT.java
@@ -26,6 +26,7 @@ import
org.apache.shardingsphere.test.integration.framework.param.ParameterizedA
import
org.apache.shardingsphere.test.integration.framework.param.model.AssertionParameterizedArray;
import
org.apache.shardingsphere.test.integration.framework.runner.parallel.annotaion.ParallelLevel;
import
org.apache.shardingsphere.test.integration.framework.runner.parallel.annotaion.ParallelRuntimeStrategy;
+import org.junit.ClassRule;
import org.junit.Test;
import org.junit.runners.Parameterized.Parameters;
@@ -43,7 +44,8 @@ import static org.junit.Assert.assertFalse;
@ParallelRuntimeStrategy(ParallelLevel.SCENARIO)
public final class AdditionalDMLIT extends BaseDMLIT {
- private static final ComposedContainerManager COMPOSED_CONTAINER_MANAGER =
new ComposedContainerManager("AdditionalDMLIT");
+ @ClassRule
+ public static final ComposedContainerManager COMPOSED_CONTAINER_MANAGER =
new ComposedContainerManager("AdditionalDMLIT");
public AdditionalDMLIT(final AssertionParameterizedArray
parameterizedArray) {
super(parameterizedArray);
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dml/BatchDMLIT.java
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dml/BatchDMLIT.java
index 357805e..c13560d 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dml/BatchDMLIT.java
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dml/BatchDMLIT.java
@@ -27,6 +27,7 @@ import
org.apache.shardingsphere.test.integration.framework.param.model.CasePara
import
org.apache.shardingsphere.test.integration.framework.param.model.ParameterizedArray;
import
org.apache.shardingsphere.test.integration.framework.runner.parallel.annotaion.ParallelLevel;
import
org.apache.shardingsphere.test.integration.framework.runner.parallel.annotaion.ParallelRuntimeStrategy;
+import org.junit.ClassRule;
import org.junit.Test;
import org.junit.runners.Parameterized.Parameters;
@@ -43,7 +44,8 @@ import static org.junit.Assert.assertThat;
@ParallelRuntimeStrategy(ParallelLevel.SCENARIO)
public final class BatchDMLIT extends BatchITCase {
- private static final ComposedContainerManager COMPOSED_CONTAINER_MANAGER =
new ComposedContainerManager("BatchDMLIT");
+ @ClassRule
+ public static final ComposedContainerManager COMPOSED_CONTAINER_MANAGER =
new ComposedContainerManager("BatchDMLIT");
public BatchDMLIT(final CaseParameterizedArray parameterizedArray) {
super(parameterizedArray);
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dml/GeneralDMLIT.java
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dml/GeneralDMLIT.java
index 85b7f2d..b636c89 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dml/GeneralDMLIT.java
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dml/GeneralDMLIT.java
@@ -25,6 +25,7 @@ import
org.apache.shardingsphere.test.integration.framework.param.ParameterizedA
import
org.apache.shardingsphere.test.integration.framework.param.model.AssertionParameterizedArray;
import
org.apache.shardingsphere.test.integration.framework.runner.parallel.annotaion.ParallelLevel;
import
org.apache.shardingsphere.test.integration.framework.runner.parallel.annotaion.ParallelRuntimeStrategy;
+import org.junit.ClassRule;
import org.junit.Test;
import org.junit.runners.Parameterized.Parameters;
@@ -41,7 +42,8 @@ import static org.junit.Assert.assertFalse;
@ParallelRuntimeStrategy(ParallelLevel.SCENARIO)
public final class GeneralDMLIT extends BaseDMLIT {
- private static final ComposedContainerManager COMPOSED_CONTAINER_MANAGER =
new ComposedContainerManager("GeneralDMLIT");
+ @ClassRule
+ public static final ComposedContainerManager COMPOSED_CONTAINER_MANAGER =
new ComposedContainerManager("GeneralDMLIT");
public GeneralDMLIT(final AssertionParameterizedArray parameterizedArray) {
super(parameterizedArray);
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dql/AdditionalDQLIT.java
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dql/AdditionalDQLIT.java
index ed4cbe9..86c8c97 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dql/AdditionalDQLIT.java
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dql/AdditionalDQLIT.java
@@ -26,6 +26,7 @@ import
org.apache.shardingsphere.test.integration.framework.param.ParameterizedA
import
org.apache.shardingsphere.test.integration.framework.param.model.AssertionParameterizedArray;
import
org.apache.shardingsphere.test.integration.framework.runner.parallel.annotaion.ParallelLevel;
import
org.apache.shardingsphere.test.integration.framework.runner.parallel.annotaion.ParallelRuntimeStrategy;
+import org.junit.ClassRule;
import org.junit.Test;
import org.junit.runners.Parameterized.Parameters;
@@ -44,7 +45,8 @@ import static org.junit.Assert.assertTrue;
@ParallelRuntimeStrategy(ParallelLevel.CASE)
public final class AdditionalDQLIT extends BaseDQLIT {
- private static final ComposedContainerManager COMPOSED_CONTAINER_MANAGER =
new ComposedContainerManager("AdditionalDQLIT");
+ @ClassRule
+ public static final ComposedContainerManager COMPOSED_CONTAINER_MANAGER =
new ComposedContainerManager("AdditionalDQLIT");
public AdditionalDQLIT(final AssertionParameterizedArray parameter) {
super(parameter);
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dql/BaseDQLIT.java
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dql/BaseDQLIT.java
index 7857ece..5944902 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dql/BaseDQLIT.java
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dql/BaseDQLIT.java
@@ -50,7 +50,7 @@ public abstract class BaseDQLIT extends SingleITCase {
@Override
public void init() throws Exception {
super.init();
- composedContainer.executeOnStarted(compose -> {
+ getComposedContainer().executeOnStarted(compose -> {
try {
new DataSetEnvironmentManager(
EnvironmentPath.getDataSetFile(getScenario()),
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dql/GeneralDQLIT.java
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dql/GeneralDQLIT.java
index abd5a43..baa28ea 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dql/GeneralDQLIT.java
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dql/GeneralDQLIT.java
@@ -26,6 +26,7 @@ import
org.apache.shardingsphere.test.integration.framework.param.model.Assertio
import
org.apache.shardingsphere.test.integration.framework.param.model.ParameterizedArray;
import
org.apache.shardingsphere.test.integration.framework.runner.parallel.annotaion.ParallelLevel;
import
org.apache.shardingsphere.test.integration.framework.runner.parallel.annotaion.ParallelRuntimeStrategy;
+import org.junit.ClassRule;
import org.junit.Test;
import org.junit.runners.Parameterized.Parameters;
@@ -43,7 +44,8 @@ import static org.junit.Assert.assertTrue;
@ParallelRuntimeStrategy(ParallelLevel.CASE)
public final class GeneralDQLIT extends BaseDQLIT {
- private static final ComposedContainerManager COMPOSED_CONTAINER_MANAGER =
new ComposedContainerManager("GeneralDQLIT");
+ @ClassRule
+ public static final ComposedContainerManager COMPOSED_CONTAINER_MANAGER =
new ComposedContainerManager("GeneralDQLIT");
public GeneralDQLIT(final AssertionParameterizedArray parameter) {
super(parameter);
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/ral/GeneralRALIT.java
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/ral/GeneralRALIT.java
index 92f482e..cd81593 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/ral/GeneralRALIT.java
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/ral/GeneralRALIT.java
@@ -26,6 +26,7 @@ import
org.apache.shardingsphere.test.integration.framework.param.model.Assertio
import
org.apache.shardingsphere.test.integration.framework.param.model.ParameterizedArray;
import
org.apache.shardingsphere.test.integration.framework.runner.parallel.annotaion.ParallelLevel;
import
org.apache.shardingsphere.test.integration.framework.runner.parallel.annotaion.ParallelRuntimeStrategy;
+import org.junit.ClassRule;
import org.junit.Test;
import org.junit.runners.Parameterized.Parameters;
@@ -41,7 +42,8 @@ import java.util.stream.Collectors;
@ParallelRuntimeStrategy(ParallelLevel.SCENARIO)
public final class GeneralRALIT extends BaseRALIT {
- private static final ComposedContainerManager COMPOSED_CONTAINER_MANAGER =
new ComposedContainerManager("GeneralRALIT");
+ @ClassRule
+ public static final ComposedContainerManager COMPOSED_CONTAINER_MANAGER =
new ComposedContainerManager("GeneralRALIT");
public GeneralRALIT(final AssertionParameterizedArray parameterizedArray) {
super(parameterizedArray);
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/rdl/GeneralRDLIT.java
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/rdl/GeneralRDLIT.java
index 4f6423c..2ec87d5 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/rdl/GeneralRDLIT.java
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/rdl/GeneralRDLIT.java
@@ -26,6 +26,7 @@ import
org.apache.shardingsphere.test.integration.framework.param.model.Assertio
import
org.apache.shardingsphere.test.integration.framework.param.model.ParameterizedArray;
import
org.apache.shardingsphere.test.integration.framework.runner.parallel.annotaion.ParallelLevel;
import
org.apache.shardingsphere.test.integration.framework.runner.parallel.annotaion.ParallelRuntimeStrategy;
+import org.junit.ClassRule;
import org.junit.Test;
import org.junit.runners.Parameterized.Parameters;
@@ -41,7 +42,8 @@ import java.util.stream.Collectors;
@ParallelRuntimeStrategy(ParallelLevel.SCENARIO)
public final class GeneralRDLIT extends BaseRDLIT {
- private static final ComposedContainerManager COMPOSED_CONTAINER_MANAGER =
new ComposedContainerManager("GeneralRDLIT");
+ @ClassRule
+ public static final ComposedContainerManager COMPOSED_CONTAINER_MANAGER =
new ComposedContainerManager("GeneralRDLIT");
public GeneralRDLIT(final AssertionParameterizedArray parameterizedArray) {
super(parameterizedArray);
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/rql/GeneralRQLIT.java
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/rql/GeneralRQLIT.java
index a0627c5..de5eea2 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/rql/GeneralRQLIT.java
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/rql/GeneralRQLIT.java
@@ -25,6 +25,7 @@ import
org.apache.shardingsphere.test.integration.framework.param.model.Assertio
import
org.apache.shardingsphere.test.integration.framework.param.model.ParameterizedArray;
import
org.apache.shardingsphere.test.integration.framework.runner.parallel.annotaion.ParallelLevel;
import
org.apache.shardingsphere.test.integration.framework.runner.parallel.annotaion.ParallelRuntimeStrategy;
+import org.junit.ClassRule;
import org.junit.Test;
import org.junit.runners.Parameterized.Parameters;
@@ -39,7 +40,8 @@ import java.util.stream.Collectors;
@ParallelRuntimeStrategy(ParallelLevel.CASE)
public final class GeneralRQLIT extends BaseRQLIT {
- private static final ComposedContainerManager COMPOSED_CONTAINER_MANAGER =
new ComposedContainerManager("GeneralRQLIT");
+ @ClassRule
+ public static final ComposedContainerManager COMPOSED_CONTAINER_MANAGER =
new ComposedContainerManager("GeneralRQLIT");
public GeneralRQLIT(final AssertionParameterizedArray parameterizedArray) {
super(parameterizedArray);
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 05c42d8..2faa227 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
@@ -22,7 +22,6 @@ import lombok.Getter;
import
org.apache.shardingsphere.test.integration.framework.container.ShardingSphereContainers;
import
org.apache.shardingsphere.test.integration.framework.container.adapter.AdapterContainer;
import
org.apache.shardingsphere.test.integration.framework.container.storage.StorageContainer;
-import org.junit.rules.ExternalResource;
import javax.sql.DataSource;
import java.util.Map;
@@ -31,7 +30,7 @@ import java.util.function.Consumer;
/**
* Composed container.
*/
-public abstract class ComposedContainer extends ExternalResource {
+public abstract class ComposedContainer {
@Getter(AccessLevel.PROTECTED)
private final ShardingSphereContainers containers;
@@ -66,7 +65,7 @@ public abstract class ComposedContainer extends
ExternalResource {
/**
* Execution initializer one time after container started.
*
- * @param consumer initializer
+ * @param consumer initializer consumer
*/
public final void executeOnStarted(final Consumer<ComposedContainer>
consumer) {
if (!executed) {
@@ -78,22 +77,4 @@ public abstract class ComposedContainer extends
ExternalResource {
}
}
}
-
- @Override
- protected final void before() {
- if (!containers.isStarted()) {
- synchronized (this) {
- if (!containers.isStarted()) {
- containers.start();
- containers.waitUntilReady();
- }
- }
- }
- }
-
- // TODO close on class rule
- @Override
- protected final void after() {
-// containers.close();
- }
}
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/compose/ComposedContainerManager.java
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/compose/ComposedContainerManager.java
index cc15426..52ea0c3 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/compose/ComposedContainerManager.java
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/compose/ComposedContainerManager.java
@@ -21,6 +21,7 @@ import lombok.RequiredArgsConstructor;
import
org.apache.shardingsphere.test.integration.framework.compose.mode.ClusterComposedContainer;
import
org.apache.shardingsphere.test.integration.framework.compose.mode.MemoryComposedContainer;
import
org.apache.shardingsphere.test.integration.framework.param.model.ParameterizedArray;
+import org.junit.rules.ExternalResource;
import java.util.HashMap;
import java.util.Map;
@@ -29,7 +30,7 @@ import java.util.Map;
* Composed container manager.
*/
@RequiredArgsConstructor
-public final class ComposedContainerManager {
+public final class ComposedContainerManager extends ExternalResource {
private final String testSuiteName;
@@ -60,4 +61,14 @@ public final class ComposedContainerManager {
private String generateKey(final ParameterizedArray parameter) {
return String.join("-", testSuiteName, parameter.getScenario(),
parameter.getAdapter(), parameter.getDatabaseType().getName());
}
+
+ @Override
+ protected void before() {
+ composedContainers.values().forEach(each ->
each.getContainers().start());
+ }
+
+ @Override
+ protected void after() {
+ composedContainers.values().forEach(each ->
each.getContainers().close());
+ }
}
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/ShardingSphereContainer.java
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/ShardingSphereContainer.java
index c351e6e..1dad9f5 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/ShardingSphereContainer.java
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/ShardingSphereContainer.java
@@ -67,29 +67,25 @@ public abstract class ShardingSphereContainer extends
GenericContainer<ShardingS
}
private void startDependencies() {
- List<ShardingSphereContainer> dependencies = getDependencies().stream()
- .map(e -> (ShardingSphereContainer) e)
- .collect(Collectors.toList());
+ List<ShardingSphereContainer> dependencies =
getDependencies().stream().map(each -> (ShardingSphereContainer)
each).collect(Collectors.toList());
+ dependencies.stream().filter(each ->
!each.isCreated()).forEach(GenericContainer::start);
dependencies.stream()
- .filter(c -> !c.isCreated())
- .forEach(GenericContainer::start);
- dependencies.stream()
- .filter(c -> {
+ .filter(each -> {
try {
- return !c.isHealthy();
+ return !each.isHealthy();
// CHECKSTYLE:OFF
} catch (final Exception ex) {
// CHECKSTYLE:ON
- log.info("Failed to check container {} healthy.",
c.getName(), ex);
+ log.info("Failed to check container {} healthy.",
each.getName(), ex);
return false;
}
})
- .forEach(c -> {
+ .forEach(each -> {
DockerHealthcheckWaitStrategy waitStrategy = new
DockerHealthcheckWaitStrategy();
- log.info("Waiting for container {} healthy.",
c.getDockerImageName());
+ log.info("Waiting for container {} healthy.",
each.getDockerImageName());
waitStrategy.withStartupTimeout(Duration.of(90,
ChronoUnit.SECONDS));
- waitStrategy.waitUntilReady(c);
- log.info("Container {} is startup.",
c.getDockerImageName());
+ waitStrategy.waitUntilReady(each);
+ log.info("Container {} is startup.",
each.getDockerImageName());
});
}
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/ShardingSphereContainers.java
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/ShardingSphereContainers.java
index 5d4fc45..c8adc6e 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/ShardingSphereContainers.java
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/ShardingSphereContainers.java
@@ -62,13 +62,18 @@ public final class ShardingSphereContainers implements
AutoCloseable {
* Start containers.
*/
public void start() {
- containers.stream().filter(each ->
!each.isCreated()).forEach(ShardingSphereContainer::start);
+ if (!started) {
+ synchronized (this) {
+ if (!started) {
+ containers.stream().filter(each ->
!each.isCreated()).forEach(ShardingSphereContainer::start);
+ waitUntilReady();
+ started = true;
+ }
+ }
+ }
}
- /**
- * Wait until all containers ready.
- */
- public void waitUntilReady() {
+ private void waitUntilReady() {
containers.stream()
.filter(each -> {
try {
@@ -87,7 +92,6 @@ public final class ShardingSphereContainers implements
AutoCloseable {
}
}
});
- started = true;
}
@Override