This is an automated email from the ASF dual-hosted git repository.
hefengen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shenyu.git
The following commit(s) were added to refs/heads/master by this push:
new 9e5cf2dc6 [type: refactor] Simplify Map operations by computeIfAbsent
(#4997)
9e5cf2dc6 is described below
commit 9e5cf2dc63cf30198f6bc04544041d28b9f30c02
Author: 吴伟杰 <[email protected]>
AuthorDate: Tue Aug 15 14:40:13 2023 +0800
[type: refactor] Simplify Map operations by computeIfAbsent (#4997)
---
.../apache/shenyu/e2e/engine/ShenYuExtensionContext.java | 11 +++--------
.../shenyu/e2e/engine/service/DockerServiceCompose.java | 5 +----
.../core/ShenyuInstanceRegisterRepositoryFactory.java | 14 +++-----------
.../shenyu/sdk/core/client/ShenyuSdkClientFactory.java | 7 +------
4 files changed, 8 insertions(+), 29 deletions(-)
diff --git
a/shenyu-e2e/shenyu-e2e-engine/src/main/java/org/apache/shenyu/e2e/engine/ShenYuExtensionContext.java
b/shenyu-e2e/shenyu-e2e-engine/src/main/java/org/apache/shenyu/e2e/engine/ShenYuExtensionContext.java
index 7d5948730..29c10887f 100644
---
a/shenyu-e2e/shenyu-e2e-engine/src/main/java/org/apache/shenyu/e2e/engine/ShenYuExtensionContext.java
+++
b/shenyu-e2e/shenyu-e2e-engine/src/main/java/org/apache/shenyu/e2e/engine/ShenYuExtensionContext.java
@@ -17,7 +17,6 @@
package org.apache.shenyu.e2e.engine;
-import com.google.common.collect.Maps;
import junit.framework.AssertionFailedError;
import org.apache.shenyu.e2e.client.ExternalServiceClient;
import org.apache.shenyu.e2e.client.admin.AdminClient;
@@ -28,6 +27,7 @@ import
org.apache.shenyu.e2e.engine.service.DockerServiceCompose;
import org.apache.shenyu.e2e.engine.service.HostServiceCompose;
import org.apache.shenyu.e2e.engine.service.ServiceCompose;
+import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
@@ -96,14 +96,9 @@ public class ShenYuExtensionContext {
*/
public ExternalServiceClient getExternalServiceClient(final String
externalServiceName) {
if (Objects.isNull(externalServiceClientMap)) {
- externalServiceClientMap = Maps.newHashMap();
+ externalServiceClientMap = new HashMap<>();
}
- if (externalServiceClientMap.containsKey(externalServiceName)) {
- return externalServiceClientMap.get(externalServiceName);
- }
- ExternalServiceClient client =
serviceCompose.newExternalServiceClient(externalServiceName);
- externalServiceClientMap.put(externalServiceName, client);
- return client;
+ return externalServiceClientMap.computeIfAbsent(externalServiceName,
serviceCompose::newExternalServiceClient);
}
/**
diff --git
a/shenyu-e2e/shenyu-e2e-engine/src/main/java/org/apache/shenyu/e2e/engine/service/DockerServiceCompose.java
b/shenyu-e2e/shenyu-e2e-engine/src/main/java/org/apache/shenyu/e2e/engine/service/DockerServiceCompose.java
index 9addc36a6..4ddcd2d30 100644
---
a/shenyu-e2e/shenyu-e2e-engine/src/main/java/org/apache/shenyu/e2e/engine/service/DockerServiceCompose.java
+++
b/shenyu-e2e/shenyu-e2e-engine/src/main/java/org/apache/shenyu/e2e/engine/service/DockerServiceCompose.java
@@ -251,10 +251,7 @@ public class DockerServiceCompose implements
ServiceCompose {
Map<String, Object> currentMap = yamlData;
for (int i = 0; i < subModulePath.length - 1; i++) {
- if (!currentMap.containsKey(subModulePath[i])) {
- currentMap.put(subModulePath[i], new LinkedHashMap<>());
- }
- currentMap = (Map<String, Object>)
currentMap.get(subModulePath[i]);
+ currentMap = (Map<String, Object>)
currentMap.computeIfAbsent(subModulePath[i], unused -> new LinkedHashMap<>());
}
currentMap.put(subModulePath[subModulePath.length - 1], newValue);
diff --git
a/shenyu-registry/shenyu-registry-core/src/main/java/org/apache/shenyu/registry/core/ShenyuInstanceRegisterRepositoryFactory.java
b/shenyu-registry/shenyu-registry-core/src/main/java/org/apache/shenyu/registry/core/ShenyuInstanceRegisterRepositoryFactory.java
index 2984467d3..9a6eea5ee 100644
---
a/shenyu-registry/shenyu-registry-core/src/main/java/org/apache/shenyu/registry/core/ShenyuInstanceRegisterRepositoryFactory.java
+++
b/shenyu-registry/shenyu-registry-core/src/main/java/org/apache/shenyu/registry/core/ShenyuInstanceRegisterRepositoryFactory.java
@@ -38,12 +38,7 @@ public final class ShenyuInstanceRegisterRepositoryFactory {
* @return the shenyu instance register repository
*/
public static ShenyuInstanceRegisterRepository newInstance(final String
registerType) {
- if (!REPOSITORY_MAP.containsKey(registerType)) {
- ShenyuInstanceRegisterRepository result =
ExtensionLoader.getExtensionLoader(ShenyuInstanceRegisterRepository.class).getJoin(registerType);
- REPOSITORY_MAP.put(registerType, result);
- return result;
- }
- return REPOSITORY_MAP.get(registerType);
+ return REPOSITORY_MAP.computeIfAbsent(registerType,
ExtensionLoader.getExtensionLoader(ShenyuInstanceRegisterRepository.class)::getJoin);
}
/**
@@ -53,13 +48,10 @@ public final class ShenyuInstanceRegisterRepositoryFactory {
* @return the shenyu instance register repository
*/
public static ShenyuInstanceRegisterRepository newAndInitInstance(final
RegisterConfig config) {
- String registerType = config.getRegisterType();
- if (!REPOSITORY_MAP.containsKey(registerType)) {
+ return REPOSITORY_MAP.computeIfAbsent(config.getRegisterType(),
registerType -> {
ShenyuInstanceRegisterRepository result =
ExtensionLoader.getExtensionLoader(ShenyuInstanceRegisterRepository.class).getJoin(registerType);
result.init(config);
- REPOSITORY_MAP.put(registerType, result);
return result;
- }
- return REPOSITORY_MAP.get(registerType);
+ });
}
}
diff --git
a/shenyu-sdk/shenyu-sdk-core/src/main/java/org/apache/shenyu/sdk/core/client/ShenyuSdkClientFactory.java
b/shenyu-sdk/shenyu-sdk-core/src/main/java/org/apache/shenyu/sdk/core/client/ShenyuSdkClientFactory.java
index ddbcf04a8..44bf34ec5 100644
---
a/shenyu-sdk/shenyu-sdk-core/src/main/java/org/apache/shenyu/sdk/core/client/ShenyuSdkClientFactory.java
+++
b/shenyu-sdk/shenyu-sdk-core/src/main/java/org/apache/shenyu/sdk/core/client/ShenyuSdkClientFactory.java
@@ -36,11 +36,6 @@ public class ShenyuSdkClientFactory {
* @return the shenyu instance register repository
*/
public static ShenyuSdkClient newInstance(final String clientType) {
- if (!SDK_CLIENT_MAP.containsKey(clientType)) {
- ShenyuSdkClient result =
ExtensionLoader.getExtensionLoader(ShenyuSdkClient.class).getJoin(clientType);
- SDK_CLIENT_MAP.put(clientType, result);
- return result;
- }
- return SDK_CLIENT_MAP.get(clientType);
+ return SDK_CLIENT_MAP.computeIfAbsent(clientType,
ExtensionLoader.getExtensionLoader(ShenyuSdkClient.class)::getJoin);
}
}