|
|
|
@ -3,14 +3,17 @@ package com.fr.start.module;
|
|
|
|
|
import com.fr.design.DesignerEnvManager; |
|
|
|
|
import com.fr.design.RestartHelper; |
|
|
|
|
import com.fr.design.fun.OemProcessor; |
|
|
|
|
import com.fr.design.i18n.Toolkit; |
|
|
|
|
import com.fr.design.mainframe.template.info.TemplateInfoCollector; |
|
|
|
|
import com.fr.design.utils.DesignUtils; |
|
|
|
|
import com.fr.design.utils.DesignerPort; |
|
|
|
|
import com.fr.event.EventDispatcher; |
|
|
|
|
import com.fr.general.CloudCenter; |
|
|
|
|
import com.fr.general.ComparatorUtils; |
|
|
|
|
import com.fr.general.GeneralContext; |
|
|
|
|
import com.fr.log.FineLoggerFactory; |
|
|
|
|
import com.fr.module.Activator; |
|
|
|
|
import com.fr.module.ModuleEvent; |
|
|
|
|
import com.fr.stable.BuildContext; |
|
|
|
|
import com.fr.stable.OperatingSystem; |
|
|
|
|
import com.fr.stable.ProductConstants; |
|
|
|
@ -30,10 +33,10 @@ import java.util.concurrent.Executors;
|
|
|
|
|
* Created by juhaoyu on 2018/1/8. |
|
|
|
|
*/ |
|
|
|
|
public class PreStartActivator extends Activator { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public void start() { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BuildContext.setBuildFilePath("/com/fr/stable/build.properties"); |
|
|
|
|
// 如果端口被占用了 说明程序已经运行了一次,也就是说,已经建立一个监听服务器,现在只要给服务器发送命令就好了
|
|
|
|
|
final String[] args = getModule().upFindSingleton(StartupArgs.class).get(); |
|
|
|
@ -45,87 +48,96 @@ public class PreStartActivator extends Activator {
|
|
|
|
|
System.exit(0); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
RestartHelper.deleteRecordFilesWhenStart(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
preloadResource(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SplashContext.getInstance().registerSplash(createSplash()); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SplashContext.getInstance().show(); |
|
|
|
|
|
|
|
|
|
// 完成初始化
|
|
|
|
|
//noinspection ResultOfMethodCallIgnored
|
|
|
|
|
CloudCenter.getInstance(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 创建监听服务
|
|
|
|
|
DesignUtils.createListeningServer(DesignUtils.getPort(), startFileSuffix()); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
initLanguage(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public void stop() { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void checkDebugStart() { |
|
|
|
|
|
|
|
|
|
if (isDebug()) { |
|
|
|
|
setDebugEnv(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 在VM options里加入-Ddebug=true激活 |
|
|
|
|
* |
|
|
|
|
* @return isDebug |
|
|
|
|
*/ |
|
|
|
|
private boolean isDebug() { |
|
|
|
|
|
|
|
|
|
return ComparatorUtils.equals("true", System.getProperty("debug")); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//端口改一下,环境配置文件改一下。便于启动两个设计器,进行对比调试
|
|
|
|
|
private void setDebugEnv() { |
|
|
|
|
|
|
|
|
|
DesignUtils.setPort(DesignerPort.DEBUG_MESSAGE_PORT); |
|
|
|
|
String debugXMlFilePath = StableUtils.pathJoin( |
|
|
|
|
ProductConstants.getEnvHome(), |
|
|
|
|
ProductConstants.APP_NAME + "Env_debug.xml" |
|
|
|
|
ProductConstants.getEnvHome(), |
|
|
|
|
ProductConstants.APP_NAME + "Env_debug.xml" |
|
|
|
|
); |
|
|
|
|
DesignerEnvManager.setEnvFile( |
|
|
|
|
new File(debugXMlFilePath)); |
|
|
|
|
new File(debugXMlFilePath)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void initLanguage() { |
|
|
|
|
//这两句的位置不能随便调换,因为会影响语言切换的问题
|
|
|
|
|
GeneralContext.setLocale(DesignerEnvManager.getEnvManager(false).getLanguage()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private String[] startFileSuffix() { |
|
|
|
|
|
|
|
|
|
return new String[]{".cpt", ".xls", ".xlsx", ".frm", ".form", ".cht", ".chart"}; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private static void preloadResource() { |
|
|
|
|
|
|
|
|
|
ExecutorService service = Executors.newCachedThreadPool(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
service.submit(new Runnable() { |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public void run() { |
|
|
|
|
|
|
|
|
|
new ImagePreLoader(); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
service.submit(new Runnable() { |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public void run() { |
|
|
|
|
|
|
|
|
|
TemplateInfoCollector.getInstance(); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
service.shutdown(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private SplashStrategy createSplash() { |
|
|
|
|
|
|
|
|
|
OemProcessor oemProcessor = OemHandler.findOem(); |
|
|
|
|
if (oemProcessor != null) { |
|
|
|
|
SplashStrategy splashStrategy = null; |
|
|
|
|