Browse Source

Pull request #14176: REPORT-114392 FR-FBP版本本地设计适配 打包报错修复+远程切换修复+fbp代码适配

Merge in DESIGN/design from ~DESTINY.LIN/design:mss/2.0 to mss/2.0

* commit 'cebdbda759b390d87cf00a51c9a5fb6c97114408':
  REPORT-114392 FR-FBP版本本地设计适配 打包报错修复+远程切换修复+fbp代码适配
mss/2.0
Destiny.Lin-林锦龙 7 months ago
parent
commit
714d322f04
  1. 10
      designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionListPane.java
  2. 4
      designer-base/src/main/java/com/fr/design/extra/LoginWebBridge.java
  3. 2
      designer-base/src/main/java/com/fr/design/extra/PluginWebBridge.java
  4. 2
      designer-form/src/main/java/com/fr/design/mainframe/share/generate/task/ComponentUploader.java
  5. 37
      designer-realize/src/main/java/com/fanruan/boot/ConfigHelper.java
  6. 13
      designer-realize/src/main/java/com/fanruan/boot/env/DesignEnvChooseComponent.java
  7. 3
      designer-realize/src/main/java/com/fanruan/boot/env/DesignEnvComponent.java
  8. 6
      designer-realize/src/main/java/com/fanruan/boot/init/DesignWorkContextComponent.java

10
designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionListPane.java

@ -31,6 +31,7 @@ import com.fr.stable.StringUtils;
import com.fr.stable.core.PropertyChangeAdapter;
import com.fr.workspace.WorkContext;
import com.fr.workspace.server.database.DataBaseTypeOperator;
import com.fr.workspace.server.repository.connection.ConnectionRepository;
import org.jetbrains.annotations.NotNull;
import javax.swing.SwingWorker;
@ -314,7 +315,7 @@ public class ConnectionListPane extends JListControlPane implements ConnectionSh
for (ConnectionBean connectionBean : addedOrUpdatedConnections) {
Connection connection = connectionBean.getConnection();
try {
DataOperator.getInstance().validateConnectionSettings(connection);
ConnectionRepository.getInstance().validSettings(new com.fr.workspace.server.entity.connection.ConnectionBean(connection));
} catch (DriverClassNotFoundException e) {
FineLoggerFactory.getLogger().info(e.getMessage());
} catch (Exception e) {
@ -327,8 +328,11 @@ public class ConnectionListPane extends JListControlPane implements ConnectionSh
private void alterConnections(List<String> removedConnNames, List<ConnectionBean> addedOrUpdatedConnections) {
try {
WorkContext.getCurrent().get(ConnectionOperator.class, exceptionInfo -> saveByOldWay(removedConnNames, addedOrUpdatedConnections))
.saveConnection(removedConnNames, addedOrUpdatedConnections);
/// 数据连接要改为单个修改的形式(考虑配合newUI)
ConnectionRepository.getInstance().add(new com.fr.workspace.server.entity.connection.ConnectionBean(addedOrUpdatedConnections.get(0).getConnection(), "FRDemo"));
//WorkContext.getCurrent().get(ConnectionOperator.class, exceptionInfo -> saveByOldWay(removedConnNames, addedOrUpdatedConnections))
// .saveConnection(removedConnNames, addedOrUpdatedConnections);
// hades:远程环境时,由于时直接RPC调用远程修改,因此设计器本地配置需要失效
if (!WorkContext.getCurrent().isLocal()) {

4
designer-base/src/main/java/com/fr/design/extra/LoginWebBridge.java

@ -84,7 +84,7 @@ public class LoginWebBridge {
*/
public void setMessageCount(int count) {
if (count == MIN_MESSAGE_COUNT) {
Carina.config(FineBBSConfigProvider.class).setInShowBBsName(DesignerEnvManager.getEnvManager().getDesignerLoginUsername());
Carina.config(FineBBSConfigProvider.class).setBbsUsername(DesignerEnvManager.getEnvManager().getDesignerLoginUsername());
return;
}
this.messageCount = count;
@ -92,7 +92,7 @@ public class LoginWebBridge {
sb.append(StringUtils.BLANK).append(DesignerEnvManager.getEnvManager().getDesignerLoginUsername())
.append("(").append(this.messageCount)
.append(")").append(StringUtils.BLANK);
Carina.config(FineBBSConfigProvider.class).setInShowBBsName(sb.toString());
Carina.config(FineBBSConfigProvider.class).setBbsUsername(sb.toString());
}
public void setQQDialog(UIDialog qqDialog) {

2
designer-base/src/main/java/com/fr/design/extra/PluginWebBridge.java

@ -551,7 +551,7 @@ public class PluginWebBridge {
* 清除用户信息
*/
public void clearUserInfo() {
Carina.config(FineBBSConfigProvider.class).setInShowBBsName(StringUtils.EMPTY);
Carina.config(FineBBSConfigProvider.class).setBbsUsername(StringUtils.EMPTY);
}
public void getPackInfo(final JSObject callback){

2
designer-form/src/main/java/com/fr/design/mainframe/share/generate/task/ComponentUploader.java

@ -104,7 +104,7 @@ public class ComponentUploader implements ComponentBanner {
private boolean login(CloseableHttpClient client) throws IOException {
String bbsUsername = Carina.config(FineBBSConfigProvider.class).getBbsUsername();
String bbsPassword = Carina.config(FineBBSConfigProvider.class).getBbsPassword();
String bbsPassword = Carina.config(FineBBSConfigProvider.class).getCipherPassword();
List<BasicNameValuePair> pairs = new ArrayList<>();
pairs.add(new BasicNameValuePair(KEY_USERNAME, bbsUsername));
pairs.add(new BasicNameValuePair(KEY_PASSWORD, bbsPassword));

37
designer-realize/src/main/java/com/fanruan/boot/ConfigHelper.java

@ -4,6 +4,7 @@ import com.fanruan.carina.Carina;
import com.fanruan.product.ProductConstants;
import com.fr.io.utils.ResourceIOUtils;
import com.fr.log.FineLoggerFactory;
import com.fr.stable.StringUtils;
import java.io.File;
@ -23,9 +24,12 @@ import java.util.Properties;
* Created on 2024/6/26
*/
public class ConfigHelper {
public static final String BASE = ProductConstants.getEnvHome() + File.separator + ProductConstants.APP_NAME;
public static final String TAIL = ".properties";
public static final String CONFIG = "confighelper";
public static final String BASE = ProductConstants.getEnvHome() + File.separator + CONFIG + File.separator;
public static final String BASE_PATH = BASE + "BaseProperties" + TAIL;
private static String path = StringUtils.EMPTY;
/**
@ -47,7 +51,36 @@ public class ConfigHelper {
* 获取当前环境配置的路径
*/
public static String getEnvPropertiesPath() {
return BASE + Carina.getApplicationContext().getWebInfPath().replace("\\", "_").replace("/", "_").replace(":", "_") + TAIL;
return path + TAIL;
}
/**
* 规范化配置文件的路径保证配置文件落在缓存文件夹(110)
*/
public static String normalise(String path) {
if (!path.startsWith(BASE)) {
path = BASE + path.replace("\\", "_").replace("/", "_").replace(":", "_");
}
return path;
}
/**
* 设置config路径
*/
public static void setPath(String path) {
ConfigHelper.path = normalise(path);
}
/**
* 获取路径
*/
public static String getPath() {
if (StringUtils.isEmpty(path)) {
path = Carina.getApplicationContext().getWebInfPath();
}
return path;
}
private static Properties getProperties(String path, Properties defaultValue){

13
designer-realize/src/main/java/com/fanruan/boot/env/DesignEnvChooseComponent.java vendored

@ -35,6 +35,7 @@ import com.fr.report.lock.DefaultLockInfoOperator;
import com.fr.report.lock.LocalLockInfoOperator;
import com.fr.report.lock.LockInfoOperator;
import com.fr.report.lock.ServerLockInfoOperator;
import com.fr.stable.StringUtils;
import com.fr.start.DesignContext;
import com.fr.start.module.StartupArgs;
import com.fr.value.NotNullLazyValue;
@ -78,6 +79,7 @@ import com.fr.workspace.server.lock.editlock.DefaultEditLockOperator;
import com.fr.workspace.server.lock.editlock.EditLockOperator;
import com.fr.workspace.server.lock.editlock.LocalEditLockOperator;
import com.fr.workspace.server.lock.editlock.ServerEditLockOperator;
import com.fr.workspace.server.repository.WorkplaceConstants;
import com.fr.workspace.server.share.DefaultShareComponentOperator;
import com.fr.workspace.server.share.DefaultShareEmbeddedConverter;
import com.fr.workspace.server.socket.FineSocketInfoOperator;
@ -108,6 +110,8 @@ public class DesignEnvChooseComponent {
public void on(Event event, Workspace current) {
try {
BootstrapFactory.get().reboot("design_env_prepare");
// 环境切换后,等到模块重启更新一下当前的系统信息
WorkplaceConstants.updateBean();
} catch (Exception e) {
throw new RuntimeException(e);
}
@ -182,6 +186,7 @@ public class DesignEnvChooseComponent {
String current = DesignerEnvManager.getEnvManager().getCurEnvName();
workspaceInfo = WorkspaceUtils.getWorkspaceInfo();
((DesignContext)Carina.getApplicationContext()).setDesignWebInfPath(workspaceInfo.getPath());
updateConfigPath(workspaceInfo);
Workspace workspace = DesignerWorkspaceGenerator.generate(workspaceInfo);
boolean checkValid = workspace != null && workspaceInfo.checkValid();
if (!checkValid) {
@ -203,6 +208,14 @@ public class DesignEnvChooseComponent {
ConfigRepositoryFactory.getInstance().registerConfigRepositoryBuilder(new LocalConfigRepositoryBuilder(ConfigHelper.getEnvProperties(), ConfigHelper.getEnvPropertiesPath()));
}
private void updateConfigPath(DesignerWorkspaceInfo workspaceInfo) {
if (StringUtils.isEmpty(workspaceInfo.getPath())) {
ConfigHelper.setPath(workspaceInfo.getConnection().getUrl());
} else {
ConfigHelper.setPath(workspaceInfo.getPath());
}
}
/**
* 注册切换环境前后事件监听
*/

3
designer-realize/src/main/java/com/fanruan/boot/env/DesignEnvComponent.java vendored

@ -244,7 +244,7 @@ public class DesignEnvComponent {
private void startCorePrepare() {
if (WorkContext.getCurrent().isLocal()) {
EncryptionInitialization.getInstance().init();
EncryptionScaffold.setSecuritySeedProvider(new SecuritySeedProvider() {
@Override
@ -259,6 +259,7 @@ public class DesignEnvComponent {
});
LoadSeedSecurityKey.getInstance().init();
}
}
private void stopCorePrepare() {
EncryptionScaffold.setSecuritySeedProvider(new SecuritySeedProvider() {});

6
designer-realize/src/main/java/com/fanruan/boot/init/DesignWorkContextComponent.java

@ -7,6 +7,7 @@ import com.fanruan.carina.annotions.Start;
import com.fanruan.carina.annotions.Stop;
import com.fanruan.carina.annotions.Supplemental;
import com.fanruan.plugin.autonomy.AutonomyClassManagerGroup;
import com.fanruan.workplace.conetxt.CompatiblePool;
import com.fanruan.workplace.http.RepositoryManager;
import com.fanruan.workplace.http.WorkspaceHeartBeatShell;
import com.fanruan.workplace.standard.ServerInfo;
@ -88,12 +89,11 @@ public class DesignWorkContextComponent {
RepositoryManager.getInstance().pureRegisterRepo4Start(WorkResourceRepository.getInstance());
RepositoryManager.getInstance().pureRegisterRepo4Start(PublicResourceRepository.getInstance());
RepositoryManager.getInstance().initLocalRepository();
CompatibleRegister.registerCompatibleEnv();
for (WorkRPCRegister<?> workRPCRegister : ServiceContext.group(WorkspaceKey.class).getAll()) {
validate(workRPCRegister.getClazz());
FineObjectPool.getInstance().add(workRPCRegister.getClazz(), workRPCRegister.getType(), workRPCRegister.getObject());
FineObjectPool.getInstance().add(workRPCRegister.getClazz(), workRPCRegister.getType(), CompatiblePool.getInstance().getCompatibleUse(workRPCRegister.getClazz(), workRPCRegister.getObject()));
}
CompatibleRegister.registerCompatibleEnv();
WorkContext.setConnector(HttpWorkspaceConnector.getInstance());
WorkContext.setFactory(FineWorkspaceFactory.getInstance());
WorkContext.setWorkResource(new FineWorkResourceAdaptor());

Loading…
Cancel
Save