You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by li...@apache.org on 2019/10/11 10:01:51 UTC
[servicecomb-java-chassis] branch master updated: [SCB-1520]using
RPC and when first paramter type is Object,
the second parameter value will be null
This is an automated email from the ASF dual-hosted git repository.
liubao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git
The following commit(s) were added to refs/heads/master by this push:
new 858b3af [SCB-1520]using RPC and when first paramter type is Object, the second parameter value will be null
858b3af is described below
commit 858b3af923a5111bb314c122e1f76484f3b928cd
Author: liubao <bi...@qq.com>
AuthorDate: Fri Oct 11 13:50:34 2019 +0800
[SCB-1520]using RPC and when first paramter type is Object, the second parameter value will be null
---
.../servicecomb/it/schema/generic/AbstractBaseService.java | 10 ++++++++++
.../apache/servicecomb/it/schema/generic/IBaseService.java | 4 ++++
.../servicecomb/it/schema/generic/TestMyService.java | 12 ++++++++++++
.../it/schema/generic/MyEndpointWithInterface.java | 14 ++++++++++++++
.../apache/servicecomb/it/schema/generic/MyService.java | 14 ++++++++++++++
.../invocation/arguments/ArgumentsMapperFactory.java | 2 +-
6 files changed, 55 insertions(+), 1 deletion(-)
diff --git a/integration-tests/it-common/src/main/java/org/apache/servicecomb/it/schema/generic/AbstractBaseService.java b/integration-tests/it-common/src/main/java/org/apache/servicecomb/it/schema/generic/AbstractBaseService.java
index adb30f3..356f354 100644
--- a/integration-tests/it-common/src/main/java/org/apache/servicecomb/it/schema/generic/AbstractBaseService.java
+++ b/integration-tests/it-common/src/main/java/org/apache/servicecomb/it/schema/generic/AbstractBaseService.java
@@ -54,4 +54,14 @@ public class AbstractBaseService<T extends AbstractBean> implements IBaseService
public PersonBean actual() {
return target.actual();
}
+
+ @Override
+ public PersonBean objectParam(Object obj) {
+ return target.objectParam(obj);
+ }
+
+ @Override
+ public PersonBean objectParamTwo(Object obj, String name) {
+ return target.objectParamTwo(obj, name);
+ }
}
diff --git a/integration-tests/it-common/src/main/java/org/apache/servicecomb/it/schema/generic/IBaseService.java b/integration-tests/it-common/src/main/java/org/apache/servicecomb/it/schema/generic/IBaseService.java
index bbb658a..74fc5ee 100644
--- a/integration-tests/it-common/src/main/java/org/apache/servicecomb/it/schema/generic/IBaseService.java
+++ b/integration-tests/it-common/src/main/java/org/apache/servicecomb/it/schema/generic/IBaseService.java
@@ -33,4 +33,8 @@ public interface IBaseService<T extends AbstractBean> {
List<T> helloList(List<T> a);
PersonBean actual();
+
+ PersonBean objectParam(Object obj);
+
+ PersonBean objectParamTwo(Object obj, String name);
}
diff --git a/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/schema/generic/TestMyService.java b/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/schema/generic/TestMyService.java
index 4473398..655d145 100644
--- a/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/schema/generic/TestMyService.java
+++ b/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/schema/generic/TestMyService.java
@@ -44,6 +44,12 @@ public class TestMyService {
resultBean = myservice.getIntf().actual();
Assert.assertEquals("p", resultBean.getName());
+ resultBean = myservice.getIntf().objectParam("p");
+ Assert.assertEquals("p", resultBean.getName());
+
+ resultBean = myservice.getIntf().objectParamTwo("p", "p");
+ Assert.assertEquals("p:p", resultBean.getName());
+
PersonBean[] beanArray = new PersonBean[] {bean};
PersonBean[] beanArrayResult = myservice.getIntf().helloBody(beanArray);
Assert.assertEquals("p", beanArrayResult[0].getName());
@@ -67,6 +73,12 @@ public class TestMyService {
resultBean = myserviceWithInterface.getIntf().actual();
Assert.assertEquals("p", resultBean.getName());
+ resultBean = myserviceWithInterface.getIntf().objectParam("p");
+ Assert.assertEquals("p", resultBean.getName());
+
+ resultBean = myserviceWithInterface.getIntf().objectParamTwo("p", "p");
+ Assert.assertEquals("p:p", resultBean.getName());
+
PersonBean[] beanArray = new PersonBean[] {bean};
PersonBean[] beanArrayResult = myserviceWithInterface.getIntf().helloBody(beanArray);
Assert.assertEquals("p", beanArrayResult[0].getName());
diff --git a/integration-tests/it-producer/src/main/java/org/apache/servicecomb/it/schema/generic/MyEndpointWithInterface.java b/integration-tests/it-producer/src/main/java/org/apache/servicecomb/it/schema/generic/MyEndpointWithInterface.java
index 33e582f..1f8024e 100644
--- a/integration-tests/it-producer/src/main/java/org/apache/servicecomb/it/schema/generic/MyEndpointWithInterface.java
+++ b/integration-tests/it-producer/src/main/java/org/apache/servicecomb/it/schema/generic/MyEndpointWithInterface.java
@@ -53,4 +53,18 @@ public class MyEndpointWithInterface implements IMyService {
p.setName("p");
return p;
}
+
+ @Override
+ public PersonBean objectParam(Object obj) {
+ PersonBean p = new PersonBean();
+ p.setName(obj.toString());
+ return p;
+ }
+
+ @Override
+ public PersonBean objectParamTwo(Object obj, String name) {
+ PersonBean p = new PersonBean();
+ p.setName(obj.toString() + ":" + name);
+ return p;
+ }
}
diff --git a/integration-tests/it-producer/src/main/java/org/apache/servicecomb/it/schema/generic/MyService.java b/integration-tests/it-producer/src/main/java/org/apache/servicecomb/it/schema/generic/MyService.java
index 77a1b9d..1628da6 100644
--- a/integration-tests/it-producer/src/main/java/org/apache/servicecomb/it/schema/generic/MyService.java
+++ b/integration-tests/it-producer/src/main/java/org/apache/servicecomb/it/schema/generic/MyService.java
@@ -52,4 +52,18 @@ public class MyService implements IMyService {
p.setName("p");
return p;
}
+
+ @Override
+ public PersonBean objectParam(Object obj) {
+ PersonBean p = new PersonBean();
+ p.setName(obj.toString());
+ return p;
+ }
+
+ @Override
+ public PersonBean objectParamTwo(Object obj, String name) {
+ PersonBean p = new PersonBean();
+ p.setName(obj.toString() + ":" + name);
+ return p;
+ }
}
diff --git a/swagger/swagger-invocation/invocation-core/src/main/java/org/apache/servicecomb/swagger/invocation/arguments/ArgumentsMapperFactory.java b/swagger/swagger-invocation/invocation-core/src/main/java/org/apache/servicecomb/swagger/invocation/arguments/ArgumentsMapperFactory.java
index ea4b4fd..eba4d88 100644
--- a/swagger/swagger-invocation/invocation-core/src/main/java/org/apache/servicecomb/swagger/invocation/arguments/ArgumentsMapperFactory.java
+++ b/swagger/swagger-invocation/invocation-core/src/main/java/org/apache/servicecomb/swagger/invocation/arguments/ArgumentsMapperFactory.java
@@ -102,7 +102,7 @@ public abstract class ArgumentsMapperFactory<T> {
}
Type firstProviderParam = providerNormalParams.get(0).getType();
- if (TypeUtils.isAssignable(firstProviderParam, swaggerType)) {
+ if (!firstProviderParam.equals(Object.class) && TypeUtils.isAssignable(firstProviderParam, swaggerType)) {
return false;
}