From fbf6c3eb3c8204635b808507bc2fb6c4af598318 Mon Sep 17 00:00:00 2001 From: "Destiny.Lin" Date: Thu, 17 Oct 2024 14:10:07 +0800 Subject: [PATCH] =?UTF-8?q?REPORT-137327=20-=20=E8=BF=9C=E7=A8=8B=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=E4=B8=8B=E5=88=87=E6=8D=A2=E7=9B=AE=E5=BD=95=E5=8D=A1?= =?UTF-8?q?=E9=A1=BF=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/cache/DesignCacheManager.java | 62 ------------------- .../design/data/DesignTableDataManager.java | 9 +-- .../data/datapane/TableDataPaneListPane.java | 1 + .../data/datapane/TableDataTreePane.java | 9 ++- .../datapane/connect/ConnectionListPane.java | 1 + .../fr/design/file/MultiTemplateTabPane.java | 5 +- .../com/fr/design/file/TemplateTreePane.java | 3 +- .../boot/env/DesignFunctionComponent.java | 1 - .../env/function/DesignAnalyzerComponent.java | 34 ---------- .../function/DesignDatasourceComponent.java | 7 ++- .../boot/pre/DesignPreStartComponent.java | 13 ++-- .../file/newReport/NewWorkBookAction.java | 3 +- 12 files changed, 23 insertions(+), 125 deletions(-) delete mode 100644 designer-base/src/main/java/com/fr/design/cache/DesignCacheManager.java diff --git a/designer-base/src/main/java/com/fr/design/cache/DesignCacheManager.java b/designer-base/src/main/java/com/fr/design/cache/DesignCacheManager.java deleted file mode 100644 index bb0e2c4b42..0000000000 --- a/designer-base/src/main/java/com/fr/design/cache/DesignCacheManager.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.fr.design.cache; - -import com.fr.base.TableData; -import com.fr.design.data.tabledata.wrapper.TableDataFactory; - -import java.util.Map; - -/** - * 设计器缓存管理 - * - * @author Destiny.Lin - * @since 11.0 - * Created on 2024/8/11 - */ -public class DesignCacheManager { - - public static ThreadLocal> cacheTableData = new ThreadLocal<>(); - - /** - * 处理任务(使用数据集缓存) - */ - public static void processByCacheTableData(Task task) { - try { - cacheTableData.set(TableDataFactory.getTableDatas()); - task.process(); - } finally { - cacheTableData.remove(); - } - } - - - /** - * 是否使用数据集的缓存 - */ - public static boolean useDataCache() { - return cacheTableData.get() != null; - } - - /** - * 获取数据集缓存 - */ - public static ThreadLocal> getCacheTableData() { - return cacheTableData; - } - - /** - * 设置数据集缓存 - */ - public static void setCacheTableData(ThreadLocal> cacheTableData) { - DesignCacheManager.cacheTableData = cacheTableData; - } - - /** - * 任务 - */ - public interface Task { - /** - * 处理 - */ - void process(); - } -} diff --git a/designer-base/src/main/java/com/fr/design/data/DesignTableDataManager.java b/designer-base/src/main/java/com/fr/design/data/DesignTableDataManager.java index 0c17bcb0e9..dcde4716b0 100644 --- a/designer-base/src/main/java/com/fr/design/data/DesignTableDataManager.java +++ b/designer-base/src/main/java/com/fr/design/data/DesignTableDataManager.java @@ -19,7 +19,6 @@ import com.fr.data.impl.storeproc.StoreProcedureConstants; import com.fr.data.impl.storeproc.StoreProcedureHelper; import com.fr.data.operator.DataOperator; import com.fr.design.DesignModelAdapter; -import com.fr.design.cache.DesignCacheManager; import com.fr.design.data.datapane.preview.PreviewTablePane; import com.fr.design.data.tabledata.wrapper.MultiResultTableDataNameWrapper; import com.fr.design.data.tabledata.wrapper.MultiResultTableDataWrapper; @@ -449,13 +448,7 @@ public abstract class DesignTableDataManager { } private static void addServerData(java.util.Map resMap) { - Map tableDataMap; - if (DesignCacheManager.useDataCache()) { - FineLoggerFactory.getLogger().debug("use cache Table data wrapper."); - tableDataMap = DesignCacheManager.getCacheTableData().get(); - } else { - tableDataMap = TableDataFactory.getTableDatas(); - } + Map tableDataMap = TableDataFactory.getTableDatas(); for (Entry entry : tableDataMap.entrySet()) { if (globalDsCache.containsKey(entry.getKey())) { resMap.put(entry.getKey(), globalDsCache.get(entry.getKey())); diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/TableDataPaneListPane.java b/designer-base/src/main/java/com/fr/design/data/datapane/TableDataPaneListPane.java index cbc67bb2e8..304ed35eae 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/TableDataPaneListPane.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/TableDataPaneListPane.java @@ -336,6 +336,7 @@ public class TableDataPaneListPane extends JListControlPane implements TableData for (ServerDataSetBean bean : deleteDatas) { TableDataRepository.getInstance().delete(bean); } + TableDataRepository.getInstance().invalidCache(); } catch (Exception e) { FineLoggerFactory.getLogger().error(e.getMessage(), e); } diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/TableDataTreePane.java b/designer-base/src/main/java/com/fr/design/data/datapane/TableDataTreePane.java index 0552f836e8..861e070214 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/TableDataTreePane.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/TableDataTreePane.java @@ -12,7 +12,6 @@ import com.fr.design.DesignModelAdapter; import com.fr.design.DesignerEnvManager; import com.fr.design.ExtraDesignClassManager; import com.fr.design.actions.UpdateAction; -import com.fr.design.cache.DesignCacheManager; import com.fr.design.data.BasicTableDataTreePane; import com.fr.design.data.BasicTableDataUtils; import com.fr.design.data.DesignTableDataManager; @@ -461,7 +460,7 @@ public class TableDataTreePane extends BasicTableDataTreePane { if (!ComparatorUtils.equals(oldName, tdName)) { map.put(oldName, tdName); } - DesignCacheManager.processByCacheTableData(() -> fireDSChanged(map)); + fireDSChanged(map); tc.fireTargetModified(); tc.parameterChanged(); int[] rows = tableDataTree.getSelectionRows(); @@ -1023,7 +1022,7 @@ public class TableDataTreePane extends BasicTableDataTreePane { @Override public void actionPerformed(ActionEvent e) { - DesignCacheManager.processByCacheTableData(() -> dgEdit(getTableDataInstance().creatTableDataPane(), createDsName(getNamePrefix()), false)); + dgEdit(getTableDataInstance().creatTableDataPane(), createDsName(getNamePrefix()), false); } } @@ -1129,7 +1128,7 @@ public class TableDataTreePane extends BasicTableDataTreePane { BasicDialog basicDialog = basicPane.showSmallWindow(SwingUtilities.getWindowAncestor(TableDataTreePane.this), new DialogActionAdapter() { @Override public void doOk() { - DesignCacheManager.processByCacheTableData(this::processRemove); + processRemove(); } private void processRemove() { @@ -1203,7 +1202,7 @@ public class TableDataTreePane extends BasicTableDataTreePane { @Override public void actionPerformed(ActionEvent e) { - DesignCacheManager.processByCacheTableData(this::doPaste); + doPaste(); } private void doPaste() { diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionListPane.java b/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionListPane.java index 48a09ba695..d1acf83474 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionListPane.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionListPane.java @@ -360,6 +360,7 @@ public class ConnectionListPane extends JListControlPane implements ConnectionSh if (!WorkContext.getCurrent().isLocal()) { EventDispatcher.fire(RemoteConfigEvent.EDIT, "ConnectionConfig"); } + ConnectionRepository.getInstance().invalidCache(); } catch (Exception e) { FineLoggerFactory.getLogger().error(e.getMessage(), e); throw e; diff --git a/designer-base/src/main/java/com/fr/design/file/MultiTemplateTabPane.java b/designer-base/src/main/java/com/fr/design/file/MultiTemplateTabPane.java index 0c8d62d587..6f2d1c5719 100644 --- a/designer-base/src/main/java/com/fr/design/file/MultiTemplateTabPane.java +++ b/designer-base/src/main/java/com/fr/design/file/MultiTemplateTabPane.java @@ -13,7 +13,6 @@ import com.fr.design.ExtraDesignClassManager; import com.fr.design.actions.UpdateAction; import com.fr.design.actions.file.LocateAction; import com.fr.design.actions.template.NewWorkBookToolButtonAction; -import com.fr.design.cache.DesignCacheManager; import com.fr.design.constants.UIConstants; import com.fr.design.dialog.FineJOptionPane; import com.fr.design.fun.MenuHandler; @@ -837,13 +836,13 @@ public class MultiTemplateTabPane extends Row { setIsCloseCurrent(true); } closeFormat(template); - DesignCacheManager.processByCacheTableData(() -> closeSpecifiedTemplate(template)); + closeSpecifiedTemplate(template); DesignerContext.getDesignerFrame().getContentFrame().repaint(); isShowList = false; } else { //没有点击关闭和ListDown按钮,则切换到点击的模板处 closeIconIndex = -1; - DesignCacheManager.processByCacheTableData(() -> switchJTemplate(getTemplateIndex(evtX))); + switchJTemplate(getTemplateIndex(evtX)); clodeIcon = new LazyIcon("clear"); switchJTemplate(getTemplateIndex(evtX)); isShowList = false; diff --git a/designer-base/src/main/java/com/fr/design/file/TemplateTreePane.java b/designer-base/src/main/java/com/fr/design/file/TemplateTreePane.java index 2971f38e22..b807123b19 100644 --- a/designer-base/src/main/java/com/fr/design/file/TemplateTreePane.java +++ b/designer-base/src/main/java/com/fr/design/file/TemplateTreePane.java @@ -5,7 +5,6 @@ package com.fr.design.file; import com.fanruan.repository.TemplateRepository; import com.fr.design.ExtraDesignClassManager; -import com.fr.design.cache.DesignCacheManager; import com.fr.design.dialog.FineJOptionPane; import com.fr.design.fun.TemplateTreeDefineProcessor; import com.fr.design.gui.itree.filetree.TemplateFileTree; @@ -105,7 +104,7 @@ public class TemplateTreePane extends JPanel implements FileOperations { return; } if (evt.getClickCount() == 2) { - DesignCacheManager.processByCacheTableData(() -> openFile()); + openFile(); } } diff --git a/designer-realize/src/main/java/com/fanruan/boot/env/DesignFunctionComponent.java b/designer-realize/src/main/java/com/fanruan/boot/env/DesignFunctionComponent.java index 63de9d0d27..f1608a8f52 100644 --- a/designer-realize/src/main/java/com/fanruan/boot/env/DesignFunctionComponent.java +++ b/designer-realize/src/main/java/com/fanruan/boot/env/DesignFunctionComponent.java @@ -1,6 +1,5 @@ package com.fanruan.boot.env; -import com.fanruan.carina.annotions.ActivatorRefer; import com.fanruan.carina.annotions.DependsOn; import com.fanruan.carina.annotions.FineComponent; import com.fanruan.carina.annotions.Start; diff --git a/designer-realize/src/main/java/com/fanruan/boot/env/function/DesignAnalyzerComponent.java b/designer-realize/src/main/java/com/fanruan/boot/env/function/DesignAnalyzerComponent.java index 3403f28df9..783180952a 100644 --- a/designer-realize/src/main/java/com/fanruan/boot/env/function/DesignAnalyzerComponent.java +++ b/designer-realize/src/main/java/com/fanruan/boot/env/function/DesignAnalyzerComponent.java @@ -7,47 +7,13 @@ import com.fanruan.carina.annotions.FineComponent; import com.fanruan.carina.annotions.Start; import com.fanruan.carina.annotions.Supplemental; import com.fanruan.carina.core.partition.ResourceAffiliate; -import com.fr.base.OptimizeUtil; -import com.fr.collect.Collect; -import com.fr.concurrent.NamedThreadFactory; -import com.fr.design.constants.DesignerLaunchStatus; -import com.fr.design.record.analyzer.DesignerAnalyzer; -import com.fr.design.record.analyzer.Interceptor.CollectInterceptor; -import com.fr.design.record.analyzer.advice.CollectAdvice; -import com.fr.design.record.analyzer.advice.DBMonitorAdvice; -import com.fr.design.record.analyzer.advice.FaultToleranceAdvice; -import com.fr.design.record.analyzer.advice.FocusAdvice; -import com.fr.design.record.analyzer.advice.MonitorAdvice; -import com.fr.design.record.analyzer.advice.PerformancePointAdvice; -import com.fr.event.Event; -import com.fr.event.EventDispatcher; -import com.fr.event.Listener; -import com.fr.event.Null; -import com.fr.intelli.metrics.Compute; -import com.fr.intelli.record.Focus; -import com.fr.intelli.record.PerformancePoint; -import com.fr.jvm.assist.FineAssist; import com.fr.record.analyzer.AnalyzerConfiguration; -import com.fr.record.analyzer.AnalyzerKey; -import com.fr.record.analyzer.Assistant; -import com.fr.record.analyzer.DBMetrics; -import com.fr.record.analyzer.FineAnalyzer; -import com.fr.record.analyzer.advice.AnalyzerAdviceKey; import com.fr.record.analyzer.advice.FineAdviceAssistant; import com.fr.record.analyzer.configuration.AnalyzerAssemblyFactory; import com.fr.record.analyzer.configuration.FineAnalyzerAssemblyFactory; -import com.fr.stable.collections.CollectionUtils; -import com.fr.third.net.bytebuddy.description.type.TypeDescription; -import com.fr.third.net.bytebuddy.dynamic.DynamicType; -import com.fr.third.net.bytebuddy.implementation.MethodDelegation; -import com.fr.third.net.bytebuddy.matcher.ElementMatchers; -import com.fr.third.net.bytebuddy.utility.JavaModule; -import com.fr.tolerance.FaultTolerance; import org.jetbrains.annotations.NotNull; -import java.util.ArrayList; import java.util.List; -import java.util.concurrent.ExecutorService; /** * 设计器埋点及分析组件 diff --git a/designer-realize/src/main/java/com/fanruan/boot/env/function/DesignDatasourceComponent.java b/designer-realize/src/main/java/com/fanruan/boot/env/function/DesignDatasourceComponent.java index 688f4079e0..51994dbc04 100644 --- a/designer-realize/src/main/java/com/fanruan/boot/env/function/DesignDatasourceComponent.java +++ b/designer-realize/src/main/java/com/fanruan/boot/env/function/DesignDatasourceComponent.java @@ -43,9 +43,11 @@ import com.fr.decision.webservice.v10.datasource.dataset.processor.impl.DataSetP import com.fr.design.data.datapane.connect.LocalConnectionSource; import com.fr.design.data.tabledata.LocalTableDataSource; import com.fr.file.TableDataConfigWrapper; +import com.fr.workspace.server.repository.connection.ConnectionRepository; import com.fr.workspace.server.repository.connection.ConnectionWriterShell; import com.fr.workspace.server.repository.connection.LocalConnectionShell; import com.fr.workspace.server.repository.tabledata.LocalTableDataShell; +import com.fr.workspace.server.repository.tabledata.TableDataRepository; /** @@ -89,6 +91,8 @@ public class DesignDatasourceComponent extends DatasourceComponent { ParameterTypeHandler.getInstance().addParser(ParameterType.JSONArray.name(), new MultiParameterParser()); ParameterTypeHandler.getInstance().addParser(ParameterType.Formula.name(), new FormulaParameterParser()); ParameterTypeHandler.getInstance().addParser(ParameterType.TableColumn.name(), new TableColumnParameterParser()); + TableDataRepository.getInstance().start(); + ConnectionRepository.getInstance().start(); } private void registerDriverClassLoader() { @@ -102,7 +106,8 @@ public class DesignDatasourceComponent extends DatasourceComponent { */ @Stop public void stop() { - + ConnectionRepository.getInstance().stop(); + TableDataRepository.getInstance().stop(); } /** diff --git a/designer-realize/src/main/java/com/fanruan/boot/pre/DesignPreStartComponent.java b/designer-realize/src/main/java/com/fanruan/boot/pre/DesignPreStartComponent.java index 3ad246a9a8..7f64f751c8 100644 --- a/designer-realize/src/main/java/com/fanruan/boot/pre/DesignPreStartComponent.java +++ b/designer-realize/src/main/java/com/fanruan/boot/pre/DesignPreStartComponent.java @@ -1,12 +1,6 @@ package com.fanruan.boot.pre; import com.fanruan.boot.FSProperties; -import com.fanruan.fs.FileServer; -import com.fanruan.fs.RepositoryFactory; -import com.fanruan.fs.repository.local.LocalFileRepository; -import com.fanruan.product.ProductConstants; -import com.fr.decision.inject.node.impl.DecisionSystemInjectNode; -import com.fr.design.ConfigHelper; import com.fanruan.boot.key.StartupArgsShell; import com.fanruan.carina.Carina; import com.fanruan.carina.annotions.FineComponent; @@ -18,11 +12,17 @@ import com.fanruan.config.impl.ShareConfigProviderImpl; import com.fanruan.config.realm.ConfigRealm; import com.fanruan.config.realm.ConfigRepositoryFactory; import com.fanruan.config.realm.local.LocalConfigRepositoryBuilder; +import com.fanruan.fs.FileServer; +import com.fanruan.fs.RepositoryFactory; +import com.fanruan.fs.repository.local.LocalFileRepository; import com.fanruan.mq.CarinaMQ; import com.fanruan.mq.InternalMQProvider; +import com.fanruan.product.ProductConstants; import com.fr.base.function.UITerminator; import com.fr.carina.util.CarinaResourceUtils; import com.fr.carina.util.provider.CarinaResourceProvider; +import com.fr.decision.inject.node.impl.DecisionSystemInjectNode; +import com.fr.design.ConfigHelper; import com.fr.design.DesignerEnvManager; import com.fr.design.constants.DesignerLaunchStatus; import com.fr.design.deeplink.DeepLinkManager; @@ -47,7 +47,6 @@ import com.fr.module.engine.event.LifecycleErrorEvent; import com.fr.runtime.FineRuntime; import com.fr.stable.CommonCodeUtils; import com.fr.stable.CommonUtils; -import com.fr.stable.StableUtils; import com.fr.stable.StringUtils; import com.fr.stable.lifecycle.FineLifecycleFatalError; import com.fr.stable.project.ProjectConstants; diff --git a/designer-realize/src/main/java/com/fr/design/actions/file/newReport/NewWorkBookAction.java b/designer-realize/src/main/java/com/fr/design/actions/file/newReport/NewWorkBookAction.java index ec8e28cad6..5f41bd5f89 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/file/newReport/NewWorkBookAction.java +++ b/designer-realize/src/main/java/com/fr/design/actions/file/newReport/NewWorkBookAction.java @@ -3,7 +3,6 @@ package com.fr.design.actions.file.newReport; import com.fine.theme.icon.LazyIcon; import com.fr.design.actions.UpdateAction; -import com.fr.design.cache.DesignCacheManager; import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.JWorkBook; import com.fr.design.menu.MenuKeySet; @@ -35,7 +34,7 @@ public class NewWorkBookAction extends UpdateAction { * @param e 事件 */ public void actionPerformed(ActionEvent e) { - DesignCacheManager.processByCacheTableData(() -> DesignerContext.getDesignerFrame().addAndActivateJTemplate(new JWorkBook())); + DesignerContext.getDesignerFrame().addAndActivateJTemplate(new JWorkBook()); } public static final MenuKeySet NEW_WORK_BOOK = new MenuKeySet() {