From d1543f48c33603623f51f7dfd54c628c3f5a1298 Mon Sep 17 00:00:00 2001 From: "lancer.hong" Date: Mon, 30 Aug 2021 19:03:05 +0800 Subject: [PATCH] Optimize ThreadContext.java --- .../src/main/java/we/util/ThreadContext.java | 22 +++++++++---------- .../main/java/we/filter/CallbackFilter.java | 2 +- .../java/we/plugin/auth/ApiConfigService.java | 2 +- .../java/we/plugin/auth/ServiceConfig.java | 4 ++-- 4 files changed, 14 insertions(+), 16 deletions(-) diff --git a/fizz-common/src/main/java/we/util/ThreadContext.java b/fizz-common/src/main/java/we/util/ThreadContext.java index 599a9fa..fa41537 100644 --- a/fizz-common/src/main/java/we/util/ThreadContext.java +++ b/fizz-common/src/main/java/we/util/ThreadContext.java @@ -96,9 +96,7 @@ public abstract class ThreadContext { try { t = clz.newInstance(); set(key, t); - } catch (InstantiationException e) { - throw new RuntimeException(e); - } catch (IllegalAccessException e) { + } catch (InstantiationException | IllegalAccessException e) { throw new RuntimeException(e); } } @@ -113,14 +111,14 @@ public abstract class ThreadContext { return getMap().remove(key); } - public static ArrayList getArrayList(String key, Class elementType) { - return getArrayList(key, elementType, true); + public static ArrayList getArrayList(String key) { + return getArrayList(key, true); } - public static ArrayList getArrayList(String key, Class elementType, boolean clear) { - ArrayList l = (ArrayList) get(key); + public static ArrayList getArrayList(String key, boolean clear) { + ArrayList l = (ArrayList) get(key); if (l == null) { - l = new ArrayList<>(); + l = new ArrayList(); set(key, l); } else if (clear) { l.clear(); @@ -128,14 +126,14 @@ public abstract class ThreadContext { return l; } - public static HashMap getHashMap(String key, Class kType, Class vType) { - return getHashMap(key, kType, vType, true); + public static HashMap getHashMap(String key) { + return getHashMap(key, true); } - public static HashMap getHashMap(String key, Class kType, Class vType, boolean clear) { + public static HashMap getHashMap(String key, boolean clear) { HashMap m = (HashMap) get(key); if (m == null) { - m = new HashMap<>(); + m = new HashMap(); set(key ,m); } else if (clear) { m.clear(); diff --git a/fizz-core/src/main/java/we/filter/CallbackFilter.java b/fizz-core/src/main/java/we/filter/CallbackFilter.java index 40c733a..3fa9fb3 100644 --- a/fizz-core/src/main/java/we/filter/CallbackFilter.java +++ b/fizz-core/src/main/java/we/filter/CallbackFilter.java @@ -135,7 +135,7 @@ public class CallbackFilter extends FizzWebFilter { } private HashMap getService2instMap(ApiConfig ac) { - HashMap service2instMap = ThreadContext.getHashMap(s2im, String.class, ServiceInstance.class); + HashMap service2instMap = ThreadContext.getHashMap(s2im); List receivers = ac.callbackConfig.receivers; for (Receiver r : receivers) { if (r.type == ApiConfig.Type.SERVICE_DISCOVERY) { diff --git a/fizz-core/src/main/java/we/plugin/auth/ApiConfigService.java b/fizz-core/src/main/java/we/plugin/auth/ApiConfigService.java index dc03a7d..5161507 100644 --- a/fizz-core/src/main/java/we/plugin/auth/ApiConfigService.java +++ b/fizz-core/src/main/java/we/plugin/auth/ApiConfigService.java @@ -249,7 +249,7 @@ public class ApiConfigService { if (sc != null) { List apiConfigs = sc.getApiConfigs(method, path, gatewayGroup); if (!apiConfigs.isEmpty()) { - List matchPathPatterns = ThreadContext.getArrayList(mpps, String.class); + List matchPathPatterns = ThreadContext.getArrayList(mpps); for (int i = 0; i < apiConfigs.size(); i++) { ApiConfig ac = apiConfigs.get(i); if (ac.checkApp) { diff --git a/fizz-core/src/main/java/we/plugin/auth/ServiceConfig.java b/fizz-core/src/main/java/we/plugin/auth/ServiceConfig.java index 1556497..945587b 100644 --- a/fizz-core/src/main/java/we/plugin/auth/ServiceConfig.java +++ b/fizz-core/src/main/java/we/plugin/auth/ServiceConfig.java @@ -117,7 +117,7 @@ public class ServiceConfig { @JsonIgnore public List getApiConfigs(HttpMethod method, String path, String gatewayGroup) { - List matchGatewayGroup2apiConfigs = ThreadContext.getArrayList(gg2acs, GatewayGroup2apiConfig.class); + List matchGatewayGroup2apiConfigs = ThreadContext.getArrayList(gg2acs); Set>> es = path2methodToApiConfigMapMap.entrySet(); for (Map.Entry> e : es) { @@ -142,7 +142,7 @@ public class ServiceConfig { ThreadContext.set(ApiConfigService.AUTH_MSG, id + " no route match " + method + ' ' + path); return Collections.emptyList(); } else { - List lst = ThreadContext.getArrayList(acs, ApiConfig.class); + List lst = ThreadContext.getArrayList(acs); for (int i = 0; i < matchGatewayGroup2apiConfigs.size(); i++) { GatewayGroup2apiConfig gatewayGroup2apiConfig = matchGatewayGroup2apiConfigs.get(i); Set apiConfigs = gatewayGroup2apiConfig.get(gatewayGroup);