Skip to content

Commit 2554715

Browse files
authored
ProtobufTypeBuilder extension load on protobuf dependency (#12799)
1 parent 2488b08 commit 2554715

File tree

1 file changed

+5
-15
lines changed
  • dubbo-metadata/dubbo-metadata-definition-protobuf/src/main/java/org/apache/dubbo/metadata/definition/protobuf

1 file changed

+5
-15
lines changed

dubbo-metadata/dubbo-metadata-definition-protobuf/src/main/java/org/apache/dubbo/metadata/definition/protobuf/ProtobufTypeBuilder.java

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
*/
1717
package org.apache.dubbo.metadata.definition.protobuf;
1818

19+
import org.apache.dubbo.common.extension.Activate;
1920
import org.apache.dubbo.common.lang.Prioritized;
2021
import org.apache.dubbo.common.logger.Logger;
2122
import org.apache.dubbo.common.logger.LoggerFactory;
@@ -37,6 +38,7 @@
3738
import java.util.regex.Matcher;
3839
import java.util.regex.Pattern;
3940

41+
@Activate(onClass = "com.google.protobuf.GeneratedMessageV3")
4042
public class ProtobufTypeBuilder implements TypeBuilder, Prioritized {
4143
private final Logger logger = LoggerFactory.getLogger(getClass());
4244
private static final Pattern MAP_PATTERN = Pattern.compile("^java\\.util\\.Map<(\\S+), (\\S+)>$");
@@ -258,11 +260,7 @@ private boolean isSimplePropertySettingMethod(Method method) {
258260
// Enum property has two setting method.
259261
// skip setXXXValue(int value)
260262
// parse setXXX(SomeEnum value)
261-
if (methodName.endsWith("Value") && types[0] == int.class) {
262-
return false;
263-
}
264-
265-
return true;
263+
return !methodName.endsWith("Value") || types[0] != int.class;
266264
}
267265

268266

@@ -289,11 +287,7 @@ boolean isListPropertyGettingMethod(Method method) {
289287
}
290288

291289
// if field name end with List, should skip
292-
if (!List.class.isAssignableFrom(type)) {
293-
return false;
294-
}
295-
296-
return true;
290+
return List.class.isAssignableFrom(type);
297291
}
298292

299293
/**
@@ -307,10 +301,6 @@ boolean isListPropertyGettingMethod(Method method) {
307301
private boolean isMapPropertySettingMethod(Method methodTemp) {
308302
String methodName = methodTemp.getName();
309303
Class[] parameters = methodTemp.getParameterTypes();
310-
if (methodName.startsWith("putAll") && parameters.length == 1 && Map.class.isAssignableFrom(parameters[0])) {
311-
return true;
312-
}
313-
314-
return false;
304+
return methodName.startsWith("putAll") && parameters.length == 1 && Map.class.isAssignableFrom(parameters[0]);
315305
}
316306
}

0 commit comments

Comments
 (0)