From e24738dc36bd47fefc21299a2af05b0abbd0f5b6 Mon Sep 17 00:00:00 2001 From: "Destiny.Lin" Date: Thu, 4 Jan 2024 16:08:23 +0800 Subject: [PATCH] =?UTF-8?q?REPORT-111337=20=E3=80=90=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E5=99=A8=E6=80=A7=E8=83=BD=E3=80=91=E7=BC=93=E5=AD=98=E6=96=B9?= =?UTF-8?q?=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data/tabledata/wrapper/TableDataFactory.java | 7 +++---- .../design/mainframe/socketio/DesignerSocketIO.java | 12 ++++++++++++ .../java/com/fr/start/module/DesignerActivator.java | 2 ++ 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/TableDataFactory.java b/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/TableDataFactory.java index 8345bde944..af6bd72c87 100644 --- a/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/TableDataFactory.java +++ b/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/TableDataFactory.java @@ -11,6 +11,8 @@ import com.fr.data.impl.MultiFieldTableData; import com.fr.data.impl.MultiTDTableData; import com.fr.data.impl.RecursionTableData; import com.fr.data.impl.storeproc.StoreProcedure; +import com.fr.workspace.base.WorkspaceConstants; +import com.fr.workspace.server.remote.RemoteCacheAttributeManager; import com.fr.design.data.datapane.TableDataNameObjectCreator; import com.fr.design.data.tabledata.tabledatapane.AbstractTableDataPane; import com.fr.design.data.tabledata.tabledatapane.ClassTableDataPane; @@ -26,8 +28,6 @@ import com.fr.general.ComparatorUtils; import com.fr.log.FineLoggerFactory; import com.fr.stable.ArrayUtils; import com.fr.stable.StringUtils; -import com.fr.workspace.WorkContext; -import com.fr.workspace.server.authority.user.UserAuthority; import java.lang.reflect.Constructor; import java.util.ArrayList; @@ -177,8 +177,7 @@ public abstract class TableDataFactory { public static String[] getSortOfChineseNameOfServerData(TableDataConfig tableDataConfig) { clearAll(); try { - UserAuthority userAuthority = WorkContext.getCurrent().get(UserAuthority.class); - Iterator nameIt = userAuthority.getAuthServerDataSetNames().iterator(); + Iterator nameIt = (Iterator) RemoteCacheAttributeManager.getInstance().getValue(WorkspaceConstants.AUTHOR_SERVER_DATA_IT); while (nameIt.hasNext()) { String name = nameIt.next(); addName(name, tableDataConfig.getTableData(name)); diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/socketio/DesignerSocketIO.java b/designer-realize/src/main/java/com/fr/design/mainframe/socketio/DesignerSocketIO.java index 3ceef3ae28..331a408f69 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/socketio/DesignerSocketIO.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/socketio/DesignerSocketIO.java @@ -33,6 +33,7 @@ import com.fr.workspace.Workspace; import com.fr.workspace.base.WorkspaceConstants; import com.fr.workspace.connect.WorkspaceConnectionInfo; import com.fr.workspace.engine.exception.WorkspaceConnectionException; +import com.fr.workspace.server.remote.RemoteCacheAttributeManager; import com.fr.workspace.server.socket.CustomLogEvent; import com.fr.workspace.server.socket.LogEventConverter; import io.socket.client.IO; @@ -118,6 +119,7 @@ public class DesignerSocketIO { socket = IO.socket(new URI(connectionInfo.getUri()), connectionInfo.getSocketConfig().createOptions()); socket.on(WorkspaceConstants.WS_LOGRECORD, printLog); socket.on(WorkspaceConstants.CONFIG_MODIFY, modifyConfig); + socket.on(WorkspaceConstants.AUTHOR_SERVER_DATA_IT, authorServerDataIt); socket.on(Socket.EVENT_CONNECT_ERROR, failRetry); socket.on(Socket.EVENT_DISCONNECT, disConnectHint); socket.on(Socket.EVENT_CONNECT, handleConnect); @@ -183,6 +185,7 @@ public class DesignerSocketIO { if (disConnectHintTimer != null) { FineLoggerFactory.getLogger().info("cancel disConnectHintTimer"); disConnectHintTimer.cancel(); + RemoteCacheAttributeManager.getInstance().stopPolling(); } } }; @@ -201,6 +204,7 @@ public class DesignerSocketIO { dealWithSocketDisconnect(); } status = Status.Disconnected; + RemoteCacheAttributeManager.getInstance().startPolling(); } }; @@ -311,6 +315,14 @@ public class DesignerSocketIO { } }; + private static final Emitter.Listener authorServerDataIt = new Emitter.Listener() { + @Override + public void call(Object... objects) { + FineLoggerFactory.getLogger().info("[AuthServerDataSetNamesIt] update server data author"); + RemoteCacheAttributeManager.getInstance().updateValue(WorkspaceConstants.AUTHOR_SERVER_DATA_IT); + } + }; + private static void printLog(Object[] objects, PrintEventLog printEventLog, String prefix) { for (Object object : objects) { if (object instanceof Throwable) { diff --git a/designer-realize/src/main/java/com/fr/start/module/DesignerActivator.java b/designer-realize/src/main/java/com/fr/start/module/DesignerActivator.java index 16a923df37..01bd8fcb4f 100644 --- a/designer-realize/src/main/java/com/fr/start/module/DesignerActivator.java +++ b/designer-realize/src/main/java/com/fr/start/module/DesignerActivator.java @@ -145,6 +145,7 @@ import com.fr.start.common.DesignerStartupExecutor; import com.fr.start.common.DesignerStartupPool; import com.fr.task.Once; import com.fr.workspace.WorkContext; +import com.fr.workspace.server.remote.RemoteCacheAttributeManager; import com.fr.xml.ReportXMLUtils; import javax.swing.SwingWorker; @@ -205,6 +206,7 @@ public class DesignerActivator extends Activator implements Prepare { } }, SupportOSImpl.BBS_USER_LOGIN_PANE); loadLogAppender(); + RemoteCacheAttributeManager.getInstance().updateAllValue(); DesignerSocketIO.update(); DesignerWorkspaceLoader.init(); storePassport();