| @@ -19,6 +19,7 @@ package me.chanjar.weixin.common.util.res; | |||||
| import java.text.MessageFormat; | import java.text.MessageFormat; | ||||
| import java.util.*; | import java.util.*; | ||||
| import java.util.concurrent.ConcurrentHashMap; | |||||
| /** | /** | ||||
| * An internationalization / localization helper class which reduces | * An internationalization / localization helper class which reduces | ||||
| @@ -46,7 +47,7 @@ import java.util.*; | |||||
| */ | */ | ||||
| public class StringManager { | public class StringManager { | ||||
| private static final Map<String, Map<Locale, StringManager>> MANAGERS = new Hashtable<>(); | |||||
| private static final Map<String, Map<Locale, StringManager>> MANAGERS = new ConcurrentHashMap<>(); | |||||
| private static int LOCALE_CACHE_SIZE = 10; | private static int LOCALE_CACHE_SIZE = 10; | ||||
| /** | /** | ||||
| * The ResourceBundle for this StringManager. | * The ResourceBundle for this StringManager. | ||||
| @@ -10,9 +10,9 @@ import com.google.gson.JsonParseException; | |||||
| import me.chanjar.weixin.common.util.json.GsonHelper; | import me.chanjar.weixin.common.util.json.GsonHelper; | ||||
| import java.lang.reflect.Type; | import java.lang.reflect.Type; | ||||
| import java.util.Hashtable; | |||||
| import java.util.LinkedHashMap; | import java.util.LinkedHashMap; | ||||
| import java.util.Map; | import java.util.Map; | ||||
| import java.util.concurrent.ConcurrentHashMap; | |||||
| /** | /** | ||||
| * @author <a href="https://github.com/charmingoh">Charming</a> | * @author <a href="https://github.com/charmingoh">Charming</a> | ||||
| @@ -36,7 +36,7 @@ public class WxMaVisitDistributionGsonAdapter implements JsonDeserializer<WxMaVi | |||||
| } | } | ||||
| JsonArray listArray = object.getAsJsonArray("list"); | JsonArray listArray = object.getAsJsonArray("list"); | ||||
| Map<String, Map<Integer, Integer>> list = new Hashtable<>(listArray.size()); | |||||
| Map<String, Map<Integer, Integer>> list = new ConcurrentHashMap<>(listArray.size()); | |||||
| for (JsonElement indexElement : listArray) { | for (JsonElement indexElement : listArray) { | ||||
| JsonObject indexObject = indexElement.getAsJsonObject(); | JsonObject indexObject = indexElement.getAsJsonObject(); | ||||
| String index = GsonHelper.getString(indexObject, "index"); | String index = GsonHelper.getString(indexObject, "index"); | ||||
| @@ -27,18 +27,18 @@ import org.apache.commons.lang3.StringUtils; | |||||
| import org.slf4j.Logger; | import org.slf4j.Logger; | ||||
| import org.slf4j.LoggerFactory; | import org.slf4j.LoggerFactory; | ||||
| import java.util.Hashtable; | |||||
| import java.util.List; | import java.util.List; | ||||
| import java.util.Map; | import java.util.Map; | ||||
| import java.util.concurrent.ConcurrentHashMap; | |||||
| /** | /** | ||||
| * @author <a href="https://github.com/007gzs">007</a> | * @author <a href="https://github.com/007gzs">007</a> | ||||
| */ | */ | ||||
| public class WxOpenComponentServiceImpl implements WxOpenComponentService { | public class WxOpenComponentServiceImpl implements WxOpenComponentService { | ||||
| private static final JsonParser JSON_PARSER = new JsonParser(); | private static final JsonParser JSON_PARSER = new JsonParser(); | ||||
| private static final Map<String, WxOpenMaService> WX_OPEN_MA_SERVICE_MAP = new Hashtable<>(); | |||||
| private static final Map<String, WxMpService> WX_OPEN_MP_SERVICE_MAP = new Hashtable<>(); | |||||
| private static final Map<String, WxOpenFastMaService> WX_OPEN_FAST_MA_SERVICE_MAP = new Hashtable<>(); | |||||
| private static final Map<String, WxOpenMaService> WX_OPEN_MA_SERVICE_MAP = new ConcurrentHashMap<>(); | |||||
| private static final Map<String, WxMpService> WX_OPEN_MP_SERVICE_MAP = new ConcurrentHashMap<>(); | |||||
| private static final Map<String, WxOpenFastMaService> WX_OPEN_FAST_MA_SERVICE_MAP = new ConcurrentHashMap<>(); | |||||
| protected final Logger log = LoggerFactory.getLogger(this.getClass()); | protected final Logger log = LoggerFactory.getLogger(this.getClass()); | ||||
| private WxOpenService wxOpenService; | private WxOpenService wxOpenService; | ||||
| @@ -2,8 +2,8 @@ package me.chanjar.weixin.open.api.impl; | |||||
| import java.io.File; | import java.io.File; | ||||
| import java.util.Hashtable; | |||||
| import java.util.Map; | import java.util.Map; | ||||
| import java.util.concurrent.ConcurrentHashMap; | |||||
| import java.util.concurrent.locks.Lock; | import java.util.concurrent.locks.Lock; | ||||
| import java.util.concurrent.locks.ReentrantLock; | import java.util.concurrent.locks.ReentrantLock; | ||||
| @@ -37,10 +37,10 @@ public class WxOpenInMemoryConfigStorage implements WxOpenConfigStorage { | |||||
| private String httpProxyPassword; | private String httpProxyPassword; | ||||
| private ApacheHttpClientBuilder apacheHttpClientBuilder; | private ApacheHttpClientBuilder apacheHttpClientBuilder; | ||||
| private Map<String, Token> authorizerRefreshTokens = new Hashtable<>(); | |||||
| private Map<String, Token> authorizerAccessTokens = new Hashtable<>(); | |||||
| private Map<String, Token> jsapiTickets = new Hashtable<>(); | |||||
| private Map<String, Token> cardApiTickets = new Hashtable<>(); | |||||
| private Map<String, Token> authorizerRefreshTokens = new ConcurrentHashMap<>(); | |||||
| private Map<String, Token> authorizerAccessTokens = new ConcurrentHashMap<>(); | |||||
| private Map<String, Token> jsapiTickets = new ConcurrentHashMap<>(); | |||||
| private Map<String, Token> cardApiTickets = new ConcurrentHashMap<>(); | |||||
| @Override | @Override | ||||
| public String getComponentAppId() { | public String getComponentAppId() { | ||||