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 2339b6e Add GovernanceContainer (#15374)
2339b6e is described below
commit 2339b6ec7bfd7be6eaba0c3ea7e0589869b4b0fa
Author: Liang Zhang <[email protected]>
AuthorDate: Sat Feb 12 13:03:24 2022 +0800
Add GovernanceContainer (#15374)
---
...eperContainer.java => GovernanceContainer.java} | 12 ++++----
...tainer.java => GovernanceContainerFactory.java} | 32 ++++++++++++----------
.../governance/{ => impl}/ZookeeperContainer.java | 12 +++-----
.../compose/mode/ClusterComposedContainer.java | 17 ++++++------
4 files changed, 36 insertions(+), 37 deletions(-)
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/atomic/governance/ZookeeperContainer.java
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/atomic/governance/GovernanceContainer.java
similarity index 80%
copy from
shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/atomic/governance/ZookeeperContainer.java
copy to
shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/atomic/governance/GovernanceContainer.java
index d2a5d9e..e57f392 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/atomic/governance/ZookeeperContainer.java
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/atomic/governance/GovernanceContainer.java
@@ -21,12 +21,12 @@ import
org.apache.shardingsphere.test.integration.framework.container.atomic.Sha
import org.testcontainers.containers.wait.strategy.LogMessageWaitStrategy;
/**
- * Zookeeper container.
+ * Governance container.
*/
-public final class ZookeeperContainer extends ShardingSphereContainer {
+public abstract class GovernanceContainer extends ShardingSphereContainer {
- public ZookeeperContainer() {
- super("zookeeper", "zookeeper:3.6.2", false);
+ public GovernanceContainer(final String name, final String
dockerImageName, final boolean isFakedContainer) {
+ super(name, dockerImageName, isFakedContainer);
setWaitStrategy(new
LogMessageWaitStrategy().withRegEx(".*PrepRequestProcessor \\(sid:[0-9]+\\)
started.*"));
}
@@ -35,7 +35,5 @@ public final class ZookeeperContainer extends
ShardingSphereContainer {
*
* @return server list
*/
- public String getServerLists() {
- return getHost() + ":" + getMappedPort(2181);
- }
+ public abstract String getServerLists();
}
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/atomic/governance/ZookeeperContainer.java
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/atomic/governance/GovernanceContainerFactory.java
similarity index 56%
copy from
shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/atomic/governance/ZookeeperContainer.java
copy to
shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/atomic/governance/GovernanceContainerFactory.java
index d2a5d9e..754e1f4 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/atomic/governance/ZookeeperContainer.java
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/atomic/governance/GovernanceContainerFactory.java
@@ -17,25 +17,29 @@
package
org.apache.shardingsphere.test.integration.framework.container.atomic.governance;
-import
org.apache.shardingsphere.test.integration.framework.container.atomic.ShardingSphereContainer;
-import org.testcontainers.containers.wait.strategy.LogMessageWaitStrategy;
+import lombok.AccessLevel;
+import lombok.NoArgsConstructor;
+import
org.apache.shardingsphere.test.integration.framework.container.atomic.governance.impl.ZookeeperContainer;
/**
- * Zookeeper container.
+ * Governance container factory.
*/
-public final class ZookeeperContainer extends ShardingSphereContainer {
-
- public ZookeeperContainer() {
- super("zookeeper", "zookeeper:3.6.2", false);
- setWaitStrategy(new
LogMessageWaitStrategy().withRegEx(".*PrepRequestProcessor \\(sid:[0-9]+\\)
started.*"));
- }
+@NoArgsConstructor(access = AccessLevel.PRIVATE)
+public final class GovernanceContainerFactory {
/**
- * Get server list.
- *
- * @return server list
+ * Create new instance of governance container.
+ *
+ * @param type governance center type
+ * @return new instance of governance container
*/
- public String getServerLists() {
- return getHost() + ":" + getMappedPort(2181);
+ @SuppressWarnings("SwitchStatementWithTooFewBranches")
+ public static GovernanceContainer newInstance(final String type) {
+ switch (type) {
+ case "ZooKeeper":
+ return new ZookeeperContainer();
+ default:
+ throw new RuntimeException(String.format("Governance center
[%s] is unknown.", type));
+ }
}
}
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/atomic/governance/ZookeeperContainer.java
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/atomic/governance/impl/ZookeeperContainer.java
similarity index 86%
rename from
shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/atomic/governance/ZookeeperContainer.java
rename to
shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/atomic/governance/impl/ZookeeperContainer.java
index d2a5d9e..50333d2 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/atomic/governance/ZookeeperContainer.java
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/atomic/governance/impl/ZookeeperContainer.java
@@ -15,26 +15,22 @@
* limitations under the License.
*/
-package
org.apache.shardingsphere.test.integration.framework.container.atomic.governance;
+package
org.apache.shardingsphere.test.integration.framework.container.atomic.governance.impl;
-import
org.apache.shardingsphere.test.integration.framework.container.atomic.ShardingSphereContainer;
+import
org.apache.shardingsphere.test.integration.framework.container.atomic.governance.GovernanceContainer;
import org.testcontainers.containers.wait.strategy.LogMessageWaitStrategy;
/**
* Zookeeper container.
*/
-public final class ZookeeperContainer extends ShardingSphereContainer {
+public final class ZookeeperContainer extends GovernanceContainer {
public ZookeeperContainer() {
super("zookeeper", "zookeeper:3.6.2", false);
setWaitStrategy(new
LogMessageWaitStrategy().withRegEx(".*PrepRequestProcessor \\(sid:[0-9]+\\)
started.*"));
}
- /**
- * Get server list.
- *
- * @return server list
- */
+ @Override
public String getServerLists() {
return getHost() + ":" + getMappedPort(2181);
}
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/compose/mode/ClusterComposedContainer.java
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/compose/mode/ClusterComposedContainer.java
index 549e7ef..573fcf4 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/compose/mode/ClusterComposedContainer.java
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/container/compose/mode/ClusterComposedContainer.java
@@ -22,7 +22,8 @@ import
org.apache.shardingsphere.test.integration.framework.container.atomic.Sha
import
org.apache.shardingsphere.test.integration.framework.container.atomic.adapter.AdapterContainer;
import
org.apache.shardingsphere.test.integration.framework.container.atomic.adapter.AdapterContainerFactory;
import
org.apache.shardingsphere.test.integration.framework.container.atomic.adapter.impl.ShardingSphereProxyContainer;
-import
org.apache.shardingsphere.test.integration.framework.container.atomic.governance.ZookeeperContainer;
+import
org.apache.shardingsphere.test.integration.framework.container.atomic.governance.GovernanceContainer;
+import
org.apache.shardingsphere.test.integration.framework.container.atomic.governance.GovernanceContainerFactory;
import
org.apache.shardingsphere.test.integration.framework.container.atomic.storage.StorageContainer;
import
org.apache.shardingsphere.test.integration.framework.container.atomic.storage.StorageContainerFactory;
import
org.apache.shardingsphere.test.integration.framework.container.compose.ComposedContainer;
@@ -45,7 +46,7 @@ public final class ClusterComposedContainer implements
ComposedContainer {
private final AdapterContainer adapterContainerForReader;
- private final ZookeeperContainer zookeeperContainer;
+ private final GovernanceContainer governanceContainer;
public ClusterComposedContainer(final String testSuiteName, final
ParameterizedArray parameterizedArray) {
containers = new ShardingSphereContainers(testSuiteName,
parameterizedArray.getScenario());
@@ -54,22 +55,22 @@ public final class ClusterComposedContainer implements
ComposedContainer {
adapterContainer =
containers.registerContainer(AdapterContainerFactory.newInstance(
parameterizedArray.getAdapter(),
parameterizedArray.getDatabaseType(), parameterizedArray.getScenario()),
parameterizedArray.getAdapter());
// TODO support other types of governance
- zookeeperContainer = containers.registerContainer(new
ZookeeperContainer(), "zk");
+ governanceContainer =
containers.registerContainer(GovernanceContainerFactory.newInstance("ZooKeeper"),
"zk");
if ("proxy".equals(parameterizedArray.getAdapter())) {
adapterContainerForReader = containers.registerContainer(
new ShardingSphereProxyContainer("ShardingSphere-Proxy-1",
parameterizedArray.getDatabaseType(), parameterizedArray.getScenario()),
"ShardingSphere-Proxy-1");
- adapterContainerForReader.dependsOn(storageContainer,
zookeeperContainer);
+ adapterContainerForReader.dependsOn(storageContainer,
governanceContainer);
} else {
adapterContainerForReader = containers.registerContainer(
AdapterContainerFactory.newInstance(parameterizedArray.getAdapter(),
parameterizedArray.getDatabaseType(), parameterizedArray.getScenario()),
parameterizedArray.getAdapter());
- adapterContainerForReader.dependsOn(storageContainer,
zookeeperContainer);
+ adapterContainerForReader.dependsOn(storageContainer,
governanceContainer);
}
- adapterContainer.dependsOn(storageContainer, zookeeperContainer);
+ adapterContainer.dependsOn(storageContainer, governanceContainer);
}
@Override
public DataSource getClientDataSource() {
- return
adapterContainer.getClientDataSource(zookeeperContainer.getServerLists());
+ return
adapterContainer.getClientDataSource(governanceContainer.getServerLists());
}
/**
@@ -78,6 +79,6 @@ public final class ClusterComposedContainer implements
ComposedContainer {
* @return another client data source
*/
public DataSource getAnotherClientDataSource() {
- return
adapterContainerForReader.getAnotherClientDataSource(zookeeperContainer.getServerLists());
+ return
adapterContainerForReader.getAnotherClientDataSource(governanceContainer.getServerLists());
}
}