diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMessageRouter.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMessageRouter.java index b72cc45af..0c7a71051 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMessageRouter.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMessageRouter.java @@ -1,18 +1,5 @@ package me.chanjar.weixin.mp.api; -import me.chanjar.weixin.common.session.InternalSession; -import me.chanjar.weixin.common.session.InternalSessionManager; -import me.chanjar.weixin.common.session.StandardSessionManager; -import me.chanjar.weixin.common.session.WxSessionManager; -import me.chanjar.weixin.common.util.LogExceptionHandler; -import me.chanjar.weixin.common.api.WxErrorExceptionHandler; -import me.chanjar.weixin.common.api.WxMessageDuplicateChecker; -import me.chanjar.weixin.common.api.WxMessageInMemoryDuplicateChecker; -import me.chanjar.weixin.mp.bean.WxMpXmlMessage; -import me.chanjar.weixin.mp.bean.WxMpXmlOutMessage; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.util.ArrayList; import java.util.List; import java.util.concurrent.ExecutionException; @@ -20,6 +7,20 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import me.chanjar.weixin.common.api.WxErrorExceptionHandler; +import me.chanjar.weixin.common.api.WxMessageDuplicateChecker; +import me.chanjar.weixin.common.api.WxMessageInMemoryDuplicateChecker; +import me.chanjar.weixin.common.session.InternalSession; +import me.chanjar.weixin.common.session.InternalSessionManager; +import me.chanjar.weixin.common.session.StandardSessionManager; +import me.chanjar.weixin.common.session.WxSessionManager; +import me.chanjar.weixin.common.util.LogExceptionHandler; +import me.chanjar.weixin.mp.bean.WxMpXmlMessage; +import me.chanjar.weixin.mp.bean.WxMpXmlOutMessage; + /** *
* 微信消息路由器,通过代码化的配置,把来自微信的消息交给handler处理
@@ -155,7 +156,7 @@ public class WxMpMessageRouter {
}
WxMpXmlOutMessage res = null;
- final List futures = new ArrayList<>();
+ final List> futures = new ArrayList<>();
for (final WxMpMessageRouterRule rule : matchRules) {
// 返回最后一个非异步的rule的执行结果
if(rule.isAsync()) {
@@ -179,7 +180,7 @@ public class WxMpMessageRouter {
this.executorService.submit(new Runnable() {
@Override
public void run() {
- for (Future future : futures) {
+ for (Future> future : futures) {
try {
future.get();
WxMpMessageRouter.this.log.debug("End session access: async=true, sessionId={}", wxMessage.getFromUserName());
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/xml/XStreamTransformer.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/xml/XStreamTransformer.java
index 61ecac419..39e3d1dcd 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/xml/XStreamTransformer.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/xml/XStreamTransformer.java
@@ -1,16 +1,25 @@
package me.chanjar.weixin.mp.util.xml;
-import com.thoughtworks.xstream.XStream;
-import me.chanjar.weixin.common.util.xml.XStreamInitializer;
-import me.chanjar.weixin.mp.bean.*;
-
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
+import com.thoughtworks.xstream.XStream;
+
+import me.chanjar.weixin.common.util.xml.XStreamInitializer;
+import me.chanjar.weixin.mp.bean.WxMpXmlMessage;
+import me.chanjar.weixin.mp.bean.WxMpXmlOutImageMessage;
+import me.chanjar.weixin.mp.bean.WxMpXmlOutMessage;
+import me.chanjar.weixin.mp.bean.WxMpXmlOutMusicMessage;
+import me.chanjar.weixin.mp.bean.WxMpXmlOutNewsMessage;
+import me.chanjar.weixin.mp.bean.WxMpXmlOutTextMessage;
+import me.chanjar.weixin.mp.bean.WxMpXmlOutTransferCustomerServiceMessage;
+import me.chanjar.weixin.mp.bean.WxMpXmlOutVideoMessage;
+import me.chanjar.weixin.mp.bean.WxMpXmlOutVoiceMessage;
+
public class XStreamTransformer {
- protected static final Map CLASS_2_XSTREAM_INSTANCE = configXStreamInstance();
+ protected static final Map, XStream> CLASS_2_XSTREAM_INSTANCE = configXStreamInstance();
/**
* xml -> pojo
@@ -32,7 +41,7 @@ public class XStreamTransformer {
* @param clz 类型
* @param xStream xml解析器
*/
- public static void register(Class clz,XStream xStream){
+ public static void register(Class> clz, XStream xStream) {
CLASS_2_XSTREAM_INSTANCE.put(clz,xStream);
}
@@ -44,8 +53,8 @@ public class XStreamTransformer {
return CLASS_2_XSTREAM_INSTANCE.get(clazz).toXML(object);
}
- private static Map configXStreamInstance() {
- Map map = new HashMap<>();
+ private static Map, XStream> configXStreamInstance() {
+ Map, XStream> map = new HashMap<>();
map.put(WxMpXmlMessage.class, config_WxMpXmlMessage());
map.put(WxMpXmlOutMusicMessage.class, config_WxMpXmlOutMusicMessage());
map.put(WxMpXmlOutNewsMessage.class, config_WxMpXmlOutNewsMessage());