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();
+    }
 
 }

Reply via email to