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