Browse Source

Merge pull request #9391 in DESIGN/design from final/11.0 to persist/11.0

* commit 'c1cf24ade4274cc18942df3aae7db981ef8b1262':
  REPORT-74603 嵌入式数据库的限制访问
  REPORT-74500 【FVS】打开fvs的时候切换国际化并重启,设计器卡死
  REPORT-74595 设计器配置 EnvDetectConfig 规范 调整写入时机为默认
fix-lag
superman 3 years ago
parent
commit
3799c11d52
  1. 3
      designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionListPane.java
  2. 7
      designer-base/src/main/java/com/fr/env/detect/base/EnvDetectorConfig.java
  3. 12
      designer-base/src/main/java/com/fr/start/server/FineEmbedServer.java
  4. 2
      designer-realize/src/main/java/com/fr/start/module/DesignerStartup.java
  5. 6
      designer-realize/src/main/java/com/fr/start/module/optimized/TenantDBAdapter4Designer.java

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

@ -1,5 +1,6 @@
package com.fr.design.data.datapane.connect; package com.fr.design.data.datapane.connect;
import com.fr.base.TemplateUtils;
import com.fr.config.RemoteConfigEvent; import com.fr.config.RemoteConfigEvent;
import com.fr.data.core.db.JDBCSecurityChecker; import com.fr.data.core.db.JDBCSecurityChecker;
import com.fr.data.impl.Connection; import com.fr.data.impl.Connection;
@ -201,7 +202,7 @@ public class ConnectionListPane extends JListControlPane implements ConnectionSh
Connection connection = connectionBean.getConnection(); Connection connection = connectionBean.getConnection();
if (connection instanceof JDBCDatabaseConnection) { if (connection instanceof JDBCDatabaseConnection) {
try { try {
JDBCSecurityChecker.checkURL(((JDBCDatabaseConnection) connection).getURL()); JDBCSecurityChecker.checkURL(TemplateUtils.render(((JDBCDatabaseConnection) connection).getURL()));
JDBCSecurityChecker.checkValidationQuery(((JDBCDatabaseConnection) connection).getDbcpAttr().getValidationQuery()); JDBCSecurityChecker.checkValidationQuery(((JDBCDatabaseConnection) connection).getDbcpAttr().getValidationQuery());
} catch (SQLException e) { } catch (SQLException e) {
throw new SQLException(Toolkit.i18nText("Fine-Design_Basic_Database_Connection_Invalid_Config", connectionBean.getName()) + ", " + e.getMessage(), e.getCause()); throw new SQLException(Toolkit.i18nText("Fine-Design_Basic_Database_Connection_Invalid_Config", connectionBean.getName()) + ", " + e.getMessage(), e.getCause());

7
designer-base/src/main/java/com/fr/env/detect/base/EnvDetectorConfig.java vendored

@ -1,6 +1,5 @@
package com.fr.env.detect.base; package com.fr.env.detect.base;
import com.fr.design.DesignerEnvManager;
import com.fr.stable.xml.XMLPrintWriter; import com.fr.stable.xml.XMLPrintWriter;
import com.fr.stable.xml.XMLable; import com.fr.stable.xml.XMLable;
import com.fr.stable.xml.XMLableReader; import com.fr.stable.xml.XMLableReader;
@ -29,12 +28,6 @@ public class EnvDetectorConfig implements XMLable {
public void setEnabled(boolean enabled) { public void setEnabled(boolean enabled) {
this.enabled = enabled; this.enabled = enabled;
save();
}
private void save() {
DesignerEnvManager.getEnvManager(false).saveXMLFile();
} }
@Override @Override

12
designer-base/src/main/java/com/fr/start/server/FineEmbedServer.java

@ -8,10 +8,16 @@ import com.fr.module.ModuleContext;
*/ */
public abstract class FineEmbedServer { public abstract class FineEmbedServer {
public synchronized static void start() { /**
* 是否正在启动中
*/
private static volatile boolean onStarting = false;
public synchronized static void start() {
onStarting = true;
EventDispatcher.fire(EmbedServerEvent.BeforeStart); EventDispatcher.fire(EmbedServerEvent.BeforeStart);
ModuleContext.getModule(FineEmbedServerActivator.class).start(); ModuleContext.getModule(FineEmbedServerActivator.class).start();
onStarting = false;
EventDispatcher.fire(EmbedServerEvent.AfterStart); EventDispatcher.fire(EmbedServerEvent.AfterStart);
} }
@ -26,4 +32,8 @@ public abstract class FineEmbedServer {
return ModuleContext.getModule(FineEmbedServerActivator.class).isRunning(); return ModuleContext.getModule(FineEmbedServerActivator.class).isRunning();
} }
public static boolean isOnStarting() {
return onStarting;
}
} }

2
designer-realize/src/main/java/com/fr/start/module/DesignerStartup.java

@ -125,7 +125,7 @@ public class DesignerStartup extends Activator {
@Override @Override
public void on(Event event, Null param) { public void on(Event event, Null param) {
// 有可能被插件之类的 强制启动了 判断下 // 有可能被插件之类的 强制启动了 判断下
if (FineEmbedServer.isRunning()) { if (FineEmbedServer.isRunning() || FineEmbedServer.isOnStarting()) {
return; return;
} }
startEmbeddedServer(); startEmbeddedServer();

6
designer-realize/src/main/java/com/fr/start/module/optimized/TenantDBAdapter4Designer.java

@ -4,6 +4,7 @@ import com.fr.config.dao.DaoSelectorFactory;
import com.fr.config.dao.swicter.DaoSwitcher; import com.fr.config.dao.swicter.DaoSwitcher;
import com.fr.design.DesignerEnvManager; import com.fr.design.DesignerEnvManager;
import com.fr.event.Event; import com.fr.event.Event;
import com.fr.event.EventDispatcher;
import com.fr.event.Listener; import com.fr.event.Listener;
import com.fr.event.Null; import com.fr.event.Null;
import com.fr.exit.ConfigToPropMigrator; import com.fr.exit.ConfigToPropMigrator;
@ -25,6 +26,7 @@ public class TenantDBAdapter4Designer extends TenantDBAdapter {
@Override @Override
public void on(Event event, Null param) { public void on(Event event, Null param) {
TenantDBAdapter4Designer.super.start(); TenantDBAdapter4Designer.super.start();
afterStart();
} }
}); });
@ -32,7 +34,7 @@ public class TenantDBAdapter4Designer extends TenantDBAdapter {
@Override @Override
public void on(Event event, Null param) { public void on(Event event, Null param) {
if (DaoSelectorFactory.getDaoSelector().useCacheDao()) { if (DaoSelectorFactory.getDaoSelector().useCacheDao()) {
beforeEmbedServerStart(); EventDispatcher.fire(LazyStartupEvent.INSTANCE);
} }
} }
}); });
@ -42,7 +44,7 @@ public class TenantDBAdapter4Designer extends TenantDBAdapter {
} }
} }
private void beforeEmbedServerStart() { private void afterStart() {
DesignerEnvManager.getEnvManager().setPropertiesUsable(false); DesignerEnvManager.getEnvManager().setPropertiesUsable(false);
DaoSwitcher.executeSwitch(); DaoSwitcher.executeSwitch();
ConfigToPropMigrator.getInstance().deletePropertiesCache(); ConfigToPropMigrator.getInstance().deletePropertiesCache();

Loading…
Cancel
Save