You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by al...@apache.org on 2021/06/24 08:06:55 UTC
[dubbo] branch master updated: annotation cannt be serializable,
so change to String (#7908)
This is an automated email from the ASF dual-hosted git repository.
albumenj 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 99ccb57 annotation cannt be serializable,so change to String (#7908)
99ccb57 is described below
commit 99ccb57025e2b1cf56e1155a67c801702b589670
Author: 老夫正年轻 <ka...@163.com>
AuthorDate: Thu Jun 24 16:06:42 2021 +0800
annotation cannt be serializable,so change to String (#7908)
* annotation cannt be serializable,so change to String
* delete unuse import
* fix checkstyle
* codestyle fix
Co-authored-by: kalman03 <ka...@qq.com>
---
.../definition/ServiceDefinitionBuilder.java | 21 +++++++++++++++------
.../metadata/definition/model/MethodDefinition.java | 15 +++++++--------
.../definition/model/ServiceDefinition.java | 7 +++----
3 files changed, 25 insertions(+), 18 deletions(-)
diff --git a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/definition/ServiceDefinitionBuilder.java b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/definition/ServiceDefinitionBuilder.java
index 7e3aa94..e89b4e7 100755
--- a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/definition/ServiceDefinitionBuilder.java
+++ b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/definition/ServiceDefinitionBuilder.java
@@ -16,19 +16,17 @@
*/
package org.apache.dubbo.metadata.definition;
+import com.google.gson.Gson;
import org.apache.dubbo.metadata.definition.model.FullServiceDefinition;
import org.apache.dubbo.metadata.definition.model.MethodDefinition;
import org.apache.dubbo.metadata.definition.model.ServiceDefinition;
import org.apache.dubbo.metadata.definition.model.TypeDefinition;
import org.apache.dubbo.metadata.definition.util.ClassUtils;
-import com.google.gson.Gson;
-
import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
import java.lang.reflect.Type;
-import java.util.Arrays;
-import java.util.Collections;
+import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -65,7 +63,7 @@ public final class ServiceDefinitionBuilder {
sd.setCanonicalName(interfaceClass.getCanonicalName());
sd.setCodeSource(ClassUtils.getCodeSource(interfaceClass));
Annotation[] classAnnotations = interfaceClass.getAnnotations();
- sd.setAnnotations(classAnnotations == null ? Collections.emptyList() : Arrays.asList(classAnnotations));
+ sd.setAnnotations(annotationToStringList(classAnnotations));
TypeDefinitionBuilder builder = new TypeDefinitionBuilder();
List<Method> methods = ClassUtils.getPublicNonStaticMethods(interfaceClass);
@@ -74,7 +72,7 @@ public final class ServiceDefinitionBuilder {
md.setName(method.getName());
Annotation[] methodAnnotations = method.getAnnotations();
- md.setAnnotations(methodAnnotations == null ? Collections.emptyList() : Arrays.asList(methodAnnotations));
+ md.setAnnotations(annotationToStringList(methodAnnotations));
// Process parameter types.
Class<?>[] paramTypes = method.getParameterTypes();
@@ -97,6 +95,17 @@ public final class ServiceDefinitionBuilder {
sd.setTypes(builder.getTypeDefinitions());
}
+ private static List<String> annotationToStringList(Annotation[] annotations) {
+ List<String> list = new ArrayList<>();
+ if (annotations == null) {
+ return list;
+ }
+ for (Annotation annotation : annotations) {
+ list.add(annotation.toString());
+ }
+ return list;
+ }
+
/**
* Describe a Java interface in Json schema.
*
diff --git a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/definition/model/MethodDefinition.java b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/definition/model/MethodDefinition.java
index f409151..e5ba736 100755
--- a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/definition/model/MethodDefinition.java
+++ b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/definition/model/MethodDefinition.java
@@ -16,17 +16,16 @@
*/
package org.apache.dubbo.metadata.definition.model;
+import static org.apache.dubbo.metadata.definition.model.TypeDefinition.formatType;
+import static org.apache.dubbo.metadata.definition.model.TypeDefinition.formatTypes;
+
import java.io.Serializable;
-import java.lang.annotation.Annotation;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
-import static org.apache.dubbo.metadata.definition.model.TypeDefinition.formatType;
-import static org.apache.dubbo.metadata.definition.model.TypeDefinition.formatTypes;
-
/**
* 2015/1/27.
*/
@@ -36,8 +35,8 @@ public class MethodDefinition implements Serializable {
private String[] parameterTypes;
private String returnType;
private List<TypeDefinition> parameters;
- private List<Annotation> annotations;
-
+ private List<String> annotations;
+
public String getName() {
return name;
}
@@ -73,14 +72,14 @@ public class MethodDefinition implements Serializable {
this.returnType = formatType(returnType);
}
- public List<Annotation> getAnnotations() {
+ public List<String> getAnnotations() {
if (annotations == null) {
annotations = Collections.emptyList();
}
return annotations;
}
- public void setAnnotations(List<Annotation> annotations) {
+ public void setAnnotations(List<String> annotations) {
this.annotations = annotations;
}
diff --git a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/definition/model/ServiceDefinition.java b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/definition/model/ServiceDefinition.java
index deb26e2..bf0e172 100755
--- a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/definition/model/ServiceDefinition.java
+++ b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/definition/model/ServiceDefinition.java
@@ -17,7 +17,6 @@
package org.apache.dubbo.metadata.definition.model;
import java.io.Serializable;
-import java.lang.annotation.Annotation;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -32,7 +31,7 @@ public class ServiceDefinition implements Serializable {
private String codeSource;
private List<MethodDefinition> methods;
private List<TypeDefinition> types;
- private List<Annotation> annotations;
+ private List<String> annotations;
public String getCanonicalName() {
return canonicalName;
@@ -56,7 +55,7 @@ public class ServiceDefinition implements Serializable {
return types;
}
- public List<Annotation> getAnnotations() {
+ public List<String> getAnnotations() {
if (annotations == null) {
annotations = Collections.emptyList();
}
@@ -83,7 +82,7 @@ public class ServiceDefinition implements Serializable {
this.types = types;
}
- public void setAnnotations(List<Annotation> annotations) {
+ public void setAnnotations(List<String> annotations) {
this.annotations = annotations;
}