diff --git a/designer-base/src/main/java/com/fr/design/versioncheck/VersionCheckUtils.java b/designer-base/src/main/java/com/fr/design/versioncheck/VersionCheckUtils.java index 509b103a41..06017ce175 100644 --- a/designer-base/src/main/java/com/fr/design/versioncheck/VersionCheckUtils.java +++ b/designer-base/src/main/java/com/fr/design/versioncheck/VersionCheckUtils.java @@ -28,8 +28,6 @@ import com.fr.plugin.manage.control.PluginTaskCallback; import com.fr.plugin.manage.control.PluginTaskResult; import com.fr.plugin.manage.control.ProgressCallback; import com.fr.report.ReportHelper; -import com.fr.rpc.ExceptionHandler; -import com.fr.rpc.RPCInvokerExceptionInfo; import com.fr.rpc.Result; import com.fr.stable.StringUtils; import com.fr.workspace.WorkContext; @@ -39,7 +37,7 @@ import com.fr.workspace.engine.base.FineObjectPool; import com.fr.workspace.engine.channel.http.FunctionalHttpRequest; import com.fr.workspace.engine.exception.WorkspaceConnectionException; import com.fr.workspace.engine.rpc.WorkspaceProxyPool; -import com.fr.workspace.server.check.VersionInfoOperator; + import java.lang.reflect.Method; import java.text.ParsePosition; import java.text.SimpleDateFormat; @@ -53,7 +51,6 @@ import java.util.Map; import java.util.Set; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; -import javax.swing.SwingWorker; /** * @author pengda @@ -285,16 +282,14 @@ public class VersionCheckUtils { public static JSONArray checkLocalAndRemotePlugin() { JSONArray differentPlugins = new JSONArray(); - JSONArray remotePlugins = FRContext.getCommonOperator().getPluginStatus(); + List remotePlugins = FRContext.getCommonOperator().getPluginStatus(); Map localPluginsMap = new HashMap<>(); List localPlugins = PluginManager.getContexts(); for (PluginContext pluginContext : localPlugins) { localPluginsMap.put(pluginContext.getID(), pluginContext); } - JSONObject remotePlugin; Map pluginsNameMap = ReportHelper.getPluginNameMap(); - for (int i = 0; i < remotePlugins.size(); i++) { - remotePlugin = remotePlugins.getJSONObject(i); + for (JSONObject remotePlugin : remotePlugins) { if (isPluginNeedIgnore(remotePlugin)) { continue; } diff --git a/designer-realize/src/main/java/com/fanruan/boot/env/DesignPluginComponent.java b/designer-realize/src/main/java/com/fanruan/boot/env/DesignPluginComponent.java index be92acac20..a36066386a 100644 --- a/designer-realize/src/main/java/com/fanruan/boot/env/DesignPluginComponent.java +++ b/designer-realize/src/main/java/com/fanruan/boot/env/DesignPluginComponent.java @@ -9,9 +9,15 @@ import com.fanruan.carina.annotions.Stop; import com.fanruan.carina.annotions.Supplemental; import com.fanruan.plugin.autonomy.AutonomyClassManagerGroup; import com.fanruan.plugin.autonomy.AutonomyClassManagerProvider; +import com.fr.json.JSONObject; import com.fr.plugin.ExtraClassManager; +import com.fr.plugin.manage.PluginManager; +import com.fr.plugin.manage.PluginSyncModuleType; +import com.fr.workspace.server.repository.plugin.PluginRepository; import javax.servlet.ServletContext; +import java.util.List; +import java.util.function.Supplier; /** * 设计器插件模块,环境切换的中间模块 @@ -38,6 +44,11 @@ public class DesignPluginComponent extends PluginComponent { @Start public void start() { ExtraClassManager.getInstance().registerAutonomyClassManager(Carina.getApplicationContext().group(AutonomyClassManagerGroup.class).getAll().toArray(new AutonomyClassManagerProvider[0])); + + Supplier> supplier = () -> PluginRepository.getInstance().getPluginStatus(); + PluginManager.registerRemotePluginSupplier(supplier); + PluginManager.setSyncModuleType(PluginSyncModuleType.DESIGN); + super.start(); } diff --git a/designer-realize/src/main/java/com/fanruan/boot/env/function/app/PluginRemote.java b/designer-realize/src/main/java/com/fanruan/boot/env/function/app/PluginRemote.java index 9dd44c79e2..380f608659 100644 --- a/designer-realize/src/main/java/com/fanruan/boot/env/function/app/PluginRemote.java +++ b/designer-realize/src/main/java/com/fanruan/boot/env/function/app/PluginRemote.java @@ -1,7 +1,6 @@ package com.fanruan.boot.env.function.app; import com.fr.base.FRContext; -import com.fr.json.JSONArray; import com.fr.json.JSONException; import com.fr.json.JSONObject; import com.fr.log.FineLoggerFactory; @@ -12,6 +11,7 @@ import com.fr.workspace.WorkContext; import org.jetbrains.annotations.NotNull; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; @@ -57,19 +57,17 @@ public class PluginRemote { private Map getRemoteStatus() { - JSONArray statusArray = FRContext.getCommonOperator().getPluginStatus(); - JSONObject status; + List objectList = FRContext.getCommonOperator().getPluginStatus(); String id; String version; boolean running; Map statusMap = new HashMap<>(); - for (int i = 0; i < statusArray.length(); i++) { + for (JSONObject status : objectList) { try { - status = statusArray.getJSONObject(i); id = status.getString("id"); version = status.getString("version"); running = status.getBoolean("running"); - if(StringUtils.isBlank(id)){ + if (StringUtils.isBlank(id)) { continue; } PluginStatus pluginStatus = PluginStatus.create(id, version, running); diff --git a/designer-realize/src/main/java/com/fanruan/boot/init/DesignWorkContextComponent.java b/designer-realize/src/main/java/com/fanruan/boot/init/DesignWorkContextComponent.java index 3120c9ef53..1756a1952c 100644 --- a/designer-realize/src/main/java/com/fanruan/boot/init/DesignWorkContextComponent.java +++ b/designer-realize/src/main/java/com/fanruan/boot/init/DesignWorkContextComponent.java @@ -63,6 +63,7 @@ import com.fr.workspace.server.repository.compatible.register.CompatibleRegister import com.fanruan.workplace.network.RemoteNetworkRepository; import com.fr.workspace.server.repository.config.ConfigRepository; import com.fr.workspace.server.repository.connection.ConnectionRepository; +import com.fr.workspace.server.repository.plugin.PluginRepository; import com.fr.workspace.server.repository.resource.PublicResourceRepository; import com.fr.workspace.server.repository.resource.WorkResourceRepository; import com.fr.workspace.server.repository.system.SystemInfoRepository; @@ -112,6 +113,7 @@ public class DesignWorkContextComponent { RepositoryManager.getInstance().pureRegisterRepo4Start(WorkResourceRepository.getInstance()); RepositoryManager.getInstance().pureRegisterRepo4Start(PublicResourceRepository.getInstance()); RepositoryManager.getInstance().pureRegisterRepo4Start(ConfigRepository.getInstance()); + RepositoryManager.getInstance().pureRegisterRepo4Start(PluginRepository.getInstance()); RepositoryManager.getInstance().initLocalRepository(); CompatibleRegister.registerCompatibleEnv(); for (WorkRPCRegister workRPCRegister : ServiceContext.group(WorkspaceKey.class).getAll()) {