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);
     }
 }

Reply via email to