diff --git a/starters/wx-java-mp-starter/src/main/java/com/binarywang/spring/starter/wxjava/mp/WxMpServiceAutoConfiguration.java b/starters/wx-java-mp-starter/src/main/java/com/binarywang/spring/starter/wxjava/mp/WxMpServiceAutoConfiguration.java index 7a6cf920c..a5234ed76 100644 --- a/starters/wx-java-mp-starter/src/main/java/com/binarywang/spring/starter/wxjava/mp/WxMpServiceAutoConfiguration.java +++ b/starters/wx-java-mp-starter/src/main/java/com/binarywang/spring/starter/wxjava/mp/WxMpServiceAutoConfiguration.java @@ -1,6 +1,6 @@ package com.binarywang.spring.starter.wxjava.mp; -import me.chanjar.weixin.mp.api.WxMpConfigStorage; +import me.chanjar.weixin.mp.config.WxMpConfigStorage; import me.chanjar.weixin.mp.api.WxMpService; import me.chanjar.weixin.mp.api.impl.WxMpServiceImpl; import org.springframework.beans.factory.annotation.Autowired; diff --git a/starters/wx-java-mp-starter/src/main/java/com/binarywang/spring/starter/wxjava/mp/WxMpStorageAutoConfiguration.java b/starters/wx-java-mp-starter/src/main/java/com/binarywang/spring/starter/wxjava/mp/WxMpStorageAutoConfiguration.java index a0fb7eb3d..d70d88c87 100644 --- a/starters/wx-java-mp-starter/src/main/java/com/binarywang/spring/starter/wxjava/mp/WxMpStorageAutoConfiguration.java +++ b/starters/wx-java-mp-starter/src/main/java/com/binarywang/spring/starter/wxjava/mp/WxMpStorageAutoConfiguration.java @@ -1,8 +1,8 @@ package com.binarywang.spring.starter.wxjava.mp; -import me.chanjar.weixin.mp.api.WxMpConfigStorage; -import me.chanjar.weixin.mp.api.WxMpInMemoryConfigStorage; -import me.chanjar.weixin.mp.api.WxMpInRedisConfigStorage; +import me.chanjar.weixin.mp.config.WxMpConfigStorage; +import me.chanjar.weixin.mp.config.impl.WxMpDefaultConfigImpl; +import me.chanjar.weixin.mp.config.impl.WxMpRedisConfigImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.context.annotation.Bean; @@ -34,23 +34,23 @@ public class WxMpStorageAutoConfiguration { return getWxMpInMemoryConfigStorage(); } - private WxMpInMemoryConfigStorage getWxMpInMemoryConfigStorage() { - WxMpInMemoryConfigStorage config = new WxMpInMemoryConfigStorage(); + private WxMpDefaultConfigImpl getWxMpInMemoryConfigStorage() { + WxMpDefaultConfigImpl config = new WxMpDefaultConfigImpl(); setWxMpInfo(config); return config; } - private WxMpInRedisConfigStorage getWxMpInRedisConfigStorage() { + private WxMpRedisConfigImpl getWxMpInRedisConfigStorage() { JedisPool poolToUse = jedisPool; if (poolToUse == null) { poolToUse = getJedisPool(); } - WxMpInRedisConfigStorage config = new WxMpInRedisConfigStorage(poolToUse); + WxMpRedisConfigImpl config = new WxMpRedisConfigImpl(poolToUse); setWxMpInfo(config); return config; } - private void setWxMpInfo(WxMpInMemoryConfigStorage config) { + private void setWxMpInfo(WxMpDefaultConfigImpl config) { config.setAppId(properties.getAppId()); config.setSecret(properties.getSecret()); config.setToken(properties.getToken()); diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/WxCpTpConfigStorage.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/WxCpTpConfigStorage.java index 44ef4e17b..fadfb0bda 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/WxCpTpConfigStorage.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/WxCpTpConfigStorage.java @@ -14,7 +14,6 @@ public interface WxCpTpConfigStorage { /** * 设置企业微信服务器 baseUrl. - * * 默认值是 https://qyapi.weixin.qq.com , 如果使用默认值,则不需要调用 setBaseApiUrl * * @param baseUrl 企业微信服务器 Url @@ -23,7 +22,6 @@ public interface WxCpTpConfigStorage { /** * 读取企业微信 API Url. - * * 支持私有化企业微信服务器. */ String getApiUrl(String path); @@ -33,7 +31,7 @@ public interface WxCpTpConfigStorage { boolean isSuiteAccessTokenExpired(); /** - * 强制将suite access token过期掉 + * 强制将suite access token过期掉. */ void expireSuiteAccessToken(); @@ -46,15 +44,15 @@ public interface WxCpTpConfigStorage { boolean isSuiteTicketExpired(); /** - * 强制将suite ticket过期掉 + * 强制将suite ticket过期掉. */ void expireSuiteTicket(); /** - * 应该是线程安全的 + * 应该是线程安全的. */ void updateSuiteTicket(String suiteTicket, int expiresInSeconds); - + String getCorpId(); String getCorpSecret(); @@ -80,7 +78,7 @@ public interface WxCpTpConfigStorage { File getTmpDirFile(); /** - * http client builder + * http client builder. * * @return ApacheHttpClientBuilder */ diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/WxCpInMemoryConfigStorage.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/impl/WxCpDefaultConfigImpl.java similarity index 85% rename from weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/WxCpInMemoryConfigStorage.java rename to weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/impl/WxCpDefaultConfigImpl.java index 2ce575071..87ed4f611 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/WxCpInMemoryConfigStorage.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/impl/WxCpDefaultConfigImpl.java @@ -1,45 +1,49 @@ -package me.chanjar.weixin.cp.config; +package me.chanjar.weixin.cp.config.impl; import me.chanjar.weixin.common.bean.WxAccessToken; import me.chanjar.weixin.common.util.http.apache.ApacheHttpClientBuilder; +import me.chanjar.weixin.cp.config.WxCpConfigStorage; import me.chanjar.weixin.cp.constant.WxCpApiPathConsts; import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder; import java.io.File; +import java.io.Serializable; /** - * 基于内存的微信配置provider,在实际生产环境中应该将这些配置持久化 + * 基于内存的微信配置provider,在实际生产环境中应该将这些配置持久化. * * @author Daniel Qian */ -public class WxCpInMemoryConfigStorage implements WxCpConfigStorage { - protected volatile String corpId; - protected volatile String corpSecret; +public class WxCpDefaultConfigImpl implements WxCpConfigStorage, Serializable { + private static final long serialVersionUID = 1154541446729462780L; - protected volatile String token; + private volatile String corpId; + private volatile String corpSecret; + + private volatile String token; protected volatile String accessToken; - protected volatile String aesKey; + private volatile String aesKey; protected volatile Integer agentId; - protected volatile long expiresTime; + private volatile long expiresTime; - protected volatile String oauth2redirectUri; + private volatile String oauth2redirectUri; - protected volatile String httpProxyHost; - protected volatile int httpProxyPort; - protected volatile String httpProxyUsername; - protected volatile String httpProxyPassword; + private volatile String httpProxyHost; + private volatile int httpProxyPort; + private volatile String httpProxyUsername; + private volatile String httpProxyPassword; - protected volatile String jsapiTicket; - protected volatile long jsapiTicketExpiresTime; + private volatile String jsapiTicket; + private volatile long jsapiTicketExpiresTime; - protected volatile String agentJsapiTicket; - protected volatile long agentJsapiTicketExpiresTime; + private volatile String agentJsapiTicket; + private volatile long agentJsapiTicketExpiresTime; - protected volatile File tmpDirFile; + private volatile File tmpDirFile; private volatile ApacheHttpClientBuilder apacheHttpClientBuilder; - protected volatile String baseApiUrl; + private volatile String baseApiUrl; @Override public void setBaseApiUrl(String baseUrl) { diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/WxCpJedisConfigStorage.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/impl/WxCpRedisConfigImpl.java similarity index 93% rename from weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/WxCpJedisConfigStorage.java rename to weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/impl/WxCpRedisConfigImpl.java index 652f5fe0c..ecaa47cc2 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/WxCpJedisConfigStorage.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/impl/WxCpRedisConfigImpl.java @@ -1,7 +1,8 @@ -package me.chanjar.weixin.cp.config; +package me.chanjar.weixin.cp.config.impl; import me.chanjar.weixin.common.bean.WxAccessToken; import me.chanjar.weixin.common.util.http.apache.ApacheHttpClientBuilder; +import me.chanjar.weixin.cp.config.WxCpConfigStorage; import me.chanjar.weixin.cp.constant.WxCpApiPathConsts; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; @@ -17,7 +18,7 @@ import java.io.File; * * @author gaigeshen */ -public class WxCpJedisConfigStorage implements WxCpConfigStorage { +public class WxCpRedisConfigImpl implements WxCpConfigStorage { private static final String ACCESS_TOKEN_KEY = "WX_CP_ACCESS_TOKEN"; private static final String ACCESS_TOKEN_EXPIRES_TIME_KEY = "WX_CP_ACCESS_TOKEN_EXPIRES_TIME"; private static final String JS_API_TICKET_KEY = "WX_CP_JS_API_TICKET"; @@ -54,23 +55,23 @@ public class WxCpJedisConfigStorage implements WxCpConfigStorage { return baseApiUrl + path; } - public WxCpJedisConfigStorage(JedisPool jedisPool) { + public WxCpRedisConfigImpl(JedisPool jedisPool) { this.jedisPool = jedisPool; } - public WxCpJedisConfigStorage(String host, int port) { + public WxCpRedisConfigImpl(String host, int port) { jedisPool = new JedisPool(host, port); } - public WxCpJedisConfigStorage(JedisPoolConfig poolConfig, String host, int port) { + public WxCpRedisConfigImpl(JedisPoolConfig poolConfig, String host, int port) { jedisPool = new JedisPool(poolConfig, host, port); } - public WxCpJedisConfigStorage(JedisPoolConfig poolConfig, String host, int port, int timeout, String password) { + public WxCpRedisConfigImpl(JedisPoolConfig poolConfig, String host, int port, int timeout, String password) { jedisPool = new JedisPool(poolConfig, host, port, timeout, password); } - public WxCpJedisConfigStorage(JedisPoolConfig poolConfig, String host, int port, int timeout, String password, int database) { + public WxCpRedisConfigImpl(JedisPoolConfig poolConfig, String host, int port, int timeout, String password, int database) { jedisPool = new JedisPool(poolConfig, host, port, timeout, password, database); } diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/WxCpTpInMemoryConfigStorage.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/impl/WxCpTpDefaultConfigImpl.java similarity index 82% rename from weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/WxCpTpInMemoryConfigStorage.java rename to weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/impl/WxCpTpDefaultConfigImpl.java index 6da47f5b7..d8be83c2a 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/WxCpTpInMemoryConfigStorage.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/impl/WxCpTpDefaultConfigImpl.java @@ -1,44 +1,47 @@ -package me.chanjar.weixin.cp.config; +package me.chanjar.weixin.cp.config.impl; import me.chanjar.weixin.common.bean.WxAccessToken; import me.chanjar.weixin.common.util.http.apache.ApacheHttpClientBuilder; +import me.chanjar.weixin.cp.config.WxCpTpConfigStorage; import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder; import java.io.File; +import java.io.Serializable; /** - * 基于内存的微信配置provider,在实际生产环境中应该将这些配置持久化 + * 基于内存的微信配置provider,在实际生产环境中应该将这些配置持久化. * - * @author Daniel Qian + * @author someone */ -public class WxCpTpInMemoryConfigStorage implements WxCpTpConfigStorage { - protected volatile String corpId; - protected volatile String corpSecret; - - protected volatile String suiteId; - protected volatile String suiteSecret; +public class WxCpTpDefaultConfigImpl implements WxCpTpConfigStorage, Serializable { + private static final long serialVersionUID = 6678780920621872824L; - protected volatile String token; - protected volatile String suiteAccessToken; - protected volatile String aesKey; - protected volatile long expiresTime; + private volatile String corpId; + private volatile String corpSecret; - protected volatile String oauth2redirectUri; + private volatile String suiteId; + private volatile String suiteSecret; - protected volatile String httpProxyHost; - protected volatile int httpProxyPort; - protected volatile String httpProxyUsername; - protected volatile String httpProxyPassword; + private volatile String token; + private volatile String suiteAccessToken; + private volatile String aesKey; + private volatile long expiresTime; - protected volatile String suiteTicket; - protected volatile long suiteTicketExpiresTime; + private volatile String oauth2redirectUri; + private volatile String httpProxyHost; + private volatile int httpProxyPort; + private volatile String httpProxyUsername; + private volatile String httpProxyPassword; - protected volatile File tmpDirFile; + private volatile String suiteTicket; + private volatile long suiteTicketExpiresTime; + + private volatile File tmpDirFile; private volatile ApacheHttpClientBuilder apacheHttpClientBuilder; - protected volatile String baseApiUrl; + private volatile String baseApiUrl; @Override public void setBaseApiUrl(String baseUrl) { @@ -57,7 +60,7 @@ public class WxCpTpInMemoryConfigStorage implements WxCpTpConfigStorage { public String getSuiteAccessToken() { return this.suiteAccessToken; } - + public void setSuiteAccessToken(String suiteAccessToken) { this.suiteAccessToken = suiteAccessToken; } @@ -82,25 +85,25 @@ public class WxCpTpInMemoryConfigStorage implements WxCpTpConfigStorage { this.suiteAccessToken = suiteAccessToken; this.expiresTime = System.currentTimeMillis() + (expiresInSeconds - 200) * 1000L; } - + @Override public String getCorpId() { return this.corpId; } - + public void setCorpId(String corpId) { this.corpId = corpId; } - + @Override public String getCorpSecret() { return this.corpSecret; } - + public void setCorpSecret(String corpSecret) { this.corpSecret = corpSecret; } - + @Override public String getSuiteTicket() { return this.suiteTicket; diff --git a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/ApiTestModule.java b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/ApiTestModule.java index 5ef750f89..c15e3af4d 100644 --- a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/ApiTestModule.java +++ b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/ApiTestModule.java @@ -12,7 +12,7 @@ import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.annotations.XStreamAlias; import me.chanjar.weixin.common.util.xml.XStreamInitializer; import me.chanjar.weixin.cp.api.impl.WxCpServiceImpl; -import me.chanjar.weixin.cp.config.WxCpInMemoryConfigStorage; +import me.chanjar.weixin.cp.config.impl.WxCpDefaultConfigImpl; public class ApiTestModule implements Module { private final Logger log = LoggerFactory.getLogger(this.getClass()); @@ -44,7 +44,7 @@ public class ApiTestModule implements Module { } @XStreamAlias("xml") - public static class WxXmlCpInMemoryConfigStorage extends WxCpInMemoryConfigStorage { + public static class WxXmlCpInMemoryConfigStorage extends WxCpDefaultConfigImpl { protected String userId; diff --git a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/demo/WxCpDemoInMemoryConfigStorage.java b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/demo/WxCpDemoInMemoryConfigStorage.java index cbb350376..35a2fc0e4 100644 --- a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/demo/WxCpDemoInMemoryConfigStorage.java +++ b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/demo/WxCpDemoInMemoryConfigStorage.java @@ -6,14 +6,14 @@ import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.annotations.XStreamAlias; import lombok.ToString; import me.chanjar.weixin.common.util.xml.XStreamInitializer; -import me.chanjar.weixin.cp.config.WxCpInMemoryConfigStorage; +import me.chanjar.weixin.cp.config.impl.WxCpDefaultConfigImpl; /** * @author Daniel Qian */ @XStreamAlias("xml") @ToString -public class WxCpDemoInMemoryConfigStorage extends WxCpInMemoryConfigStorage { +public class WxCpDemoInMemoryConfigStorage extends WxCpDefaultConfigImpl { public static WxCpDemoInMemoryConfigStorage fromXml(InputStream is) { XStream xstream = XStreamInitializer.getInstance(); xstream.processAnnotations(WxCpDemoInMemoryConfigStorage.class); diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/config/WxMaInMemoryConfig.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/config/impl/WxMaDefaultConfigImpl.java similarity index 84% rename from weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/config/WxMaInMemoryConfig.java rename to weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/config/impl/WxMaDefaultConfigImpl.java index a0e53262b..76ff7611b 100644 --- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/config/WxMaInMemoryConfig.java +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/config/impl/WxMaDefaultConfigImpl.java @@ -1,9 +1,10 @@ -package cn.binarywang.wx.miniapp.config; +package cn.binarywang.wx.miniapp.config.impl; import java.io.File; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; +import cn.binarywang.wx.miniapp.config.WxMaConfig; import cn.binarywang.wx.miniapp.util.json.WxMaGsonBuilder; import me.chanjar.weixin.common.bean.WxAccessToken; import me.chanjar.weixin.common.util.http.apache.ApacheHttpClientBuilder; @@ -13,38 +14,39 @@ import me.chanjar.weixin.common.util.http.apache.ApacheHttpClientBuilder; * * @author Binary Wang */ -public class WxMaInMemoryConfig implements WxMaConfig { - protected volatile String msgDataFormat; +public class WxMaDefaultConfigImpl implements WxMaConfig { + private volatile String msgDataFormat; protected volatile String appid; - protected volatile String secret; + private volatile String secret; protected volatile String token; - protected volatile String accessToken; - protected volatile String aesKey; - protected volatile long expiresTime; + private volatile String accessToken; + private volatile String aesKey; + private volatile long expiresTime; - protected volatile String httpProxyHost; - protected volatile int httpProxyPort; - protected volatile String httpProxyUsername; - protected volatile String httpProxyPassword; + private volatile String httpProxyHost; + private volatile int httpProxyPort; + private volatile String httpProxyUsername; + private volatile String httpProxyPassword; - protected volatile String jsapiTicket; - protected volatile long jsapiTicketExpiresTime; - - //微信卡券的ticket单独缓存 - protected volatile String cardApiTicket; - protected volatile long cardApiTicketExpiresTime; - - - protected Lock accessTokenLock = new ReentrantLock(); - protected Lock jsapiTicketLock = new ReentrantLock(); - protected Lock cardApiTicketLock = new ReentrantLock(); + private volatile String jsapiTicket; + private volatile long jsapiTicketExpiresTime; /** - * 临时文件目录 + * 微信卡券的ticket单独缓存. + */ + private volatile String cardApiTicket; + private volatile long cardApiTicketExpiresTime; + + protected Lock accessTokenLock = new ReentrantLock(); + private Lock jsapiTicketLock = new ReentrantLock(); + private Lock cardApiTicketLock = new ReentrantLock(); + + /** + * 临时文件目录. */ protected volatile File tmpDirFile; - protected volatile ApacheHttpClientBuilder apacheHttpClientBuilder; + private volatile ApacheHttpClientBuilder apacheHttpClientBuilder; @Override public String getAccessToken() { diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/config/WxMaInRedisConfig.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/config/impl/WxMaRedisConfigImpl.java similarity index 54% rename from weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/config/WxMaInRedisConfig.java rename to weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/config/impl/WxMaRedisConfigImpl.java index c90be60a7..c9340f8d7 100644 --- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/config/WxMaInRedisConfig.java +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/config/impl/WxMaRedisConfigImpl.java @@ -1,4 +1,4 @@ -package cn.binarywang.wx.miniapp.config; +package cn.binarywang.wx.miniapp.config.impl; import java.io.File; import java.util.HashMap; @@ -7,6 +7,7 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; +import cn.binarywang.wx.miniapp.config.WxMaConfig; import com.github.jedis.lock.JedisLock; import cn.binarywang.wx.miniapp.util.json.WxMaGsonBuilder; @@ -17,105 +18,92 @@ import redis.clients.jedis.JedisPool; /** * 基于Redis的微信配置provider. - * + * *
  * 需要引入依赖jedis-lock,才能使用该类。
  * 
* * @author winter */ -public class WxMaInRedisConfig implements WxMaConfig { - +public class WxMaRedisConfigImpl implements WxMaConfig { private static final String ACCESS_TOKEN = "accessToken"; private static final String JSAPI_TICKET = "jsapiTicket"; private static final String CARD_API_TICKET = "cardApiTicket"; - + private static final String HASH_VALUE_FIELD = "value"; private static final String HASH_EXPIRE_FIELD = "expire"; - - protected JedisPool jedisPool; + + private JedisPool jedisPool; /** - * 微信小程序唯一id,用于拼接存储到redis时的key,防止key重复 + * 微信小程序唯一id,用于拼接存储到redis时的key,防止key重复. */ - protected String maId; - - protected volatile String msgDataFormat; + private String maId; + + private volatile String msgDataFormat; protected volatile String appid; - protected volatile String secret; + private volatile String secret; protected volatile String token; - protected volatile String aesKey; + private volatile String aesKey; - protected volatile String httpProxyHost; - protected volatile int httpProxyPort; - protected volatile String httpProxyUsername; - protected volatile String httpProxyPassword; + private volatile String httpProxyHost; + private volatile int httpProxyPort; + private volatile String httpProxyUsername; + private volatile String httpProxyPassword; - protected Lock accessTokenLock; - protected Lock jsapiTicketLock; - protected Lock cardApiTicketLock; + private Lock accessTokenLock; + private Lock jsapiTicketLock; + private Lock cardApiTicketLock; /** - * 临时文件目录 + * 临时文件目录. */ protected volatile File tmpDirFile; - protected volatile ApacheHttpClientBuilder apacheHttpClientBuilder; - + private volatile ApacheHttpClientBuilder apacheHttpClientBuilder; + private String getRedisKey(String key) { - StringBuilder redisKey = new StringBuilder("maConfig:"); - if(maId == null) { - return redisKey.append(key).toString(); - } else { - return redisKey.append(maId).append(":").append(key).toString(); - } + StringBuilder redisKey = new StringBuilder("maConfig:"); + if (maId == null) { + return redisKey.append(key).toString(); + } else { + return redisKey.append(maId).append(":").append(key).toString(); + } } - + private String getValueFromRedis(String key) { - Jedis jedis = jedisPool.getResource(); - try { + try (Jedis jedis = jedisPool.getResource()) { return jedis.hget(getRedisKey(key), HASH_VALUE_FIELD); - } finally { - jedis.close(); - } + } } - + private void setValueToRedis(String key, long expiresTime, String value) { - Jedis jedis = jedisPool.getResource(); - try { - Map hash = new HashMap(); - hash.put(HASH_VALUE_FIELD, value); - hash.put(HASH_EXPIRE_FIELD, String.valueOf(expiresTime)); - jedis.hmset(getRedisKey(key), hash); - } finally { - jedis.close(); - } + try (Jedis jedis = jedisPool.getResource()) { + Map hash = new HashMap(); + hash.put(HASH_VALUE_FIELD, value); + hash.put(HASH_EXPIRE_FIELD, String.valueOf(expiresTime)); + jedis.hmset(getRedisKey(key), hash); + } } - + private long getExpireFromRedis(String key) { - Jedis jedis = jedisPool.getResource(); - try { + try (Jedis jedis = jedisPool.getResource()) { String expire = jedis.hget(getRedisKey(key), HASH_EXPIRE_FIELD); - return expire == null ? 0 : Long.valueOf(expire); - } finally { - jedis.close(); - } + return expire == null ? 0 : Long.parseLong(expire); + } } - + private void setExpire(String key, long expiresTime) { - Jedis jedis = jedisPool.getResource(); - try { - jedis.hset(getRedisKey(key), HASH_EXPIRE_FIELD, String.valueOf(expiresTime)); - } finally { - jedis.close(); - } + try (Jedis jedis = jedisPool.getResource()) { + jedis.hset(getRedisKey(key), HASH_EXPIRE_FIELD, String.valueOf(expiresTime)); + } } public void setJedisPool(JedisPool jedisPool) { - this.jedisPool = jedisPool; + this.jedisPool = jedisPool; } public void setMaId(String maId) { - this.maId = maId; + this.maId = maId; } @Override @@ -125,19 +113,19 @@ public class WxMaInRedisConfig implements WxMaConfig { @Override public Lock getAccessTokenLock() { - if(accessTokenLock == null) { - synchronized (this) { - if(accessTokenLock == null) { - accessTokenLock = new DistributedLock(getRedisKey("accessTokenLock")); - } - } - } + if (accessTokenLock == null) { + synchronized (this) { + if (accessTokenLock == null) { + accessTokenLock = new DistributedLock(getRedisKey("accessTokenLock")); + } + } + } return accessTokenLock; } @Override public boolean isAccessTokenExpired() { - return System.currentTimeMillis() > getExpireFromRedis(ACCESS_TOKEN); + return System.currentTimeMillis() > getExpireFromRedis(ACCESS_TOKEN); } @Override @@ -147,7 +135,7 @@ public class WxMaInRedisConfig implements WxMaConfig { @Override public synchronized void updateAccessToken(String accessToken, int expiresInSeconds) { - setValueToRedis(ACCESS_TOKEN, System.currentTimeMillis() + (expiresInSeconds - 200) * 1000L, accessToken); + setValueToRedis(ACCESS_TOKEN, System.currentTimeMillis() + (expiresInSeconds - 200) * 1000L, accessToken); } @Override @@ -157,30 +145,30 @@ public class WxMaInRedisConfig implements WxMaConfig { @Override public Lock getJsapiTicketLock() { - if(jsapiTicketLock == null) { - synchronized (this) { - if(jsapiTicketLock == null) { - jsapiTicketLock = new DistributedLock(getRedisKey("jsapiTicketLock")); - } - } - } + if (jsapiTicketLock == null) { + synchronized (this) { + if (jsapiTicketLock == null) { + jsapiTicketLock = new DistributedLock(getRedisKey("jsapiTicketLock")); + } + } + } return jsapiTicketLock; } @Override public boolean isJsapiTicketExpired() { - return System.currentTimeMillis() > getExpireFromRedis(JSAPI_TICKET); + return System.currentTimeMillis() > getExpireFromRedis(JSAPI_TICKET); } @Override public void expireJsapiTicket() { - setExpire(JSAPI_TICKET, 0); + setExpire(JSAPI_TICKET, 0); } @Override public void updateJsapiTicket(String jsapiTicket, int expiresInSeconds) { - // 预留200秒的时间 - setValueToRedis(JSAPI_TICKET, System.currentTimeMillis() + (expiresInSeconds - 200) * 1000L, jsapiTicket); + // 预留200秒的时间 + setValueToRedis(JSAPI_TICKET, System.currentTimeMillis() + (expiresInSeconds - 200) * 1000L, jsapiTicket); } @@ -191,34 +179,34 @@ public class WxMaInRedisConfig implements WxMaConfig { @Override public Lock getCardApiTicketLock() { - if(cardApiTicketLock == null) { - synchronized (this) { - if(cardApiTicketLock == null) { - cardApiTicketLock = new DistributedLock(getRedisKey("cardApiTicketLock")); - } - } - } + if (cardApiTicketLock == null) { + synchronized (this) { + if (cardApiTicketLock == null) { + cardApiTicketLock = new DistributedLock(getRedisKey("cardApiTicketLock")); + } + } + } return cardApiTicketLock; } @Override public boolean isCardApiTicketExpired() { - return System.currentTimeMillis() > getExpireFromRedis(CARD_API_TICKET); + return System.currentTimeMillis() > getExpireFromRedis(CARD_API_TICKET); } @Override public void expireCardApiTicket() { - setExpire(CARD_API_TICKET, 0); + setExpire(CARD_API_TICKET, 0); } @Override public void updateCardApiTicket(String cardApiTicket, int expiresInSeconds) { - setValueToRedis(CARD_API_TICKET, System.currentTimeMillis() + (expiresInSeconds - 200) * 1000L, cardApiTicket); + setValueToRedis(CARD_API_TICKET, System.currentTimeMillis() + (expiresInSeconds - 200) * 1000L, cardApiTicket); } @Override public void expireAccessToken() { - setExpire(ACCESS_TOKEN, 0); + setExpire(ACCESS_TOKEN, 0); } @Override @@ -241,7 +229,7 @@ public class WxMaInRedisConfig implements WxMaConfig { @Override public long getExpiresTime() { - return getExpireFromRedis(ACCESS_TOKEN); + return getExpireFromRedis(ACCESS_TOKEN); } @Override @@ -325,80 +313,65 @@ public class WxMaInRedisConfig implements WxMaConfig { public void setAppid(String appid) { this.appid = appid; } - + /** - * 基于redis的简单分布式锁 + * 基于redis的简单分布式锁. */ private class DistributedLock implements Lock { - - private JedisLock lock; - - private DistributedLock(String key) { - this.lock = new JedisLock(getRedisKey(key)); - } - @Override - public void lock() { - Jedis jedis = jedisPool.getResource(); - try { - if(!lock.acquire(jedis)) { - throw new RuntimeException("acquire timeouted"); - } - } catch (InterruptedException e) { - throw new RuntimeException("lock failed",e); - } finally { - jedis.close(); - } - } + private JedisLock lock; - @Override - public void lockInterruptibly() throws InterruptedException { - Jedis jedis = jedisPool.getResource(); - try { - if(!lock.acquire(jedis)) { - throw new RuntimeException("acquire timeouted"); - } - } finally { - jedis.close(); - } - } + private DistributedLock(String key) { + this.lock = new JedisLock(getRedisKey(key)); + } - @Override - public boolean tryLock() { - Jedis jedis = jedisPool.getResource(); - try { - return lock.acquire(jedis); - } catch (InterruptedException e) { - throw new RuntimeException("lock failed",e); - } finally { - jedis.close(); - } - } + @Override + public void lock() { + try (Jedis jedis = jedisPool.getResource()) { + if (!lock.acquire(jedis)) { + throw new RuntimeException("acquire timeouted"); + } + } catch (InterruptedException e) { + throw new RuntimeException("lock failed", e); + } + } - @Override - public boolean tryLock(long time, TimeUnit unit) throws InterruptedException { - Jedis jedis = jedisPool.getResource(); - try { - return lock.acquire(jedis); - } finally { - jedis.close(); - } - } + @Override + public void lockInterruptibly() throws InterruptedException { + try (Jedis jedis = jedisPool.getResource()) { + if (!lock.acquire(jedis)) { + throw new RuntimeException("acquire timeouted"); + } + } + } - @Override - public void unlock() { - Jedis jedis = jedisPool.getResource(); - try { - lock.release(jedis); - } finally { - jedis.close(); - } - } + @Override + public boolean tryLock() { + try (Jedis jedis = jedisPool.getResource()) { + return lock.acquire(jedis); + } catch (InterruptedException e) { + throw new RuntimeException("lock failed", e); + } + } + + @Override + public boolean tryLock(long time, TimeUnit unit) throws InterruptedException { + try (Jedis jedis = jedisPool.getResource()) { + return lock.acquire(jedis); + } + } + + @Override + public void unlock() { + try (Jedis jedis = jedisPool.getResource()) { + lock.release(jedis); + } + } + + @Override + public Condition newCondition() { + throw new RuntimeException("unsupported method"); + } - @Override - public Condition newCondition() { - throw new RuntimeException("unsupported method"); - } - } } diff --git a/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/test/TestConfig.java b/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/test/TestConfig.java index 6cebdeb24..a9dd46561 100644 --- a/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/test/TestConfig.java +++ b/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/test/TestConfig.java @@ -1,6 +1,6 @@ package cn.binarywang.wx.miniapp.test; -import cn.binarywang.wx.miniapp.config.WxMaInMemoryConfig; +import cn.binarywang.wx.miniapp.config.impl.WxMaDefaultConfigImpl; import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.annotations.XStreamAlias; import me.chanjar.weixin.common.util.xml.XStreamInitializer; @@ -13,7 +13,7 @@ import java.util.concurrent.locks.Lock; * @author Binary Wang */ @XStreamAlias("xml") -public class TestConfig extends WxMaInMemoryConfig { +public class TestConfig extends WxMaDefaultConfigImpl { private String openid; private String kfAccount; diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpService.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpService.java index f9d4399a6..be8000d33 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpService.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpService.java @@ -10,6 +10,7 @@ import me.chanjar.weixin.mp.bean.result.WxMpCurrentAutoReplyInfo; import me.chanjar.weixin.mp.bean.result.WxMpOAuth2AccessToken; import me.chanjar.weixin.mp.bean.result.WxMpSemanticQueryResult; import me.chanjar.weixin.mp.bean.result.WxMpUser; +import me.chanjar.weixin.mp.config.WxMpConfigStorage; import me.chanjar.weixin.mp.enums.TicketType; import me.chanjar.weixin.mp.enums.WxMpApiUrl; diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/BaseWxMpServiceImpl.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/BaseWxMpServiceImpl.java index 8b854ebba..f7969eae7 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/BaseWxMpServiceImpl.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/BaseWxMpServiceImpl.java @@ -22,6 +22,7 @@ import me.chanjar.weixin.mp.bean.result.WxMpCurrentAutoReplyInfo; import me.chanjar.weixin.mp.bean.result.WxMpOAuth2AccessToken; import me.chanjar.weixin.mp.bean.result.WxMpSemanticQueryResult; import me.chanjar.weixin.mp.bean.result.WxMpUser; +import me.chanjar.weixin.mp.config.WxMpConfigStorage; import me.chanjar.weixin.mp.enums.TicketType; import me.chanjar.weixin.mp.enums.WxMpApiUrl; import me.chanjar.weixin.mp.util.WxMpConfigStorageHolder; diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpServiceHttpClientImpl.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpServiceHttpClientImpl.java index 17aec251f..d13a95b16 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpServiceHttpClientImpl.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpServiceHttpClientImpl.java @@ -7,7 +7,7 @@ import me.chanjar.weixin.common.error.WxErrorException; import me.chanjar.weixin.common.util.http.HttpType; import me.chanjar.weixin.common.util.http.apache.ApacheHttpClientBuilder; import me.chanjar.weixin.common.util.http.apache.DefaultApacheHttpClientBuilder; -import me.chanjar.weixin.mp.api.WxMpConfigStorage; +import me.chanjar.weixin.mp.config.WxMpConfigStorage; import org.apache.http.HttpHost; import org.apache.http.client.config.RequestConfig; import org.apache.http.client.methods.CloseableHttpResponse; diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpServiceJoddHttpImpl.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpServiceJoddHttpImpl.java index ee1074b50..a4aeac5ad 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpServiceJoddHttpImpl.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpServiceJoddHttpImpl.java @@ -7,7 +7,7 @@ import me.chanjar.weixin.common.bean.WxAccessToken; import me.chanjar.weixin.common.error.WxError; import me.chanjar.weixin.common.error.WxErrorException; import me.chanjar.weixin.common.util.http.HttpType; -import me.chanjar.weixin.mp.api.WxMpConfigStorage; +import me.chanjar.weixin.mp.config.WxMpConfigStorage; import java.util.concurrent.locks.Lock; diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpServiceOkHttpImpl.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpServiceOkHttpImpl.java index f1c1193c1..f7f2a8e7a 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpServiceOkHttpImpl.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpServiceOkHttpImpl.java @@ -6,7 +6,7 @@ import me.chanjar.weixin.common.error.WxError; import me.chanjar.weixin.common.error.WxErrorException; import me.chanjar.weixin.common.util.http.HttpType; import me.chanjar.weixin.common.util.http.okhttp.OkHttpProxyInfo; -import me.chanjar.weixin.mp.api.WxMpConfigStorage; +import me.chanjar.weixin.mp.config.WxMpConfigStorage; import okhttp3.*; import java.io.IOException; diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpSubscribeMsgServiceImpl.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpSubscribeMsgServiceImpl.java index b9c5d4fd3..ff99b12c8 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpSubscribeMsgServiceImpl.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpSubscribeMsgServiceImpl.java @@ -3,7 +3,7 @@ package me.chanjar.weixin.mp.api.impl; import lombok.RequiredArgsConstructor; import me.chanjar.weixin.common.error.WxErrorException; import me.chanjar.weixin.common.util.http.URIUtil; -import me.chanjar.weixin.mp.api.WxMpConfigStorage; +import me.chanjar.weixin.mp.config.WxMpConfigStorage; import me.chanjar.weixin.mp.api.WxMpService; import me.chanjar.weixin.mp.api.WxMpSubscribeMsgService; import me.chanjar.weixin.mp.bean.subscribe.WxMpSubscribeMessage; diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlMessage.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlMessage.java index f8ed19bce..bb93976f3 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlMessage.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlMessage.java @@ -15,7 +15,7 @@ import lombok.extern.slf4j.Slf4j; import me.chanjar.weixin.common.api.WxConsts; import me.chanjar.weixin.common.util.XmlUtils; import me.chanjar.weixin.common.util.xml.XStreamCDataConverter; -import me.chanjar.weixin.mp.api.WxMpConfigStorage; +import me.chanjar.weixin.mp.config.WxMpConfigStorage; import me.chanjar.weixin.mp.util.crypto.WxMpCryptUtil; import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; import me.chanjar.weixin.mp.util.xml.XStreamTransformer; @@ -527,10 +527,10 @@ public class WxMpXmlMessage implements Serializable { @XStreamAlias("DeviceID") @XStreamConverter(value = XStreamCDataConverter.class) private String deviceId; - + /** * 微信客户端生成的session id,用于request和response对应, - * 因此响应中该字段第三方需要原封不变的带回 + * 因此响应中该字段第三方需要原封不变的带回 */ @XStreamAlias("SessionID") @XStreamConverter(value = XStreamCDataConverter.class) diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlOutMessage.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlOutMessage.java index 74b053f17..40e0b41a2 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlOutMessage.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlOutMessage.java @@ -4,7 +4,7 @@ import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamConverter; import lombok.Data; import me.chanjar.weixin.common.util.xml.XStreamCDataConverter; -import me.chanjar.weixin.mp.api.WxMpConfigStorage; +import me.chanjar.weixin.mp.config.WxMpConfigStorage; import me.chanjar.weixin.mp.builder.outxml.*; import me.chanjar.weixin.mp.util.crypto.WxMpCryptUtil; import me.chanjar.weixin.mp.util.xml.XStreamTransformer; @@ -79,7 +79,7 @@ public abstract class WxMpXmlOutMessage implements Serializable { public static TransferCustomerServiceBuilder TRANSFER_CUSTOMER_SERVICE() { return new TransferCustomerServiceBuilder(); } - + /** * 获得设备消息builder */ diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpConfigStorage.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/config/WxMpConfigStorage.java similarity index 98% rename from weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpConfigStorage.java rename to weixin-java-mp/src/main/java/me/chanjar/weixin/mp/config/WxMpConfigStorage.java index bd5476d47..7c3c46292 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpConfigStorage.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/config/WxMpConfigStorage.java @@ -1,4 +1,4 @@ -package me.chanjar.weixin.mp.api; +package me.chanjar.weixin.mp.config; import me.chanjar.weixin.common.bean.WxAccessToken; import me.chanjar.weixin.common.util.http.apache.ApacheHttpClientBuilder; diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpInMemoryConfigStorage.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/config/impl/WxMpDefaultConfigImpl.java similarity index 96% rename from weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpInMemoryConfigStorage.java rename to weixin-java-mp/src/main/java/me/chanjar/weixin/mp/config/impl/WxMpDefaultConfigImpl.java index 31eca6a4e..08e7d0830 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpInMemoryConfigStorage.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/config/impl/WxMpDefaultConfigImpl.java @@ -1,4 +1,4 @@ -package me.chanjar.weixin.mp.api; +package me.chanjar.weixin.mp.config.impl; import java.io.File; import java.io.Serializable; @@ -8,6 +8,7 @@ import java.util.concurrent.locks.ReentrantLock; import lombok.Data; import me.chanjar.weixin.common.bean.WxAccessToken; import me.chanjar.weixin.common.util.http.apache.ApacheHttpClientBuilder; +import me.chanjar.weixin.mp.config.WxMpConfigStorage; import me.chanjar.weixin.mp.bean.WxMpHostConfig; import me.chanjar.weixin.mp.enums.TicketType; import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; @@ -18,7 +19,7 @@ import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; * @author chanjarster */ @Data -public class WxMpInMemoryConfigStorage implements WxMpConfigStorage, Serializable { +public class WxMpDefaultConfigImpl implements WxMpConfigStorage, Serializable { private static final long serialVersionUID = -6646519023303395185L; protected volatile String appId; diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpInRedisConfigStorage.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/config/impl/WxMpRedisConfigImpl.java similarity index 92% rename from weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpInRedisConfigStorage.java rename to weixin-java-mp/src/main/java/me/chanjar/weixin/mp/config/impl/WxMpRedisConfigImpl.java index b1ff3f1f8..4d2d1783e 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpInRedisConfigStorage.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/config/impl/WxMpRedisConfigImpl.java @@ -1,4 +1,4 @@ -package me.chanjar.weixin.mp.api; +package me.chanjar.weixin.mp.config.impl; import me.chanjar.weixin.mp.enums.TicketType; import redis.clients.jedis.Jedis; @@ -15,17 +15,17 @@ import redis.clients.jedis.JedisPool; * @author nickwong */ @SuppressWarnings("hiding") -public class WxMpInRedisConfigStorage extends WxMpInMemoryConfigStorage { +public class WxMpRedisConfigImpl extends WxMpDefaultConfigImpl { private static final String ACCESS_TOKEN_KEY = "wx:access_token:"; /** * 使用连接池保证线程安全. */ - protected final JedisPool jedisPool; + private final JedisPool jedisPool; private String accessTokenKey; - public WxMpInRedisConfigStorage(JedisPool jedisPool) { + public WxMpRedisConfigImpl(JedisPool jedisPool) { this.jedisPool = jedisPool; } diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/enums/WxMpApiUrl.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/enums/WxMpApiUrl.java index 22aeaa0bb..77124c688 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/enums/WxMpApiUrl.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/enums/WxMpApiUrl.java @@ -1,7 +1,7 @@ package me.chanjar.weixin.mp.enums; import lombok.AllArgsConstructor; -import me.chanjar.weixin.mp.api.WxMpConfigStorage; +import me.chanjar.weixin.mp.config.WxMpConfigStorage; import static me.chanjar.weixin.mp.bean.WxMpHostConfig.*; diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/crypto/WxMpCryptUtil.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/crypto/WxMpCryptUtil.java index d95e8f8f3..945219acf 100755 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/crypto/WxMpCryptUtil.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/crypto/WxMpCryptUtil.java @@ -17,7 +17,7 @@ */ package me.chanjar.weixin.mp.util.crypto; -import me.chanjar.weixin.mp.api.WxMpConfigStorage; +import me.chanjar.weixin.mp.config.WxMpConfigStorage; import org.apache.commons.codec.binary.Base64; public class WxMpCryptUtil extends me.chanjar.weixin.common.util.crypto.WxCryptUtil { diff --git a/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpServiceImplTest.java b/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpServiceImplTest.java index 7c36930b0..a434144cc 100644 --- a/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpServiceImplTest.java +++ b/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpServiceImplTest.java @@ -7,7 +7,7 @@ import org.testng.annotations.*; import com.google.inject.Inject; import me.chanjar.weixin.common.api.WxConsts; import me.chanjar.weixin.common.error.WxErrorException; -import me.chanjar.weixin.mp.api.WxMpConfigStorage; +import me.chanjar.weixin.mp.config.WxMpConfigStorage; import me.chanjar.weixin.mp.api.WxMpService; import me.chanjar.weixin.mp.api.test.ApiTestModule; import me.chanjar.weixin.mp.api.test.TestConfigStorage; diff --git a/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/test/ApiTestModule.java b/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/test/ApiTestModule.java index 29c8d2e2b..cc964e80f 100644 --- a/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/test/ApiTestModule.java +++ b/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/test/ApiTestModule.java @@ -12,7 +12,7 @@ import com.google.inject.Binder; import com.google.inject.Module; import com.thoughtworks.xstream.XStream; import me.chanjar.weixin.common.util.xml.XStreamInitializer; -import me.chanjar.weixin.mp.api.WxMpConfigStorage; +import me.chanjar.weixin.mp.config.WxMpConfigStorage; import me.chanjar.weixin.mp.api.WxMpService; public class ApiTestModule implements Module { diff --git a/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/test/TestConfigStorage.java b/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/test/TestConfigStorage.java index ed6c5cb16..5266beb23 100644 --- a/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/test/TestConfigStorage.java +++ b/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/test/TestConfigStorage.java @@ -1,13 +1,13 @@ package me.chanjar.weixin.mp.api.test; import com.thoughtworks.xstream.annotations.XStreamAlias; -import me.chanjar.weixin.mp.api.WxMpInMemoryConfigStorage; +import me.chanjar.weixin.mp.config.impl.WxMpDefaultConfigImpl; import org.apache.commons.lang3.builder.ToStringBuilder; import java.util.concurrent.locks.Lock; @XStreamAlias("xml") -public class TestConfigStorage extends WxMpInMemoryConfigStorage { +public class TestConfigStorage extends WxMpDefaultConfigImpl { private String openid; private String kfAccount; diff --git a/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/demo/WxMpDemoInMemoryConfigStorage.java b/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/demo/WxMpDemoInMemoryConfigStorage.java index 30d36920b..535123bdd 100644 --- a/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/demo/WxMpDemoInMemoryConfigStorage.java +++ b/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/demo/WxMpDemoInMemoryConfigStorage.java @@ -6,13 +6,13 @@ import java.util.concurrent.locks.ReentrantLock; import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.annotations.XStreamAlias; import me.chanjar.weixin.common.util.xml.XStreamInitializer; -import me.chanjar.weixin.mp.api.WxMpInMemoryConfigStorage; +import me.chanjar.weixin.mp.config.impl.WxMpDefaultConfigImpl; /** * @author Daniel Qian */ @XStreamAlias("xml") -class WxMpDemoInMemoryConfigStorage extends WxMpInMemoryConfigStorage { +class WxMpDemoInMemoryConfigStorage extends WxMpDefaultConfigImpl { private static final long serialVersionUID = -3706236839197109704L; public static WxMpDemoInMemoryConfigStorage fromXml(InputStream is) { diff --git a/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/demo/WxMpDemoServer.java b/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/demo/WxMpDemoServer.java index 5d85d64c0..36f81ae4c 100644 --- a/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/demo/WxMpDemoServer.java +++ b/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/demo/WxMpDemoServer.java @@ -1,7 +1,7 @@ package me.chanjar.weixin.mp.demo; import me.chanjar.weixin.common.api.WxConsts; -import me.chanjar.weixin.mp.api.WxMpConfigStorage; +import me.chanjar.weixin.mp.config.WxMpConfigStorage; import me.chanjar.weixin.mp.api.WxMpMessageHandler; import me.chanjar.weixin.mp.api.WxMpMessageRouter; import me.chanjar.weixin.mp.api.WxMpService; diff --git a/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/demo/WxMpEndpointServlet.java b/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/demo/WxMpEndpointServlet.java index 3f32d9c94..e835e6375 100644 --- a/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/demo/WxMpEndpointServlet.java +++ b/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/demo/WxMpEndpointServlet.java @@ -1,6 +1,6 @@ package me.chanjar.weixin.mp.demo; -import me.chanjar.weixin.mp.api.WxMpConfigStorage; +import me.chanjar.weixin.mp.config.WxMpConfigStorage; import me.chanjar.weixin.mp.api.WxMpMessageRouter; import me.chanjar.weixin.mp.api.WxMpService; import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage; diff --git a/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/WxOpenConfigStorage.java b/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/WxOpenConfigStorage.java index 066cf8c00..40833c1b9 100644 --- a/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/WxOpenConfigStorage.java +++ b/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/WxOpenConfigStorage.java @@ -2,7 +2,7 @@ package me.chanjar.weixin.open.api; import cn.binarywang.wx.miniapp.config.WxMaConfig; import me.chanjar.weixin.common.util.http.apache.ApacheHttpClientBuilder; -import me.chanjar.weixin.mp.api.WxMpConfigStorage; +import me.chanjar.weixin.mp.config.WxMpConfigStorage; import me.chanjar.weixin.open.bean.WxOpenAuthorizerAccessToken; import me.chanjar.weixin.open.bean.WxOpenComponentAccessToken; diff --git a/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenInMemoryConfigStorage.java b/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenInMemoryConfigStorage.java index ef699212b..80882b0c4 100644 --- a/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenInMemoryConfigStorage.java +++ b/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenInMemoryConfigStorage.java @@ -10,7 +10,7 @@ import java.util.concurrent.locks.ReentrantLock; import cn.binarywang.wx.miniapp.config.WxMaConfig; import me.chanjar.weixin.common.bean.WxAccessToken; import me.chanjar.weixin.common.util.http.apache.ApacheHttpClientBuilder; -import me.chanjar.weixin.mp.api.WxMpConfigStorage; +import me.chanjar.weixin.mp.config.WxMpConfigStorage; import me.chanjar.weixin.mp.bean.WxMpHostConfig; import me.chanjar.weixin.mp.enums.TicketType; import me.chanjar.weixin.open.api.WxOpenConfigStorage; diff --git a/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenMpServiceImpl.java b/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenMpServiceImpl.java index a29703df1..aa845fb22 100644 --- a/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenMpServiceImpl.java +++ b/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenMpServiceImpl.java @@ -1,7 +1,7 @@ package me.chanjar.weixin.open.api.impl; import me.chanjar.weixin.common.error.WxErrorException; -import me.chanjar.weixin.mp.api.WxMpConfigStorage; +import me.chanjar.weixin.mp.config.WxMpConfigStorage; import me.chanjar.weixin.mp.api.impl.WxMpServiceImpl; import me.chanjar.weixin.mp.bean.result.WxMpOAuth2AccessToken; import me.chanjar.weixin.open.api.WxOpenComponentService; diff --git a/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenServiceApacheHttpClientImpl.java b/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenServiceApacheHttpClientImpl.java index d9b7b4955..24ee39cc3 100644 --- a/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenServiceApacheHttpClientImpl.java +++ b/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenServiceApacheHttpClientImpl.java @@ -6,7 +6,6 @@ import me.chanjar.weixin.common.util.http.SimpleGetRequestExecutor; import me.chanjar.weixin.common.util.http.SimplePostRequestExecutor; import me.chanjar.weixin.common.util.http.apache.ApacheHttpClientBuilder; import me.chanjar.weixin.common.util.http.apache.DefaultApacheHttpClientBuilder; -import me.chanjar.weixin.mp.api.WxMpConfigStorage; import me.chanjar.weixin.open.api.WxOpenConfigStorage; import org.apache.http.HttpHost; import org.apache.http.impl.client.CloseableHttpClient;