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/07/04 09:39:36 UTC

[servicecomb-java-chassis] branch weak-contract-type updated: [SCB-1347[WIP][WEAK] tiny optimize for DefaultParameterNameProvider

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

liubao pushed a commit to branch weak-contract-type
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git


The following commit(s) were added to refs/heads/weak-contract-type by this push:
     new 1740ce9  [SCB-1347[WIP][WEAK] tiny optimize for DefaultParameterNameProvider
1740ce9 is described below

commit 1740ce95868d7981c2ac4c8587be0e96e9339e99
Author: wujimin <wu...@huawei.com>
AuthorDate: Wed Jul 3 23:25:30 2019 +0800

    [SCB-1347[WIP][WEAK] tiny optimize for DefaultParameterNameProvider
---
 .../validator/DefaultParameterNameProvider.java           | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/swagger/swagger-invocation/invocation-validator/src/main/java/org/apache/servicecomb/swagger/invocation/validator/DefaultParameterNameProvider.java b/swagger/swagger-invocation/invocation-validator/src/main/java/org/apache/servicecomb/swagger/invocation/validator/DefaultParameterNameProvider.java
index 0188b67..09f78b2 100644
--- a/swagger/swagger-invocation/invocation-validator/src/main/java/org/apache/servicecomb/swagger/invocation/validator/DefaultParameterNameProvider.java
+++ b/swagger/swagger-invocation/invocation-validator/src/main/java/org/apache/servicecomb/swagger/invocation/validator/DefaultParameterNameProvider.java
@@ -20,15 +20,15 @@ import java.lang.reflect.AccessibleObject;
 import java.lang.reflect.Constructor;
 import java.lang.reflect.Executable;
 import java.lang.reflect.Method;
+import java.lang.reflect.Parameter;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
+
 import javax.validation.ParameterNameProvider;
 
 import org.apache.servicecomb.foundation.common.concurrent.ConcurrentHashMapEx;
-import org.apache.servicecomb.swagger.generator.core.utils.ParamUtils;
-
 
 public class DefaultParameterNameProvider implements ParameterNameProvider {
   private final Map<AccessibleObject, List<String>> methodCache = new ConcurrentHashMapEx<>();
@@ -44,11 +44,12 @@ public class DefaultParameterNameProvider implements ParameterNameProvider {
   }
 
   private List<String> getParameterNamesEx(Executable methodOrConstructor) {
-    int parameterCount = methodOrConstructor.getParameterCount();
-    List<String> parameterNames = new ArrayList<>(parameterCount);
-
-    for (int i = 0; i < parameterCount; i++) {
-      parameterNames.add(ParamUtils.getParameterName(methodOrConstructor, i));
+    Parameter[] parameters = methodOrConstructor.getParameters();
+    List<String> parameterNames = new ArrayList<>(parameters.length);
+    for (int idx = 0; idx < parameters.length; idx++) {
+      Parameter parameter = parameters[idx];
+      String parameterName = parameter.isNamePresent() ? parameter.getName() : "arg" + idx;
+      parameterNames.add(parameterName);
     }
     return Collections.unmodifiableList(parameterNames);
   }