Browse Source

Pull request #13526: REPORT-106900【远程设计性能】远程设计协议重构

Merge in DESIGN/design from ~HARRISON/design:new-design to new-design

* commit 'b9c8276661be2c76c98f2234df105a5ea94482b7':
  fix: REPORT-113117【远程协议变更】数据链接失败时,设计器弹窗依然提示链接成功 修复连接错误不提示的问题
  fix: REPORT-113117【远程协议变更】数据链接失败时,设计器弹窗依然提示链接成功 修复获取对象错误的问题。需要换成 FineWorkspaceStubPool
  refactor: REPORT-106900【远程设计性能】远程设计协议重构 - 工作目录适配 RpcContext 逻辑
new-design
Harrison-刘珂 4 months ago
parent
commit
c798b33948
  1. 2
      designer-base/src/main/java/com/fr/design/data/datapane/connect/DatabaseConnectionPane.java
  2. 16
      designer-base/src/main/java/com/fr/design/env/RemoteWorkspace.java

2
designer-base/src/main/java/com/fr/design/data/datapane/connect/DatabaseConnectionPane.java

@ -444,7 +444,7 @@ public abstract class DatabaseConnectionPane<E extends com.fr.data.impl.Connecti
}
return null;
}
}).test(database);
}).testAndThrowEx(database);
if (exception[0] != null) {
throw exception[0];
}

16
designer-base/src/main/java/com/fr/design/env/RemoteWorkspace.java vendored

@ -1,19 +1,21 @@
package com.fr.design.env;
import com.fr.base.operator.common.CommonOperator;
import com.fr.cluster.engine.rpc.remote.ClusterOperator;
import com.fr.design.i18n.Toolkit;
import com.fr.base.operator.common.CommonOperator;
import com.fr.rpc.ExceptionHandler;
import com.fr.rpc.RPCInvokerExceptionInfo;
import com.fr.stable.AssistUtils;
import com.fr.workspace.WorkContext;
import com.fr.workspace.WorkRpcContext;
import com.fr.workspace.Workspace;
import com.fr.workspace.connect.WorkspaceClient;
import com.fr.workspace.connect.WorkspaceConnection;
import com.fr.workspace.connect.WorkspaceConnectionInfo;
import com.fr.workspace.server.authority.decision.DecisionOperator;
import com.fr.workspace.engine.rpc.WorkspaceProxyPool;
import com.fr.workspace.engine.client.FineWorkspaceStubPool;
import com.fr.workspace.pool.WorkObjectPool;
import com.fr.workspace.server.authority.decision.DecisionOperator;
import javax.swing.SwingWorker;
/**
@ -123,8 +125,8 @@ public class RemoteWorkspace implements Workspace {
public <T> T get(Class<T> type, ExceptionHandler exceptionHandler){
if(exceptionHandler != null) {
WorkObjectPool objectPool = client.getPool();
if (objectPool instanceof WorkspaceProxyPool) {
return ((WorkspaceProxyPool) objectPool).get(type, exceptionHandler);
if (objectPool instanceof FineWorkspaceStubPool) {
return objectPool.get(type, exceptionHandler);
}else {
return client.getPool().get(type);
}
@ -134,7 +136,11 @@ public class RemoteWorkspace implements Workspace {
@Override
public void close() {
swingWorker.execute();
// 关闭时移除上下文
WorkRpcContext.removeContext(client.getConnection());
}
@Override

Loading…
Cancel
Save