From 5f836e314550f4497df6e20c70021f9ed89152c1 Mon Sep 17 00:00:00 2001 From: "Destiny.Lin" Date: Sat, 13 Jul 2024 15:42:06 +0800 Subject: [PATCH 1/6] =?UTF-8?q?REPORT-126951=20=E3=80=90=E4=BB=85FBP?= =?UTF-8?q?=E6=9C=89=E9=97=AE=E9=A2=98=E3=80=91-=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E5=99=A8=E8=8F=9C=E5=8D=95=E6=A0=8F-=E6=96=87=E4=BB=B6-?= =?UTF-8?q?=E9=80=89=E9=A1=B9-=E9=AB=98=E7=BA=A7-log=E5=AF=BC=E5=87=BA?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fanruan/boot/env/DesignEnvComponent.java | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/designer-realize/src/main/java/com/fanruan/boot/env/DesignEnvComponent.java b/designer-realize/src/main/java/com/fanruan/boot/env/DesignEnvComponent.java index fcb50ecb49..b4a1e91e85 100644 --- a/designer-realize/src/main/java/com/fanruan/boot/env/DesignEnvComponent.java +++ b/designer-realize/src/main/java/com/fanruan/boot/env/DesignEnvComponent.java @@ -31,6 +31,7 @@ import com.fr.cluster.ClusterBridge; import com.fr.cluster.lock.ClusterLock; import com.fr.config.BaseDBEnv; import com.fr.config.ConfigEvent; +import com.fr.config.Configuration; import com.fr.config.FinalPreferenceConfig; import com.fr.config.dao.DaoContext; import com.fr.config.dao.impl.BatchSubmitClassHelperDao; @@ -42,6 +43,8 @@ import com.fr.config.dao.impl.hibernate.HibernateXmlEnityDao; import com.fr.config.dao.impl.remote.RemoteClassHelperDao; import com.fr.config.dao.impl.remote.RemoteEntityDao; import com.fr.config.dao.impl.remote.RemoteXmlEntityDao; +import com.fr.config.holder.ConfigChangeListener; +import com.fr.config.holder.ValidateConfigManger; import com.fr.config.impl.ConfConfigProviderImpl; import com.fr.config.impl.ConfigInsecurityElementProviderImpl; import com.fr.decision.service.context.ServiceContext; @@ -54,6 +57,7 @@ import com.fr.design.backup.EnvBackupHelper; import com.fr.env.detect.EnvDetectorCenter; import com.fr.event.EventDispatcher; import com.fr.general.FRLogger; +import com.fr.general.log.Log4jConfig; import com.fr.general.log.Log4jUtils; import com.fr.intelli.metrics.Compute; import com.fr.intelli.metrics.DBMonitorInterceptor; @@ -86,6 +90,7 @@ import com.fr.stable.db.session.DBSession; import com.fr.stable.project.ProjectConstants; import com.fr.tenant.context.TenantContext; import com.fr.tenant.context.provider.CurrentTenantKey; +import com.fr.third.apache.logging.log4j.core.config.Configurator; import com.fr.third.net.bytebuddy.implementation.MethodDelegation; import com.fr.third.net.bytebuddy.matcher.ElementMatchers; import com.fr.third.org.hibernate.jdbc.AbstractWork; @@ -235,6 +240,25 @@ public class DesignEnvComponent { String realPath = Carina.properties(LoggerProperties.class).getXml(); URI uri = Log4jUtils.buildUserConfigURI(realPath); FRLogger.getLogger().config(uri); + // 日志配置更新的监听在FRLogger里面,fbp去掉了但是设计器本地还是需要这个监听的,初始化的时候监听一下 + listenConfig(); + } + + private void listenConfig() { + ValidateConfigManger.getInstance().registerListener(new ConfigChangeListener() { + + @Override + public boolean accept(Class configClass) { + return configClass.equals(Log4jConfig.class); + } + + @Override + public void change() { + // The root logger is the topmost logger with a name of "" (the empty string). + Configurator.setAllLevels("", Log4jConfig.getInstance().getRootLevel()); + } + }); + } private void stopLogger() { From cff812f4a6ae5822ef2497de34e096e3c4c37e56 Mon Sep 17 00:00:00 2001 From: "Destiny.Lin" Date: Sat, 13 Jul 2024 16:20:44 +0800 Subject: [PATCH 2/6] =?UTF-8?q?REPORT-126873=20FBP=E9=80=82=E9=85=8D?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E2=80=94=E2=80=94=E5=9B=BD=E9=99=85=E5=8C=96?= =?UTF-8?q?=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/fr/design/ConfigHelper.java | 7 ++++--- .../src/main/java/com/fr/design/DesignerEnvManager.java | 3 +++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/ConfigHelper.java b/designer-base/src/main/java/com/fr/design/ConfigHelper.java index c3f22a8718..31724d8652 100644 --- a/designer-base/src/main/java/com/fr/design/ConfigHelper.java +++ b/designer-base/src/main/java/com/fr/design/ConfigHelper.java @@ -77,15 +77,16 @@ public class ConfigHelper { private static Properties getProperties(String path, Properties defaultValue){ Properties properties = new Properties(); - if (defaultValue != null) { - properties.putAll(defaultValue); - } try { File file = new File(path); if (!file.exists()) { createFile(file); } properties.load(new BufferedReader(new FileReader(path))); + // 底层的环境信息,比如国际化什么的,不应该跟环境有关,要覆盖过来 + if (defaultValue != null) { + properties.putAll(defaultValue); + } } catch (Exception e) { FineLoggerFactory.getLogger().error(e, e.getMessage()); } diff --git a/designer-base/src/main/java/com/fr/design/DesignerEnvManager.java b/designer-base/src/main/java/com/fr/design/DesignerEnvManager.java index 2098c8da1f..6ef93b3146 100644 --- a/designer-base/src/main/java/com/fr/design/DesignerEnvManager.java +++ b/designer-base/src/main/java/com/fr/design/DesignerEnvManager.java @@ -3,6 +3,7 @@ */ package com.fr.design; +import com.fanruan.carina.Carina; import com.fr.base.BaseXMLUtils; import com.fr.base.OptimizeUtil; import com.fr.base.Utils; @@ -51,6 +52,7 @@ import com.fr.general.xml.async.XmlException; import com.fr.general.xml.async.XmlInitialFactory; import com.fr.log.FineLoggerFactory; import com.fr.log.LogHandler; +import com.fr.platform.scaffold.provider.config.LanguageConfigProvider; import com.fr.stable.CommonUtils; import com.fr.stable.Constants; import com.fr.stable.CoreConstants; @@ -1714,6 +1716,7 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter, AsyncXmlReada } } } + Carina.config(LanguageConfigProvider.class).setLocale(CommonUtils.localeToString(designerEnvManager.getLanguage())); } From a038a0d224a4e8b966666c8ab5f1cb079fb0a123 Mon Sep 17 00:00:00 2001 From: "Destiny.Lin" Date: Sun, 14 Jul 2024 02:20:51 +0800 Subject: [PATCH 3/6] =?UTF-8?q?REPORT-126500=20fbp=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E5=99=A8=E2=80=94=E2=80=94=E5=8F=96=E8=89=B2=E5=99=A8=E6=A6=82?= =?UTF-8?q?=E7=8E=87=E5=8D=A1=E6=AD=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/style/color/ColorPicker.java | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/style/color/ColorPicker.java b/designer-base/src/main/java/com/fr/design/style/color/ColorPicker.java index 067d82f9ce..ffc8d439a0 100644 --- a/designer-base/src/main/java/com/fr/design/style/color/ColorPicker.java +++ b/designer-base/src/main/java/com/fr/design/style/color/ColorPicker.java @@ -87,14 +87,15 @@ public class ColorPicker extends JDialog implements ActionListener { } public void updateLocation() { - mousePos = MouseInfo.getPointerInfo().getLocation(); - updateCoordinate(); - setLocation(setCoordinateX, setCoordinateY); - updateMousePos(); - updateCoordinate(); - colorPickerPanel.setMagnifierLocation(setCoordinateX, - setCoordinateY); - + if (MouseInfo.getPointerInfo() != null) { + mousePos = MouseInfo.getPointerInfo().getLocation(); + updateCoordinate(); + setLocation(setCoordinateX, setCoordinateY); + updateMousePos(); + updateCoordinate(); + colorPickerPanel.setMagnifierLocation(setCoordinateX, + setCoordinateY); + } } private void updateCoordinate() { From 16940908de11c5f98ef706eb040d179d7da29e1f Mon Sep 17 00:00:00 2001 From: "Destiny.Lin" Date: Sun, 14 Jul 2024 23:33:28 +0800 Subject: [PATCH 4/6] =?UTF-8?q?REPORT-126537=20=E9=83=A8=E7=BD=B2=E9=9B=86?= =?UTF-8?q?=E6=88=90-=E5=AE=89=E8=A3=85=E5=8D=B8=E8=BD=BD-demo=E6=BC=94?= =?UTF-8?q?=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/mainframe/toolbar/ToolBarMenuDock.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java b/designer-base/src/main/java/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java index 3c75eff39d..54cc4cc4d3 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java @@ -562,13 +562,13 @@ public abstract class ToolBarMenuDock { LocaleCenter.buildAction(() -> shortCuts.add(new TechSupportAction()), SupportLocaleImpl.TECH_SUPPORT_HELP); - //远程不使用更新升级,产品演示 - if (WorkContext.getCurrent().isLocal()) { - shortCuts.add(new WebDemoAction()); - if (!Locale.getDefault().equals(Locale.JAPAN) && !Locale.getDefault().equals(Locale.JAPANESE)) { - LocaleCenter.buildAction(() -> shortCuts.add(new SoftwareUpdateAction()), SupportLocaleImpl.UPDATE_HELP); - } - } + /// fbp本地和远程都暂时不使用更新升级,产品演示 + //if (WorkContext.getCurrent().isLocal()) { + // shortCuts.add(new WebDemoAction()); + // if (!Locale.getDefault().equals(Locale.JAPAN) && !Locale.getDefault().equals(Locale.JAPANESE)) { + // LocaleCenter.buildAction(() -> shortCuts.add(new SoftwareUpdateAction()), SupportLocaleImpl.UPDATE_HELP); + // } + //} if (AlphaFineConfigManager.isALPHALicAvailable()) { shortCuts.add(new AlphaFineAction()); } From 9ff589d98a8a5330adbc617d7d258307797da5da Mon Sep 17 00:00:00 2001 From: "Destiny.Lin" Date: Mon, 15 Jul 2024 15:31:55 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E6=97=A0jira=E4=BB=BB=E5=8A=A1=EF=BC=8C?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=89=93=E5=8C=85=EF=BC=8C=E5=8E=BB=E9=99=A4?= =?UTF-8?q?=E5=86=85=E7=BD=AE=E5=8F=82=E6=95=B0=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/formula/VariableResolverAdapter.java | 7 ------- 1 file changed, 7 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/formula/VariableResolverAdapter.java b/designer-base/src/main/java/com/fr/design/formula/VariableResolverAdapter.java index 5fd384be8e..d5f94b2a2e 100644 --- a/designer-base/src/main/java/com/fr/design/formula/VariableResolverAdapter.java +++ b/designer-base/src/main/java/com/fr/design/formula/VariableResolverAdapter.java @@ -7,7 +7,6 @@ import com.fr.general.web.ParameterConstants; import com.fr.plugin.ExtraClassManager; import com.fr.script.ScriptConstants; import com.fr.stable.ArrayUtils; -import com.fr.stable.fun.BuiltInParametersProvider; import com.fr.stable.script.CalculatorProvider; import java.util.ArrayList; @@ -38,12 +37,6 @@ public abstract class VariableResolverAdapter implements VariableResolver { CalculatorProvider.REPORT_NAME, CalculatorProvider.FORMLET_NAME, CalculatorProvider.SERVLET_URL, CalculatorProvider.SERVER_SCHEMA, CalculatorProvider.SERVER_NAME, CalculatorProvider.SERVER_PORT, CalculatorProvider.SERVER_URL, CalculatorProvider.CONTEXT_PATH, CalculatorProvider.SESSION_ID }; - Set set = ExtraClassManager.getInstance().getArray(BuiltInParametersProvider.XML_TAG); - for (BuiltInParametersProvider provider : set) { - ArrayUtils.addAll(variables, new String[]{ - ScriptConstants.DETAIL_TAG + provider.getParametersName() - }); - } return variables; } From d761b74dc8ac7c96b280ff7d1a59081a9fef4834 Mon Sep 17 00:00:00 2001 From: "Destiny.Lin" Date: Tue, 16 Jul 2024 10:19:36 +0800 Subject: [PATCH 6/6] =?UTF-8?q?REPORT-114392-=E8=BF=9C=E7=A8=8B=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1fbp=E8=83=BD=E5=A4=9F=E6=AD=A3=E5=B8=B8=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=20=E5=AE=8C=E5=96=84=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../boot/env/DesignEnvChooseComponent.java | 6 +- .../fanruan/boot/env/DesignEnvComponent.java | 58 ++++++++++--------- .../boot/init/DesignWorkContextComponent.java | 2 + 3 files changed, 35 insertions(+), 31 deletions(-) diff --git a/designer-realize/src/main/java/com/fanruan/boot/env/DesignEnvChooseComponent.java b/designer-realize/src/main/java/com/fanruan/boot/env/DesignEnvChooseComponent.java index 3a0b195b03..35bbba6819 100644 --- a/designer-realize/src/main/java/com/fanruan/boot/env/DesignEnvChooseComponent.java +++ b/designer-realize/src/main/java/com/fanruan/boot/env/DesignEnvChooseComponent.java @@ -104,7 +104,7 @@ import org.jetbrains.annotations.NotNull; */ @FineComponent(name = "design_env_choose") public class DesignEnvChooseComponent extends ResourceAffiliate { - private Listener beforeSwitch4Min = new Listener(Integer.MIN_VALUE) { + private Listener afterSwitch4Max = new Listener(Integer.MAX_VALUE) { @Override public void on(Event event, Workspace current) { @@ -147,8 +147,8 @@ public class DesignEnvChooseComponent extends ResourceAffiliate { @Start public void start() { - registerEnvListener(); startEnvChoose(); + registerEnvListener(); afterAllStart(); } @@ -217,7 +217,7 @@ public class DesignEnvChooseComponent extends ResourceAffiliate { private void registerEnvListener() { /*切换环境前,重启所有相关模块,最后执行*/ - listenEvent(WorkspaceEvent.BeforeSwitch, beforeSwitch4Min); + listenEvent(WorkspaceEvent.AfterSwitch, afterSwitch4Max); /*切换环境前,存储一下打开的所有文件对象,要先于 关闭相关模块部分 被触发*/ listenEvent(WorkspaceEvent.BeforeSwitch, beforeSwitch4Max); diff --git a/designer-realize/src/main/java/com/fanruan/boot/env/DesignEnvComponent.java b/designer-realize/src/main/java/com/fanruan/boot/env/DesignEnvComponent.java index b4a1e91e85..0621a6a7ae 100644 --- a/designer-realize/src/main/java/com/fanruan/boot/env/DesignEnvComponent.java +++ b/designer-realize/src/main/java/com/fanruan/boot/env/DesignEnvComponent.java @@ -169,36 +169,38 @@ public class DesignEnvComponent { } private void startScheduler() { - TenantContext.doIsolatedWork(() -> { - ClusterLock lock = ClusterBridge.getLockFactory().get(SchedulerCoreComponent.class); - // 多节点同时启动quartz模块可能会产生脏数据,导致报错,使用集群锁控制一下 - DBSession dbSession = null; - try { - lock.lock(); - final DBContextProvider context = BaseDBEnv.getDBContext(); - if (context == null) { - throw new IllegalArgumentException("ConfigDBActivator must start before SchedulerActivator"); - } - dbSession = context.openSession(); - dbSession.doWork(new AbstractWork() { - - @Override - public void execute(Connection connection) throws SQLException { - //quartz需要的数据库方言 - Properties properties = context.getDBProperties(); - QuartzContext.getInstance().initScheduler(properties); + if (WorkContext.getCurrent().isLocal()) { + TenantContext.doIsolatedWork(() -> { + ClusterLock lock = ClusterBridge.getLockFactory().get(SchedulerCoreComponent.class); + // 多节点同时启动quartz模块可能会产生脏数据,导致报错,使用集群锁控制一下 + DBSession dbSession = null; + try { + lock.lock(); + final DBContextProvider context = BaseDBEnv.getDBContext(); + if (context == null) { + throw new IllegalArgumentException("ConfigDBActivator must start before SchedulerActivator"); + } + dbSession = context.openSession(); + dbSession.doWork(new AbstractWork() { + + @Override + public void execute(Connection connection) throws SQLException { + //quartz需要的数据库方言 + Properties properties = context.getDBProperties(); + QuartzContext.getInstance().initScheduler(properties); + } + }); + EventDispatcher.fire(SchedulerEvent.START); + } catch (Exception e) { + FineLoggerFactory.getLogger().error(e.getMessage(), e); + } finally { + if (dbSession != null) { + dbSession.closeSession(); } - }); - EventDispatcher.fire(SchedulerEvent.START); - } catch (Exception e) { - FineLoggerFactory.getLogger().error(e.getMessage(), e); - } finally { - if (dbSession != null) { - dbSession.closeSession(); + lock.unlock(); } - lock.unlock(); - } - }, "default"); + }, "default"); + } } 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 8049690aec..2c01bcd005 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 @@ -50,6 +50,7 @@ import com.fr.workspace.server.repository.authority.RemoteAuthorityRepository; import com.fr.workspace.server.repository.compatible.CompatibleConnectionOperator; 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.resource.PublicResourceRepository; import com.fr.workspace.server.repository.resource.WorkResourceRepository; @@ -98,6 +99,7 @@ public class DesignWorkContextComponent { RepositoryManager.getInstance().pureRegisterRepo4Start(ShareRepository.getInstance()); RepositoryManager.getInstance().pureRegisterRepo4Start(WorkResourceRepository.getInstance()); RepositoryManager.getInstance().pureRegisterRepo4Start(PublicResourceRepository.getInstance()); + RepositoryManager.getInstance().pureRegisterRepo4Start(ConfigRepository.getInstance()); RepositoryManager.getInstance().initLocalRepository(); CompatibleRegister.registerCompatibleEnv(); for (WorkRPCRegister workRPCRegister : ServiceContext.group(WorkspaceKey.class).getAll()) {