Browse Source

无jira任务 10.0设计器调试启动问题,设置环境需要在设置buildfile之后

master
vito 7 years ago
parent
commit
a52503737a
  1. 63
      designer/src/com/fr/start/module/DesignerStartup.java
  2. 57
      designer/src/com/fr/start/module/PreStartActivator.java

63
designer/src/com/fr/start/module/DesignerStartup.java

@ -1,11 +1,7 @@
package com.fr.start.module; package com.fr.start.module;
import com.fr.design.DesignerEnvManager;
import com.fr.design.utils.DesignUtils;
import com.fr.general.ComparatorUtils;
import com.fr.module.Activator; import com.fr.module.Activator;
import com.fr.stable.CoreActivator; import com.fr.stable.CoreActivator;
import com.fr.stable.ProductConstants;
import com.fr.stable.module.ModuleListener; import com.fr.stable.module.ModuleListener;
import com.fr.start.Designer; import com.fr.start.Designer;
import com.fr.start.EnvSwitcher; import com.fr.start.EnvSwitcher;
@ -13,26 +9,15 @@ import com.fr.start.ReportSplashPane;
import com.fr.start.SplashWindow; import com.fr.start.SplashWindow;
import com.fr.startup.activators.BasicActivator; import com.fr.startup.activators.BasicActivator;
import java.io.File;
/** /**
* Created by juhaoyu on 2018/1/8. * Created by juhaoyu on 2018/1/8.
*/ */
public class DesignerStartup extends Activator { public class DesignerStartup extends Activator {
private static final int MESSAGE_PORT = 51462;
private static final int DEBUG_PORT = 51463;
@Override @Override
public void start() { public void start() {
if (checkMultiStart()) {
return;
}
startSub(PreStartActivator.class); startSub(PreStartActivator.class);
//启动基础部分 //启动基础部分
startSub(BasicActivator.class); startSub(BasicActivator.class);
//启动画面 //启动画面
@ -52,53 +37,17 @@ public class DesignerStartup extends Activator {
splashWindow.dispose(); splashWindow.dispose();
startSub(StartFinishActivator.class); startSub(StartFinishActivator.class);
} }
private SplashWindow createSplashWindow() { private SplashWindow createSplashWindow() {
ReportSplashPane reportSplashPane = new ReportSplashPane(); ReportSplashPane reportSplashPane = new ReportSplashPane();
SplashWindow splashWindow = new SplashWindow(reportSplashPane); SplashWindow splashWindow = new SplashWindow(reportSplashPane);
getModule().setSingleton(ModuleListener.class, reportSplashPane.getModuleListener()); getModule().setSingleton(ModuleListener.class, reportSplashPane.getModuleListener());
return splashWindow; return splashWindow;
} }
private boolean checkMultiStart() {
if (isDebug()) {
setDebugEnv();
} else {
DesignUtils.setPort(getStartPort());
}
// 如果端口被占用了 说明程序已经运行了一次,也就是说,已经建立一个监听服务器,现在只要给服务器发送命令就好了
if (DesignUtils.isStarted()) {
DesignUtils.clientSend(getModule().upFindSingleton(StartupArgs.class).get());
return true;
}
return false;
}
private int getStartPort() {
return MESSAGE_PORT;
}
//在VM options里加入-Ddebug=true激活
private boolean isDebug() {
return ComparatorUtils.equals("true", System.getProperty("debug"));
}
//端口改一下,环境配置文件改一下。便于启动两个设计器,进行对比调试
private void setDebugEnv() {
DesignUtils.setPort(DEBUG_PORT);
DesignerEnvManager.setEnvFile(new File(ProductConstants.getEnvHome() + File.separator + ProductConstants.APP_NAME + "Env_debug.xml"));
}
@Override @Override
public void stop() { public void stop() {
} }
} }

57
designer/src/com/fr/start/module/PreStartActivator.java

@ -3,32 +3,79 @@ package com.fr.start.module;
import com.fr.base.FRContext; import com.fr.base.FRContext;
import com.fr.design.DesignerEnvManager; import com.fr.design.DesignerEnvManager;
import com.fr.design.RestartHelper; import com.fr.design.RestartHelper;
import com.fr.design.utils.DesignUtils;
import com.fr.general.ComparatorUtils;
import com.fr.general.SiteCenter; import com.fr.general.SiteCenter;
import com.fr.module.Activator; import com.fr.module.Activator;
import com.fr.stable.BuildContext; import com.fr.stable.BuildContext;
import com.fr.stable.ProductConstants;
import java.io.File;
/** /**
* Created by juhaoyu on 2018/1/8. * Created by juhaoyu on 2018/1/8.
*/ */
public class PreStartActivator extends Activator { public class PreStartActivator extends Activator {
private static final int MESSAGE_PORT = 51462;
private static final int DEBUG_PORT = 51463;
@Override @Override
public void start() { public void start() {
RestartHelper.deleteRecordFilesWhenStart(); RestartHelper.deleteRecordFilesWhenStart();
BuildContext.setBuildFilePath("/com/fr/stable/build.properties"); BuildContext.setBuildFilePath("/com/fr/stable/build.properties");
SiteCenter.getInstance(); SiteCenter.getInstance();
if (checkMultiStart()) {
return;
}
initLanguage(); initLanguage();
} }
private boolean checkMultiStart() {
if (isDebug()) {
setDebugEnv();
} else {
DesignUtils.setPort(getStartPort());
}
// 如果端口被占用了 说明程序已经运行了一次,也就是说,已经建立一个监听服务器,现在只要给服务器发送命令就好了
if (DesignUtils.isStarted()) {
DesignUtils.clientSend(getModule().upFindSingleton(StartupArgs.class).get());
return true;
}
return false;
}
private int getStartPort() {
return MESSAGE_PORT;
}
//在VM options里加入-Ddebug=true激活
private boolean isDebug() {
return ComparatorUtils.equals("true", System.getProperty("debug"));
}
//端口改一下,环境配置文件改一下。便于启动两个设计器,进行对比调试
private void setDebugEnv() {
DesignUtils.setPort(DEBUG_PORT);
DesignerEnvManager.setEnvFile(new File(ProductConstants.getEnvHome() + File.separator + ProductConstants.APP_NAME + "Env_debug.xml"));
}
private void initLanguage() { private void initLanguage() {
//这两句的位置不能随便调换,因为会影响语言切换的问题 //这两句的位置不能随便调换,因为会影响语言切换的问题
FRContext.setLanguage(DesignerEnvManager.getEnvManager(false).getLanguage()); FRContext.setLanguage(DesignerEnvManager.getEnvManager(false).getLanguage());
DesignerEnvManager.checkNameEnvMap(); DesignerEnvManager.checkNameEnvMap();
} }
@Override @Override
public void stop() { public void stop() {
} }
} }

Loading…
Cancel
Save