From e0c995e1f8f186b7c535053cba3974fbcdac33b4 Mon Sep 17 00:00:00 2001 From: giveme0101 Date: Thu, 24 Sep 2020 14:31:10 +0800 Subject: [PATCH 1/4] =?UTF-8?q?:bug:=20#1777=20XML=E5=B7=A5=E5=85=B7?= =?UTF-8?q?=E7=B1=BB=E4=BF=AE=E5=A4=8D=E6=97=A0=E6=B3=95=E8=A7=A3=E6=9E=90?= =?UTF-8?q?=E8=BF=99=E7=A7=8D=E8=8A=82=E7=82=B9=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../me/chanjar/weixin/common/util/XmlUtils.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/XmlUtils.java b/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/XmlUtils.java index c2ffdb001..cff2b9745 100644 --- a/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/XmlUtils.java +++ b/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/XmlUtils.java @@ -3,10 +3,7 @@ package me.chanjar.weixin.common.util; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Sets; -import org.dom4j.Document; -import org.dom4j.DocumentException; -import org.dom4j.Element; -import org.dom4j.Node; +import org.dom4j.*; import org.dom4j.io.SAXReader; import org.dom4j.tree.DefaultText; import org.xml.sax.SAXException; @@ -50,14 +47,16 @@ public class XmlUtils { } private static Object element2MapOrString(Element element) { - Map result = Maps.newHashMap(); final List content = element.content(); - if (content.size() <= 1) { + final Set names = names(content); + + // 判断节点下有无非文本节点(非Text和CDATA),如无,直接取Text文本内容 + if (names.size() < 1) { return element.getText(); } - final Set names = names(content); + Map result = Maps.newHashMap(); if (names.size() == 1) { // 说明是个列表,各个子对象是相同的name List list = Lists.newArrayList(); @@ -90,7 +89,8 @@ public class XmlUtils { private static Set names(List nodes) { Set names = Sets.newHashSet(); for (Node node : nodes) { - if (node instanceof DefaultText) { + // 如果节点类型是Text或CDATA跳过 + if (node instanceof DefaultText || node instanceof CDATA) { continue; } names.add(node.getName()); From 697a6809d593cfb9f5c8fcc64a7c38270a0e3ec9 Mon Sep 17 00:00:00 2001 From: Binary Wang Date: Thu, 24 Sep 2020 14:34:23 +0800 Subject: [PATCH 2/4] =?UTF-8?q?:art:=20WxMpMessageRouter=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=9E=84=E9=80=A0=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/me/chanjar/weixin/mp/api/WxMpMessageRouter.java | 2 ++ 1 file changed, 2 insertions(+) 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 36556d984..173f26ce2 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,6 +1,7 @@ package me.chanjar.weixin.mp.api; import com.google.common.util.concurrent.ThreadFactoryBuilder; +import lombok.AllArgsConstructor; import me.chanjar.weixin.common.api.WxErrorExceptionHandler; import me.chanjar.weixin.common.api.WxMessageDuplicateChecker; import me.chanjar.weixin.common.api.WxMessageInMemoryDuplicateChecker; @@ -49,6 +50,7 @@ import java.util.concurrent.*; * * @author Daniel Qian */ +@AllArgsConstructor public class WxMpMessageRouter { private static final int DEFAULT_THREAD_POOL_SIZE = 100; protected final Logger log = LoggerFactory.getLogger(WxMpMessageRouter.class); From 32f72774fed0289a100a4b4cd823be7258d87e92 Mon Sep 17 00:00:00 2001 From: Binary Wang Date: Thu, 24 Sep 2020 14:41:24 +0800 Subject: [PATCH 3/4] =?UTF-8?q?:art:=20=E5=8D=87=E7=BA=A7=E4=BE=9D?= =?UTF-8?q?=E8=B5=96jodd-http=E7=89=88=E6=9C=AC=EF=BC=8C=E5=B9=B6=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E4=B8=8D=E5=85=BC=E5=AE=B9=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 +- .../http/jodd/JoddHttpMediaDownloadRequestExecutor.java | 3 ++- .../http/jodd/JoddHttpMediaUploadRequestExecutor.java | 3 ++- .../util/http/jodd/JoddHttpSimpleGetRequestExecutor.java | 3 ++- .../util/http/jodd/JoddHttpSimplePostRequestExecutor.java | 3 ++- .../material/MaterialDeleteJoddHttpRequestExecutor.java | 3 ++- .../material/MaterialNewsInfoJoddHttpRequestExecutor.java | 8 +++++--- .../material/MaterialUploadJoddHttpRequestExecutor.java | 3 ++- .../MaterialVideoInfoJoddHttpRequestExecutor.java | 3 ++- ...erialVoiceAndImageDownloadJoddHttpRequestExecutor.java | 2 +- .../media/MediaImgUploadHttpRequestExecutor.java | 3 ++- .../qrcode/QrCodeJoddHttpRequestExecutor.java | 3 ++- .../open/executor/MaQrCodeJoddHttpRequestExecutor.java | 3 ++- 13 files changed, 27 insertions(+), 15 deletions(-) diff --git a/pom.xml b/pom.xml index 186ac3568..8c115354e 100644 --- a/pom.xml +++ b/pom.xml @@ -134,7 +134,7 @@ org.jodd jodd-http - 5.1.6 + 5.2.0 provided diff --git a/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/jodd/JoddHttpMediaDownloadRequestExecutor.java b/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/jodd/JoddHttpMediaDownloadRequestExecutor.java index 5c67cbffe..00df2a640 100644 --- a/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/jodd/JoddHttpMediaDownloadRequestExecutor.java +++ b/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/jodd/JoddHttpMediaDownloadRequestExecutor.java @@ -19,6 +19,7 @@ import java.io.ByteArrayInputStream; import java.io.File; import java.io.IOException; import java.io.InputStream; +import java.nio.charset.StandardCharsets; /** * . @@ -47,7 +48,7 @@ public class JoddHttpMediaDownloadRequestExecutor extends BaseMediaDownloadReque request.withConnectionProvider(requestHttp.getRequestHttpClient()); HttpResponse response = request.send(); - response.charset(StringPool.UTF_8); + response.charset(StandardCharsets.UTF_8.name()); String contentType = response.header("Content-Type"); if (contentType != null && contentType.startsWith("application/json")) { diff --git a/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/jodd/JoddHttpMediaUploadRequestExecutor.java b/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/jodd/JoddHttpMediaUploadRequestExecutor.java index 93f25fb74..89ea05a02 100644 --- a/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/jodd/JoddHttpMediaUploadRequestExecutor.java +++ b/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/jodd/JoddHttpMediaUploadRequestExecutor.java @@ -14,6 +14,7 @@ import me.chanjar.weixin.common.util.http.RequestHttp; import java.io.File; import java.io.IOException; +import java.nio.charset.StandardCharsets; /** * . @@ -35,7 +36,7 @@ public class JoddHttpMediaUploadRequestExecutor extends MediaUploadRequestExecut request.withConnectionProvider(requestHttp.getRequestHttpClient()); request.form("media", file); HttpResponse response = request.send(); - response.charset(StringPool.UTF_8); + response.charset(StandardCharsets.UTF_8.name()); String responseContent = response.bodyText(); WxError error = WxError.fromJson(responseContent, wxType); diff --git a/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/jodd/JoddHttpSimpleGetRequestExecutor.java b/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/jodd/JoddHttpSimpleGetRequestExecutor.java index e8adad6b6..5960274eb 100644 --- a/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/jodd/JoddHttpSimpleGetRequestExecutor.java +++ b/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/jodd/JoddHttpSimpleGetRequestExecutor.java @@ -11,6 +11,7 @@ import me.chanjar.weixin.common.util.http.RequestHttp; import me.chanjar.weixin.common.util.http.SimpleGetRequestExecutor; import java.io.IOException; +import java.nio.charset.StandardCharsets; /** * . @@ -38,7 +39,7 @@ public class JoddHttpSimpleGetRequestExecutor extends SimpleGetRequestExecutor { - private final Logger logger = LoggerFactory.getLogger(this.getClass()); public MaterialNewsInfoJoddHttpRequestExecutor(RequestHttp requestHttp) { super(requestHttp); } @@ -38,10 +40,10 @@ public class MaterialNewsInfoJoddHttpRequestExecutor extends MaterialNewsInfoReq .withConnectionProvider(requestHttp.getRequestHttpClient()) .body(WxGsonBuilder.create().toJson(ImmutableMap.of("media_id", materialId))); HttpResponse response = request.send(); - response.charset(StringPool.UTF_8); + response.charset(StandardCharsets.UTF_8.name()); String responseContent = response.bodyText(); - this.logger.debug("响应原始数据:{}", responseContent); + log.debug("响应原始数据:{}", responseContent); WxError error = WxError.fromJson(responseContent, WxType.MP); if (error.getErrorCode() != 0) { throw new WxErrorException(error); diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/requestexecuter/material/MaterialUploadJoddHttpRequestExecutor.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/requestexecuter/material/MaterialUploadJoddHttpRequestExecutor.java index 7699f2f20..f4caa14b0 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/requestexecuter/material/MaterialUploadJoddHttpRequestExecutor.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/requestexecuter/material/MaterialUploadJoddHttpRequestExecutor.java @@ -17,6 +17,7 @@ import me.chanjar.weixin.mp.bean.material.WxMpMaterialUploadResult; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; +import java.nio.charset.StandardCharsets; import java.util.Map; /** @@ -50,7 +51,7 @@ public class MaterialUploadJoddHttpRequestExecutor extends MaterialUploadRequest } HttpResponse response = request.send(); - response.charset(StringPool.UTF_8); + response.charset(StandardCharsets.UTF_8.name()); String responseContent = response.bodyText(); WxError error = WxError.fromJson(responseContent, WxType.MP); if (error.getErrorCode() != 0) { diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/requestexecuter/material/MaterialVideoInfoJoddHttpRequestExecutor.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/requestexecuter/material/MaterialVideoInfoJoddHttpRequestExecutor.java index f142c2178..9149d4679 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/requestexecuter/material/MaterialVideoInfoJoddHttpRequestExecutor.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/requestexecuter/material/MaterialVideoInfoJoddHttpRequestExecutor.java @@ -13,6 +13,7 @@ import me.chanjar.weixin.common.util.http.RequestHttp; import me.chanjar.weixin.mp.bean.material.WxMpMaterialVideoInfoResult; import java.io.IOException; +import java.nio.charset.StandardCharsets; /** * Created by ecoolper on 2017/5/5. @@ -32,7 +33,7 @@ public class MaterialVideoInfoJoddHttpRequestExecutor extends MaterialVideoInfoR request.query("media_id", materialId); HttpResponse response = request.send(); - response.charset(StringPool.UTF_8); + response.charset(StandardCharsets.UTF_8.name()); String responseContent = response.bodyText(); WxError error = WxError.fromJson(responseContent, WxType.MP); if (error.getErrorCode() != 0) { diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/requestexecuter/material/MaterialVoiceAndImageDownloadJoddHttpRequestExecutor.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/requestexecuter/material/MaterialVoiceAndImageDownloadJoddHttpRequestExecutor.java index 1a4c25590..e4da2004e 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/requestexecuter/material/MaterialVoiceAndImageDownloadJoddHttpRequestExecutor.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/requestexecuter/material/MaterialVoiceAndImageDownloadJoddHttpRequestExecutor.java @@ -37,7 +37,7 @@ public class MaterialVoiceAndImageDownloadJoddHttpRequestExecutor extends Materi request.query("media_id", materialId); HttpResponse response = request.send(); - response.charset(StringPool.UTF_8); + response.charset(StandardCharsets.UTF_8.name()); try (InputStream inputStream = new ByteArrayInputStream(response.bodyBytes())) { // 下载媒体文件出错 byte[] responseContent = IOUtils.toByteArray(inputStream); diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/requestexecuter/media/MediaImgUploadHttpRequestExecutor.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/requestexecuter/media/MediaImgUploadHttpRequestExecutor.java index 76c625141..9da068657 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/requestexecuter/media/MediaImgUploadHttpRequestExecutor.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/requestexecuter/media/MediaImgUploadHttpRequestExecutor.java @@ -14,6 +14,7 @@ import me.chanjar.weixin.mp.bean.material.WxMediaImgUploadResult; import java.io.File; import java.io.IOException; +import java.nio.charset.StandardCharsets; /** * Created by ecoolper on 2017/5/5. @@ -39,7 +40,7 @@ public class MediaImgUploadHttpRequestExecutor extends MediaImgUploadRequestExec request.form("media", data); HttpResponse response = request.send(); - response.charset(StringPool.UTF_8); + response.charset(StandardCharsets.UTF_8.name()); String responseContent = response.bodyText(); WxError error = WxError.fromJson(responseContent, WxType.MP); if (error.getErrorCode() != 0) { diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/requestexecuter/qrcode/QrCodeJoddHttpRequestExecutor.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/requestexecuter/qrcode/QrCodeJoddHttpRequestExecutor.java index 99621843d..32d3d3ca7 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/requestexecuter/qrcode/QrCodeJoddHttpRequestExecutor.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/requestexecuter/qrcode/QrCodeJoddHttpRequestExecutor.java @@ -19,6 +19,7 @@ import java.io.File; import java.io.IOException; import java.io.InputStream; import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; import java.util.UUID; /** @@ -47,7 +48,7 @@ public class QrCodeJoddHttpRequestExecutor extends QrCodeRequestExecutor Date: Thu, 24 Sep 2020 14:54:54 +0800 Subject: [PATCH 4/4] =?UTF-8?q?:art:=20=E4=BC=98=E5=8C=96GraalProcessor?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../github}/binarywang/wx/graal/GraalProcessor.java | 6 +++--- .../META-INF/services/javax.annotation.processing.Processor | 2 +- weixin-java-common/pom.xml | 2 +- weixin-java-cp/pom.xml | 2 +- weixin-java-miniapp/pom.xml | 2 +- weixin-java-mp/pom.xml | 2 +- weixin-java-open/pom.xml | 2 +- weixin-java-pay/pom.xml | 2 +- 8 files changed, 10 insertions(+), 10 deletions(-) rename weixin-graal/src/main/java/{cn => com/github}/binarywang/wx/graal/GraalProcessor.java (97%) diff --git a/weixin-graal/src/main/java/cn/binarywang/wx/graal/GraalProcessor.java b/weixin-graal/src/main/java/com/github/binarywang/wx/graal/GraalProcessor.java similarity index 97% rename from weixin-graal/src/main/java/cn/binarywang/wx/graal/GraalProcessor.java rename to weixin-graal/src/main/java/com/github/binarywang/wx/graal/GraalProcessor.java index a7b02cae9..a983a5189 100644 --- a/weixin-graal/src/main/java/cn/binarywang/wx/graal/GraalProcessor.java +++ b/weixin-graal/src/main/java/com/github/binarywang/wx/graal/GraalProcessor.java @@ -1,4 +1,4 @@ -package cn.binarywang.wx.graal; +package com.github.binarywang.wx.graal; import lombok.Data; @@ -26,12 +26,12 @@ import java.util.TreeSet; * @author outersky */ @SupportedAnnotationTypes("lombok.Data") -@SupportedSourceVersion(SourceVersion.RELEASE_7) +@SupportedSourceVersion(SourceVersion.RELEASE_8) public class GraalProcessor extends AbstractProcessor { private static final String REFLECTION_CONFIG_JSON = "reflection-config.json"; private static final String NATIVE_IMAGE_PROPERTIES = "native-image.properties"; - private SortedSet classSet = new TreeSet<>(); + private final SortedSet classSet = new TreeSet<>(); private String shortestPackageName = null; @Override diff --git a/weixin-graal/src/main/resources/META-INF/services/javax.annotation.processing.Processor b/weixin-graal/src/main/resources/META-INF/services/javax.annotation.processing.Processor index fed7c4d9c..f358b92ef 100644 --- a/weixin-graal/src/main/resources/META-INF/services/javax.annotation.processing.Processor +++ b/weixin-graal/src/main/resources/META-INF/services/javax.annotation.processing.Processor @@ -1 +1 @@ -cn.binarywang.wx.graal.GraalProcessor +com.github.binarywang.wx.graal.GraalProcessor diff --git a/weixin-java-common/pom.xml b/weixin-java-common/pom.xml index 4f78703a6..e9c72fd9b 100644 --- a/weixin-java-common/pom.xml +++ b/weixin-java-common/pom.xml @@ -165,7 +165,7 @@ 3.5.1 - cn.binarywang.wx.graal.GraalProcessor,lombok.launch.AnnotationProcessorHider$AnnotationProcessor,lombok.launch.AnnotationProcessorHider$ClaimingProcessor + com.github.binarywang.wx.graal.GraalProcessor,lombok.launch.AnnotationProcessorHider$AnnotationProcessor,lombok.launch.AnnotationProcessorHider$ClaimingProcessor diff --git a/weixin-java-cp/pom.xml b/weixin-java-cp/pom.xml index 2c49ce942..2dbfa4965 100644 --- a/weixin-java-cp/pom.xml +++ b/weixin-java-cp/pom.xml @@ -119,7 +119,7 @@ 3.5.1 - cn.binarywang.wx.graal.GraalProcessor,lombok.launch.AnnotationProcessorHider$AnnotationProcessor,lombok.launch.AnnotationProcessorHider$ClaimingProcessor + com.github.binarywang.wx.graal.GraalProcessor,lombok.launch.AnnotationProcessorHider$AnnotationProcessor,lombok.launch.AnnotationProcessorHider$ClaimingProcessor diff --git a/weixin-java-miniapp/pom.xml b/weixin-java-miniapp/pom.xml index 39925c366..5963679be 100644 --- a/weixin-java-miniapp/pom.xml +++ b/weixin-java-miniapp/pom.xml @@ -126,7 +126,7 @@ 3.5.1 - cn.binarywang.wx.graal.GraalProcessor,lombok.launch.AnnotationProcessorHider$AnnotationProcessor,lombok.launch.AnnotationProcessorHider$ClaimingProcessor + com.github.binarywang.wx.graal.GraalProcessor,lombok.launch.AnnotationProcessorHider$AnnotationProcessor,lombok.launch.AnnotationProcessorHider$ClaimingProcessor diff --git a/weixin-java-mp/pom.xml b/weixin-java-mp/pom.xml index 8a9e7b1f7..e3bd89b06 100644 --- a/weixin-java-mp/pom.xml +++ b/weixin-java-mp/pom.xml @@ -115,7 +115,7 @@ 3.5.1 - cn.binarywang.wx.graal.GraalProcessor,lombok.launch.AnnotationProcessorHider$AnnotationProcessor,lombok.launch.AnnotationProcessorHider$ClaimingProcessor + com.github.binarywang.wx.graal.GraalProcessor,lombok.launch.AnnotationProcessorHider$AnnotationProcessor,lombok.launch.AnnotationProcessorHider$ClaimingProcessor diff --git a/weixin-java-open/pom.xml b/weixin-java-open/pom.xml index 2d35bc327..1c76f92b2 100644 --- a/weixin-java-open/pom.xml +++ b/weixin-java-open/pom.xml @@ -122,7 +122,7 @@ 3.5.1 - cn.binarywang.wx.graal.GraalProcessor,lombok.launch.AnnotationProcessorHider$AnnotationProcessor,lombok.launch.AnnotationProcessorHider$ClaimingProcessor + com.github.binarywang.wx.graal.GraalProcessor,lombok.launch.AnnotationProcessorHider$AnnotationProcessor,lombok.launch.AnnotationProcessorHider$ClaimingProcessor diff --git a/weixin-java-pay/pom.xml b/weixin-java-pay/pom.xml index 71f9458f5..35b5cb741 100644 --- a/weixin-java-pay/pom.xml +++ b/weixin-java-pay/pom.xml @@ -102,7 +102,7 @@ 3.5.1 - cn.binarywang.wx.graal.GraalProcessor,lombok.launch.AnnotationProcessorHider$AnnotationProcessor,lombok.launch.AnnotationProcessorHider$ClaimingProcessor + com.github.binarywang.wx.graal.GraalProcessor,lombok.launch.AnnotationProcessorHider$AnnotationProcessor,lombok.launch.AnnotationProcessorHider$ClaimingProcessor