This is an automated email from the ASF dual-hosted git repository.
albumenj pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/dubbo.git
The following commit(s) were added to refs/heads/master by this push:
new b5a5d74 Fix DubboProtocol is not directly used externally (#7924)
b5a5d74 is described below
commit b5a5d74f3518c115f6006094e37435cc215cc930
Author: xiaoheng1 <[email protected]>
AuthorDate: Tue Jun 1 22:53:29 2021 +0800
Fix DubboProtocol is not directly used externally (#7924)
* fix #7923 Fix DubboProtocol is not directly used externally
* add cleanup when destroy
* bugfix
* add invoker.destroy
---
.../dubbo/monitor/dubbo/DubboMonitorFactoryTest.java | 17 +++++++++++++++--
.../apache/dubbo/monitor/dubbo/MetricsFilterTest.java | 8 ++++++--
.../rpc/protocol/dubbo/DubboInvokerAvailableTest.java | 2 +-
3 files changed, 22 insertions(+), 5 deletions(-)
diff --git
a/dubbo-monitor/dubbo-monitor-default/src/test/java/org/apache/dubbo/monitor/dubbo/DubboMonitorFactoryTest.java
b/dubbo-monitor/dubbo-monitor-default/src/test/java/org/apache/dubbo/monitor/dubbo/DubboMonitorFactoryTest.java
index a51c7e7..dab941d 100644
---
a/dubbo-monitor/dubbo-monitor-default/src/test/java/org/apache/dubbo/monitor/dubbo/DubboMonitorFactoryTest.java
+++
b/dubbo-monitor/dubbo-monitor-default/src/test/java/org/apache/dubbo/monitor/dubbo/DubboMonitorFactoryTest.java
@@ -19,14 +19,18 @@ package org.apache.dubbo.monitor.dubbo;
import org.apache.dubbo.common.URL;
import org.apache.dubbo.monitor.Monitor;
import org.apache.dubbo.rpc.Invoker;
+import org.apache.dubbo.rpc.ProtocolServer;
import org.apache.dubbo.rpc.ProxyFactory;
-import org.apache.dubbo.rpc.protocol.dubbo.DubboProtocol;
+import org.apache.dubbo.rpc.protocol.dubbo.DubboProtocol;
+import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.ArgumentCaptor;
import org.mockito.Mock;
+import java.util.List;
+
import static
org.apache.dubbo.common.constants.CommonConstants.REFERENCE_FILTER_KEY;
import static org.hamcrest.CoreMatchers.containsString;
import static org.hamcrest.CoreMatchers.nullValue;
@@ -45,10 +49,19 @@ public class DubboMonitorFactoryTest {
public void setUp() throws Exception {
initMocks(this);
this.dubboMonitorFactory = new DubboMonitorFactory();
- this.dubboMonitorFactory.setProtocol(new DubboProtocol());
+ this.dubboMonitorFactory.setProtocol(DubboProtocol.getDubboProtocol());
this.dubboMonitorFactory.setProxyFactory(proxyFactory);
}
+ @AfterEach
+ public void tearDownAfterClass() {
+ DubboProtocol.getDubboProtocol().destroy();
+ List<ProtocolServer> servers =
DubboProtocol.getDubboProtocol().getServers();
+ for (ProtocolServer server : servers) {
+ server.close();
+ }
+ }
+
@Test
public void testCreateMonitor() {
URL urlWithoutPath = URL.valueOf("http://10.10.10.11");
diff --git
a/dubbo-monitor/dubbo-monitor-default/src/test/java/org/apache/dubbo/monitor/dubbo/MetricsFilterTest.java
b/dubbo-monitor/dubbo-monitor-default/src/test/java/org/apache/dubbo/monitor/dubbo/MetricsFilterTest.java
index ada0e6f..97b67a1 100644
---
a/dubbo-monitor/dubbo-monitor-default/src/test/java/org/apache/dubbo/monitor/dubbo/MetricsFilterTest.java
+++
b/dubbo-monitor/dubbo-monitor-default/src/test/java/org/apache/dubbo/monitor/dubbo/MetricsFilterTest.java
@@ -266,7 +266,7 @@ public class MetricsFilterTest {
//ignore
}
}
- Protocol protocol = new DubboProtocol();
+ Protocol protocol = DubboProtocol.getDubboProtocol();
URL metricUrl = URL.valueOf("dubbo://" + url.getHost() + ":" +
url.getPort() + "/" + MetricsService.class.getName() + "?" + METRICS_PORT + "="
+ port);
Invoker<MetricsService> invoker = protocol.refer(MetricsService.class,
metricUrl);
invocation = new RpcInvocation("getMetricsByGroup",
DemoService.class.getName(), "", new Class<?>[]{String.class}, new
Object[]{DUBBO_GROUP});
@@ -291,6 +291,8 @@ public class MetricsFilterTest {
Assertions.assertEquals(100.0, metricMap.get("bucket_count"));
Assertions.assertEquals(100.0 / 5, metricMap.get("qps"));
Assertions.assertEquals(50.0 / 100.0, metricMap.get("success_rate"));
+
+ invoker.destroy();
}
public void testInvokeMetricsMethodService() {
@@ -320,7 +322,7 @@ public class MetricsFilterTest {
}
}
- Protocol protocol = new DubboProtocol();
+ Protocol protocol = DubboProtocol.getDubboProtocol();
URL metricUrl = URL.valueOf("dubbo://" + url.getHost() + ":" +
url.getPort() + "/" + MetricsService.class.getName() + "?" + METRICS_PORT + "="
+ port);
Invoker<MetricsService> invoker = protocol.refer(MetricsService.class,
metricUrl);
Invocation invocation = new RpcInvocation("getMetricsByGroup",
DemoService.class.getName(), "", new Class<?>[]{String.class}, new
Object[]{DUBBO_GROUP});
@@ -365,5 +367,7 @@ public class MetricsFilterTest {
methodMetricMap.get("org.apache.dubbo.monitor.dubbo.service.DemoService.void
sayName()").get("success_rate"));
Assertions.assertEquals(50.0 / 100.0,
methodMetricMap.get("org.apache.dubbo.monitor.dubbo.service.DemoService.void
echo(Integer)").get("success_rate"));
+
+ invoker.destroy();
}
}
diff --git
a/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/org/apache/dubbo/rpc/protocol/dubbo/DubboInvokerAvailableTest.java
b/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/org/apache/dubbo/rpc/protocol/dubbo/DubboInvokerAvailableTest.java
index dd296cc..4f8dcb2 100644
---
a/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/org/apache/dubbo/rpc/protocol/dubbo/DubboInvokerAvailableTest.java
+++
b/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/org/apache/dubbo/rpc/protocol/dubbo/DubboInvokerAvailableTest.java
@@ -53,7 +53,7 @@ public class DubboInvokerAvailableTest {
@BeforeEach
public void setUp() throws Exception {
- protocol = new DubboProtocol();
+ protocol = DubboProtocol.getDubboProtocol();
}
@AfterAll