This is an automated email from the ASF dual-hosted git repository.

zhangzicheng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shenyu.git


The following commit(s) were added to refs/heads/master by this push:
     new c7cc68387 [type:fix] test http and rpc big request body (#3779)
c7cc68387 is described below

commit c7cc6838722a53c59138d586e13e116ebd2216f3
Author: moremind <[email protected]>
AuthorDate: Sun Jul 31 23:52:53 2022 +0800

    [type:fix] test http and rpc big request body (#3779)
    
    * [type:fix] test http and rpc big request body
---
 .../impl/DubboClassMultiParamServiceImpl.java      |  6 ++++++
 .../impl/DubboClassMultiParamServiceImpl.java      |  8 ++++++-
 .../impl/DubboClassMultiParamServiceImpl.java      |  6 ++++++
 .../annotation/impl/DubboClassTestServiceImpl.java |  2 +-
 .../xml/impl/DubboClassMultiParamServiceImpl.java  |  6 ++++++
 .../api/service/DubboClassMultiParamService.java   |  9 ++++++++
 .../src/main/http/http-test-api-local.http         |  2 +-
 .../http/controller/HttpTestController.java        | 25 ++++++++++++++++++++++
 .../api/service/SofaClientSingleParamService.java  |  1 -
 .../dubbo/ApacheDubboPluginMultiParamTest.java     | 14 ++++++++++++
 .../test/http/HttpTestControllerTest.java          | 21 ++++++++++++++++++
 11 files changed, 96 insertions(+), 4 deletions(-)

diff --git 
a/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-alibaba-dubbo-service-annotation/src/main/java/org/apache/shenyu/examples/alibaba/dubbo/service/annotation/impl/DubboClassMultiParamServiceImpl.java
 
b/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-alibaba-dubbo-service-annotation/src/main/java/org/apache/shenyu/examples/alibaba/dubbo/service/annotation/impl/DubboClassMultiParamServiceImpl.java
index e18a688f6..7f69c711d 100644
--- 
a/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-alibaba-dubbo-service-annotation/src/main/java/org/apache/shenyu/examples/alibaba/dubbo/service/annotation/impl/DubboClassMultiParamServiceImpl.java
+++ 
b/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-alibaba-dubbo-service-annotation/src/main/java/org/apache/shenyu/examples/alibaba/dubbo/service/annotation/impl/DubboClassMultiParamServiceImpl.java
@@ -88,6 +88,12 @@ public class DubboClassMultiParamServiceImpl implements 
DubboClassMultiParamServ
                 "hello world shenyu alibaba dubbo param 
saveComplexBeanTestAndName :" + complexBeanTest.getDubboTest().getName() + "-" 
+ name);
     }
 
+    @Override
+    @ShenyuDubboClient("/bigRequestBody")
+    public DubboTest saveBigRequestBody(final DubboTest dubboTest) {
+        return dubboTest;
+    }
+
     private <T> String join(final @NonNull List<T> list, final Function<T, 
String> mapper) {
         return list.stream()
                 .map(mapper)
diff --git 
a/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-alibaba-dubbo-service/src/main/java/org/apache/shenyu/examples/alibaba/dubbo/service/impl/DubboClassMultiParamServiceImpl.java
 
b/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-alibaba-dubbo-service/src/main/java/org/apache/shenyu/examples/alibaba/dubbo/service/impl/DubboClassMultiParamServiceImpl.java
index 604376647..21f80629a 100644
--- 
a/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-alibaba-dubbo-service/src/main/java/org/apache/shenyu/examples/alibaba/dubbo/service/impl/DubboClassMultiParamServiceImpl.java
+++ 
b/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-alibaba-dubbo-service/src/main/java/org/apache/shenyu/examples/alibaba/dubbo/service/impl/DubboClassMultiParamServiceImpl.java
@@ -87,7 +87,13 @@ public class DubboClassMultiParamServiceImpl implements 
DubboClassMultiParamServ
         return new DubboTest(complexBeanTest.getIdLists().toString(),
                 "hello world shenyu alibaba dubbo param 
saveComplexBeanTestAndName :" + complexBeanTest.getDubboTest().getName() + "-" 
+ name);
     }
-    
+
+    @Override
+    @ShenyuDubboClient("/bigRequestBody")
+    public DubboTest saveBigRequestBody(final DubboTest dubboTest) {
+        return dubboTest;
+    }
+
     private <T> String join(final @NonNull List<T> list, final Function<T, 
String> mapper) {
         return list.stream()
                 .map(mapper)
diff --git 
a/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-apache-dubbo-service-annotation/src/main/java/org/apache/shenyu/examples/apache/dubbo/service/annotation/impl/DubboClassMultiParamServiceImpl.java
 
b/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-apache-dubbo-service-annotation/src/main/java/org/apache/shenyu/examples/apache/dubbo/service/annotation/impl/DubboClassMultiParamServiceImpl.java
index b71c21c3d..7db97d807 100644
--- 
a/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-apache-dubbo-service-annotation/src/main/java/org/apache/shenyu/examples/apache/dubbo/service/annotation/impl/DubboClassMultiParamServiceImpl.java
+++ 
b/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-apache-dubbo-service-annotation/src/main/java/org/apache/shenyu/examples/apache/dubbo/service/annotation/impl/DubboClassMultiParamServiceImpl.java
@@ -87,6 +87,12 @@ public class DubboClassMultiParamServiceImpl implements 
DubboClassMultiParamServ
         return new DubboTest(complexBeanTest.getIdLists().toString(),
                 "hello world shenyu alibaba dubbo param 
saveComplexBeanTestAndName :" + complexBeanTest.getDubboTest().getName() + "-" 
+ name);
     }
+
+    @Override
+    @ShenyuDubboClient("/bigRequestBody")
+    public DubboTest saveBigRequestBody(final DubboTest dubboTest) {
+        return dubboTest;
+    }
     
     private <T> String join(final @NonNull List<T> list, final Function<T, 
String> mapper) {
         return list.stream()
diff --git 
a/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-apache-dubbo-service-annotation/src/main/java/org/apache/shenyu/examples/apache/dubbo/service/annotation/impl/DubboClassTestServiceImpl.java
 
b/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-apache-dubbo-service-annotation/src/main/java/org/apache/shenyu/examples/apache/dubbo/service/annotation/impl/DubboClassTestServiceImpl.java
index 64d73dc6b..df9f3840e 100644
--- 
a/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-apache-dubbo-service-annotation/src/main/java/org/apache/shenyu/examples/apache/dubbo/service/annotation/impl/DubboClassTestServiceImpl.java
+++ 
b/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-apache-dubbo-service-annotation/src/main/java/org/apache/shenyu/examples/apache/dubbo/service/annotation/impl/DubboClassTestServiceImpl.java
@@ -40,7 +40,7 @@ public class DubboClassTestServiceImpl implements 
DubboClassTestService {
     
     @Override
     public DubboTest findById(final String id) {
-        
LOGGER.info(GsonUtils.getInstance().toJson(RpcContext.getContext().getAttachments()));
+        
LOGGER.info(GsonUtils.getInstance().toJson(RpcContext.getContext().getObjectAttachments()));
         return new DubboTest(id, "hello world shenyu Apache, findById");
     }
     
diff --git 
a/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-apache-dubbo-service-xml/src/main/java/org/apache/shenyu/examples/apache/dubbo/service/xml/impl/DubboClassMultiParamServiceImpl.java
 
b/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-apache-dubbo-service-xml/src/main/java/org/apache/shenyu/examples/apache/dubbo/service/xml/impl/DubboClassMultiParamServiceImpl.java
index 679e4176b..c09173abf 100644
--- 
a/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-apache-dubbo-service-xml/src/main/java/org/apache/shenyu/examples/apache/dubbo/service/xml/impl/DubboClassMultiParamServiceImpl.java
+++ 
b/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-apache-dubbo-service-xml/src/main/java/org/apache/shenyu/examples/apache/dubbo/service/xml/impl/DubboClassMultiParamServiceImpl.java
@@ -87,6 +87,12 @@ public class DubboClassMultiParamServiceImpl implements 
DubboClassMultiParamServ
         return new DubboTest(complexBeanTest.getIdLists().toString(),
                 "hello world shenyu alibaba dubbo param 
saveComplexBeanTestAndName :" + complexBeanTest.getDubboTest().getName() + "-" 
+ name);
     }
+
+    @Override
+    @ShenyuDubboClient("/bigRequestBody")
+    public DubboTest saveBigRequestBody(final DubboTest dubboTest) {
+        return dubboTest;
+    }
     
     private <T> String join(final @NonNull List<T> list, final Function<T, 
String> mapper) {
         return list.stream()
diff --git 
a/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-dubbo-api/src/main/java/org/apache/shenyu/examples/dubbo/api/service/DubboClassMultiParamService.java
 
b/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-dubbo-api/src/main/java/org/apache/shenyu/examples/dubbo/api/service/DubboClassMultiParamService.java
index 33133837a..c8ebc9368 100644
--- 
a/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-dubbo-api/src/main/java/org/apache/shenyu/examples/dubbo/api/service/DubboClassMultiParamService.java
+++ 
b/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-dubbo-api/src/main/java/org/apache/shenyu/examples/dubbo/api/service/DubboClassMultiParamService.java
@@ -102,4 +102,13 @@ public interface DubboClassMultiParamService {
      * @return the dubbo test
      */
     DubboTest saveComplexBeanTestAndName(ComplexBeanTest complexBeanTest, 
String name);
+
+
+    /**
+     * save dubbo test for big request body.
+     *
+     * @param dubboTest dubbo test
+     * @return the dubbo test
+     */
+    DubboTest saveBigRequestBody(DubboTest dubboTest);
 }
diff --git 
a/shenyu-examples/shenyu-examples-http/src/main/http/http-test-api-local.http 
b/shenyu-examples/shenyu-examples-http/src/main/http/http-test-api-local.http
index c4fa2fc14..408f79e07 100644
--- 
a/shenyu-examples/shenyu-examples-http/src/main/http/http-test-api-local.http
+++ 
b/shenyu-examples/shenyu-examples-http/src/main/http/http-test-api-local.http
@@ -166,4 +166,4 @@ Content-Type: multipart/form-data
 # you need to change your local path
 < 
/Users/Code/shenyu/shenyu-examples/shenyu-examples-common/src/main/resources/2.txt
 
---WebAppBoundary--
\ No newline at end of file
+--WebAppBoundary--
diff --git 
a/shenyu-examples/shenyu-examples-http/src/main/java/org/apache/shenyu/examples/http/controller/HttpTestController.java
 
b/shenyu-examples/shenyu-examples-http/src/main/java/org/apache/shenyu/examples/http/controller/HttpTestController.java
index cc5bc6f0a..272519d0e 100644
--- 
a/shenyu-examples/shenyu-examples-http/src/main/java/org/apache/shenyu/examples/http/controller/HttpTestController.java
+++ 
b/shenyu-examples/shenyu-examples-http/src/main/java/org/apache/shenyu/examples/http/controller/HttpTestController.java
@@ -407,4 +407,29 @@ public class HttpTestController {
         response.setMsg(new Date().toString());
         return response;
     }
+
+    /**
+     * test null response body.
+     *
+     * @return response body
+     */
+    @GetMapping("/nullResponse")
+    public Object testResponseBodyIsNull() {
+        return null;
+    }
+
+
+    /**
+     * test big request body.
+     *
+     * @param params request body
+     * @return
+     */
+    @PostMapping("/bigRequestBody")
+    public ResultBean postBigRequestBody(@RequestBody final UserDTO params) {
+        ResultBean resultBean = new ResultBean();
+        resultBean.setCode(200);
+        resultBean.setData(params);
+        return resultBean;
+    }
 }
diff --git 
a/shenyu-examples/shenyu-examples-sofa/shenyu-examples-sofa-api/src/main/java/org/apache/shenyu/examples/sofa/api/service/SofaClientSingleParamService.java
 
b/shenyu-examples/shenyu-examples-sofa/shenyu-examples-sofa-api/src/main/java/org/apache/shenyu/examples/sofa/api/service/SofaClientSingleParamService.java
index 5a9cdfda9..c363bdffa 100644
--- 
a/shenyu-examples/shenyu-examples-sofa/shenyu-examples-sofa-api/src/main/java/org/apache/shenyu/examples/sofa/api/service/SofaClientSingleParamService.java
+++ 
b/shenyu-examples/shenyu-examples-sofa/shenyu-examples-sofa-api/src/main/java/org/apache/shenyu/examples/sofa/api/service/SofaClientSingleParamService.java
@@ -48,5 +48,4 @@ public interface SofaClientSingleParamService {
      * @return SofaSimpleTypeBean
      */
     SofaSimpleTypeBean insert(SofaSimpleTypeBean sofaSimpleTypeBean);
-    
 }
diff --git 
a/shenyu-integrated-test/shenyu-integrated-test-apache-dubbo/src/test/java/org/apache/shenyu/integrated/test/alibaba/dubbo/ApacheDubboPluginMultiParamTest.java
 
b/shenyu-integrated-test/shenyu-integrated-test-apache-dubbo/src/test/java/org/apache/shenyu/integrated/test/alibaba/dubbo/ApacheDubboPluginMultiParamTest.java
index 0afd70af0..50c2ee135 100644
--- 
a/shenyu-integrated-test/shenyu-integrated-test-apache-dubbo/src/test/java/org/apache/shenyu/integrated/test/alibaba/dubbo/ApacheDubboPluginMultiParamTest.java
+++ 
b/shenyu-integrated-test/shenyu-integrated-test-apache-dubbo/src/test/java/org/apache/shenyu/integrated/test/alibaba/dubbo/ApacheDubboPluginMultiParamTest.java
@@ -24,6 +24,8 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.IntStream;
+
+import org.apache.commons.lang3.RandomStringUtils;
 import org.apache.shenyu.common.enums.PluginEnum;
 import org.apache.shenyu.integratedtest.common.AbstractPluginDataInit;
 import org.apache.shenyu.integratedtest.common.dto.ComplexBeanTest;
@@ -147,4 +149,16 @@ public class ApacheDubboPluginMultiParamTest extends 
AbstractPluginDataInit {
         assertEquals("hello world shenyu alibaba dubbo param 
saveComplexBeanTestAndName :name122-name", dubboTest.getName());
         assertEquals("[123, 124]", dubboTest.getId());
     }
+
+    @Test
+    public void testSaveBigRequestBody() throws IOException {
+        DubboTest dubboTest = new DubboTest();
+        String id = RandomStringUtils.randomAlphanumeric(2048);
+        dubboTest.setId(id);
+        String name = RandomStringUtils.randomAlphanumeric(2048);
+        dubboTest.setName(name);
+        DubboTest dubboTestRet = 
HttpHelper.INSTANCE.postGateway("/dubbo/bigRequestBody", dubboTest, 
DubboTest.class);
+        assertEquals(id, dubboTestRet.getId());
+        assertEquals(name, dubboTestRet.getName());
+    }
 }
diff --git 
a/shenyu-integrated-test/shenyu-integrated-test-http/src/test/java/org/apache/shenyu/integrated/test/http/HttpTestControllerTest.java
 
b/shenyu-integrated-test/shenyu-integrated-test-http/src/test/java/org/apache/shenyu/integrated/test/http/HttpTestControllerTest.java
index c4612ca20..2b8409e29 100644
--- 
a/shenyu-integrated-test/shenyu-integrated-test-http/src/test/java/org/apache/shenyu/integrated/test/http/HttpTestControllerTest.java
+++ 
b/shenyu-integrated-test/shenyu-integrated-test-http/src/test/java/org/apache/shenyu/integrated/test/http/HttpTestControllerTest.java
@@ -21,6 +21,7 @@ import okhttp3.MediaType;
 import okhttp3.MultipartBody;
 import okhttp3.RequestBody;
 import okhttp3.Response;
+import org.apache.commons.lang.RandomStringUtils;
 import org.apache.shenyu.common.utils.GsonUtils;
 import org.apache.shenyu.integratedtest.common.AbstractTest;
 import org.apache.shenyu.integratedtest.common.dto.UserDTO;
@@ -40,6 +41,7 @@ import java.util.Objects;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertNull;
 import static 
org.springframework.http.MediaType.APPLICATION_OCTET_STREAM_VALUE;
 import static org.springframework.http.MediaType.MULTIPART_FORM_DATA_VALUE;
 
@@ -212,4 +214,23 @@ public final class HttpTestControllerTest extends 
AbstractTest {
         String ret = HttpHelper.INSTANCE.postGateway("/http/test/upload", 
requestBody, String.class);
         assertEquals(ret, "OK");
     }
+
+    @Test
+    public void testResponseBodyIsNull() throws IOException {
+        Object result = 
HttpHelper.INSTANCE.getFromGateway("/http/test/nullResponse", null);
+        assertNull(result);
+    }
+
+    @Test
+    public void testBigRequestBody() throws IOException {
+        UserDTO userDTO = new UserDTO();
+        String id = RandomStringUtils.randomAlphanumeric(2048);
+        userDTO.setUserId(id);
+        String name = RandomStringUtils.randomAlphanumeric(2048);
+        userDTO.setUserName(name);
+        ResultBean resultBean = 
HttpHelper.INSTANCE.postGateway("/http/test/bigRequestBody", userDTO, 
ResultBean.class);
+        UserDTO userDTORet = 
GsonUtils.getInstance().fromJson(String.valueOf(resultBean.getData()), 
UserDTO.class);
+        assertEquals(id, userDTORet.getUserId());
+        assertEquals(name, userDTORet.getUserName());
+    }
 }

Reply via email to