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 a0d06c8 Move ComposedContainer.executeOnStarted() to BaseDQLIT
(#15336)
a0d06c8 is described below
commit a0d06c81937b8d9153fc56cfab606995ac23e654
Author: Liang Zhang <[email protected]>
AuthorDate: Thu Feb 10 16:57:04 2022 +0800
Move ComposedContainer.executeOnStarted() to BaseDQLIT (#15336)
---
.../test/integration/engine/dql/BaseDQLIT.java | 22 +++++++++++++---------
.../framework/compose/ComposedContainer.java | 19 -------------------
2 files changed, 13 insertions(+), 28 deletions(-)
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 5944902..7c189ed 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
@@ -43,6 +43,8 @@ import static org.junit.Assert.assertTrue;
public abstract class BaseDQLIT extends SingleITCase {
+ private static volatile boolean filled;
+
public BaseDQLIT(final AssertionParameterizedArray parameter) {
super(parameter);
}
@@ -50,16 +52,18 @@ public abstract class BaseDQLIT extends SingleITCase {
@Override
public void init() throws Exception {
super.init();
- getComposedContainer().executeOnStarted(compose -> {
- try {
- new DataSetEnvironmentManager(
- EnvironmentPath.getDataSetFile(getScenario()),
- getStorageContainer().getDataSourceMap()
- ).fillData();
- } catch (IOException | JAXBException | SQLException |
ParseException e) {
- throw new RuntimeException(e);
+ fillDataOnlyOnce();
+ }
+
+ private void fillDataOnlyOnce() throws SQLException, ParseException,
IOException, JAXBException {
+ if (!filled) {
+ synchronized (this) {
+ if (!filled) {
+ new
DataSetEnvironmentManager(EnvironmentPath.getDataSetFile(getScenario()),
getStorageContainer().getDataSourceMap()).fillData();
+ filled = true;
+ }
}
- });
+ }
}
protected final void assertResultSet(final ResultSet resultSet) throws
SQLException {
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 2faa227..a79d6e8 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
@@ -25,7 +25,6 @@ import
org.apache.shardingsphere.test.integration.framework.container.storage.St
import javax.sql.DataSource;
import java.util.Map;
-import java.util.function.Consumer;
/**
* Composed container.
@@ -35,8 +34,6 @@ public abstract class ComposedContainer {
@Getter(AccessLevel.PROTECTED)
private final ShardingSphereContainers containers;
- private volatile boolean executed;
-
public ComposedContainer(final String testSuiteName) {
containers = new ShardingSphereContainers(testSuiteName);
}
@@ -61,20 +58,4 @@ public abstract class ComposedContainer {
* @return datasource map
*/
public abstract Map<String, DataSource> getDataSourceMap();
-
- /**
- * Execution initializer one time after container started.
- *
- * @param consumer initializer consumer
- */
- public final void executeOnStarted(final Consumer<ComposedContainer>
consumer) {
- if (!executed) {
- synchronized (this) {
- if (!executed) {
- consumer.accept(this);
- executed = true;
- }
- }
- }
- }
}