From 09c7d6c6c414d0850ad2d58d6e226b005a8bb795 Mon Sep 17 00:00:00 2001 From: Harrison Date: Wed, 1 Jun 2022 18:23:20 +0800 Subject: [PATCH] =?UTF-8?q?REPORT-72831=20=E8=AE=BE=E8=AE=A1=E5=99=A8?= =?UTF-8?q?=E7=8E=AF=E5=A2=83=E6=A3=80=E6=B5=8B-=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E5=99=A8=E6=AD=A3=E5=B8=B8=E7=9A=84=EF=BC=8C=E4=BD=86=E6=98=AF?= =?UTF-8?q?=E6=8A=9B=E5=87=BA=E5=BC=82=E5=B8=B8=E4=BA=86=201-=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E6=8A=9B=E5=87=BA=E5=BC=82=E5=B8=B8=EF=BC=8C=E5=86=99?= =?UTF-8?q?=E5=8F=8D=E4=BA=86=202-=E4=BF=AE=E6=94=B9=E4=B8=80=E4=B8=AA=20A?= =?UTF-8?q?ctivator=20=E7=9A=84=E5=90=8D=E5=AD=97=E5=92=8C=E5=90=AF?= =?UTF-8?q?=E5=8A=A8=E9=A1=B9=203-=E4=BF=AE=E6=94=B9=20=E9=87=8D=E6=96=B0?= =?UTF-8?q?=E6=A3=80=E6=B5=8B=E7=9A=84=E6=97=B6=E5=80=99=E7=9A=84=20UI=20?= =?UTF-8?q?=E7=95=8C=E9=9D=A2=204-=E4=BF=AE=E5=A4=8D=E5=B0=8F=E9=83=A8?= =?UTF-8?q?=E5=88=86=E8=87=AA=E5=B7=B1=E5=8F=91=E7=8E=B0=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/env/{detect => }/EnvPrepare.java | 3 ++- .../com/fr/env/detect/EnvDetectorCenter.java | 23 +++++++++++++++---- .../fr/env/detect/base/DetectorBridge.java | 5 ++++ .../fr/env/detect/impl/JarLackDetector.java | 3 ++- .../converter/ClassConflictConvertor.java | 9 ++++++-- .../fr/env/detect/ui/EnvDetectorDialog.java | 15 +++++++++++- 6 files changed, 48 insertions(+), 10 deletions(-) rename designer-base/src/main/java/com/fr/env/{detect => }/EnvPrepare.java (89%) diff --git a/designer-base/src/main/java/com/fr/env/detect/EnvPrepare.java b/designer-base/src/main/java/com/fr/env/EnvPrepare.java similarity index 89% rename from designer-base/src/main/java/com/fr/env/detect/EnvPrepare.java rename to designer-base/src/main/java/com/fr/env/EnvPrepare.java index 258d579aaa..999088e272 100644 --- a/designer-base/src/main/java/com/fr/env/detect/EnvPrepare.java +++ b/designer-base/src/main/java/com/fr/env/EnvPrepare.java @@ -1,5 +1,6 @@ -package com.fr.env.detect; +package com.fr.env; +import com.fr.env.detect.EnvDetectorCenter; import com.fr.module.Activator; /** diff --git a/designer-base/src/main/java/com/fr/env/detect/EnvDetectorCenter.java b/designer-base/src/main/java/com/fr/env/detect/EnvDetectorCenter.java index 98938a4f8e..e9ed96cf8d 100644 --- a/designer-base/src/main/java/com/fr/env/detect/EnvDetectorCenter.java +++ b/designer-base/src/main/java/com/fr/env/detect/EnvDetectorCenter.java @@ -10,6 +10,7 @@ import com.fr.design.mainframe.DesignerContext; import com.fr.design.ui.util.UIUtil; import com.fr.env.detect.base.DetectorBridge; import com.fr.env.detect.base.DetectorUtil; +import com.fr.env.detect.base.EnvDetectorConfig; import com.fr.env.detect.bean.DetectorResult; import com.fr.env.detect.bean.DetectorStatus; import com.fr.event.Event; @@ -50,6 +51,14 @@ public class EnvDetectorCenter { * 初始化 */ public void init() { + + // 重置逻辑 + DetectorBridge.getInstance().reset(); + + // 如果已经启动了,则不再启动 + if (PROCESS.get() != null) { + return; + } // 默认是启动 PROCESS.set(DetectorProcess.DESIGN_LAUNCH); @@ -121,13 +130,17 @@ public class EnvDetectorCenter { */ public void stop() { - // 一分钟后执行 + // 结束 + DetectorBridge.getInstance().stop(); + + // 30s后执行 DelayHelper.delayCall(EnvDetectorCenter.class.getName(), () -> { - + + // 如果当前没开启,则直接返回 + if (!EnvDetectorConfig.getInstance().isEnabled()) { + return; + } Stream resultStream = DetectorBridge.getInstance().detect(); - - // 结束 - DetectorBridge.getInstance().stop(); // 展示效果 NotificationDialogProperties properties = new NotificationDialogProperties(DesignerContext.getDesignerFrame(), Toolkit.i18nText("Fine-Design_Basic_Detect_Notification_Title")); diff --git a/designer-base/src/main/java/com/fr/env/detect/base/DetectorBridge.java b/designer-base/src/main/java/com/fr/env/detect/base/DetectorBridge.java index 0d5b60bc09..50bca7fd1c 100644 --- a/designer-base/src/main/java/com/fr/env/detect/base/DetectorBridge.java +++ b/designer-base/src/main/java/com/fr/env/detect/base/DetectorBridge.java @@ -71,6 +71,11 @@ public class DetectorBridge { } } + public void reset() { + + ThrowableStore.getInstance().reset(); + } + /** * 针对某一项进行检测 * 主要用于手动检测时 diff --git a/designer-base/src/main/java/com/fr/env/detect/impl/JarLackDetector.java b/designer-base/src/main/java/com/fr/env/detect/impl/JarLackDetector.java index 74c908000a..8c85da202e 100644 --- a/designer-base/src/main/java/com/fr/env/detect/impl/JarLackDetector.java +++ b/designer-base/src/main/java/com/fr/env/detect/impl/JarLackDetector.java @@ -78,7 +78,8 @@ public class JarLackDetector extends AbstractExceptionDetector { } private boolean isLackInfo(BuildInfo e) { - return StringUtils.isNotEmpty(e.getGroupBuild()); + + return StringUtils.isEmpty(e.getGroupBuild()); } private Message tipsMessage(List infos) { diff --git a/designer-base/src/main/java/com/fr/env/detect/impl/converter/ClassConflictConvertor.java b/designer-base/src/main/java/com/fr/env/detect/impl/converter/ClassConflictConvertor.java index 3432d976d7..ab2b16ed9a 100644 --- a/designer-base/src/main/java/com/fr/env/detect/impl/converter/ClassConflictConvertor.java +++ b/designer-base/src/main/java/com/fr/env/detect/impl/converter/ClassConflictConvertor.java @@ -110,13 +110,18 @@ public class ClassConflictConvertor implements ThrowableConverter { } } + // 如果少于两个,则不需要提示 + if (allPath.size() < 2) { + return null; + } + String msg = StringUtils.join(allPath, SEPARATOR); DetectorType type = DetectorType.JAR_CONFLICT; return DetectorResult.exception(type, - ExceptionTips.create(Toolkit.i18nText(type.getTipsLocale(), msg)), + ExceptionTips.create(Toolkit.i18nText(type.getTipsLocale()) + msg), ExceptionSolution.create(Toolkit.i18nText(type.getSolutionLocale()), DetectorConstants.JAR_HELP_LINK, null), - ExceptionLog.create(Toolkit.i18nText(type.getLogLocale()), msg)); + ExceptionLog.create(Toolkit.i18nText(type.getLogLocale()) + msg)); } @NotNull diff --git a/designer-base/src/main/java/com/fr/env/detect/ui/EnvDetectorDialog.java b/designer-base/src/main/java/com/fr/env/detect/ui/EnvDetectorDialog.java index 64d6f41682..96120e317f 100644 --- a/designer-base/src/main/java/com/fr/env/detect/ui/EnvDetectorDialog.java +++ b/designer-base/src/main/java/com/fr/env/detect/ui/EnvDetectorDialog.java @@ -166,7 +166,11 @@ public class EnvDetectorDialog extends JDialog { } private void startDetecting(UIButton detectButton) { - + + // 重新检测的时候需要处理一些逻辑 + if (buttonStatus == EnvDetectorButtonStatus.A_NEW) { + reInit(); + } // 执行前 buttonStatus = buttonStatus.next(); UIUtil.invokeLaterIfNeeded(() -> detectButton.setText(buttonStatus.getDesc())); @@ -222,6 +226,15 @@ public class EnvDetectorDialog extends JDialog { detectWorker.execute(); } + private void reInit() { + currentDetectIndex = 0; + for (EnvDetectorItem e : model.getItems()) { + e.setResult(null); + } + // 刷新一下面板-开始执行啦 + UIUtil.invokeLaterIfNeeded(EnvDetectorDialog.this::refresh); + } + private void stopDetecting(UIButton detectButton) { buttonStatus = buttonStatus.next();