You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by al...@apache.org on 2021/09/06 14:47:10 UTC
[dubbo] branch 3.0 updated: fixes: Try to reduce the time consuming
in UT (#8686)
This is an automated email from the ASF dual-hosted git repository.
albumenj pushed a commit to branch 3.0
in repository https://gitbox.apache.org/repos/asf/dubbo.git
The following commit(s) were added to refs/heads/3.0 by this push:
new 7ffa53a fixes: Try to reduce the time consuming in UT (#8686)
7ffa53a is described below
commit 7ffa53ad0fbd5c4c69c802a3bbe0c172cdcb9ff9
Author: Xiong, Pin <pi...@foxmail.com>
AuthorDate: Mon Sep 6 09:46:53 2021 -0500
fixes: Try to reduce the time consuming in UT (#8686)
* fixes: Try to reduce the time consuming in UT
1. Replace ZookeeperServer with ZookeeperSingleRegistryCenter
2. Split the testcase of GenericServiceTest#testGeneric
* fixes: update the scope of maven dependency
* fixes: Update the parameters of zookeeper
* perf: Upgrade the version of curator-framework and remove Thread.sleep in UT
* Recover the previous code in ArgumentCallbackTest#TestCallbackNormalWithBindPort
* Recover the previous code in ArgumentCallbackTest#TestCallbackMultiInstans
---
.../support/AbstractClusterInvokerTest.java | 2 +-
.../apache/dubbo/config/ReferenceConfigTest.java | 11 +-
.../registrycenter/AbstractRegistryCenter.java | 2 +-
.../consumer/PropertyConfigurerTest.java | 5 -
.../consumer2/PropertySourcesConfigurerTest.java | 5 -
.../consumer3/PropertySourcesInJavaConfigTest.java | 10 --
.../spring/reference/localcall/LocalCallTest.java | 3 -
.../LocalCallMultipleReferenceAnnotationsTest.java | 3 +-
.../registrycenter/AbstractRegistryCenter.java | 8 +-
.../config/spring/schema/GenericServiceTest.java | 23 +---
...ava => GenericServiceWithoutInterfaceTest.java} | 46 ++-----
...> dubbo-generic-consumer-without-interface.xml} | 7 +-
.../META-INF/spring/dubbo-generic-consumer.xml | 5 -
dubbo-dependencies-bom/pom.xml | 2 +-
.../dubbo/qos/command/impl/PortTelnetTest.java | 2 +-
.../rpc/protocol/dubbo/DubboProtocolTest.java | 2 +-
dubbo-test/dubbo-test-common/pom.xml | 11 ++
.../dubbo/test/common/EmbeddedZooKeeper.java | 4 +
.../apache/dubbo/test/common/ZooKeeperServer.java | 9 ++
.../registrycenter/AbstractRegistryCenter.java | 6 +-
.../test/common/registrycenter/RegistryCenter.java | 70 ++++++++++
.../ZookeeperMultipleRegistryCenter.java} | 47 +++----
.../registrycenter/ZookeeperRegistryCenter.java | 142 +++++++++++++++++++++
.../ZookeeperSingleRegistryCenter.java} | 48 ++++---
.../test/spring/SpringAnnotationBeanTest.java | 16 ++-
.../test/spring/SpringJavaConfigBeanTest.java | 19 ++-
.../dubbo/test/spring/SpringXmlConfigTest.java | 15 ++-
27 files changed, 351 insertions(+), 172 deletions(-)
diff --git a/dubbo-cluster/src/test/java/org/apache/dubbo/rpc/cluster/support/AbstractClusterInvokerTest.java b/dubbo-cluster/src/test/java/org/apache/dubbo/rpc/cluster/support/AbstractClusterInvokerTest.java
index df3a47c..98a3c2f 100644
--- a/dubbo-cluster/src/test/java/org/apache/dubbo/rpc/cluster/support/AbstractClusterInvokerTest.java
+++ b/dubbo-cluster/src/test/java/org/apache/dubbo/rpc/cluster/support/AbstractClusterInvokerTest.java
@@ -386,7 +386,7 @@ public class AbstractClusterInvokerTest {
public void testSelect_multiInvokers(String lbname) throws Exception {
- int min = 1000, max = 5000;
+ int min = 100, max = 500;
Double d = (Math.random() * (max - min + 1) + min);
int runs = d.intValue();
Assertions.assertTrue(runs > min);
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/ReferenceConfigTest.java b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/ReferenceConfigTest.java
index b0fc95e..b6ec83e 100644
--- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/ReferenceConfigTest.java
+++ b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/ReferenceConfigTest.java
@@ -29,6 +29,8 @@ import org.apache.dubbo.config.api.DemoService;
import org.apache.dubbo.config.bootstrap.DubboBootstrap;
import org.apache.dubbo.config.provider.impl.DemoServiceImpl;
import org.apache.dubbo.registry.client.migration.MigrationInvoker;
+import org.apache.dubbo.registrycenter.RegistryCenter;
+import org.apache.dubbo.registrycenter.ZookeeperSingleRegistryCenter;
import org.apache.dubbo.rpc.Exporter;
import org.apache.dubbo.rpc.ProxyFactory;
import org.apache.dubbo.rpc.listener.ListenerInvokerWrapper;
@@ -39,7 +41,6 @@ import org.apache.dubbo.rpc.model.ServiceMetadata;
import org.apache.dubbo.rpc.protocol.injvm.InjvmInvoker;
import org.apache.dubbo.rpc.protocol.injvm.InjvmProtocol;
-import org.apache.curator.test.TestingServer;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
@@ -104,16 +105,16 @@ import static org.apache.dubbo.rpc.Constants.SCOPE_LOCAL;
import static org.apache.dubbo.rpc.Constants.SCOPE_REMOTE;
public class ReferenceConfigTest {
- private TestingServer zkServer;
private String zkUrl;
private String registryUrl;
+ private RegistryCenter registryCenter;
@BeforeEach
public void setUp() throws Exception {
DubboBootstrap.reset();
int zkServerPort = NetUtils.getAvailablePort(NetUtils.getRandomPort());
- this.zkServer = new TestingServer(zkServerPort, true);
- this.zkServer.start();
+ registryCenter = new ZookeeperSingleRegistryCenter(zkServerPort);
+ registryCenter.startup();
this.zkUrl = "zookeeper://localhost:" + zkServerPort;
this.registryUrl = "registry://localhost:" + zkServerPort + "?registry=zookeeper";
@@ -126,7 +127,7 @@ public class ReferenceConfigTest {
@AfterEach
public void tearDown() throws IOException {
DubboBootstrap.reset();
- zkServer.stop();
+ registryCenter.shutdown();
Mockito.framework().clearInlineMocks();
}
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/registrycenter/AbstractRegistryCenter.java b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/registrycenter/AbstractRegistryCenter.java
index 3846c94..3ef9e58 100644
--- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/registrycenter/AbstractRegistryCenter.java
+++ b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/registrycenter/AbstractRegistryCenter.java
@@ -60,7 +60,7 @@ abstract class AbstractRegistryCenter implements RegistryCenter {
/**
* The default value is -1.
*/
- private static final int DEFAULT_MAX_CLIENT_CNXNS = -1;
+ private static final int DEFAULT_MAX_CLIENT_CNXNS = 200;
/**
* The minimum session timeout.
diff --git a/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/propertyconfigurer/consumer/PropertyConfigurerTest.java b/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/propertyconfigurer/consumer/PropertyConfigurerTest.java
index 37a677d..c2ba2c4 100644
--- a/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/propertyconfigurer/consumer/PropertyConfigurerTest.java
+++ b/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/propertyconfigurer/consumer/PropertyConfigurerTest.java
@@ -61,11 +61,6 @@ public class PropertyConfigurerTest {
// reset ConfigManager of provider context
ApplicationModel.defaultModel().getApplicationConfigManager().destroy();
- try {
- Thread.sleep(1000);
- } catch (InterruptedException e) {
- }
-
// Resolve placeholder by PropertyPlaceholderConfigurer in dubbo-consumer.xml, without import property source.
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(ConsumerConfiguration.class);
context.start();
diff --git a/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/propertyconfigurer/consumer2/PropertySourcesConfigurerTest.java b/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/propertyconfigurer/consumer2/PropertySourcesConfigurerTest.java
index 8054311..08c3a04 100644
--- a/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/propertyconfigurer/consumer2/PropertySourcesConfigurerTest.java
+++ b/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/propertyconfigurer/consumer2/PropertySourcesConfigurerTest.java
@@ -59,11 +59,6 @@ public class PropertySourcesConfigurerTest {
try {
providerContext.start();
- try {
- Thread.sleep(1000);
- } catch (InterruptedException e) {
- }
-
// reset ConfigManager of provider context
ApplicationModel.defaultModel().getApplicationConfigManager().destroy();
diff --git a/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/propertyconfigurer/consumer3/PropertySourcesInJavaConfigTest.java b/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/propertyconfigurer/consumer3/PropertySourcesInJavaConfigTest.java
index afdbf25..bc28201 100644
--- a/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/propertyconfigurer/consumer3/PropertySourcesInJavaConfigTest.java
+++ b/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/propertyconfigurer/consumer3/PropertySourcesInJavaConfigTest.java
@@ -72,11 +72,6 @@ public class PropertySourcesInJavaConfigTest {
try {
providerContext.start();
- try {
- Thread.sleep(1000);
- } catch (InterruptedException e) {
- }
-
// reset ConfigManager of provider context
ApplicationModel.defaultModel().getApplicationConfigManager().destroy();
//ApplicationModel.defaultModel().getApplicationServiceRepository().setProviderUrlsWithoutGroup(tmp);
@@ -109,11 +104,6 @@ public class PropertySourcesInJavaConfigTest {
try {
providerContext.start();
- try {
- Thread.sleep(1000);
- } catch (InterruptedException e) {
- }
-
// reset ConfigManager of provider context
ApplicationModel.defaultModel().getApplicationConfigManager().destroy();
diff --git a/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/reference/localcall/LocalCallTest.java b/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/reference/localcall/LocalCallTest.java
index 4f5424a..25fee33 100644
--- a/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/reference/localcall/LocalCallTest.java
+++ b/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/reference/localcall/LocalCallTest.java
@@ -61,9 +61,6 @@ public class LocalCallTest {
//@Qualifier("localHelloService")
private HelloService localHelloService;
- @Autowired
- private ApplicationContext applicationContext;
-
@Test
public void testLocalCall() {
// see also: org.apache.dubbo.rpc.protocol.injvm.InjvmInvoker.doInvoke
diff --git a/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/reference/localcallam/LocalCallMultipleReferenceAnnotationsTest.java b/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/reference/localcallam/LocalCallMultipleReferenceAnnotationsTest.java
index 241ed75..2da3732 100644
--- a/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/reference/localcallam/LocalCallMultipleReferenceAnnotationsTest.java
+++ b/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/reference/localcallam/LocalCallMultipleReferenceAnnotationsTest.java
@@ -22,6 +22,7 @@ import org.apache.dubbo.config.bootstrap.DubboBootstrap;
import org.apache.dubbo.config.spring.ReferenceBean;
import org.apache.dubbo.config.spring.api.HelloService;
import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
+import org.apache.dubbo.config.spring.registrycenter.RegistryCenter;
import org.apache.dubbo.config.spring.registrycenter.ZookeeperSingleRegistryCenter;
import org.apache.dubbo.rpc.RpcContext;
import org.junit.jupiter.api.AfterAll;
@@ -48,7 +49,7 @@ import static org.springframework.test.annotation.DirtiesContext.ClassMode.AFTER
@DirtiesContext(classMode = AFTER_EACH_TEST_METHOD)
public class LocalCallMultipleReferenceAnnotationsTest {
- private static ZookeeperSingleRegistryCenter registryCenter;
+ private static RegistryCenter registryCenter;
@BeforeAll
public static void setUp() {
diff --git a/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/registrycenter/AbstractRegistryCenter.java b/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/registrycenter/AbstractRegistryCenter.java
index b898c93..c4ae5ca 100644
--- a/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/registrycenter/AbstractRegistryCenter.java
+++ b/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/registrycenter/AbstractRegistryCenter.java
@@ -53,14 +53,14 @@ abstract class AbstractRegistryCenter implements RegistryCenter {
private static final int DEFAULT_SERVER_ID = -1;
/**
- * The default tick time is 10000
+ * The default tick time is 5000
*/
- private static final int DEFAULT_TICK_TIME = 100 * 1000;
+ private static final int DEFAULT_TICK_TIME = 5 * 1000;
/**
- * The default value is -1.
+ * The default value is 60.
*/
- private static final int DEFAULT_MAX_CLIENT_CNXNS = -1;
+ private static final int DEFAULT_MAX_CLIENT_CNXNS = 200;
/**
* The minimum session timeout.
diff --git a/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/schema/GenericServiceTest.java b/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/schema/GenericServiceTest.java
index 57c0b83..988919c 100644
--- a/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/schema/GenericServiceTest.java
+++ b/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/schema/GenericServiceTest.java
@@ -16,8 +16,6 @@
*/
package org.apache.dubbo.config.spring.schema;
-import org.apache.dubbo.common.utils.ClassUtils;
-import org.apache.dubbo.config.ReferenceConfigBase;
import org.apache.dubbo.config.ServiceConfigBase;
import org.apache.dubbo.config.bootstrap.DubboBootstrap;
import org.apache.dubbo.config.context.ConfigManager;
@@ -27,7 +25,6 @@ import org.apache.dubbo.config.spring.registrycenter.ZookeeperSingleRegistryCent
import org.apache.dubbo.config.spring.registrycenter.RegistryCenter;
import org.apache.dubbo.rpc.service.GenericService;
import org.junit.jupiter.api.BeforeAll;
-import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Assertions;
@@ -59,12 +56,8 @@ public class GenericServiceTest {
@AfterAll
public static void afterAll() {
- singleRegistryCenter.shutdown();
- }
-
- @AfterEach
- public void tearDown() {
DubboBootstrap.reset();
+ singleRegistryCenter.shutdown();
}
@Autowired
@@ -72,10 +65,6 @@ public class GenericServiceTest {
private GenericService demoServiceRef;
@Autowired
- @Qualifier("genericServiceWithoutInterfaceRef")
- private GenericService genericServiceWithoutInterfaceRef;
-
- @Autowired
@Qualifier("demoService")
private ServiceBean serviceBean;
@@ -92,15 +81,5 @@ public class GenericServiceTest {
Object result = demoServiceRef.$invoke("sayHello", new String[]{"java.lang.String"}, new Object[]{"dubbo"});
Assertions.assertEquals("Welcome dubbo", result);
-
- // Test generic service without interface class locally
- result = genericServiceWithoutInterfaceRef.$invoke("sayHello", new String[]{"java.lang.String"}, new Object[]{"generic"});
- Assertions.assertEquals("Welcome generic", result);
-
- ReferenceConfigBase<Object> reference = configManager.getReference("genericServiceWithoutInterfaceRef");
- Assertions.assertNull(reference.getServiceInterfaceClass());
- Assertions.assertEquals("org.apache.dubbo.config.spring.api.LocalMissClass", reference.getInterface());
- Assertions.assertThrows(ClassNotFoundException.class, () -> ClassUtils.forName(reference.getInterface()));
-
}
}
diff --git a/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/schema/GenericServiceTest.java b/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/schema/GenericServiceWithoutInterfaceTest.java
similarity index 66%
copy from dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/schema/GenericServiceTest.java
copy to dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/schema/GenericServiceWithoutInterfaceTest.java
index 57c0b83..f45fa00 100644
--- a/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/schema/GenericServiceTest.java
+++ b/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/schema/GenericServiceWithoutInterfaceTest.java
@@ -18,16 +18,11 @@ package org.apache.dubbo.config.spring.schema;
import org.apache.dubbo.common.utils.ClassUtils;
import org.apache.dubbo.config.ReferenceConfigBase;
-import org.apache.dubbo.config.ServiceConfigBase;
import org.apache.dubbo.config.bootstrap.DubboBootstrap;
-import org.apache.dubbo.config.context.ConfigManager;
-import org.apache.dubbo.config.spring.ServiceBean;
-import org.apache.dubbo.config.spring.api.DemoService;
-import org.apache.dubbo.config.spring.registrycenter.ZookeeperSingleRegistryCenter;
import org.apache.dubbo.config.spring.registrycenter.RegistryCenter;
+import org.apache.dubbo.config.spring.registrycenter.ZookeeperSingleRegistryCenter;
import org.apache.dubbo.rpc.service.GenericService;
import org.junit.jupiter.api.BeforeAll;
-import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Assertions;
@@ -39,14 +34,13 @@ import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit.jupiter.SpringExtension;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.springframework.test.annotation.DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD;
@ExtendWith(SpringExtension.class)
-@ContextConfiguration(classes = GenericServiceTest.class)
+@ContextConfiguration(classes = GenericServiceWithoutInterfaceTest.class)
@DirtiesContext(classMode = AFTER_EACH_TEST_METHOD)
-@ImportResource(locations = "classpath:/META-INF/spring/dubbo-generic-consumer.xml")
-public class GenericServiceTest {
+@ImportResource(locations = "classpath:/META-INF/spring/dubbo-generic-consumer-without-interface.xml")
+public class GenericServiceWithoutInterfaceTest {
private static RegistryCenter singleRegistryCenter;
@@ -59,48 +53,24 @@ public class GenericServiceTest {
@AfterAll
public static void afterAll() {
- singleRegistryCenter.shutdown();
- }
-
- @AfterEach
- public void tearDown() {
DubboBootstrap.reset();
+ singleRegistryCenter.shutdown();
}
@Autowired
- @Qualifier("demoServiceRef")
- private GenericService demoServiceRef;
-
- @Autowired
@Qualifier("genericServiceWithoutInterfaceRef")
private GenericService genericServiceWithoutInterfaceRef;
- @Autowired
- @Qualifier("demoService")
- private ServiceBean serviceBean;
-
@Test
- public void testGeneric() {
- assertNotNull(demoServiceRef);
- assertNotNull(serviceBean);
-
- ConfigManager configManager = DubboBootstrap.getInstance().getConfigManager();
- ServiceConfigBase<Object> serviceConfig = configManager.getService("demoService");
- Assertions.assertEquals(DemoService.class.getName(), serviceConfig.getInterface());
- Assertions.assertEquals(true, serviceConfig.isExported());
-
- Object result = demoServiceRef.$invoke("sayHello", new String[]{"java.lang.String"}, new Object[]{"dubbo"});
- Assertions.assertEquals("Welcome dubbo", result);
-
+ public void testGenericWithoutInterface() {
// Test generic service without interface class locally
- result = genericServiceWithoutInterfaceRef.$invoke("sayHello", new String[]{"java.lang.String"}, new Object[]{"generic"});
+ Object result = genericServiceWithoutInterfaceRef.$invoke("sayHello", new String[]{"java.lang.String"}, new Object[]{"generic"});
Assertions.assertEquals("Welcome generic", result);
- ReferenceConfigBase<Object> reference = configManager.getReference("genericServiceWithoutInterfaceRef");
+ ReferenceConfigBase<Object> reference = DubboBootstrap.getInstance().getConfigManager().getReference("genericServiceWithoutInterfaceRef");
Assertions.assertNull(reference.getServiceInterfaceClass());
Assertions.assertEquals("org.apache.dubbo.config.spring.api.LocalMissClass", reference.getInterface());
Assertions.assertThrows(ClassNotFoundException.class, () -> ClassUtils.forName(reference.getInterface()));
-
}
}
diff --git a/dubbo-config/dubbo-config-spring/src/test/resources/META-INF/spring/dubbo-generic-consumer.xml b/dubbo-config/dubbo-config-spring/src/test/resources/META-INF/spring/dubbo-generic-consumer-without-interface.xml
similarity index 84%
copy from dubbo-config/dubbo-config-spring/src/test/resources/META-INF/spring/dubbo-generic-consumer.xml
copy to dubbo-config/dubbo-config-spring/src/test/resources/META-INF/spring/dubbo-generic-consumer-without-interface.xml
index fd5dde5..002f8f6 100644
--- a/dubbo-config/dubbo-config-spring/src/test/resources/META-INF/spring/dubbo-generic-consumer.xml
+++ b/dubbo-config/dubbo-config-spring/src/test/resources/META-INF/spring/dubbo-generic-consumer-without-interface.xml
@@ -22,18 +22,13 @@
http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd">
<!-- 当前应用信息配置 -->
- <dubbo:application name="dubbo-generic-consumer"/>
+ <dubbo:application name="dubbo-generic-consumer-without-interface"/>
<!-- 连接注册中心配置 -->
<dubbo:registry address="zookeeper://127.0.0.1:2181"/>
- <dubbo:reference id="demoServiceRef" interface="org.apache.dubbo.config.spring.api.DemoService" generic="true" init="false"/>
-
<bean id="genericService" class="org.apache.dubbo.config.spring.schema.MyGenericService"/>
- <dubbo:service id="demoService" interface="org.apache.dubbo.config.spring.api.DemoService" generic="true"
- ref="genericService"/>
-
<!-- generic service without interface class -->
<dubbo:reference id="genericServiceWithoutInterfaceRef" interface="org.apache.dubbo.config.spring.api.LocalMissClass" generic="true" init="false"/>
<dubbo:service id="genericServiceWithoutInterface" interface="org.apache.dubbo.config.spring.api.LocalMissClass" generic="true"
diff --git a/dubbo-config/dubbo-config-spring/src/test/resources/META-INF/spring/dubbo-generic-consumer.xml b/dubbo-config/dubbo-config-spring/src/test/resources/META-INF/spring/dubbo-generic-consumer.xml
index fd5dde5..e426e22 100644
--- a/dubbo-config/dubbo-config-spring/src/test/resources/META-INF/spring/dubbo-generic-consumer.xml
+++ b/dubbo-config/dubbo-config-spring/src/test/resources/META-INF/spring/dubbo-generic-consumer.xml
@@ -33,9 +33,4 @@
<dubbo:service id="demoService" interface="org.apache.dubbo.config.spring.api.DemoService" generic="true"
ref="genericService"/>
-
- <!-- generic service without interface class -->
- <dubbo:reference id="genericServiceWithoutInterfaceRef" interface="org.apache.dubbo.config.spring.api.LocalMissClass" generic="true" init="false"/>
- <dubbo:service id="genericServiceWithoutInterface" interface="org.apache.dubbo.config.spring.api.LocalMissClass" generic="true"
- ref="genericService"/>
</beans>
diff --git a/dubbo-dependencies-bom/pom.xml b/dubbo-dependencies-bom/pom.xml
index a62797b..3594718 100644
--- a/dubbo-dependencies-bom/pom.xml
+++ b/dubbo-dependencies-bom/pom.xml
@@ -100,7 +100,7 @@
<httpcore_version>4.4.6</httpcore_version>
<fastjson_version>1.2.70</fastjson_version>
<zookeeper_version>3.4.13</zookeeper_version>
- <curator_version>4.0.1</curator_version>
+ <curator_version>4.1.0</curator_version>
<curator_test_version>2.12.0</curator_test_version>
<jedis_version>3.6.0</jedis_version>
<consul_version>1.4.2</consul_version>
diff --git a/dubbo-plugin/dubbo-qos/src/test/java/org/apache/dubbo/qos/command/impl/PortTelnetTest.java b/dubbo-plugin/dubbo-qos/src/test/java/org/apache/dubbo/qos/command/impl/PortTelnetTest.java
index 2a268d9..dbbc476 100644
--- a/dubbo-plugin/dubbo-qos/src/test/java/org/apache/dubbo/qos/command/impl/PortTelnetTest.java
+++ b/dubbo-plugin/dubbo-qos/src/test/java/org/apache/dubbo/qos/command/impl/PortTelnetTest.java
@@ -73,7 +73,7 @@ public class PortTelnetTest {
public void testListClient() throws Exception {
ExchangeClient client1 = Exchangers.connect("dubbo://127.0.0.1:" + availablePort + "/demo");
ExchangeClient client2 = Exchangers.connect("dubbo://127.0.0.1:" + availablePort + "/demo");
- Thread.sleep(5000);
+ Thread.sleep(100);
String result = port.execute(mockCommandContext, new String[]{"-l", availablePort + ""});
String client1Addr = client1.getLocalAddress().toString();
String client2Addr = client2.getLocalAddress().toString();
diff --git a/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/org/apache/dubbo/rpc/protocol/dubbo/DubboProtocolTest.java b/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/org/apache/dubbo/rpc/protocol/dubbo/DubboProtocolTest.java
index 0779bb1..99a8da2 100644
--- a/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/org/apache/dubbo/rpc/protocol/dubbo/DubboProtocolTest.java
+++ b/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/org/apache/dubbo/rpc/protocol/dubbo/DubboProtocolTest.java
@@ -190,7 +190,7 @@ public class DubboProtocolTest {
service = proxy.getProxy(protocol.refer(DemoService.class, URL.valueOf("dubbo://127.0.0.1:" + port + "/" + DemoService.class.getName() + "?codec=exchange").addParameter("timeout",
3000L)));
long start = System.currentTimeMillis();
- for (int i = 0; i < 1000; i++)
+ for (int i = 0; i < 100; i++)
service.getSize(new String[]{"", "", ""});
System.out.println("take:" + (System.currentTimeMillis() - start));
}
diff --git a/dubbo-test/dubbo-test-common/pom.xml b/dubbo-test/dubbo-test-common/pom.xml
index 9c52951..0cbfa34 100644
--- a/dubbo-test/dubbo-test-common/pom.xml
+++ b/dubbo-test/dubbo-test-common/pom.xml
@@ -57,5 +57,16 @@
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-rpc-rest</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.apache.curator</groupId>
+ <artifactId>curator-test</artifactId>
+ <scope>compile</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>com.google.guava</groupId>
+ <artifactId>guava</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
</dependencies>
</project>
diff --git a/dubbo-test/dubbo-test-common/src/main/java/org/apache/dubbo/test/common/EmbeddedZooKeeper.java b/dubbo-test/dubbo-test-common/src/main/java/org/apache/dubbo/test/common/EmbeddedZooKeeper.java
index e91755a..c96f06f 100644
--- a/dubbo-test/dubbo-test-common/src/main/java/org/apache/dubbo/test/common/EmbeddedZooKeeper.java
+++ b/dubbo-test/dubbo-test-common/src/main/java/org/apache/dubbo/test/common/EmbeddedZooKeeper.java
@@ -39,7 +39,11 @@ import java.util.UUID;
* @author Patrick Peralta
* @author Mark Fisher
* @author David Turanski
+ * @deprecated
+ * @see org.apache.dubbo.test.common.registrycenter.ZookeeperSingleRegistryCenter
+ * @see org.apache.dubbo.test.common.registrycenter.ZookeeperMultipleRegistryCenter
*/
+@Deprecated
public class EmbeddedZooKeeper {
/**
diff --git a/dubbo-test/dubbo-test-common/src/main/java/org/apache/dubbo/test/common/ZooKeeperServer.java b/dubbo-test/dubbo-test-common/src/main/java/org/apache/dubbo/test/common/ZooKeeperServer.java
index 115510a..846c2ac 100644
--- a/dubbo-test/dubbo-test-common/src/main/java/org/apache/dubbo/test/common/ZooKeeperServer.java
+++ b/dubbo-test/dubbo-test-common/src/main/java/org/apache/dubbo/test/common/ZooKeeperServer.java
@@ -16,6 +16,15 @@
*/
package org.apache.dubbo.test.common;
+/**
+ * Using this class as registry center is not very well because of time-consuming.
+ * <p>The alternative is to use {@link org.apache.dubbo.test.common.registrycenter.ZookeeperSingleRegistryCenter}</p> or
+ * {@link org.apache.dubbo.test.common.registrycenter.ZookeeperMultipleRegistryCenter}
+ * @deprecated
+ * @see org.apache.dubbo.test.common.registrycenter.ZookeeperSingleRegistryCenter
+ * @see org.apache.dubbo.test.common.registrycenter.ZookeeperMultipleRegistryCenter
+ */
+@Deprecated
public class ZooKeeperServer {
private static EmbeddedZooKeeper zookeeper1;
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/registrycenter/AbstractRegistryCenter.java b/dubbo-test/dubbo-test-common/src/main/java/org/apache/dubbo/test/common/registrycenter/AbstractRegistryCenter.java
similarity index 95%
copy from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/registrycenter/AbstractRegistryCenter.java
copy to dubbo-test/dubbo-test-common/src/main/java/org/apache/dubbo/test/common/registrycenter/AbstractRegistryCenter.java
index 3846c94..cbf637a 100644
--- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/registrycenter/AbstractRegistryCenter.java
+++ b/dubbo-test/dubbo-test-common/src/main/java/org/apache/dubbo/test/common/registrycenter/AbstractRegistryCenter.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.dubbo.registrycenter;
+package org.apache.dubbo.test.common.registrycenter;
import org.apache.curator.test.InstanceSpec;
@@ -58,9 +58,9 @@ abstract class AbstractRegistryCenter implements RegistryCenter {
private static final int DEFAULT_TICK_TIME = 5 * 1000;
/**
- * The default value is -1.
+ * The default value is 60.
*/
- private static final int DEFAULT_MAX_CLIENT_CNXNS = -1;
+ private static final int DEFAULT_MAX_CLIENT_CNXNS = 200;
/**
* The minimum session timeout.
diff --git a/dubbo-test/dubbo-test-common/src/main/java/org/apache/dubbo/test/common/registrycenter/RegistryCenter.java b/dubbo-test/dubbo-test-common/src/main/java/org/apache/dubbo/test/common/registrycenter/RegistryCenter.java
new file mode 100644
index 0000000..8e9c569
--- /dev/null
+++ b/dubbo-test/dubbo-test-common/src/main/java/org/apache/dubbo/test/common/registrycenter/RegistryCenter.java
@@ -0,0 +1,70 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.dubbo.test.common.registrycenter;
+
+import org.apache.dubbo.rpc.RpcException;
+
+import java.util.List;
+
+/**
+ * The mock registry center.
+ */
+public interface RegistryCenter {
+
+ /**
+ * Start the registry center.
+ *
+ * @throws RpcException when an exception occurred
+ */
+ void startup() throws RpcException;
+
+ /**
+ * Returns the registry center instance.
+ * <p>This method can be called only after {@link #startup()} is called</p>
+ *
+ * @throws RpcException when an exception occurred
+ */
+ List<Instance> getRegistryCenterInstance() throws RpcException;
+
+ /**
+ * Stop the registry center.
+ *
+ * @throws RpcException when an exception occurred
+ */
+ void shutdown() throws RpcException;
+
+ /**
+ * The registry center instance.
+ */
+ interface Instance {
+
+ /**
+ * Returns the registry center type.
+ */
+ String getType();
+
+ /**
+ * Returns the hostname of registry center.
+ */
+ String getHostname();
+
+ /**
+ * Returns the port of registry center.
+ */
+ int getPort();
+ }
+}
diff --git a/dubbo-test/dubbo-test-common/src/main/java/org/apache/dubbo/test/common/ZooKeeperServer.java b/dubbo-test/dubbo-test-common/src/main/java/org/apache/dubbo/test/common/registrycenter/ZookeeperMultipleRegistryCenter.java
similarity index 51%
copy from dubbo-test/dubbo-test-common/src/main/java/org/apache/dubbo/test/common/ZooKeeperServer.java
copy to dubbo-test/dubbo-test-common/src/main/java/org/apache/dubbo/test/common/registrycenter/ZookeeperMultipleRegistryCenter.java
index 115510a..761558a 100644
--- a/dubbo-test/dubbo-test-common/src/main/java/org/apache/dubbo/test/common/ZooKeeperServer.java
+++ b/dubbo-test/dubbo-test-common/src/main/java/org/apache/dubbo/test/common/registrycenter/ZookeeperMultipleRegistryCenter.java
@@ -14,35 +14,30 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.dubbo.test.common;
+package org.apache.dubbo.test.common.registrycenter;
-public class ZooKeeperServer {
-
- private static EmbeddedZooKeeper zookeeper1;
- private static EmbeddedZooKeeper zookeeper2;
+/**
+ * The default zookeeper multiple registry center.
+ */
+public class ZookeeperMultipleRegistryCenter extends ZookeeperRegistryCenter {
- public static void start() {
- if (zookeeper1 == null) {
- zookeeper1 = new EmbeddedZooKeeper(2181, true);
- zookeeper1.start();
- }
- if (zookeeper2 == null) {
- zookeeper2 = new EmbeddedZooKeeper(2182, true);
- zookeeper2.start();
- }
+ /**
+ * Initialize {@link ZookeeperMultipleRegistryCenter} instance.
+ *
+ * @param port1 the zookeeper server's port.
+ * @param port2 the zookeeper server's port.
+ */
+ public ZookeeperMultipleRegistryCenter(int port1, int port2) {
+ super(port1, port2);
}
- public static void stop() {
- try {
- if (zookeeper1 != null) {
- zookeeper1.stop();
- }
- if (zookeeper2 != null) {
- zookeeper2.stop();
- }
- } finally {
- zookeeper1 = null;
- zookeeper2 = null;
- }
+ /**
+ * Initialize {@link ZookeeperMultipleRegistryCenter} instance.
+ */
+ public ZookeeperMultipleRegistryCenter() {
+ this(DEFAULT_PORT1, DEFAULT_PORT2);
}
+
+ private static final int DEFAULT_PORT1 = 2181;
+ private static final int DEFAULT_PORT2 = 2182;
}
diff --git a/dubbo-test/dubbo-test-common/src/main/java/org/apache/dubbo/test/common/registrycenter/ZookeeperRegistryCenter.java b/dubbo-test/dubbo-test-common/src/main/java/org/apache/dubbo/test/common/registrycenter/ZookeeperRegistryCenter.java
new file mode 100644
index 0000000..4b2e3b6
--- /dev/null
+++ b/dubbo-test/dubbo-test-common/src/main/java/org/apache/dubbo/test/common/registrycenter/ZookeeperRegistryCenter.java
@@ -0,0 +1,142 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.dubbo.test.common.registrycenter;
+
+import org.apache.curator.test.InstanceSpec;
+import org.apache.curator.test.TestingServer;
+import org.apache.dubbo.common.logger.Logger;
+import org.apache.dubbo.common.logger.LoggerFactory;
+import org.apache.dubbo.rpc.RpcException;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.atomic.AtomicBoolean;
+
+/**
+ * The default implementation of registry center can support single and multiple registry center.
+ * <p>Each port represents an instance. You can provide multiple ports to build multiple registry center,
+ * if you want to create multiple registry center
+ */
+class ZookeeperRegistryCenter extends AbstractRegistryCenter {
+
+ /**
+ * Initialize the default registry center.
+ *
+ * @param ports the registry center's ports.
+ */
+ public ZookeeperRegistryCenter(int... ports) {
+ this.ports = ports;
+ this.instanceSpecs = new ArrayList<>(this.ports.length);
+ this.zookeeperServers = new ArrayList<>(this.ports.length);
+ }
+
+ private static final Logger logger = LoggerFactory.getLogger(ZookeeperRegistryCenter.class);
+
+ /**
+ * The type of the registry center.
+ */
+ private static final String DEFAULT_REGISTRY_CENTER_TYPE = "zookeeper";
+
+ private int[] ports;
+
+ private List<InstanceSpec> instanceSpecs;
+
+ private List<TestingServer> zookeeperServers;
+
+ private AtomicBoolean started = new AtomicBoolean(false);
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void startup() throws RpcException {
+ try {
+ if (started.compareAndSet(false, true)) {
+ logger.info("The ZookeeperRegistryCenter is starting...");
+ for (int port : this.ports) {
+ InstanceSpec instanceSpec = this.createInstanceSpec(port);
+ this.instanceSpecs.add(instanceSpec);
+ this.zookeeperServers.add(new TestingServer(instanceSpec, true));
+ }
+ logger.info("The ZookeeperRegistryCenter is started successfully");
+ }
+ } catch (Exception exception) {
+ started.set(false);
+ throw new RpcException("Failed to initialize ZookeeperRegistryCenter instance", exception);
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public List<Instance> getRegistryCenterInstance() throws RpcException {
+ this.startup();
+ List<Instance> instances = new ArrayList<>(this.instanceSpecs.size());
+ for (InstanceSpec instanceSpec : this.instanceSpecs) {
+ instances.add(new Instance() {
+ @Override
+ public String getType() {
+ return DEFAULT_REGISTRY_CENTER_TYPE;
+ }
+
+ @Override
+ public String getHostname() {
+ return instanceSpec.getHostname();
+ }
+
+ @Override
+ public int getPort() {
+ return instanceSpec.getPort();
+ }
+ });
+ }
+ return instances;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void shutdown() throws RpcException {
+ logger.info("The ZookeeperRegistryCenter is stopping...");
+ List<RpcException> exceptions = new ArrayList<>(this.zookeeperServers.size());
+ for (TestingServer testingServer : this.zookeeperServers) {
+ try {
+ testingServer.close();
+ logger.info(String.format("The zookeeper instance of %s is shutdown successfully",
+ testingServer.getConnectString()));
+ } catch (IOException exception) {
+ RpcException rpcException = new RpcException(String.format("Failed to close zookeeper instance of %s",
+ testingServer.getConnectString()),
+ exception);
+ exceptions.add(rpcException);
+ logger.error(rpcException);
+ }
+ }
+ this.instanceSpecs.clear();
+ this.zookeeperServers.clear();
+ if (!exceptions.isEmpty()) {
+ logger.info("The ZookeeperRegistryCenter failed to close.");
+ // throw any one of exceptions
+ throw exceptions.get(0);
+ } else {
+ logger.info("The ZookeeperRegistryCenter close successfully.");
+ }
+ }
+}
diff --git a/dubbo-test/dubbo-test-common/src/main/java/org/apache/dubbo/test/common/ZooKeeperServer.java b/dubbo-test/dubbo-test-common/src/main/java/org/apache/dubbo/test/common/registrycenter/ZookeeperSingleRegistryCenter.java
similarity index 51%
copy from dubbo-test/dubbo-test-common/src/main/java/org/apache/dubbo/test/common/ZooKeeperServer.java
copy to dubbo-test/dubbo-test-common/src/main/java/org/apache/dubbo/test/common/registrycenter/ZookeeperSingleRegistryCenter.java
index 115510a..9f0e010 100644
--- a/dubbo-test/dubbo-test-common/src/main/java/org/apache/dubbo/test/common/ZooKeeperServer.java
+++ b/dubbo-test/dubbo-test-common/src/main/java/org/apache/dubbo/test/common/registrycenter/ZookeeperSingleRegistryCenter.java
@@ -14,35 +14,31 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.dubbo.test.common;
+package org.apache.dubbo.test.common.registrycenter;
-public class ZooKeeperServer {
-
- private static EmbeddedZooKeeper zookeeper1;
- private static EmbeddedZooKeeper zookeeper2;
+/**
+ * The default zookeeper single registry center.
+ */
+public class ZookeeperSingleRegistryCenter extends ZookeeperRegistryCenter {
- public static void start() {
- if (zookeeper1 == null) {
- zookeeper1 = new EmbeddedZooKeeper(2181, true);
- zookeeper1.start();
- }
- if (zookeeper2 == null) {
- zookeeper2 = new EmbeddedZooKeeper(2182, true);
- zookeeper2.start();
- }
+ /**
+ * Initialize {@link ZookeeperSingleRegistryCenter} instance.
+ */
+ public ZookeeperSingleRegistryCenter() {
+ this(DEFAULT_PORT);
}
- public static void stop() {
- try {
- if (zookeeper1 != null) {
- zookeeper1.stop();
- }
- if (zookeeper2 != null) {
- zookeeper2.stop();
- }
- } finally {
- zookeeper1 = null;
- zookeeper2 = null;
- }
+ /**
+ * Initialize {@link RegistryCenter} instance.
+ *
+ * @param port the zookeeper server's port.
+ */
+ public ZookeeperSingleRegistryCenter(int port) {
+ super(port);
}
+
+ /**
+ * The zookeeper server's default port.
+ */
+ private static final int DEFAULT_PORT = 2181;
}
diff --git a/dubbo-test/dubbo-test-spring/src/main/java/org/apache/dubbo/test/spring/SpringAnnotationBeanTest.java b/dubbo-test/dubbo-test-spring/src/main/java/org/apache/dubbo/test/spring/SpringAnnotationBeanTest.java
index 9398865..e06b8f3 100644
--- a/dubbo-test/dubbo-test-spring/src/main/java/org/apache/dubbo/test/spring/SpringAnnotationBeanTest.java
+++ b/dubbo-test/dubbo-test-spring/src/main/java/org/apache/dubbo/test/spring/SpringAnnotationBeanTest.java
@@ -19,11 +19,13 @@ package org.apache.dubbo.test.spring;
import org.apache.dubbo.config.annotation.DubboReference;
import org.apache.dubbo.config.bootstrap.DubboBootstrap;
import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
-import org.apache.dubbo.test.common.ZooKeeperServer;
import org.apache.dubbo.test.common.api.DemoService;
+import org.apache.dubbo.test.common.registrycenter.RegistryCenter;
+import org.apache.dubbo.test.common.registrycenter.ZookeeperSingleRegistryCenter;
import org.apache.dubbo.test.spring.context.MockSpringInitializationCustomizer;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.Test;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.Bean;
@@ -31,10 +33,20 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
public class SpringAnnotationBeanTest {
+
+ private static RegistryCenter registryCenter;
+
@BeforeAll
public static void beforeAll() {
- ZooKeeperServer.start();
+ registryCenter = new ZookeeperSingleRegistryCenter();
+ registryCenter.startup();
+ DubboBootstrap.reset();
+ }
+
+ @AfterAll
+ public static void afterAll(){
DubboBootstrap.reset();
+ registryCenter.shutdown();
}
@Test
diff --git a/dubbo-test/dubbo-test-spring/src/main/java/org/apache/dubbo/test/spring/SpringJavaConfigBeanTest.java b/dubbo-test/dubbo-test-spring/src/main/java/org/apache/dubbo/test/spring/SpringJavaConfigBeanTest.java
index fbff776..79392d8 100644
--- a/dubbo-test/dubbo-test-spring/src/main/java/org/apache/dubbo/test/spring/SpringJavaConfigBeanTest.java
+++ b/dubbo-test/dubbo-test-spring/src/main/java/org/apache/dubbo/test/spring/SpringJavaConfigBeanTest.java
@@ -30,15 +30,17 @@ import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
import org.apache.dubbo.rpc.Constants;
import org.apache.dubbo.rpc.model.ApplicationModel;
import org.apache.dubbo.test.common.SysProps;
-import org.apache.dubbo.test.common.ZooKeeperServer;
import org.apache.dubbo.test.common.api.DemoService;
import org.apache.dubbo.test.common.impl.DemoServiceImpl;
+import org.apache.dubbo.test.common.registrycenter.RegistryCenter;
+import org.apache.dubbo.test.common.registrycenter.ZookeeperSingleRegistryCenter;
import org.apache.dubbo.test.spring.context.MockSpringInitializationCustomizer;
-import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.Test;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.Bean;
@@ -52,10 +54,19 @@ public class SpringJavaConfigBeanTest {
private static final String MY_PROTOCOL_ID = "myProtocol";
private static final String MY_REGISTRY_ID = "my-registry";
+ private static RegistryCenter registryCenter;
+
@BeforeAll
public static void beforeAll() {
- ZooKeeperServer.start();
+ registryCenter = new ZookeeperSingleRegistryCenter();
+ registryCenter.startup();
+ DubboBootstrap.reset();
+ }
+
+ @AfterAll
+ public static void afterAll(){
DubboBootstrap.reset();
+ registryCenter.shutdown();
}
@BeforeEach
diff --git a/dubbo-test/dubbo-test-spring/src/main/java/org/apache/dubbo/test/spring/SpringXmlConfigTest.java b/dubbo-test/dubbo-test-spring/src/main/java/org/apache/dubbo/test/spring/SpringXmlConfigTest.java
index d600ca2..ace14ec 100644
--- a/dubbo-test/dubbo-test-spring/src/main/java/org/apache/dubbo/test/spring/SpringXmlConfigTest.java
+++ b/dubbo-test/dubbo-test-spring/src/main/java/org/apache/dubbo/test/spring/SpringXmlConfigTest.java
@@ -18,11 +18,13 @@ package org.apache.dubbo.test.spring;
import org.apache.dubbo.config.bootstrap.DubboBootstrap;
import org.apache.dubbo.test.common.SysProps;
-import org.apache.dubbo.test.common.ZooKeeperServer;
import org.apache.dubbo.test.common.api.DemoService;
import org.apache.dubbo.test.common.api.GreetingService;
import org.apache.dubbo.test.common.api.RestDemoService;
+import org.apache.dubbo.test.common.registrycenter.RegistryCenter;
+import org.apache.dubbo.test.common.registrycenter.ZookeeperSingleRegistryCenter;
import org.apache.dubbo.test.spring.context.MockSpringInitializationCustomizer;
+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,10 +34,19 @@ import static org.apache.dubbo.common.constants.CommonConstants.SHUTDOWN_WAIT_KE
public class SpringXmlConfigTest {
+ private static RegistryCenter registryCenter;
+
@BeforeAll
public static void beforeAll() {
- ZooKeeperServer.start();
+ registryCenter = new ZookeeperSingleRegistryCenter();
+ registryCenter.startup();
+ DubboBootstrap.reset();
+ }
+
+ @AfterAll
+ public static void afterAll(){
DubboBootstrap.reset();
+ registryCenter.shutdown();
}
@Test