diff --git a/designer-base/src/main/java/com/fr/design/update/processor/AbstractSyncProcessor.java b/designer-base/src/main/java/com/fr/design/update/processor/AbstractSyncProcessor.java index 13260b1ea6..fac8665a79 100644 --- a/designer-base/src/main/java/com/fr/design/update/processor/AbstractSyncProcessor.java +++ b/designer-base/src/main/java/com/fr/design/update/processor/AbstractSyncProcessor.java @@ -14,7 +14,7 @@ import java.util.Set; * Created on 2025/5/15 15:27 * jar更新接口默认实现 */ -public class AbstractSyncProcessor implements SyncProcessor { +public abstract class AbstractSyncProcessor implements SyncProcessor { @Override public int currentAPILevel() { diff --git a/designer-base/src/main/java/com/fr/design/update/processor/SyncProcessorExecutor.java b/designer-base/src/main/java/com/fr/design/update/processor/SyncProcessorExecutor.java index 96ac4047d2..9329b5cd8f 100644 --- a/designer-base/src/main/java/com/fr/design/update/processor/SyncProcessorExecutor.java +++ b/designer-base/src/main/java/com/fr/design/update/processor/SyncProcessorExecutor.java @@ -51,7 +51,7 @@ public class SyncProcessorExecutor { * 获取执行器实例 */ public SyncProcessor getExecutor() { - return ExtraDesignClassManager.getInstance().getSingle(SyncProcessor.XML_TAG, new AbstractSyncProcessor()); + return ExtraDesignClassManager.getInstance().getSingle(SyncProcessor.XML_TAG, new AbstractSyncProcessor(){}); } @@ -60,30 +60,33 @@ public class SyncProcessorExecutor { */ public boolean executeJarSync(UpdateCallBack callBack, String fullBuildNo) { SyncProcessor processor = getExecutor(); - if (processor.supportedSyncType().contains(SyncProcessor.SyncType.JAR_SYNC)) { - String dir = StableUtils.pathJoin(ProjectLibrary.getInstance().getLibHome(), ProjectConstants.ASSIST_NAME, UpdateConstants.ENV_LIB); - try { - // 备份jar - Recover recoverForSync = RecoverForSync.getInstance(); - if (fullBuildNo != null) { - if (recoverForSync.backup()) { - if (processor.executeJarSync(callBack, fullBuildNo, processor.DESIGNER_JARS_PATH, processor.COMMON_JARS_PATH)) { - CommandGroup commands = getCommandGroup(processor.DESIGNER_JARS_PATH, processor.COMMON_JARS_PATH); - return commands.execute(callBack); - } - // 同步失败,恢复 - recoverForSync.recover(); - } - } + // 提前检查不支持的同步类型 + if (!processor.supportedSyncType().contains(SyncProcessor.SyncType.JAR_SYNC)) { + return SyncExecutor.getInstance().execute(callBack, fullBuildNo); + } + Recover recoverForSync = RecoverForSync.getInstance(); + // 备份失败直接返回 + if (!recoverForSync.backup()) { + return false; + } + String dir = StableUtils.pathJoin(ProjectLibrary.getInstance().getLibHome(), + ProjectConstants.ASSIST_NAME, UpdateConstants.ENV_LIB); + try { + if (fullBuildNo == null) { return false; - } catch (Exception e) { - FineLoggerFactory.getLogger().error(e.getMessage(), e); + } + if (!processor.executeJarSync(callBack, fullBuildNo, processor.DESIGNER_JARS_PATH, processor.COMMON_JARS_PATH)) { + recoverForSync.recover(); return false; - } finally { - CommonIOUtils.deleteFile(new File(dir)); } - } else { - return SyncExecutor.getInstance().execute(callBack, fullBuildNo); + CommandGroup commands = getCommandGroup(processor.DESIGNER_JARS_PATH, processor.COMMON_JARS_PATH); + return commands.execute(callBack); + } catch (Exception e) { + recoverForSync.recover(); + FineLoggerFactory.getLogger().error(e.getMessage(), e); + return false; + } finally { + CommonIOUtils.deleteFile(new File(dir)); } } @@ -134,6 +137,7 @@ public class SyncProcessorExecutor { differentPlugin = new JSONObject(); differentPlugin.put(ID, pluginMarker.getPluginID()); differentPlugin.put(VERSION, pluginMarker.getVersion()); + differentPluginsJsonArray.add(differentPlugin); } } return differentPluginsJsonArray;