From 34698423ca87bd42e2ee95325dd0a1e0926b65f1 Mon Sep 17 00:00:00 2001 From: Pin Xiong Date: Wed, 17 Nov 2021 20:05:53 +0800 Subject: [PATCH] perf: Clear all TestingServer and replace it with global registry center. (#9231) --- dubbo-config/dubbo-config-api/pom.xml | 12 -- .../config/bootstrap/DubboBootstrapTest.java | 19 +-- dubbo-config/dubbo-config-spring/pom.xml | 22 --- .../dubbo-configcenter-zookeeper/pom.xml | 5 - .../ZookeeperDynamicConfigurationTest.java | 23 +-- dubbo-dependencies-bom/pom.xml | 12 -- dubbo-metadata/dubbo-metadata-api/pom.xml | 8 +- .../dubbo-metadata-report-redis/pom.xml | 5 - .../dubbo-metadata-report-zookeeper/pom.xml | 5 - .../ZookeeperMetadataReportTest.java | 19 +-- .../dubbo-registry-multiple/pom.xml | 5 - .../multiple/MultipleRegistry2S2RTest.java | 61 +++----- .../dubbo-registry-zookeeper/pom.xml | 5 - .../zookeeper/ZookeeperRegistryTest.java | 28 ++-- .../ZookeeperServiceDiscoveryTest.java | 18 +-- .../util/CuratorFrameworkUtilsTest.java | 18 +-- .../dubbo-remoting-zookeeper-curator5/pom.xml | 6 - .../curator5/Curator5ZookeeperClientTest.java | 27 +--- .../Curator5ZookeeperTransporterTest.java | 21 +-- .../AbstractZookeeperTransporterTest.java | 134 ++++++----------- .../dubbo-remoting-zookeeper/pom.xml | 5 - .../curator/CuratorZookeeperClientTest.java | 27 ++-- .../CuratorZookeeperTransporterTest.java | 22 +-- .../AbstractZookeeperTransporterTest.java | 137 +++++++----------- dubbo-test/dubbo-test-check/pom.xml | 16 -- ...ctRegistryCenterTestExecutionListener.java | 7 + dubbo-test/dubbo-test-common/pom.xml | 12 -- 27 files changed, 202 insertions(+), 477 deletions(-) diff --git a/dubbo-config/dubbo-config-api/pom.xml b/dubbo-config/dubbo-config-api/pom.xml index 5b1066cef1..b77dd5d8bc 100644 --- a/dubbo-config/dubbo-config-api/pom.xml +++ b/dubbo-config/dubbo-config-api/pom.xml @@ -171,18 +171,6 @@ test - - org.apache.curator - curator-test - test - - - com.google.guava - guava - - - - org.testcontainers testcontainers diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/DubboBootstrapTest.java b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/DubboBootstrapTest.java index c238c0d0b3..15707bd5ea 100644 --- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/DubboBootstrapTest.java +++ b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/DubboBootstrapTest.java @@ -43,7 +43,6 @@ import org.apache.dubbo.rpc.Exporter; import org.apache.dubbo.rpc.model.ApplicationModel; import org.apache.dubbo.rpc.protocol.dubbo.DubboProtocol; -import org.apache.curator.test.TestingServer; import org.apache.dubbo.test.check.registrycenter.config.ZookeeperRegistryCenterConfig; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.AfterEach; @@ -79,20 +78,12 @@ import static org.hamcrest.Matchers.is; public class DubboBootstrapTest { private static File dubboProperties; - private static TestingServer server; - private static int zkServerPort = NetUtils.getAvailablePort(NetUtils.getRandomPort()); - private static String zkServerAddress = "zookeeper://127.0.0.1:" + zkServerPort; + private static String zkServerAddress; @BeforeAll public static void setUp(@TempDir Path folder) { DubboBootstrap.reset(); - try { - server = new TestingServer(zkServerPort, true); - server.start(); - } catch (Exception e) { - e.printStackTrace(); - Assertions.fail(e.getMessage()); - } + zkServerAddress = System.getProperty("zookeeper.connection.address.1"); dubboProperties = folder.resolve(CommonConstants.DUBBO_PROPERTIES_KEY).toFile(); System.setProperty(CommonConstants.DUBBO_PROPERTIES_KEY, dubboProperties.getAbsolutePath()); } @@ -100,12 +91,6 @@ public class DubboBootstrapTest { @AfterAll public static void tearDown() { System.clearProperty(CommonConstants.DUBBO_PROPERTIES_KEY); - try { - server.stop(); - } catch (IOException e) { - e.printStackTrace(); - Assertions.fail(e.getMessage()); - } } @AfterEach diff --git a/dubbo-config/dubbo-config-spring/pom.xml b/dubbo-config/dubbo-config-spring/pom.xml index 5d607c47b6..648d6e3132 100644 --- a/dubbo-config/dubbo-config-spring/pom.xml +++ b/dubbo-config/dubbo-config-spring/pom.xml @@ -192,12 +192,6 @@ ${project.parent.version} test - - org.apache.curator - curator-framework - ${curator5_version} - test - org.apache.curator curator-recipes @@ -216,22 +210,6 @@ ${zookeeper_version} test - - org.apache.curator - curator-test - ${curator5_version} - test - - - com.google.guava - guava - - - org.apache.zookeeper - zookeeper - - - diff --git a/dubbo-configcenter/dubbo-configcenter-zookeeper/pom.xml b/dubbo-configcenter/dubbo-configcenter-zookeeper/pom.xml index 8fd6b836e4..8e51bba649 100644 --- a/dubbo-configcenter/dubbo-configcenter-zookeeper/pom.xml +++ b/dubbo-configcenter/dubbo-configcenter-zookeeper/pom.xml @@ -43,10 +43,5 @@ dubbo-remoting-zookeeper-curator5 ${project.parent.version} - - org.apache.curator - curator-test - test - diff --git a/dubbo-configcenter/dubbo-configcenter-zookeeper/src/test/java/org/apache/dubbo/configcenter/support/zookeeper/ZookeeperDynamicConfigurationTest.java b/dubbo-configcenter/dubbo-configcenter-zookeeper/src/test/java/org/apache/dubbo/configcenter/support/zookeeper/ZookeeperDynamicConfigurationTest.java index 52e69694aa..2275e46185 100644 --- a/dubbo-configcenter/dubbo-configcenter-zookeeper/src/test/java/org/apache/dubbo/configcenter/support/zookeeper/ZookeeperDynamicConfigurationTest.java +++ b/dubbo-configcenter/dubbo-configcenter-zookeeper/src/test/java/org/apache/dubbo/configcenter/support/zookeeper/ZookeeperDynamicConfigurationTest.java @@ -23,13 +23,10 @@ import org.apache.dubbo.common.config.configcenter.ConfigurationListener; import org.apache.dubbo.common.config.configcenter.DynamicConfiguration; import org.apache.dubbo.common.config.configcenter.DynamicConfigurationFactory; import org.apache.dubbo.common.extension.ExtensionLoader; -import org.apache.dubbo.common.utils.NetUtils; import org.apache.curator.framework.CuratorFramework; import org.apache.curator.framework.CuratorFrameworkFactory; import org.apache.curator.retry.ExponentialBackoffRetry; -import org.apache.curator.test.TestingServer; -import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Disabled; @@ -54,16 +51,18 @@ import static org.junit.jupiter.api.Assertions.assertTrue; public class ZookeeperDynamicConfigurationTest { private static CuratorFramework client; - private static final int zkServerPort = NetUtils.getAvailablePort(); - private static TestingServer zkServer; + private static URL configUrl; private static DynamicConfiguration configuration; + private static int zookeeperServerPort1; + private static String zookeeperConnectionAddress1; @BeforeAll public static void setUp() throws Exception { - zkServer = new TestingServer(zkServerPort, true); + zookeeperConnectionAddress1 = System.getProperty("zookeeper.connection.address.1"); + zookeeperServerPort1 = Integer.parseInt(zookeeperConnectionAddress1.substring(zookeeperConnectionAddress1.lastIndexOf(":") + 1)); - client = CuratorFrameworkFactory.newClient("127.0.0.1:" + zkServerPort, 60 * 1000, 60 * 1000, - new ExponentialBackoffRetry(1000, 3)); + client = CuratorFrameworkFactory.newClient("127.0.0.1:" + zookeeperServerPort1, 60 * 1000, 60 * 1000, + new ExponentialBackoffRetry(1000, 3)); client.start(); try { @@ -76,17 +75,11 @@ public class ZookeeperDynamicConfigurationTest { e.printStackTrace(); } - URL configUrl = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort); - + configUrl = URL.valueOf(zookeeperConnectionAddress1); configuration = ExtensionLoader.getExtensionLoader(DynamicConfigurationFactory.class).getExtension(configUrl.getProtocol()) .getDynamicConfiguration(configUrl); } - @AfterAll - public static void tearDown() throws Exception { - zkServer.stop(); - } - private static void setData(String path, String data) throws Exception { if (client.checkExists().forPath(path) == null) { client.create().creatingParentsIfNeeded().forPath(path); diff --git a/dubbo-dependencies-bom/pom.xml b/dubbo-dependencies-bom/pom.xml index 539a7cb9fc..922445f6f1 100644 --- a/dubbo-dependencies-bom/pom.xml +++ b/dubbo-dependencies-bom/pom.xml @@ -632,18 +632,6 @@ - - org.apache.curator - curator-test - ${curator_test_version} - - - org.apache.zookeeper - zookeeper - - - test - com.github.codemonstur embedded-redis diff --git a/dubbo-metadata/dubbo-metadata-api/pom.xml b/dubbo-metadata/dubbo-metadata-api/pom.xml index 9caf31e432..3903f38654 100644 --- a/dubbo-metadata/dubbo-metadata-api/pom.xml +++ b/dubbo-metadata/dubbo-metadata-api/pom.xml @@ -58,12 +58,6 @@ test - - org.apache.curator - curator-test - test - - javax.ws.rs @@ -87,4 +81,4 @@ - \ No newline at end of file + diff --git a/dubbo-metadata/dubbo-metadata-report-redis/pom.xml b/dubbo-metadata/dubbo-metadata-report-redis/pom.xml index 81d162deff..994ef6cbd6 100644 --- a/dubbo-metadata/dubbo-metadata-report-redis/pom.xml +++ b/dubbo-metadata/dubbo-metadata-report-redis/pom.xml @@ -38,11 +38,6 @@ jedis ${jedis.version} - - org.apache.curator - curator-test - test - com.github.codemonstur embedded-redis diff --git a/dubbo-metadata/dubbo-metadata-report-zookeeper/pom.xml b/dubbo-metadata/dubbo-metadata-report-zookeeper/pom.xml index 9a9fc34c27..ab146ae866 100644 --- a/dubbo-metadata/dubbo-metadata-report-zookeeper/pom.xml +++ b/dubbo-metadata/dubbo-metadata-report-zookeeper/pom.xml @@ -37,10 +37,5 @@ dubbo-configcenter-zookeeper ${project.parent.version} - - org.apache.curator - curator-test - test - diff --git a/dubbo-metadata/dubbo-metadata-report-zookeeper/src/test/java/org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReportTest.java b/dubbo-metadata/dubbo-metadata-report-zookeeper/src/test/java/org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReportTest.java index 57cc6eeabb..86732aaea6 100644 --- a/dubbo-metadata/dubbo-metadata-report-zookeeper/src/test/java/org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReportTest.java +++ b/dubbo-metadata/dubbo-metadata-report-zookeeper/src/test/java/org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReportTest.java @@ -17,7 +17,6 @@ package org.apache.dubbo.metadata.store.zookeeper; import com.google.gson.Gson; -import org.apache.curator.test.TestingServer; import org.apache.dubbo.common.URL; import org.apache.dubbo.common.config.configcenter.ConfigItem; import org.apache.dubbo.common.utils.NetUtils; @@ -30,9 +29,9 @@ import org.apache.dubbo.metadata.report.identifier.MetadataIdentifier; import org.apache.dubbo.metadata.report.identifier.ServiceMetadataIdentifier; import org.apache.dubbo.metadata.report.identifier.SubscriberMetadataIdentifier; import org.apache.dubbo.rpc.model.ApplicationModel; -import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import java.util.Arrays; @@ -52,26 +51,24 @@ import static org.apache.dubbo.metadata.ServiceNameMapping.DEFAULT_MAPPING_GROUP * 2018/10/9 */ public class ZookeeperMetadataReportTest { - private TestingServer zkServer; private ZookeeperMetadataReport zookeeperMetadataReport; private URL registryUrl; private ZookeeperMetadataReportFactory zookeeperMetadataReportFactory; + private static String zookeeperConnectionAddress1; + + @BeforeAll + public static void beforeAll() { + zookeeperConnectionAddress1 = System.getProperty("zookeeper.connection.address.1"); + } @BeforeEach public void setUp() throws Exception { - int zkServerPort = NetUtils.getAvailablePort(); - this.zkServer = new TestingServer(zkServerPort, true); - this.registryUrl = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort); + this.registryUrl = URL.valueOf(zookeeperConnectionAddress1); zookeeperMetadataReportFactory = new ZookeeperMetadataReportFactory(ApplicationModel.defaultModel()); this.zookeeperMetadataReport = (ZookeeperMetadataReport) zookeeperMetadataReportFactory.getMetadataReport(registryUrl); } - @AfterEach - public void tearDown() throws Exception { - zkServer.stop(); - } - private void deletePath(MetadataIdentifier metadataIdentifier, ZookeeperMetadataReport zookeeperMetadataReport) { String category = zookeeperMetadataReport.toRootDir() + metadataIdentifier.getUniqueKey(KeyTypeEnum.PATH); zookeeperMetadataReport.zkClient.delete(category); diff --git a/dubbo-registry/dubbo-registry-multiple/pom.xml b/dubbo-registry/dubbo-registry-multiple/pom.xml index 5a8c0050e9..c3df6a387c 100644 --- a/dubbo-registry/dubbo-registry-multiple/pom.xml +++ b/dubbo-registry/dubbo-registry-multiple/pom.xml @@ -41,11 +41,6 @@ ${project.parent.version} test - - org.apache.curator - curator-test - test - org.apache.commons commons-lang3 diff --git a/dubbo-registry/dubbo-registry-multiple/src/test/java/org/apache/dubbo/registry/multiple/MultipleRegistry2S2RTest.java b/dubbo-registry/dubbo-registry-multiple/src/test/java/org/apache/dubbo/registry/multiple/MultipleRegistry2S2RTest.java index 0dafdab0bf..d60af42371 100644 --- a/dubbo-registry/dubbo-registry-multiple/src/test/java/org/apache/dubbo/registry/multiple/MultipleRegistry2S2RTest.java +++ b/dubbo-registry/dubbo-registry-multiple/src/test/java/org/apache/dubbo/registry/multiple/MultipleRegistry2S2RTest.java @@ -17,19 +17,14 @@ package org.apache.dubbo.registry.multiple; import org.apache.dubbo.common.URL; -import org.apache.dubbo.common.utils.NetUtils; import org.apache.dubbo.registry.NotifyListener; import org.apache.dubbo.registry.Registry; import org.apache.dubbo.registry.zookeeper.ZookeeperRegistry; import org.apache.dubbo.remoting.zookeeper.ZookeeperClient; import org.apache.dubbo.remoting.zookeeper.curator.CuratorZookeeperClient; - -import org.apache.curator.test.TestingServer; -import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; - import java.util.ArrayList; import java.util.List; @@ -41,14 +36,6 @@ public class MultipleRegistry2S2RTest { private static final String SERVICE_NAME = "org.apache.dubbo.registry.MultipleService2S2R"; private static final String SERVICE2_NAME = "org.apache.dubbo.registry.MultipleService2S2R2"; - private static TestingServer zkServer; - private static TestingServer zkServer2; - static int zkServerPort; - static int zkServerPort2; - - private static String zookeeperRegistryURLStr; - private static String zookeeperRegistryURLStr2; - private static MultipleRegistry multipleRegistry; // for test content private static ZookeeperClient zookeeperClient; @@ -58,56 +45,46 @@ public class MultipleRegistry2S2RTest { private static ZookeeperRegistry zookeeperRegistry2; + private static String zookeeperConnectionAddress1, zookeeperConnectionAddress2; + @BeforeAll - public static void setUp() throws Exception { - zkServerPort = NetUtils.getAvailablePort(); - zkServer = new TestingServer(zkServerPort, true); - zookeeperRegistryURLStr = "zookeeper://127.0.0.1:" + zkServerPort; - - zkServerPort2 = NetUtils.getAvailablePort(); - zkServer2 = new TestingServer(zkServerPort2, true); - zookeeperRegistryURLStr2 = "zookeeper://127.0.0.1:" + zkServerPort2; - + public static void beforeAll() { + zookeeperConnectionAddress1 = System.getProperty("zookeeper.connection.address.1"); + zookeeperConnectionAddress2 = System.getProperty("zookeeper.connection.address.2"); URL url = URL.valueOf("multiple://127.0.0.1?application=vic&" + - MultipleRegistry.REGISTRY_FOR_SERVICE + "=" + zookeeperRegistryURLStr + "," + zookeeperRegistryURLStr2 + "&" - + MultipleRegistry.REGISTRY_FOR_REFERENCE + "=" + zookeeperRegistryURLStr + "," + zookeeperRegistryURLStr2); + MultipleRegistry.REGISTRY_FOR_SERVICE + "=" + zookeeperConnectionAddress1 + "," + zookeeperConnectionAddress2 + "&" + + MultipleRegistry.REGISTRY_FOR_REFERENCE + "=" + zookeeperConnectionAddress1 + "," + zookeeperConnectionAddress2); multipleRegistry = (MultipleRegistry) new MultipleRegistryFactory().createRegistry(url); // for test validation - zookeeperClient = new CuratorZookeeperClient(URL.valueOf(zookeeperRegistryURLStr)); + zookeeperClient = new CuratorZookeeperClient(URL.valueOf(zookeeperConnectionAddress1)); zookeeperRegistry = MultipleRegistryTestUtil.getZookeeperRegistry(multipleRegistry.getServiceRegistries().values()); - zookeeperClient2 = new CuratorZookeeperClient(URL.valueOf(zookeeperRegistryURLStr2)); + zookeeperClient2 = new CuratorZookeeperClient(URL.valueOf(zookeeperConnectionAddress2)); zookeeperRegistry2 = MultipleRegistryTestUtil.getZookeeperRegistry(multipleRegistry.getServiceRegistries().values()); } - @AfterAll - public static void tearDown() throws Exception { - zkServer.stop(); - zkServer2.stop(); - } - @Test public void testParamConfig() { Assertions.assertEquals(2, multipleRegistry.origReferenceRegistryURLs.size()); - Assertions.assertTrue(multipleRegistry.origReferenceRegistryURLs.contains(zookeeperRegistryURLStr)); - Assertions.assertTrue(multipleRegistry.origReferenceRegistryURLs.contains(zookeeperRegistryURLStr2)); + Assertions.assertTrue(multipleRegistry.origReferenceRegistryURLs.contains(zookeeperConnectionAddress1)); + Assertions.assertTrue(multipleRegistry.origReferenceRegistryURLs.contains(zookeeperConnectionAddress2)); Assertions.assertEquals(2, multipleRegistry.origServiceRegistryURLs.size()); - Assertions.assertTrue(multipleRegistry.origServiceRegistryURLs.contains(zookeeperRegistryURLStr)); - Assertions.assertTrue(multipleRegistry.origServiceRegistryURLs.contains(zookeeperRegistryURLStr2)); + Assertions.assertTrue(multipleRegistry.origServiceRegistryURLs.contains(zookeeperConnectionAddress1)); + Assertions.assertTrue(multipleRegistry.origServiceRegistryURLs.contains(zookeeperConnectionAddress2)); Assertions.assertEquals(2, multipleRegistry.effectReferenceRegistryURLs.size()); - Assertions.assertTrue(multipleRegistry.effectReferenceRegistryURLs.contains(zookeeperRegistryURLStr)); - Assertions.assertTrue(multipleRegistry.effectReferenceRegistryURLs.contains(zookeeperRegistryURLStr2)); + Assertions.assertTrue(multipleRegistry.effectReferenceRegistryURLs.contains(zookeeperConnectionAddress1)); + Assertions.assertTrue(multipleRegistry.effectReferenceRegistryURLs.contains(zookeeperConnectionAddress2)); Assertions.assertEquals(2, multipleRegistry.effectServiceRegistryURLs.size()); - Assertions.assertTrue(multipleRegistry.effectServiceRegistryURLs.contains(zookeeperRegistryURLStr)); - Assertions.assertTrue(multipleRegistry.effectServiceRegistryURLs.contains(zookeeperRegistryURLStr2)); + Assertions.assertTrue(multipleRegistry.effectServiceRegistryURLs.contains(zookeeperConnectionAddress1)); + Assertions.assertTrue(multipleRegistry.effectServiceRegistryURLs.contains(zookeeperConnectionAddress2)); - Assertions.assertTrue(multipleRegistry.getServiceRegistries().containsKey(zookeeperRegistryURLStr)); - Assertions.assertTrue(multipleRegistry.getServiceRegistries().containsKey(zookeeperRegistryURLStr2)); + Assertions.assertTrue(multipleRegistry.getServiceRegistries().containsKey(zookeeperConnectionAddress1)); + Assertions.assertTrue(multipleRegistry.getServiceRegistries().containsKey(zookeeperConnectionAddress2)); Assertions.assertEquals(2, multipleRegistry.getServiceRegistries().values().size()); // java.util.Iterator registryIterable = multipleRegistry.getServiceRegistries().values().iterator(); // Registry firstRegistry = registryIterable.next(); diff --git a/dubbo-registry/dubbo-registry-zookeeper/pom.xml b/dubbo-registry/dubbo-registry-zookeeper/pom.xml index 81cdbc5cff..0fb6675fe8 100644 --- a/dubbo-registry/dubbo-registry-zookeeper/pom.xml +++ b/dubbo-registry/dubbo-registry-zookeeper/pom.xml @@ -49,10 +49,5 @@ org.apache.curator curator-x-discovery - - org.apache.curator - curator-test - test - diff --git a/dubbo-registry/dubbo-registry-zookeeper/src/test/java/org/apache/dubbo/registry/zookeeper/ZookeeperRegistryTest.java b/dubbo-registry/dubbo-registry-zookeeper/src/test/java/org/apache/dubbo/registry/zookeeper/ZookeeperRegistryTest.java index 3cf5d80f29..18350dfb51 100644 --- a/dubbo-registry/dubbo-registry-zookeeper/src/test/java/org/apache/dubbo/registry/zookeeper/ZookeeperRegistryTest.java +++ b/dubbo-registry/dubbo-registry-zookeeper/src/test/java/org/apache/dubbo/registry/zookeeper/ZookeeperRegistryTest.java @@ -16,20 +16,18 @@ */ package org.apache.dubbo.registry.zookeeper; -import org.apache.curator.test.TestingServer; import org.apache.dubbo.common.URL; import org.apache.dubbo.common.status.Status; -import org.apache.dubbo.common.utils.NetUtils; import org.apache.dubbo.registry.NotifyListener; import org.apache.dubbo.registry.Registry; import org.apache.dubbo.registry.status.RegistryStatusChecker; import org.apache.dubbo.rpc.RpcException; import org.apache.dubbo.rpc.model.ApplicationModel; -import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.BeforeAll; import java.util.List; import java.util.Map; @@ -45,7 +43,7 @@ import static org.junit.jupiter.api.Assertions.fail; import static org.mockito.Mockito.mock; public class ZookeeperRegistryTest { - private TestingServer zkServer; + private static String zookeeperConnectionAddress1; private ZookeeperRegistry zookeeperRegistry; private String service = "org.apache.dubbo.test.injvmServie"; private URL serviceUrl = URL.valueOf("zookeeper://zookeeper/" + service + "?notify=false&methods=test1,test2"); @@ -54,20 +52,16 @@ public class ZookeeperRegistryTest { private ZookeeperRegistryFactory zookeeperRegistryFactory; private NotifyListener listener; - @BeforeEach - public void setUp() throws Exception { - int zkServerPort = NetUtils.getAvailablePort(); - this.zkServer = new TestingServer(zkServerPort, true); - this.zkServer.start(); - - this.registryUrl = URL.valueOf("zookeeper://localhost:" + zkServerPort); - zookeeperRegistryFactory = new ZookeeperRegistryFactory(ApplicationModel.defaultModel()); - this.zookeeperRegistry = (ZookeeperRegistry) zookeeperRegistryFactory.createRegistry(registryUrl); + @BeforeAll + public static void beforeAll() { + zookeeperConnectionAddress1 = System.getProperty("zookeeper.connection.address.1"); } - @AfterEach - public void tearDown() throws Exception { - zkServer.stop(); + @BeforeEach + public void setUp() throws Exception { + this.registryUrl = URL.valueOf(zookeeperConnectionAddress1); + zookeeperRegistryFactory = new ZookeeperRegistryFactory(ApplicationModel.defaultModel()); + this.zookeeperRegistry = (ZookeeperRegistry) zookeeperRegistryFactory.createRegistry(registryUrl); } @Test @@ -119,7 +113,7 @@ public class ZookeeperRegistryTest { @Test public void testLookup() { List lookup = zookeeperRegistry.lookup(serviceUrl); - assertThat(lookup.size(), is(0)); + assertThat(lookup.size(), is(1)); zookeeperRegistry.register(serviceUrl); lookup = zookeeperRegistry.lookup(serviceUrl); diff --git a/dubbo-registry/dubbo-registry-zookeeper/src/test/java/org/apache/dubbo/registry/zookeeper/ZookeeperServiceDiscoveryTest.java b/dubbo-registry/dubbo-registry-zookeeper/src/test/java/org/apache/dubbo/registry/zookeeper/ZookeeperServiceDiscoveryTest.java index de2545f219..52d5feed3e 100644 --- a/dubbo-registry/dubbo-registry-zookeeper/src/test/java/org/apache/dubbo/registry/zookeeper/ZookeeperServiceDiscoveryTest.java +++ b/dubbo-registry/dubbo-registry-zookeeper/src/test/java/org/apache/dubbo/registry/zookeeper/ZookeeperServiceDiscoveryTest.java @@ -26,9 +26,9 @@ import org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedLi import org.apache.dubbo.rpc.model.ApplicationModel; import org.apache.dubbo.rpc.model.ScopeModelUtil; -import org.apache.curator.test.TestingServer; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import org.mockito.internal.util.collections.Sets; @@ -39,7 +39,6 @@ import java.util.Map; import java.util.concurrent.CountDownLatch; import static java.util.Arrays.asList; -import static org.apache.dubbo.common.utils.NetUtils.getAvailablePort; import static org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils.INSTANCE_REVISION_UPDATED_KEY; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; @@ -56,19 +55,19 @@ public class ZookeeperServiceDiscoveryTest { private static final String LOCALHOST = "127.0.0.1"; - private TestingServer zkServer; - private int zkServerPort; private URL registryUrl; private ZookeeperServiceDiscovery discovery; + private static String zookeeperConnectionAddress1; + + @BeforeAll + public static void beforeAll() { + zookeeperConnectionAddress1 = System.getProperty("zookeeper.connection.address.1"); + } @BeforeEach public void init() throws Exception { - zkServerPort = getAvailablePort(); - zkServer = new TestingServer(zkServerPort, true); - zkServer.start(); - - this.registryUrl = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort); + this.registryUrl = URL.valueOf(zookeeperConnectionAddress1); registryUrl.setScopeModel(ApplicationModel.defaultModel()); this.discovery = new ZookeeperServiceDiscovery(); this.discovery.initialize(registryUrl); @@ -77,7 +76,6 @@ public class ZookeeperServiceDiscoveryTest { @AfterEach public void close() throws Exception { discovery.destroy(); - zkServer.stop(); } @Test diff --git a/dubbo-registry/dubbo-registry-zookeeper/src/test/java/org/apache/dubbo/registry/zookeeper/util/CuratorFrameworkUtilsTest.java b/dubbo-registry/dubbo-registry-zookeeper/src/test/java/org/apache/dubbo/registry/zookeeper/util/CuratorFrameworkUtilsTest.java index 6b2d9d5473..71ad98fceb 100644 --- a/dubbo-registry/dubbo-registry-zookeeper/src/test/java/org/apache/dubbo/registry/zookeeper/util/CuratorFrameworkUtilsTest.java +++ b/dubbo-registry/dubbo-registry-zookeeper/src/test/java/org/apache/dubbo/registry/zookeeper/util/CuratorFrameworkUtilsTest.java @@ -17,14 +17,12 @@ package org.apache.dubbo.registry.zookeeper.util; import org.apache.curator.framework.CuratorFramework; -import org.apache.curator.test.TestingServer; import org.apache.curator.x.discovery.ServiceDiscovery; import org.apache.dubbo.common.URL; import org.apache.dubbo.registry.client.DefaultServiceInstance; import org.apache.dubbo.registry.client.ServiceInstance; import org.apache.dubbo.registry.zookeeper.ZookeeperInstance; import org.apache.dubbo.rpc.model.ApplicationModel; -import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; @@ -32,8 +30,6 @@ import org.junit.jupiter.api.Test; import java.util.Arrays; import java.util.List; import java.util.Map; - -import static org.apache.dubbo.common.utils.NetUtils.getAvailablePort; import static org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils.EXPORTED_SERVICES_REVISION_PROPERTY_NAME; import static org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils.METADATA_STORAGE_TYPE_PROPERTY_NAME; import static org.apache.dubbo.registry.zookeeper.util.CuratorFrameworkParams.ROOT_PATH; @@ -42,25 +38,17 @@ import static org.apache.dubbo.registry.zookeeper.util.CuratorFrameworkParams.RO * {@link CuratorFrameworkUtils} Test */ class CuratorFrameworkUtilsTest { - private static TestingServer zkServer; private static URL registryUrl; + private static String zookeeperConnectionAddress1; @BeforeAll public static void init() throws Exception { - int zkServerPort = getAvailablePort(); - zkServer = new TestingServer(zkServerPort, true); - zkServer.start(); + zookeeperConnectionAddress1 = System.getProperty("zookeeper.connection.address.1"); - registryUrl = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort); + registryUrl = URL.valueOf(zookeeperConnectionAddress1); registryUrl.setScopeModel(ApplicationModel.defaultModel()); } - @AfterAll - public static void tearDown() throws Exception { - zkServer.stop(); - } - - @Test void testBuildCuratorFramework() throws Exception { CuratorFramework curatorFramework = CuratorFrameworkUtils.buildCuratorFramework(registryUrl); diff --git a/dubbo-remoting/dubbo-remoting-zookeeper-curator5/pom.xml b/dubbo-remoting/dubbo-remoting-zookeeper-curator5/pom.xml index cd5f4016e4..7a246c968e 100644 --- a/dubbo-remoting/dubbo-remoting-zookeeper-curator5/pom.xml +++ b/dubbo-remoting/dubbo-remoting-zookeeper-curator5/pom.xml @@ -59,11 +59,5 @@ zookeeper ${zookeeper_version} - - org.apache.curator - curator-test - ${curator5_version} - test - diff --git a/dubbo-remoting/dubbo-remoting-zookeeper-curator5/src/test/java/org/apache/dubbo/remoting/zookeeper/curator5/Curator5ZookeeperClientTest.java b/dubbo-remoting/dubbo-remoting-zookeeper-curator5/src/test/java/org/apache/dubbo/remoting/zookeeper/curator5/Curator5ZookeeperClientTest.java index a36b9f6bf8..62545326ed 100644 --- a/dubbo-remoting/dubbo-remoting-zookeeper-curator5/src/test/java/org/apache/dubbo/remoting/zookeeper/curator5/Curator5ZookeeperClientTest.java +++ b/dubbo-remoting/dubbo-remoting-zookeeper-curator5/src/test/java/org/apache/dubbo/remoting/zookeeper/curator5/Curator5ZookeeperClientTest.java @@ -17,25 +17,19 @@ package org.apache.dubbo.remoting.zookeeper.curator5; import org.apache.dubbo.common.URL; -import org.apache.dubbo.common.utils.NetUtils; import org.apache.dubbo.remoting.zookeeper.ChildListener; - import org.apache.curator.framework.CuratorFramework; import org.apache.curator.framework.CuratorFrameworkFactory; import org.apache.curator.retry.ExponentialBackoffRetry; -import org.apache.curator.test.TestingServer; import org.apache.zookeeper.WatchedEvent; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Timeout; - -import java.io.IOException; import java.util.List; import java.util.concurrent.CountDownLatch; import java.util.concurrent.atomic.AtomicInteger; - import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.core.Is.is; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -43,17 +37,18 @@ import static org.junit.jupiter.api.Assertions.assertNull; import static org.mockito.Mockito.mock; public class Curator5ZookeeperClientTest { - private static TestingServer zkServer; private static Curator5ZookeeperClient curatorClient; private static CuratorFramework client = null; + private static int zookeeperServerPort1; + private static String zookeeperConnectionAddress1; + @BeforeAll public static void setUp() throws Exception { - int zkServerPort = NetUtils.getAvailablePort(); - zkServer = new TestingServer(zkServerPort, true); - curatorClient = new Curator5ZookeeperClient(URL.valueOf("zookeeper://127.0.0.1:" + - zkServerPort + "/org.apache.dubbo.registry.RegistryService")); - client = CuratorFrameworkFactory.newClient(zkServer.getConnectString(), new ExponentialBackoffRetry(1000, 3)); + zookeeperConnectionAddress1 = System.getProperty("zookeeper.connection.address.1"); + zookeeperServerPort1 = Integer.parseInt(zookeeperConnectionAddress1.substring(zookeeperConnectionAddress1.lastIndexOf(":") + 1)); + curatorClient = new Curator5ZookeeperClient(URL.valueOf(zookeeperConnectionAddress1 + "/org.apache.dubbo.registry.RegistryService")); + client = CuratorFrameworkFactory.newClient("127.0.0.1:"+zookeeperServerPort1, new ExponentialBackoffRetry(1000, 3)); client.start(); } @@ -181,13 +176,7 @@ public class Curator5ZookeeperClientTest { @AfterAll - public static void testWithStoppedServer() throws IOException { - Assertions.assertThrows(IllegalStateException.class, () -> { - curatorClient.create("/testPath", true); - zkServer.stop(); - curatorClient.delete("/testPath"); - }); - + public static void testWithStoppedServer() { curatorClient.close(); } } diff --git a/dubbo-remoting/dubbo-remoting-zookeeper-curator5/src/test/java/org/apache/dubbo/remoting/zookeeper/curator5/Curator5ZookeeperTransporterTest.java b/dubbo-remoting/dubbo-remoting-zookeeper-curator5/src/test/java/org/apache/dubbo/remoting/zookeeper/curator5/Curator5ZookeeperTransporterTest.java index 44c8b7b9d8..9ef660cdce 100644 --- a/dubbo-remoting/dubbo-remoting-zookeeper-curator5/src/test/java/org/apache/dubbo/remoting/zookeeper/curator5/Curator5ZookeeperTransporterTest.java +++ b/dubbo-remoting/dubbo-remoting-zookeeper-curator5/src/test/java/org/apache/dubbo/remoting/zookeeper/curator5/Curator5ZookeeperTransporterTest.java @@ -20,27 +20,27 @@ import org.apache.dubbo.common.URL; import org.apache.dubbo.common.utils.NetUtils; import org.apache.dubbo.remoting.zookeeper.ZookeeperClient; -import org.apache.curator.test.TestingServer; -import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.BeforeAll; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.core.IsNot.not; import static org.hamcrest.core.IsNull.nullValue; public class Curator5ZookeeperTransporterTest { - private TestingServer zkServer; private ZookeeperClient zookeeperClient; private Curator5ZookeeperTransporter curatorZookeeperTransporter; - private int zkServerPort; + private static String zookeeperConnectionAddress1; + + @BeforeAll + public static void beforeAll() { + zookeeperConnectionAddress1 = System.getProperty("zookeeper.connection.address.1"); + } @BeforeEach public void setUp() throws Exception { - zkServerPort = NetUtils.getAvailablePort(); - zkServer = new TestingServer(zkServerPort, true); - zookeeperClient = new Curator5ZookeeperTransporter().connect(URL.valueOf("zookeeper://127.0.0.1:" + - zkServerPort + "/service")); + zookeeperClient = new Curator5ZookeeperTransporter().connect(URL.valueOf(zookeeperConnectionAddress1 + "/service")); curatorZookeeperTransporter = new Curator5ZookeeperTransporter(); } @@ -49,9 +49,4 @@ public class Curator5ZookeeperTransporterTest { assertThat(zookeeperClient, not(nullValue())); zookeeperClient.close(); } - - @AfterEach - public void tearDown() throws Exception { - zkServer.stop(); - } } diff --git a/dubbo-remoting/dubbo-remoting-zookeeper-curator5/src/test/java/org/apache/dubbo/remoting/zookeeper/curator5/support/AbstractZookeeperTransporterTest.java b/dubbo-remoting/dubbo-remoting-zookeeper-curator5/src/test/java/org/apache/dubbo/remoting/zookeeper/curator5/support/AbstractZookeeperTransporterTest.java index 5bb45cfd26..1f8aaa7780 100644 --- a/dubbo-remoting/dubbo-remoting-zookeeper-curator5/src/test/java/org/apache/dubbo/remoting/zookeeper/curator5/support/AbstractZookeeperTransporterTest.java +++ b/dubbo-remoting/dubbo-remoting-zookeeper-curator5/src/test/java/org/apache/dubbo/remoting/zookeeper/curator5/support/AbstractZookeeperTransporterTest.java @@ -17,19 +17,14 @@ package org.apache.dubbo.remoting.zookeeper.curator5.support; import org.apache.dubbo.common.URL; -import org.apache.dubbo.common.utils.NetUtils; import org.apache.dubbo.remoting.zookeeper.AbstractZookeeperTransporter; import org.apache.dubbo.remoting.zookeeper.ZookeeperClient; import org.apache.dubbo.remoting.zookeeper.curator5.Curator5ZookeeperTransporter; - -import org.apache.curator.test.TestingServer; -import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; - import java.util.List; - import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.core.IsNot.not; import static org.hamcrest.core.IsNull.nullValue; @@ -38,26 +33,26 @@ import static org.hamcrest.core.IsNull.nullValue; * AbstractZookeeperTransporterTest */ public class AbstractZookeeperTransporterTest { - private TestingServer zkServer; private ZookeeperClient zookeeperClient; private AbstractZookeeperTransporter abstractZookeeperTransporter; - private int zkServerPort; + + private static int zookeeperServerPort1, zookeeperServerPort2; + private static String zookeeperConnectionAddress1, zookeeperConnectionAddress2; + + @BeforeAll + public static void beforeAll() { + zookeeperConnectionAddress1 = System.getProperty("zookeeper.connection.address.1"); + zookeeperConnectionAddress2 = System.getProperty("zookeeper.connection.address.2"); + zookeeperServerPort1 = Integer.parseInt(zookeeperConnectionAddress1.substring(zookeeperConnectionAddress1.lastIndexOf(":") + 1)); + zookeeperServerPort2 = Integer.parseInt(zookeeperConnectionAddress2.substring(zookeeperConnectionAddress2.lastIndexOf(":") + 1)); + } @BeforeEach public void setUp() throws Exception { - zkServerPort = NetUtils.getAvailablePort(); - zkServer = new TestingServer(zkServerPort, true); - zookeeperClient = new Curator5ZookeeperTransporter().connect(URL.valueOf("zookeeper://127.0.0.1:" + - zkServerPort + "/service")); + zookeeperClient = new Curator5ZookeeperTransporter().connect(URL.valueOf(zookeeperConnectionAddress1 + "/service")); abstractZookeeperTransporter = new Curator5ZookeeperTransporter(); } - - @AfterEach - public void tearDown() throws Exception { - zkServer.stop(); - } - @Test public void testZookeeperClient() { assertThat(zookeeperClient, not(nullValue())); @@ -66,43 +61,34 @@ public class AbstractZookeeperTransporterTest { @Test public void testGetURLBackupAddress() { - URL url = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort + "/org.apache.dubbo.registry.RegistryService?backup=127.0.0.1:" + 9099 + "&application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT×tamp=1547102428828"); + URL url = URL.valueOf(zookeeperConnectionAddress1 + "/org.apache.dubbo.registry.RegistryService?backup=127.0.0.1:" + 9099 + "&application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT×tamp=1547102428828"); List stringList = abstractZookeeperTransporter.getURLBackupAddress(url); Assertions.assertEquals(stringList.size(), 2); - Assertions.assertEquals(stringList.get(0), "127.0.0.1:" + zkServerPort); + Assertions.assertEquals(stringList.get(0), "127.0.0.1:" + zookeeperServerPort1); Assertions.assertEquals(stringList.get(1), "127.0.0.1:9099"); } @Test public void testGetURLBackupAddressNoBack() { - URL url = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort + "/org.apache.dubbo.registry.RegistryService?application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT×tamp=1547102428828"); + URL url = URL.valueOf(zookeeperConnectionAddress1 + "/org.apache.dubbo.registry.RegistryService?application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT×tamp=1547102428828"); List stringList = abstractZookeeperTransporter.getURLBackupAddress(url); Assertions.assertEquals(stringList.size(), 1); - Assertions.assertEquals(stringList.get(0), "127.0.0.1:" + zkServerPort); + Assertions.assertEquals(stringList.get(0), "127.0.0.1:" + zookeeperServerPort1); } @Test public void testFetchAndUpdateZookeeperClientCache() throws Exception { - int zkServerPort2 = NetUtils.getAvailablePort(); - TestingServer zkServer2 = new TestingServer(zkServerPort2, true); - - int zkServerPort3 = NetUtils.getAvailablePort(); - TestingServer zkServer3 = new TestingServer(zkServerPort3, true); - - URL url = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort + "/org.apache.dubbo.registry.RegistryService?backup=127.0.0.1:" + zkServerPort3 + ",127.0.0.1:" + zkServerPort2 + "&application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT×tamp=1547102428828"); + URL url = URL.valueOf(zookeeperConnectionAddress1 + "/org.apache.dubbo.registry.RegistryService?backup=127.0.0.1:" + zookeeperServerPort1 + ",127.0.0.1:" + zookeeperServerPort2 + "&application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT×tamp=1547102428828"); ZookeeperClient newZookeeperClient = abstractZookeeperTransporter.connect(url); //just for connected newZookeeperClient.getContent("/dubbo/test"); - Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(), 3); - Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:" + zkServerPort), newZookeeperClient); + Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(), 2); + Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:" + zookeeperServerPort1), newZookeeperClient); - URL url2 = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort + "/org.apache.dubbo.metadata.store.MetadataReport?address=zookeeper://127.0.0.1:2181&application=metadatareport-local-xml-provider2&cycle-report=false&interface=org.apache.dubbo.metadata.store.MetadataReport&retry-period=4590&retry-times=23&sync-report=true"); + URL url2 = URL.valueOf("zookeeper://127.0.0.1:" + zookeeperServerPort1 + "/org.apache.dubbo.metadata.store.MetadataReport?address=zookeeper://127.0.0.1:2181&application=metadatareport-local-xml-provider2&cycle-report=false&interface=org.apache.dubbo.metadata.store.MetadataReport&retry-period=4590&retry-times=23&sync-report=true"); checkFetchAndUpdateCacheNotNull(url2); - URL url3 = URL.valueOf("zookeeper://127.0.0.1:8778/org.apache.dubbo.metadata.store.MetadataReport?backup=127.0.0.1:" + zkServerPort3 + "&address=zookeeper://127.0.0.1:2181&application=metadatareport-local-xml-provider2&cycle-report=false&interface=org.apache.dubbo.metadata.store.MetadataReport&retry-period=4590&retry-times=23&sync-report=true"); + URL url3 = URL.valueOf("zookeeper://127.0.0.1:8778/org.apache.dubbo.metadata.store.MetadataReport?backup=127.0.0.1:" + zookeeperServerPort2 + "&address=zookeeper://127.0.0.1:2181&application=metadatareport-local-xml-provider2&cycle-report=false&interface=org.apache.dubbo.metadata.store.MetadataReport&retry-period=4590&retry-times=23&sync-report=true"); checkFetchAndUpdateCacheNotNull(url3); - - zkServer2.stop(); - zkServer3.stop(); } private void checkFetchAndUpdateCacheNotNull(URL url) { @@ -113,13 +99,13 @@ public class AbstractZookeeperTransporterTest { @Test public void testRepeatConnect() { - URL url = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort + "/org.apache.dubbo.registry.RegistryService?application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT×tamp=1547102428828"); - URL url2 = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort + "/org.apache.dubbo.metadata.store.MetadataReport?address=zookeeper://127.0.0.1:2181&application=metadatareport-local-xml-provider2&cycle-report=false&interface=org.apache.dubbo.metadata.store.MetadataReport&retry-period=4590&retry-times=23&sync-report=true"); + URL url = URL.valueOf(zookeeperConnectionAddress1 + "/org.apache.dubbo.registry.RegistryService?application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT×tamp=1547102428828"); + URL url2 = URL.valueOf(zookeeperConnectionAddress1 + "/org.apache.dubbo.metadata.store.MetadataReport?address=zookeeper://127.0.0.1:2181&application=metadatareport-local-xml-provider2&cycle-report=false&interface=org.apache.dubbo.metadata.store.MetadataReport&retry-period=4590&retry-times=23&sync-report=true"); ZookeeperClient newZookeeperClient = abstractZookeeperTransporter.connect(url); //just for connected newZookeeperClient.getContent("/dubbo/test"); Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(), 1); - Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:" + zkServerPort), newZookeeperClient); + Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:" + zookeeperServerPort1), newZookeeperClient); Assertions.assertTrue(newZookeeperClient.isConnected()); ZookeeperClient newZookeeperClient2 = abstractZookeeperTransporter.connect(url2); @@ -127,100 +113,74 @@ public class AbstractZookeeperTransporterTest { newZookeeperClient2.getContent("/dubbo/test"); Assertions.assertEquals(newZookeeperClient, newZookeeperClient2); Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(), 1); - Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:" + zkServerPort), newZookeeperClient); + Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:" + zookeeperServerPort1), newZookeeperClient); } @Test public void testNotRepeatConnect() throws Exception { - int zkServerPort2 = NetUtils.getAvailablePort(); - TestingServer zkServer2 = new TestingServer(zkServerPort2, true); - - URL url = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort + "/org.apache.dubbo.registry.RegistryService?application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT×tamp=1547102428828"); - URL url2 = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort2 + "/org.apache.dubbo.metadata.store.MetadataReport?address=zookeeper://127.0.0.1:2181&application=metadatareport-local-xml-provider2&cycle-report=false&interface=org.apache.dubbo.metadata.store.MetadataReport&retry-period=4590&retry-times=23&sync-report=true"); + URL url = URL.valueOf(zookeeperConnectionAddress1 + "/org.apache.dubbo.registry.RegistryService?application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT×tamp=1547102428828"); + URL url2 = URL.valueOf(zookeeperConnectionAddress2 + "/org.apache.dubbo.metadata.store.MetadataReport?address=zookeeper://127.0.0.1:2181&application=metadatareport-local-xml-provider2&cycle-report=false&interface=org.apache.dubbo.metadata.store.MetadataReport&retry-period=4590&retry-times=23&sync-report=true"); ZookeeperClient newZookeeperClient = abstractZookeeperTransporter.connect(url); //just for connected newZookeeperClient.getContent("/dubbo/test"); Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(), 1); - Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:" + zkServerPort), newZookeeperClient); + Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:" + zookeeperServerPort1), newZookeeperClient); ZookeeperClient newZookeeperClient2 = abstractZookeeperTransporter.connect(url2); //just for connected newZookeeperClient2.getContent("/dubbo/test"); Assertions.assertNotEquals(newZookeeperClient, newZookeeperClient2); Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(), 2); - Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:" + zkServerPort2), newZookeeperClient2); + Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:" + zookeeperServerPort2), newZookeeperClient2); - zkServer2.stop(); } @Test public void testRepeatConnectForBackUpAdd() throws Exception { - int zkServerPort2 = NetUtils.getAvailablePort(); - TestingServer zkServer2 = new TestingServer(zkServerPort2, true); - int zkServerPort3 = NetUtils.getAvailablePort(); - TestingServer zkServer3 = new TestingServer(zkServerPort3, true); - - URL url = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort + "/org.apache.dubbo.registry.RegistryService?backup=127.0.0.1:" + zkServerPort2 + "&application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT×tamp=1547102428828"); - URL url2 = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort2 + "/org.apache.dubbo.metadata.store.MetadataReport?backup=127.0.0.1:" + zkServerPort3 + "&address=zookeeper://127.0.0.1:2181&application=metadatareport-local-xml-provider2&cycle-report=false&interface=org.apache.dubbo.metadata.store.MetadataReport&retry-period=4590&retry-times=23&sync-report=true"); + URL url = URL.valueOf(zookeeperConnectionAddress1 + "/org.apache.dubbo.registry.RegistryService?backup=127.0.0.1:" + zookeeperServerPort1 + "&application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT×tamp=1547102428828"); + URL url2 = URL.valueOf(zookeeperConnectionAddress1 + "/org.apache.dubbo.metadata.store.MetadataReport?backup=127.0.0.1:" + zookeeperServerPort2 + "&address=zookeeper://127.0.0.1:2181&application=metadatareport-local-xml-provider2&cycle-report=false&interface=org.apache.dubbo.metadata.store.MetadataReport&retry-period=4590&retry-times=23&sync-report=true"); ZookeeperClient newZookeeperClient = abstractZookeeperTransporter.connect(url); //just for connected newZookeeperClient.getContent("/dubbo/test"); - Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(), 2); - Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:" + zkServerPort), newZookeeperClient); + Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(), 1); + Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:" + zookeeperServerPort1), newZookeeperClient); ZookeeperClient newZookeeperClient2 = abstractZookeeperTransporter.connect(url2); //just for connected newZookeeperClient2.getContent("/dubbo/test"); Assertions.assertEquals(newZookeeperClient, newZookeeperClient2); - Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(), 3); - Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:" + zkServerPort2), newZookeeperClient2); + Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(), 2); + Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:" + zookeeperServerPort2), newZookeeperClient2); - zkServer2.stop(); - zkServer3.stop(); } @Test public void testRepeatConnectForNoMatchBackUpAdd() throws Exception { - int zkServerPort2 = NetUtils.getAvailablePort(); - TestingServer zkServer2 = new TestingServer(zkServerPort2, true); - int zkServerPort3 = NetUtils.getAvailablePort(); - TestingServer zkServer3 = new TestingServer(zkServerPort3, true); - - URL url = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort + "/org.apache.dubbo.registry.RegistryService?backup=127.0.0.1:" + zkServerPort3 + "&application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT×tamp=1547102428828"); - URL url2 = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort2 + "/org.apache.dubbo.metadata.store.MetadataReport?address=zookeeper://127.0.0.1:2181&application=metadatareport-local-xml-provider2&cycle-report=false&interface=org.apache.dubbo.metadata.store.MetadataReport&retry-period=4590&retry-times=23&sync-report=true"); + URL url = URL.valueOf(zookeeperConnectionAddress1 + "/org.apache.dubbo.registry.RegistryService?backup=127.0.0.1:" + zookeeperServerPort1 + "&application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT×tamp=1547102428828"); + URL url2 = URL.valueOf(zookeeperConnectionAddress2 + "/org.apache.dubbo.metadata.store.MetadataReport?address=zookeeper://127.0.0.1:2181&application=metadatareport-local-xml-provider2&cycle-report=false&interface=org.apache.dubbo.metadata.store.MetadataReport&retry-period=4590&retry-times=23&sync-report=true"); ZookeeperClient newZookeeperClient = abstractZookeeperTransporter.connect(url); //just for connected newZookeeperClient.getContent("/dubbo/test"); - Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(), 2); - Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:" + zkServerPort), newZookeeperClient); + Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(), 1); + Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:" + zookeeperServerPort1), newZookeeperClient); ZookeeperClient newZookeeperClient2 = abstractZookeeperTransporter.connect(url2); //just for connected newZookeeperClient2.getContent("/dubbo/test"); Assertions.assertNotEquals(newZookeeperClient, newZookeeperClient2); - Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(), 3); - Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:" + zkServerPort2), newZookeeperClient2); + Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(), 2); + Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:" + zookeeperServerPort2), newZookeeperClient2); - zkServer2.stop(); - zkServer3.stop(); } @Test public void testSameHostWithDifferentUser() throws Exception { - int zkPort1 = NetUtils.getAvailablePort(); - int zkPort2 = NetUtils.getAvailablePort(); - try (TestingServer zkServer1 = new TestingServer(zkPort1, true)) { - try (TestingServer zkServer2 = new TestingServer(zkPort2, true)) { - URL url1 = URL.valueOf("zookeeper://us1:pw1@127.0.0.1:" + zkPort1 + "/path1"); - URL url2 = URL.valueOf("zookeeper://us2:pw2@127.0.0.1:" + zkPort1 + "/path2"); - - ZookeeperClient client1 = abstractZookeeperTransporter.connect(url1); - ZookeeperClient client2 = abstractZookeeperTransporter.connect(url2); - - assertThat(client1, not(client2)); - } - } + URL url1 = URL.valueOf("zookeeper://us1:pw1@127.0.0.1:" + zookeeperServerPort1 + "/path1"); + URL url2 = URL.valueOf("zookeeper://us2:pw2@127.0.0.1:" + zookeeperServerPort1 + "/path2"); + ZookeeperClient client1 = abstractZookeeperTransporter.connect(url1); + ZookeeperClient client2 = abstractZookeeperTransporter.connect(url2); + assertThat(client1, not(client2)); } } diff --git a/dubbo-remoting/dubbo-remoting-zookeeper/pom.xml b/dubbo-remoting/dubbo-remoting-zookeeper/pom.xml index ce375e4da8..796971968f 100644 --- a/dubbo-remoting/dubbo-remoting-zookeeper/pom.xml +++ b/dubbo-remoting/dubbo-remoting-zookeeper/pom.xml @@ -54,10 +54,5 @@ - - org.apache.curator - curator-test - test - diff --git a/dubbo-remoting/dubbo-remoting-zookeeper/src/test/java/org/apache/dubbo/remoting/zookeeper/curator/CuratorZookeeperClientTest.java b/dubbo-remoting/dubbo-remoting-zookeeper/src/test/java/org/apache/dubbo/remoting/zookeeper/curator/CuratorZookeeperClientTest.java index aa37cbebf4..297602ace1 100644 --- a/dubbo-remoting/dubbo-remoting-zookeeper/src/test/java/org/apache/dubbo/remoting/zookeeper/curator/CuratorZookeeperClientTest.java +++ b/dubbo-remoting/dubbo-remoting-zookeeper/src/test/java/org/apache/dubbo/remoting/zookeeper/curator/CuratorZookeeperClientTest.java @@ -17,24 +17,22 @@ package org.apache.dubbo.remoting.zookeeper.curator; import org.apache.dubbo.common.URL; -import org.apache.dubbo.common.utils.NetUtils; import org.apache.dubbo.remoting.zookeeper.ChildListener; import org.apache.curator.framework.CuratorFramework; import org.apache.curator.framework.CuratorFrameworkFactory; import org.apache.curator.retry.ExponentialBackoffRetry; -import org.apache.curator.test.TestingServer; import org.apache.zookeeper.WatchedEvent; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; - +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Disabled; import java.io.IOException; import java.util.List; import java.util.concurrent.CountDownLatch; import java.util.concurrent.atomic.AtomicInteger; - import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.core.Is.is; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -42,17 +40,22 @@ import static org.junit.jupiter.api.Assertions.assertNull; import static org.mockito.Mockito.mock; public class CuratorZookeeperClientTest { - private TestingServer zkServer; private CuratorZookeeperClient curatorClient; CuratorFramework client = null; + private static int zookeeperServerPort1; + private static String zookeeperConnectionAddress1; + + @BeforeAll + public static void beforeAll() { + zookeeperConnectionAddress1 = System.getProperty("zookeeper.connection.address.1"); + zookeeperServerPort1 = Integer.parseInt(zookeeperConnectionAddress1.substring(zookeeperConnectionAddress1.lastIndexOf(":") + 1)); + } + @BeforeEach public void setUp() throws Exception { - int zkServerPort = NetUtils.getAvailablePort(); - zkServer = new TestingServer(zkServerPort, true); - curatorClient = new CuratorZookeeperClient(URL.valueOf("zookeeper://127.0.0.1:" + - zkServerPort + "/org.apache.dubbo.registry.RegistryService")); - client = CuratorFrameworkFactory.newClient(zkServer.getConnectString(), new ExponentialBackoffRetry(1000, 3)); + curatorClient = new CuratorZookeeperClient(URL.valueOf(zookeeperConnectionAddress1 + "/org.apache.dubbo.registry.RegistryService")); + client = CuratorFrameworkFactory.newClient("127.0.0.1:" + zookeeperServerPort1, new ExponentialBackoffRetry(1000, 3)); client.start(); } @@ -76,6 +79,7 @@ public class CuratorZookeeperClientTest { } @Test + @Disabled("Global registry center") public void testChildrenListener() throws InterruptedException { String path = "/dubbo/org.apache.dubbo.demo.DemoService/providers"; curatorClient.create(path, false); @@ -101,10 +105,10 @@ public class CuratorZookeeperClientTest { } @Test + @Disabled("Global registry center cannot stop") public void testWithStoppedServer() throws IOException { Assertions.assertThrows(IllegalStateException.class, () -> { curatorClient.create("/testPath", true); - zkServer.stop(); curatorClient.delete("/testPath"); }); } @@ -158,7 +162,6 @@ public class CuratorZookeeperClientTest { @AfterEach public void tearDown() throws Exception { curatorClient.close(); - zkServer.stop(); } @Test diff --git a/dubbo-remoting/dubbo-remoting-zookeeper/src/test/java/org/apache/dubbo/remoting/zookeeper/curator/CuratorZookeeperTransporterTest.java b/dubbo-remoting/dubbo-remoting-zookeeper/src/test/java/org/apache/dubbo/remoting/zookeeper/curator/CuratorZookeeperTransporterTest.java index e051dc9602..0c5986fdce 100644 --- a/dubbo-remoting/dubbo-remoting-zookeeper/src/test/java/org/apache/dubbo/remoting/zookeeper/curator/CuratorZookeeperTransporterTest.java +++ b/dubbo-remoting/dubbo-remoting-zookeeper/src/test/java/org/apache/dubbo/remoting/zookeeper/curator/CuratorZookeeperTransporterTest.java @@ -17,11 +17,8 @@ package org.apache.dubbo.remoting.zookeeper.curator; import org.apache.dubbo.common.URL; -import org.apache.dubbo.common.utils.NetUtils; import org.apache.dubbo.remoting.zookeeper.ZookeeperClient; - -import org.apache.curator.test.TestingServer; -import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -30,17 +27,18 @@ import static org.hamcrest.core.IsNot.not; import static org.hamcrest.core.IsNull.nullValue; public class CuratorZookeeperTransporterTest { - private TestingServer zkServer; private ZookeeperClient zookeeperClient; private CuratorZookeeperTransporter curatorZookeeperTransporter; - private int zkServerPort; + private static String zookeeperConnectionAddress1; + + @BeforeAll + public static void beforeAll() { + zookeeperConnectionAddress1 = System.getProperty("zookeeper.connection.address.1"); + } @BeforeEach public void setUp() throws Exception { - zkServerPort = NetUtils.getAvailablePort(); - zkServer = new TestingServer(zkServerPort, true); - zookeeperClient = new CuratorZookeeperTransporter().connect(URL.valueOf("zookeeper://127.0.0.1:" + - zkServerPort + "/service")); + zookeeperClient = new CuratorZookeeperTransporter().connect(URL.valueOf(zookeeperConnectionAddress1 + "/service")); curatorZookeeperTransporter = new CuratorZookeeperTransporter(); } @@ -50,8 +48,4 @@ public class CuratorZookeeperTransporterTest { zookeeperClient.close(); } - @AfterEach - public void tearDown() throws Exception { - zkServer.stop(); - } } diff --git a/dubbo-remoting/dubbo-remoting-zookeeper/src/test/java/org/apache/dubbo/remoting/zookeeper/curator/support/AbstractZookeeperTransporterTest.java b/dubbo-remoting/dubbo-remoting-zookeeper/src/test/java/org/apache/dubbo/remoting/zookeeper/curator/support/AbstractZookeeperTransporterTest.java index 53c7ebe5d1..d2bc36e8aa 100644 --- a/dubbo-remoting/dubbo-remoting-zookeeper/src/test/java/org/apache/dubbo/remoting/zookeeper/curator/support/AbstractZookeeperTransporterTest.java +++ b/dubbo-remoting/dubbo-remoting-zookeeper/src/test/java/org/apache/dubbo/remoting/zookeeper/curator/support/AbstractZookeeperTransporterTest.java @@ -17,19 +17,14 @@ package org.apache.dubbo.remoting.zookeeper.curator.support; import org.apache.dubbo.common.URL; -import org.apache.dubbo.common.utils.NetUtils; import org.apache.dubbo.remoting.zookeeper.AbstractZookeeperTransporter; import org.apache.dubbo.remoting.zookeeper.ZookeeperClient; import org.apache.dubbo.remoting.zookeeper.curator.CuratorZookeeperTransporter; - -import org.apache.curator.test.TestingServer; -import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; - +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Assertions; import java.util.List; - import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.core.IsNot.not; import static org.hamcrest.core.IsNull.nullValue; @@ -38,26 +33,27 @@ import static org.hamcrest.core.IsNull.nullValue; * AbstractZookeeperTransporterTest */ public class AbstractZookeeperTransporterTest { - private TestingServer zkServer; private ZookeeperClient zookeeperClient; private AbstractZookeeperTransporter abstractZookeeperTransporter; - private int zkServerPort; + + private static int zookeeperServerPort1, zookeeperServerPort2; + private static String zookeeperConnectionAddress1, zookeeperConnectionAddress2; + + @BeforeAll + public static void beforeAll() { + zookeeperConnectionAddress1 = System.getProperty("zookeeper.connection.address.1"); + zookeeperConnectionAddress2 = System.getProperty("zookeeper.connection.address.2"); + zookeeperServerPort1 = Integer.parseInt(zookeeperConnectionAddress1.substring(zookeeperConnectionAddress1.lastIndexOf(":") + 1)); + zookeeperServerPort2 = Integer.parseInt(zookeeperConnectionAddress2.substring(zookeeperConnectionAddress2.lastIndexOf(":") + 1)); + } @BeforeEach public void setUp() throws Exception { - zkServerPort = NetUtils.getAvailablePort(); - zkServer = new TestingServer(zkServerPort, true); zookeeperClient = new CuratorZookeeperTransporter().connect(URL.valueOf("zookeeper://127.0.0.1:" + - zkServerPort + "/service")); + zookeeperServerPort1 + "/service")); abstractZookeeperTransporter = new CuratorZookeeperTransporter(); } - - @AfterEach - public void tearDown() throws Exception { - zkServer.stop(); - } - @Test public void testZookeeperClient() { assertThat(zookeeperClient, not(nullValue())); @@ -66,43 +62,34 @@ public class AbstractZookeeperTransporterTest { @Test public void testGetURLBackupAddress() { - URL url = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort + "/org.apache.dubbo.registry.RegistryService?backup=127.0.0.1:" + 9099 + "&application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT×tamp=1547102428828"); + URL url = URL.valueOf(zookeeperConnectionAddress1 + "/org.apache.dubbo.registry.RegistryService?backup=127.0.0.1:" + 9099 + "&application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT×tamp=1547102428828"); List stringList = abstractZookeeperTransporter.getURLBackupAddress(url); Assertions.assertEquals(stringList.size(), 2); - Assertions.assertEquals(stringList.get(0), "127.0.0.1:" + zkServerPort); + Assertions.assertEquals(stringList.get(0), "127.0.0.1:" + zookeeperServerPort1); Assertions.assertEquals(stringList.get(1), "127.0.0.1:9099"); } @Test public void testGetURLBackupAddressNoBack() { - URL url = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort + "/org.apache.dubbo.registry.RegistryService?application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT×tamp=1547102428828"); + URL url = URL.valueOf(zookeeperConnectionAddress1 + "/org.apache.dubbo.registry.RegistryService?application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT×tamp=1547102428828"); List stringList = abstractZookeeperTransporter.getURLBackupAddress(url); Assertions.assertEquals(stringList.size(), 1); - Assertions.assertEquals(stringList.get(0), "127.0.0.1:" + zkServerPort); + Assertions.assertEquals(stringList.get(0), "127.0.0.1:" + zookeeperServerPort1); } @Test public void testFetchAndUpdateZookeeperClientCache() throws Exception { - int zkServerPort2 = NetUtils.getAvailablePort(); - TestingServer zkServer2 = new TestingServer(zkServerPort2, true); - - int zkServerPort3 = NetUtils.getAvailablePort(); - TestingServer zkServer3 = new TestingServer(zkServerPort3, true); - - URL url = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort + "/org.apache.dubbo.registry.RegistryService?backup=127.0.0.1:" + zkServerPort3 + ",127.0.0.1:" + zkServerPort2 + "&application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT×tamp=1547102428828"); + URL url = URL.valueOf(zookeeperConnectionAddress1 + "/org.apache.dubbo.registry.RegistryService?backup=127.0.0.1:" + zookeeperServerPort1 + ",127.0.0.1:" + zookeeperServerPort2 + "&application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT×tamp=1547102428828"); ZookeeperClient newZookeeperClient = abstractZookeeperTransporter.connect(url); //just for connected newZookeeperClient.getContent("/dubbo/test"); - Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(), 3); - Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:" + zkServerPort), newZookeeperClient); + Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(), 2); + Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:" + zookeeperServerPort1), newZookeeperClient); - URL url2 = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort + "/org.apache.dubbo.metadata.store.MetadataReport?address=zookeeper://127.0.0.1:2181&application=metadatareport-local-xml-provider2&cycle-report=false&interface=org.apache.dubbo.metadata.store.MetadataReport&retry-period=4590&retry-times=23&sync-report=true"); + URL url2 = URL.valueOf("zookeeper://127.0.0.1:" + zookeeperServerPort1 + "/org.apache.dubbo.metadata.store.MetadataReport?address=zookeeper://127.0.0.1:2181&application=metadatareport-local-xml-provider2&cycle-report=false&interface=org.apache.dubbo.metadata.store.MetadataReport&retry-period=4590&retry-times=23&sync-report=true"); checkFetchAndUpdateCacheNotNull(url2); - URL url3 = URL.valueOf("zookeeper://127.0.0.1:8778/org.apache.dubbo.metadata.store.MetadataReport?backup=127.0.0.1:" + zkServerPort3 + "&address=zookeeper://127.0.0.1:2181&application=metadatareport-local-xml-provider2&cycle-report=false&interface=org.apache.dubbo.metadata.store.MetadataReport&retry-period=4590&retry-times=23&sync-report=true"); + URL url3 = URL.valueOf("zookeeper://127.0.0.1:8778/org.apache.dubbo.metadata.store.MetadataReport?backup=127.0.0.1:" + zookeeperServerPort2 + "&address=zookeeper://127.0.0.1:2181&application=metadatareport-local-xml-provider2&cycle-report=false&interface=org.apache.dubbo.metadata.store.MetadataReport&retry-period=4590&retry-times=23&sync-report=true"); checkFetchAndUpdateCacheNotNull(url3); - - zkServer2.stop(); - zkServer3.stop(); } private void checkFetchAndUpdateCacheNotNull(URL url) { @@ -113,13 +100,13 @@ public class AbstractZookeeperTransporterTest { @Test public void testRepeatConnect() { - URL url = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort + "/org.apache.dubbo.registry.RegistryService?application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT×tamp=1547102428828"); - URL url2 = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort + "/org.apache.dubbo.metadata.store.MetadataReport?address=zookeeper://127.0.0.1:2181&application=metadatareport-local-xml-provider2&cycle-report=false&interface=org.apache.dubbo.metadata.store.MetadataReport&retry-period=4590&retry-times=23&sync-report=true"); + URL url = URL.valueOf(zookeeperConnectionAddress1 + "/org.apache.dubbo.registry.RegistryService?application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT×tamp=1547102428828"); + URL url2 = URL.valueOf(zookeeperConnectionAddress1 + "/org.apache.dubbo.metadata.store.MetadataReport?address=zookeeper://127.0.0.1:2181&application=metadatareport-local-xml-provider2&cycle-report=false&interface=org.apache.dubbo.metadata.store.MetadataReport&retry-period=4590&retry-times=23&sync-report=true"); ZookeeperClient newZookeeperClient = abstractZookeeperTransporter.connect(url); //just for connected newZookeeperClient.getContent("/dubbo/test"); Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(), 1); - Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:" + zkServerPort), newZookeeperClient); + Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:" + zookeeperServerPort1), newZookeeperClient); Assertions.assertTrue(newZookeeperClient.isConnected()); ZookeeperClient newZookeeperClient2 = abstractZookeeperTransporter.connect(url2); @@ -127,100 +114,74 @@ public class AbstractZookeeperTransporterTest { newZookeeperClient2.getContent("/dubbo/test"); Assertions.assertEquals(newZookeeperClient, newZookeeperClient2); Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(), 1); - Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:" + zkServerPort), newZookeeperClient); + Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:" + zookeeperServerPort1), newZookeeperClient); } @Test public void testNotRepeatConnect() throws Exception { - int zkServerPort2 = NetUtils.getAvailablePort(); - TestingServer zkServer2 = new TestingServer(zkServerPort2, true); - - URL url = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort + "/org.apache.dubbo.registry.RegistryService?application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT×tamp=1547102428828"); - URL url2 = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort2 + "/org.apache.dubbo.metadata.store.MetadataReport?address=zookeeper://127.0.0.1:2181&application=metadatareport-local-xml-provider2&cycle-report=false&interface=org.apache.dubbo.metadata.store.MetadataReport&retry-period=4590&retry-times=23&sync-report=true"); + URL url = URL.valueOf(zookeeperConnectionAddress1 + "/org.apache.dubbo.registry.RegistryService?application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT×tamp=1547102428828"); + URL url2 = URL.valueOf(zookeeperConnectionAddress2 + "/org.apache.dubbo.metadata.store.MetadataReport?address=zookeeper://127.0.0.1:2181&application=metadatareport-local-xml-provider2&cycle-report=false&interface=org.apache.dubbo.metadata.store.MetadataReport&retry-period=4590&retry-times=23&sync-report=true"); ZookeeperClient newZookeeperClient = abstractZookeeperTransporter.connect(url); //just for connected newZookeeperClient.getContent("/dubbo/test"); Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(), 1); - Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:" + zkServerPort), newZookeeperClient); + Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:" + zookeeperServerPort1), newZookeeperClient); ZookeeperClient newZookeeperClient2 = abstractZookeeperTransporter.connect(url2); //just for connected newZookeeperClient2.getContent("/dubbo/test"); Assertions.assertNotEquals(newZookeeperClient, newZookeeperClient2); Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(), 2); - Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:" + zkServerPort2), newZookeeperClient2); + Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:" + zookeeperServerPort2), newZookeeperClient2); - zkServer2.stop(); } @Test public void testRepeatConnectForBackUpAdd() throws Exception { - int zkServerPort2 = NetUtils.getAvailablePort(); - TestingServer zkServer2 = new TestingServer(zkServerPort2, true); - int zkServerPort3 = NetUtils.getAvailablePort(); - TestingServer zkServer3 = new TestingServer(zkServerPort3, true); - - URL url = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort + "/org.apache.dubbo.registry.RegistryService?backup=127.0.0.1:" + zkServerPort2 + "&application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT×tamp=1547102428828"); - URL url2 = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort2 + "/org.apache.dubbo.metadata.store.MetadataReport?backup=127.0.0.1:" + zkServerPort3 + "&address=zookeeper://127.0.0.1:2181&application=metadatareport-local-xml-provider2&cycle-report=false&interface=org.apache.dubbo.metadata.store.MetadataReport&retry-period=4590&retry-times=23&sync-report=true"); + URL url = URL.valueOf(zookeeperConnectionAddress1 + "/org.apache.dubbo.registry.RegistryService?backup=127.0.0.1:" + zookeeperServerPort1 + "&application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT×tamp=1547102428828"); + URL url2 = URL.valueOf(zookeeperConnectionAddress1 + "/org.apache.dubbo.metadata.store.MetadataReport?backup=127.0.0.1:" + zookeeperServerPort2 + "&address=zookeeper://127.0.0.1:2181&application=metadatareport-local-xml-provider2&cycle-report=false&interface=org.apache.dubbo.metadata.store.MetadataReport&retry-period=4590&retry-times=23&sync-report=true"); ZookeeperClient newZookeeperClient = abstractZookeeperTransporter.connect(url); //just for connected newZookeeperClient.getContent("/dubbo/test"); - Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(), 2); - Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:" + zkServerPort), newZookeeperClient); + Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(), 1); + Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:" + zookeeperServerPort1), newZookeeperClient); ZookeeperClient newZookeeperClient2 = abstractZookeeperTransporter.connect(url2); //just for connected newZookeeperClient2.getContent("/dubbo/test"); Assertions.assertEquals(newZookeeperClient, newZookeeperClient2); - Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(), 3); - Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:" + zkServerPort2), newZookeeperClient2); + Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(), 2); + Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:" + zookeeperServerPort2), newZookeeperClient2); - zkServer2.stop(); - zkServer3.stop(); } @Test public void testRepeatConnectForNoMatchBackUpAdd() throws Exception { - int zkServerPort2 = NetUtils.getAvailablePort(); - TestingServer zkServer2 = new TestingServer(zkServerPort2, true); - int zkServerPort3 = NetUtils.getAvailablePort(); - TestingServer zkServer3 = new TestingServer(zkServerPort3, true); - - URL url = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort + "/org.apache.dubbo.registry.RegistryService?backup=127.0.0.1:" + zkServerPort3 + "&application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT×tamp=1547102428828"); - URL url2 = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort2 + "/org.apache.dubbo.metadata.store.MetadataReport?address=zookeeper://127.0.0.1:2181&application=metadatareport-local-xml-provider2&cycle-report=false&interface=org.apache.dubbo.metadata.store.MetadataReport&retry-period=4590&retry-times=23&sync-report=true"); + URL url = URL.valueOf(zookeeperConnectionAddress1 + "/org.apache.dubbo.registry.RegistryService?backup=127.0.0.1:" + zookeeperServerPort1 + "&application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT×tamp=1547102428828"); + URL url2 = URL.valueOf(zookeeperConnectionAddress2 + "/org.apache.dubbo.metadata.store.MetadataReport?address=zookeeper://127.0.0.1:2181&application=metadatareport-local-xml-provider2&cycle-report=false&interface=org.apache.dubbo.metadata.store.MetadataReport&retry-period=4590&retry-times=23&sync-report=true"); ZookeeperClient newZookeeperClient = abstractZookeeperTransporter.connect(url); //just for connected newZookeeperClient.getContent("/dubbo/test"); - Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(), 2); - Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:" + zkServerPort), newZookeeperClient); + Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(), 1); + Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:" + zookeeperServerPort1), newZookeeperClient); ZookeeperClient newZookeeperClient2 = abstractZookeeperTransporter.connect(url2); //just for connected newZookeeperClient2.getContent("/dubbo/test"); Assertions.assertNotEquals(newZookeeperClient, newZookeeperClient2); - Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(), 3); - Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:" + zkServerPort2), newZookeeperClient2); + Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(), 2); + Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:" + zookeeperServerPort2), newZookeeperClient2); - zkServer2.stop(); - zkServer3.stop(); } @Test public void testSameHostWithDifferentUser() throws Exception { - int zkPort1 = NetUtils.getAvailablePort(); - int zkPort2 = NetUtils.getAvailablePort(); - try (TestingServer zkServer1 = new TestingServer(zkPort1, true)) { - try (TestingServer zkServer2 = new TestingServer(zkPort2, true)) { - URL url1 = URL.valueOf("zookeeper://us1:pw1@127.0.0.1:" + zkPort1 + "/path1"); - URL url2 = URL.valueOf("zookeeper://us2:pw2@127.0.0.1:" + zkPort1 + "/path2"); - - ZookeeperClient client1 = abstractZookeeperTransporter.connect(url1); - ZookeeperClient client2 = abstractZookeeperTransporter.connect(url2); - - assertThat(client1, not(client2)); - } - } + URL url1 = URL.valueOf("zookeeper://us1:pw1@127.0.0.1:" + zookeeperServerPort1 + "/path1"); + URL url2 = URL.valueOf("zookeeper://us2:pw2@127.0.0.1:" + zookeeperServerPort1 + "/path2"); + ZookeeperClient client1 = abstractZookeeperTransporter.connect(url1); + ZookeeperClient client2 = abstractZookeeperTransporter.connect(url2); + assertThat(client1, not(client2)); } } diff --git a/dubbo-test/dubbo-test-check/pom.xml b/dubbo-test/dubbo-test-check/pom.xml index d7bbd6a56d..123301ab8f 100644 --- a/dubbo-test/dubbo-test-check/pom.xml +++ b/dubbo-test/dubbo-test-check/pom.xml @@ -54,22 +54,6 @@ org.apache.commons commons-lang3 - - org.apache.curator - curator-test - ${curator.test.version} - compile - - - com.google.guava - guava - - - org.apache.zookeeper - zookeeper - - - org.apache.zookeeper zookeeper diff --git a/dubbo-test/dubbo-test-check/src/main/java/org/apache/dubbo/test/check/AbstractRegistryCenterTestExecutionListener.java b/dubbo-test/dubbo-test-check/src/main/java/org/apache/dubbo/test/check/AbstractRegistryCenterTestExecutionListener.java index 45bab8f392..e6922215e1 100644 --- a/dubbo-test/dubbo-test-check/src/main/java/org/apache/dubbo/test/check/AbstractRegistryCenterTestExecutionListener.java +++ b/dubbo-test/dubbo-test-check/src/main/java/org/apache/dubbo/test/check/AbstractRegistryCenterTestExecutionListener.java @@ -51,6 +51,13 @@ public abstract class AbstractRegistryCenterTestExecutionListener implements Tes PACKAGE_NAME.add("org.apache.dubbo.config"); // dubbo-test module PACKAGE_NAME.add("org.apache.dubbo.test"); + // dubbo-registry + PACKAGE_NAME.add("org.apache.dubbo.registry"); + // dubbo-remoting-zookeeper + PACKAGE_NAME.add("org.apache.dubbo.remoting.zookeeper"); + // dubbo-metadata-report-zookeeper + PACKAGE_NAME.add("org.apache.dubbo.metadata.store.zookeeper"); + enableEmbeddedZookeeper = Boolean.valueOf(System.getProperty(CONFIG_ENABLE_EMBEDDED_ZOOKEEPER, "true")); } diff --git a/dubbo-test/dubbo-test-common/pom.xml b/dubbo-test/dubbo-test-common/pom.xml index 69b53ff853..37c0be9919 100644 --- a/dubbo-test/dubbo-test-common/pom.xml +++ b/dubbo-test/dubbo-test-common/pom.xml @@ -57,18 +57,6 @@ org.apache.dubbo dubbo-rpc-rest - - org.apache.curator - curator-test - compile - - - com.google.guava - guava - - - - org.apache.dubbo dubbo-test-check