[SCB-2598] optimize toArray performance (#3117)
diff --git a/common/common-protobuf/src/main/java/org/apache/servicecomb/codec/protobuf/definition/ProtobufManager.java b/common/common-protobuf/src/main/java/org/apache/servicecomb/codec/protobuf/definition/ProtobufManager.java
index f0b0fd2..0782178 100644
--- a/common/common-protobuf/src/main/java/org/apache/servicecomb/codec/protobuf/definition/ProtobufManager.java
+++ b/common/common-protobuf/src/main/java/org/apache/servicecomb/codec/protobuf/definition/ProtobufManager.java
@@ -19,6 +19,7 @@
import java.util.HashMap;
import java.util.Map;
+import java.util.Objects;
import javax.ws.rs.core.Response.Status;
@@ -68,8 +69,7 @@
if (!uniqueOperationId.equals(that.uniqueOperationId)) {
return false;
}
- return responseType != null ? responseType.equals(that.responseType)
- : that.responseType == null;
+ return Objects.equals(responseType, that.responseType);
}
@Override
diff --git a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/codec/RestObjectMapperFactory.java b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/codec/RestObjectMapperFactory.java
index 51000b6..d54800a 100644
--- a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/codec/RestObjectMapperFactory.java
+++ b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/codec/RestObjectMapperFactory.java
@@ -45,7 +45,7 @@
// not use mapper.findAndRegisterModules()
// because we need to sort modules, so that customers can override our default module
List<Module> modules = SPIServiceUtils.getOrLoadSortedService(Module.class);
- mapper.registerModules(modules.toArray(new Module[modules.size()]));
+ mapper.registerModules(modules.toArray(new Module[0]));
}
public static AbstractRestObjectMapper getConsumerWriterMapper() {
diff --git a/core/src/main/java/org/apache/servicecomb/core/ConfigurationSpringInitializer.java b/core/src/main/java/org/apache/servicecomb/core/ConfigurationSpringInitializer.java
index d61d370..790b48a 100644
--- a/core/src/main/java/org/apache/servicecomb/core/ConfigurationSpringInitializer.java
+++ b/core/src/main/java/org/apache/servicecomb/core/ConfigurationSpringInitializer.java
@@ -192,7 +192,7 @@
loader.getConfigModels()
.forEach(configModel -> values.putAll(YAMLUtil.retrieveItems("", configModel.getConfig())));
- propertyNames = values.keySet().toArray(new String[values.size()]);
+ propertyNames = values.keySet().toArray(new String[0]);
}
@Override
diff --git a/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/utils/BeanUtils.java b/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/utils/BeanUtils.java
index 77abe72..ddbf554 100644
--- a/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/utils/BeanUtils.java
+++ b/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/utils/BeanUtils.java
@@ -62,7 +62,7 @@
Set<String> locationSet = new LinkedHashSet<>();
addBeanLocation(locationSet, DEFAULT_BEAN_RESOURCE);
addBeanLocation(locationSet, configLocations);
- context = new ClassPathXmlApplicationContext(locationSet.toArray(new String[locationSet.size()]));
+ context = new ClassPathXmlApplicationContext(locationSet.toArray(new String[0]));
}
public static void addBeanLocation(Set<String> locationSet, String... location) {
diff --git a/foundations/foundation-config/src/main/java/org/apache/servicecomb/config/inject/PlaceholderResolver.java b/foundations/foundation-config/src/main/java/org/apache/servicecomb/config/inject/PlaceholderResolver.java
index 2093561..050bcf5 100644
--- a/foundations/foundation-config/src/main/java/org/apache/servicecomb/config/inject/PlaceholderResolver.java
+++ b/foundations/foundation-config/src/main/java/org/apache/servicecomb/config/inject/PlaceholderResolver.java
@@ -86,10 +86,7 @@
resolve(row, replaced);
}
- for (int idx = 0; idx < replaced.size(); idx++) {
- String row = replaced.get(idx);
- replaced.set(idx, row.replace("\\$", "$"));
- }
+ replaced.replaceAll(s -> s.replace("\\$", "$"));
return replaced;
}
diff --git a/foundations/foundation-ssl/src/main/java/org/apache/servicecomb/foundation/ssl/KeyStoreUtil.java b/foundations/foundation-ssl/src/main/java/org/apache/servicecomb/foundation/ssl/KeyStoreUtil.java
index 944761b..0666365 100644
--- a/foundations/foundation-ssl/src/main/java/org/apache/servicecomb/foundation/ssl/KeyStoreUtil.java
+++ b/foundations/foundation-ssl/src/main/java/org/apache/servicecomb/foundation/ssl/KeyStoreUtil.java
@@ -87,7 +87,7 @@
CertificateFactory cf = CertificateFactory.getInstance("X.509");
is = new FileInputStream(crlfile);
Collection c = cf.generateCRLs(is);
- return (CRL[]) c.toArray(new CRL[c.size()]);
+ return (CRL[]) c.toArray(new CRL[0]);
} catch (CertificateException e) {
throw new IllegalArgumentException("bad cert file.");
} catch (FileNotFoundException e) {
diff --git a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/http/StandardHttpServletRequestEx.java b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/http/StandardHttpServletRequestEx.java
index c2d179b..3014574 100644
--- a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/http/StandardHttpServletRequestEx.java
+++ b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/http/StandardHttpServletRequestEx.java
@@ -123,7 +123,7 @@
private Map<String, String[]> convertListMapToArrayMap(Map<String, List<String>> listMap) {
Map<String, String[]> arrayMap = new HashMap<>();
for (Entry<String, List<String>> entry : listMap.entrySet()) {
- arrayMap.put(entry.getKey(), entry.getValue().toArray(new String[entry.getValue().size()]));
+ arrayMap.put(entry.getKey(), entry.getValue().toArray(new String[0]));
}
return arrayMap;
}
diff --git a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/http/VertxServerRequestToHttpServletRequest.java b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/http/VertxServerRequestToHttpServletRequest.java
index 5649477..e0e72b0 100644
--- a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/http/VertxServerRequestToHttpServletRequest.java
+++ b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/http/VertxServerRequestToHttpServletRequest.java
@@ -134,7 +134,7 @@
}
List<String> paramList = this.vertxRequest.params().getAll(name);
- return paramList.toArray(new String[paramList.size()]);
+ return paramList.toArray(new String[0]);
}
@Override
diff --git a/huawei-cloud/darklaunch/src/main/java/org/apache/servicecomb/darklaunch/oper/ConditionFactory.java b/huawei-cloud/darklaunch/src/main/java/org/apache/servicecomb/darklaunch/oper/ConditionFactory.java
index 2b18ac9..d7b410c 100644
--- a/huawei-cloud/darklaunch/src/main/java/org/apache/servicecomb/darklaunch/oper/ConditionFactory.java
+++ b/huawei-cloud/darklaunch/src/main/java/org/apache/servicecomb/darklaunch/oper/ConditionFactory.java
@@ -18,7 +18,6 @@
package org.apache.servicecomb.darklaunch.oper;
import java.util.Arrays;
-import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
import org.apache.servicecomb.darklaunch.DarklaunchRule;
@@ -47,9 +46,7 @@
private static String[] split(String str, String sep) {
return Arrays.stream(str.split(sep))
- .filter(s -> !StringUtils.isEmpty(s))
- .collect(Collectors.toList())
- .toArray(new String[0]);
+ .filter(s -> !StringUtils.isEmpty(s)).toArray(String[]::new);
}
public static Condition buildRateCondition(String strCondition) {
diff --git a/providers/provider-springmvc/src/main/java/org/apache/servicecomb/provider/springmvc/reference/CommonToHttpServletRequest.java b/providers/provider-springmvc/src/main/java/org/apache/servicecomb/provider/springmvc/reference/CommonToHttpServletRequest.java
index 0a8b80e..69834eb 100644
--- a/providers/provider-springmvc/src/main/java/org/apache/servicecomb/provider/springmvc/reference/CommonToHttpServletRequest.java
+++ b/providers/provider-springmvc/src/main/java/org/apache/servicecomb/provider/springmvc/reference/CommonToHttpServletRequest.java
@@ -96,7 +96,7 @@
return new String[0];
}
- return queryValues.toArray(new String[queryValues.size()]);
+ return queryValues.toArray(new String[0]);
}
@Override
@@ -148,7 +148,7 @@
}
}
- return result.toArray(new Cookie[result.size()]);
+ return result.toArray(new Cookie[0]);
}
@Override
diff --git a/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/generator/SwaggerGeneratorUtils.java b/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/generator/SwaggerGeneratorUtils.java
index 4ceb2d6..61bd96f 100644
--- a/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/generator/SwaggerGeneratorUtils.java
+++ b/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/generator/SwaggerGeneratorUtils.java
@@ -103,7 +103,7 @@
}
List<Module> modules = SPIServiceUtils.getOrLoadSortedService(Module.class);
- Json.mapper().registerModules(modules.toArray(new Module[modules.size()]));
+ Json.mapper().registerModules(modules.toArray(new Module[0]));
}
private SwaggerGeneratorUtils() {
@@ -163,7 +163,7 @@
if (propertyDefinition.getSetter() != null) {
Collections.addAll(annotations, propertyDefinition.getSetter().getAnnotated().getAnnotations());
}
- return annotations.toArray(new Annotation[annotations.size()]);
+ return annotations.toArray(new Annotation[0]);
}
public static String collectParameterName(java.lang.reflect.Parameter methodParameter) {
diff --git a/swagger/swagger-invocation/invocation-core/src/main/java/org/apache/servicecomb/swagger/invocation/arguments/consumer/ConsumerArgumentToBodyField.java b/swagger/swagger-invocation/invocation-core/src/main/java/org/apache/servicecomb/swagger/invocation/arguments/consumer/ConsumerArgumentToBodyField.java
index fb47f53..1fd5fda 100644
--- a/swagger/swagger-invocation/invocation-core/src/main/java/org/apache/servicecomb/swagger/invocation/arguments/consumer/ConsumerArgumentToBodyField.java
+++ b/swagger/swagger-invocation/invocation-core/src/main/java/org/apache/servicecomb/swagger/invocation/arguments/consumer/ConsumerArgumentToBodyField.java
@@ -48,9 +48,7 @@
Map<String, Object> swaggerArguments,
Map<String, Object> invocationArguments) {
Object consumerArgument = invocationArguments.get(invocationArgumentName);
- if (swaggerArguments.get(swaggerArgumentName) == null) {
- swaggerArguments.put(swaggerArgumentName, new LinkedHashMap<String, Object>());
- }
+ swaggerArguments.computeIfAbsent(swaggerArgumentName, k -> new LinkedHashMap<String, Object>());
if (consumerArgument != null) {
((Map<String, Object>) swaggerArguments.get(swaggerArgumentName)).put(parameterName, consumerArgument);
}
diff --git a/swagger/swagger-invocation/invocation-core/src/main/java/org/apache/servicecomb/swagger/invocation/converter/impl/part/PartListToPartArrayConverter.java b/swagger/swagger-invocation/invocation-core/src/main/java/org/apache/servicecomb/swagger/invocation/converter/impl/part/PartListToPartArrayConverter.java
index 5f64d70..50f5819 100644
--- a/swagger/swagger-invocation/invocation-core/src/main/java/org/apache/servicecomb/swagger/invocation/converter/impl/part/PartListToPartArrayConverter.java
+++ b/swagger/swagger-invocation/invocation-core/src/main/java/org/apache/servicecomb/swagger/invocation/converter/impl/part/PartListToPartArrayConverter.java
@@ -44,6 +44,6 @@
@SuppressWarnings("unchecked")
List<Part> partList = (List<Part>) value;
- return partList.toArray(new Part[partList.size()]);
+ return partList.toArray(new Part[0]);
}
}
diff --git a/swagger/swagger-invocation/invocation-core/src/test/java/org/apache/servicecomb/swagger/invocation/models/JaxrsImpl.java b/swagger/swagger-invocation/invocation-core/src/test/java/org/apache/servicecomb/swagger/invocation/models/JaxrsImpl.java
index fe02aa2..21797d9 100644
--- a/swagger/swagger-invocation/invocation-core/src/test/java/org/apache/servicecomb/swagger/invocation/models/JaxrsImpl.java
+++ b/swagger/swagger-invocation/invocation-core/src/test/java/org/apache/servicecomb/swagger/invocation/models/JaxrsImpl.java
@@ -89,7 +89,7 @@
@Path("/testListArray")
@POST
public String[] testListArray(List<String> s) {
- return s.toArray(new String[s.size()]);
+ return s.toArray(new String[0]);
}
@Path("/testListList")
@@ -113,7 +113,7 @@
@Path("/testObjectListArray")
@POST
public Person[] testObjectListArray(List<Person> s) {
- return s.toArray(new Person[s.size()]);
+ return s.toArray(new Person[0]);
}
@Path("/testObjectListList")
diff --git a/swagger/swagger-invocation/invocation-core/src/test/java/org/apache/servicecomb/swagger/invocation/models/PojoImpl.java b/swagger/swagger-invocation/invocation-core/src/test/java/org/apache/servicecomb/swagger/invocation/models/PojoImpl.java
index 611a5c7..e9759cb 100644
--- a/swagger/swagger-invocation/invocation-core/src/test/java/org/apache/servicecomb/swagger/invocation/models/PojoImpl.java
+++ b/swagger/swagger-invocation/invocation-core/src/test/java/org/apache/servicecomb/swagger/invocation/models/PojoImpl.java
@@ -64,7 +64,7 @@
}
public String[] testListArray(List<String> s) {
- return s.toArray(new String[s.size()]);
+ return s.toArray(new String[0]);
}
public List<String> testListList(List<String> s) {
@@ -80,7 +80,7 @@
}
public Person[] testObjectListArray(List<Person> s) {
- return s.toArray(new Person[s.size()]);
+ return s.toArray(new Person[0]);
}
public List<Person> testObjectListList(List<Person> s) {
diff --git a/transports/transport-rest/transport-rest-servlet/src/main/java/org/apache/servicecomb/transport/rest/servlet/CseXmlWebApplicationContext.java b/transports/transport-rest/transport-rest-servlet/src/main/java/org/apache/servicecomb/transport/rest/servlet/CseXmlWebApplicationContext.java
index 687bbd3..f8831de 100644
--- a/transports/transport-rest/transport-rest-servlet/src/main/java/org/apache/servicecomb/transport/rest/servlet/CseXmlWebApplicationContext.java
+++ b/transports/transport-rest/transport-rest-servlet/src/main/java/org/apache/servicecomb/transport/rest/servlet/CseXmlWebApplicationContext.java
@@ -80,6 +80,6 @@
}
}
- return locationSet.toArray(new String[locationSet.size()]);
+ return locationSet.toArray(new String[0]);
}
}