This is an automated email from the ASF dual-hosted git repository.
xiaoheng 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 b4d9f44 fix bug
b4d9f44 is described below
commit b4d9f44a2715217791b7cbb2793932ff4bcba739
Author: xiaoheng1 <[email protected]>
AuthorDate: Fri Jul 30 22:21:29 2021 +0800
fix bug
---
.../hessian/HessianProtocolNonCoreTest.java | 136 ---------------------
...tocolCoreTest.java => HessianProtocolTest.java} | 109 ++++++++++++++++-
2 files changed, 106 insertions(+), 139 deletions(-)
diff --git
a/dubbo-rpc/dubbo-rpc-hessian/src/test/java/org/apache/dubbo/rpc/protocol/hessian/HessianProtocolNonCoreTest.java
b/dubbo-rpc/dubbo-rpc-hessian/src/test/java/org/apache/dubbo/rpc/protocol/hessian/HessianProtocolNonCoreTest.java
deleted file mode 100644
index e373198..0000000
---
a/dubbo-rpc/dubbo-rpc-hessian/src/test/java/org/apache/dubbo/rpc/protocol/hessian/HessianProtocolNonCoreTest.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * 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.rpc.protocol.hessian;
-
-import org.apache.dubbo.common.URL;
-import org.apache.dubbo.common.extension.ExtensionLoader;
-import org.apache.dubbo.common.utils.NetUtils;
-import org.apache.dubbo.rpc.Exporter;
-import org.apache.dubbo.rpc.Invoker;
-import org.apache.dubbo.rpc.Protocol;
-import org.apache.dubbo.rpc.ProxyFactory;
-import org.apache.dubbo.rpc.RpcException;
-import org.apache.dubbo.rpc.protocol.hessian.HessianServiceImpl.MyException;
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.fail;
-
-/**
- * HessianProtocolTest
- * On some machines, there is a limit on the maximum number of threads.
- * Therefore, the test cases of the Hessian protocol are split into two files
- */
-public class HessianProtocolNonCoreTest {
-
- @Test
- public void testOverload() {
- HessianServiceImpl server = new HessianServiceImpl();
- Assertions.assertFalse(server.isCalled());
- ProxyFactory proxyFactory =
ExtensionLoader.getExtensionLoader(ProxyFactory.class).getAdaptiveExtension();
- Protocol protocol =
ExtensionLoader.getExtensionLoader(Protocol.class).getAdaptiveExtension();
- int port = NetUtils.getAvailablePort();
- URL url = URL.valueOf("hessian://127.0.0.1:" + port + "/" +
HessianService.class.getName() +
"?version=1.0.0&hessian.overload.method=true&hessian2.request=false");
- Exporter<HessianService> exporter =
protocol.export(proxyFactory.getInvoker(server, HessianService.class, url));
- Invoker<HessianService> invoker = protocol.refer(HessianService.class,
url);
- HessianService client = proxyFactory.getProxy(invoker);
- String result = client.sayHello("haha");
- Assertions.assertEquals("Hello, haha", result);
- result = client.sayHello("haha", 1);
- Assertions.assertEquals("Hello, haha. ", result);
- invoker.destroy();
- exporter.unexport();
- }
-
- @Test
- public void testHttpClient() {
- HessianServiceImpl server = new HessianServiceImpl();
- Assertions.assertFalse(server.isCalled());
- ProxyFactory proxyFactory =
ExtensionLoader.getExtensionLoader(ProxyFactory.class).getAdaptiveExtension();
- Protocol protocol =
ExtensionLoader.getExtensionLoader(Protocol.class).getAdaptiveExtension();
- int port = NetUtils.getAvailablePort();
- URL url = URL.valueOf("hessian://127.0.0.1:" + port + "/" +
HessianService.class.getName() +
"?version=1.0.0&client=httpclient&hessian.overload.method=true");
- Exporter<HessianService> exporter =
protocol.export(proxyFactory.getInvoker(server, HessianService.class, url));
- Invoker<HessianService> invoker = protocol.refer(HessianService.class,
url);
- HessianService client = proxyFactory.getProxy(invoker);
- String result = client.sayHello("haha");
- Assertions.assertTrue(server.isCalled());
- Assertions.assertEquals("Hello, haha", result);
- invoker.destroy();
- exporter.unexport();
- }
-
- @Test
- public void testTimeOut() {
- HessianServiceImpl server = new HessianServiceImpl();
- ProxyFactory proxyFactory =
ExtensionLoader.getExtensionLoader(ProxyFactory.class).getAdaptiveExtension();
- Protocol protocol =
ExtensionLoader.getExtensionLoader(Protocol.class).getAdaptiveExtension();
- int port = NetUtils.getAvailablePort();
- URL url = URL.valueOf("hessian://127.0.0.1:" + port + "/" +
HessianService.class.getName() + "?version=1.0.0&timeout=10");
- Exporter<HessianService> exporter =
protocol.export(proxyFactory.getInvoker(server, HessianService.class, url));
- Invoker<HessianService> invoker = protocol.refer(HessianService.class,
url);
- HessianService client = proxyFactory.getProxy(invoker);
- try {
- client.timeOut(6000);
- fail();
- } catch (RpcException expected) {
- Assertions.assertTrue(expected.isTimeout());
- } finally {
- invoker.destroy();
- exporter.unexport();
- }
-
- }
-
- @Test
- public void testCustomException() {
- HessianServiceImpl server = new HessianServiceImpl();
- ProxyFactory proxyFactory =
ExtensionLoader.getExtensionLoader(ProxyFactory.class).getAdaptiveExtension();
- Protocol protocol =
ExtensionLoader.getExtensionLoader(Protocol.class).getAdaptiveExtension();
- int port = NetUtils.getAvailablePort();
- URL url = URL.valueOf("hessian://127.0.0.1:" + port + "/" +
HessianService.class.getName() + "?version=1.0.0");
- Exporter<HessianService> exporter =
protocol.export(proxyFactory.getInvoker(server, HessianService.class, url));
- Invoker<HessianService> invoker = protocol.refer(HessianService.class,
url);
- HessianService client = proxyFactory.getProxy(invoker);
- try {
- client.customException();
- fail();
- } catch (MyException expected) {
-
- }
- invoker.destroy();
- exporter.unexport();
- }
-
-
- @Test
- public void testRemoteApplicationName() {
- HessianServiceImpl server = new HessianServiceImpl();
- ProxyFactory proxyFactory =
ExtensionLoader.getExtensionLoader(ProxyFactory.class).getAdaptiveExtension();
- Protocol protocol =
ExtensionLoader.getExtensionLoader(Protocol.class).getAdaptiveExtension();
- int port = NetUtils.getAvailablePort();
- URL url = URL.valueOf("hessian://127.0.0.1:" + port + "/" +
HessianService.class.getName() +
"?version=1.0.0&hessian.overload.method=true").addParameter("application",
"consumer");
- Exporter<HessianService> exporter =
protocol.export(proxyFactory.getInvoker(server, HessianService.class, url));
- Invoker<HessianService> invoker = protocol.refer(HessianService.class,
url);
- HessianService client = proxyFactory.getProxy(invoker);
- String result = client.getRemoteApplicationName();
- Assertions.assertEquals("consumer", result);
- invoker.destroy();
- exporter.unexport();
- }
-
-}
diff --git
a/dubbo-rpc/dubbo-rpc-hessian/src/test/java/org/apache/dubbo/rpc/protocol/hessian/HessianProtocolCoreTest.java
b/dubbo-rpc/dubbo-rpc-hessian/src/test/java/org/apache/dubbo/rpc/protocol/hessian/HessianProtocolTest.java
similarity index 58%
rename from
dubbo-rpc/dubbo-rpc-hessian/src/test/java/org/apache/dubbo/rpc/protocol/hessian/HessianProtocolCoreTest.java
rename to
dubbo-rpc/dubbo-rpc-hessian/src/test/java/org/apache/dubbo/rpc/protocol/hessian/HessianProtocolTest.java
index d3215e4..f24bdd6 100644
---
a/dubbo-rpc/dubbo-rpc-hessian/src/test/java/org/apache/dubbo/rpc/protocol/hessian/HessianProtocolCoreTest.java
+++
b/dubbo-rpc/dubbo-rpc-hessian/src/test/java/org/apache/dubbo/rpc/protocol/hessian/HessianProtocolTest.java
@@ -31,8 +31,10 @@ import org.apache.dubbo.rpc.Invoker;
import org.apache.dubbo.rpc.Protocol;
import org.apache.dubbo.rpc.ProxyFactory;
import org.apache.dubbo.rpc.RpcContext;
+import org.apache.dubbo.rpc.RpcException;
import org.apache.dubbo.rpc.service.GenericService;
+import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
@@ -40,12 +42,17 @@ import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
+import static org.junit.jupiter.api.Assertions.fail;
+
/**
* HessianProtocolTest
- * On some machines, there is a limit on the maximum number of threads.
- * Therefore, the test cases of the Hessian protocol are split into two files
*/
-public class HessianProtocolCoreTest {
+public class HessianProtocolTest {
+
+ @AfterEach
+ public void after() {
+
ExtensionLoader.getExtensionLoader(Protocol.class).getExtension("hessian").destroy();
+ }
@Test
public void testHessianProtocol() {
@@ -152,5 +159,101 @@ public class HessianProtocolCoreTest {
invoker.destroy();
exporter.unexport();
}
+
+ @Test
+ public void testOverload() {
+ HessianServiceImpl server = new HessianServiceImpl();
+ Assertions.assertFalse(server.isCalled());
+ ProxyFactory proxyFactory =
ExtensionLoader.getExtensionLoader(ProxyFactory.class).getAdaptiveExtension();
+ Protocol protocol =
ExtensionLoader.getExtensionLoader(Protocol.class).getAdaptiveExtension();
+ int port = NetUtils.getAvailablePort();
+ URL url = URL.valueOf("hessian://127.0.0.1:" + port + "/" +
HessianService.class.getName() +
"?version=1.0.0&hessian.overload.method=true&hessian2.request=false");
+ Exporter<HessianService> exporter =
protocol.export(proxyFactory.getInvoker(server, HessianService.class, url));
+ Invoker<HessianService> invoker = protocol.refer(HessianService.class,
url);
+ HessianService client = proxyFactory.getProxy(invoker);
+ String result = client.sayHello("haha");
+ Assertions.assertEquals("Hello, haha", result);
+ result = client.sayHello("haha", 1);
+ Assertions.assertEquals("Hello, haha. ", result);
+ invoker.destroy();
+ exporter.unexport();
+ }
+
+ @Test
+ public void testHttpClient() {
+ HessianServiceImpl server = new HessianServiceImpl();
+ Assertions.assertFalse(server.isCalled());
+ ProxyFactory proxyFactory =
ExtensionLoader.getExtensionLoader(ProxyFactory.class).getAdaptiveExtension();
+ Protocol protocol =
ExtensionLoader.getExtensionLoader(Protocol.class).getAdaptiveExtension();
+ int port = NetUtils.getAvailablePort();
+ URL url = URL.valueOf("hessian://127.0.0.1:" + port + "/" +
HessianService.class.getName() +
"?version=1.0.0&client=httpclient&hessian.overload.method=true");
+ Exporter<HessianService> exporter =
protocol.export(proxyFactory.getInvoker(server, HessianService.class, url));
+ Invoker<HessianService> invoker = protocol.refer(HessianService.class,
url);
+ HessianService client = proxyFactory.getProxy(invoker);
+ String result = client.sayHello("haha");
+ Assertions.assertTrue(server.isCalled());
+ Assertions.assertEquals("Hello, haha", result);
+ invoker.destroy();
+ exporter.unexport();
+ }
+
+ @Test
+ public void testTimeOut() {
+ HessianServiceImpl server = new HessianServiceImpl();
+ ProxyFactory proxyFactory =
ExtensionLoader.getExtensionLoader(ProxyFactory.class).getAdaptiveExtension();
+ Protocol protocol =
ExtensionLoader.getExtensionLoader(Protocol.class).getAdaptiveExtension();
+ int port = NetUtils.getAvailablePort();
+ URL url = URL.valueOf("hessian://127.0.0.1:" + port + "/" +
HessianService.class.getName() + "?version=1.0.0&timeout=10");
+ Exporter<HessianService> exporter =
protocol.export(proxyFactory.getInvoker(server, HessianService.class, url));
+ Invoker<HessianService> invoker = protocol.refer(HessianService.class,
url);
+ HessianService client = proxyFactory.getProxy(invoker);
+ try {
+ client.timeOut(6000);
+ fail();
+ } catch (RpcException expected) {
+ Assertions.assertTrue(expected.isTimeout());
+ } finally {
+ invoker.destroy();
+ exporter.unexport();
+ }
+
+ }
+
+ @Test
+ public void testCustomException() {
+ HessianServiceImpl server = new HessianServiceImpl();
+ ProxyFactory proxyFactory =
ExtensionLoader.getExtensionLoader(ProxyFactory.class).getAdaptiveExtension();
+ Protocol protocol =
ExtensionLoader.getExtensionLoader(Protocol.class).getAdaptiveExtension();
+ int port = NetUtils.getAvailablePort();
+ URL url = URL.valueOf("hessian://127.0.0.1:" + port + "/" +
HessianService.class.getName() + "?version=1.0.0");
+ Exporter<HessianService> exporter =
protocol.export(proxyFactory.getInvoker(server, HessianService.class, url));
+ Invoker<HessianService> invoker = protocol.refer(HessianService.class,
url);
+ HessianService client = proxyFactory.getProxy(invoker);
+ try {
+ client.customException();
+ fail();
+ } catch (HessianServiceImpl.MyException expected) {
+
+ }
+ invoker.destroy();
+ exporter.unexport();
+ }
+
+
+ @Test
+ public void testRemoteApplicationName() {
+ HessianServiceImpl server = new HessianServiceImpl();
+ ProxyFactory proxyFactory =
ExtensionLoader.getExtensionLoader(ProxyFactory.class).getAdaptiveExtension();
+ Protocol protocol =
ExtensionLoader.getExtensionLoader(Protocol.class).getAdaptiveExtension();
+ int port = NetUtils.getAvailablePort();
+ URL url = URL.valueOf("hessian://127.0.0.1:" + port + "/" +
HessianService.class.getName() +
"?version=1.0.0&hessian.overload.method=true").addParameter("application",
"consumer");
+ Exporter<HessianService> exporter =
protocol.export(proxyFactory.getInvoker(server, HessianService.class, url));
+ Invoker<HessianService> invoker = protocol.refer(HessianService.class,
url);
+ HessianService client = proxyFactory.getProxy(invoker);
+ String result = client.getRemoteApplicationName();
+ Assertions.assertEquals("consumer", result);
+ invoker.destroy();
+ exporter.unexport();
+ }
}