diff --git a/designer-realize/src/main/java/com/fr/start/module/DesignerStartup.java b/designer-realize/src/main/java/com/fr/start/module/DesignerStartup.java index 35e51ff8b..9d684a821 100644 --- a/designer-realize/src/main/java/com/fr/start/module/DesignerStartup.java +++ b/designer-realize/src/main/java/com/fr/start/module/DesignerStartup.java @@ -1,14 +1,16 @@ package com.fr.start.module; +import com.fr.design.DesignerEnvManager; import com.fr.design.mainframe.DesignerContext; import com.fr.event.Event; import com.fr.event.Listener; +import com.fr.general.ComparatorUtils; import com.fr.module.Activator; import com.fr.record.analyzer.EnableMetrics; import com.fr.record.analyzer.Metrics; import com.fr.start.Designer; -import com.fr.start.EnvSwitcher; +import com.fr.start.ServerStarter; import com.fr.start.SplashContext; import com.fr.startup.activators.BasicActivator; import com.fr.workspace.Workspace; @@ -31,10 +33,20 @@ public class DesignerStartup extends Activator { startSub(BasicActivator.class); final String[] args = getModule().upFindSingleton(StartupArgs.class).get(); final Designer designer = new Designer(args); - //启动env + startSub(DesignerWorkspaceProvider.class); + //启动env startSub(EnvBasedModule.class); - getRoot().getSingleton(EnvSwitcher.class).switch2LastEnv(); + + if (args != null) { + for (String arg : args) { + if (ComparatorUtils.equals(arg, "demo")) { + DesignerEnvManager.getEnvManager().setCurrentEnv2Default(); + ServerStarter.browserDemoURL(); + break; + } + } + } ExecutorService service = Executors.newSingleThreadExecutor(); registerEnvListener(); service.submit(new Runnable() { diff --git a/designer-realize/src/main/java/com/fr/start/module/DesignerWorkspaceProvider.java b/designer-realize/src/main/java/com/fr/start/module/DesignerWorkspaceProvider.java index 3a2229229..bd8159c6d 100644 --- a/designer-realize/src/main/java/com/fr/start/module/DesignerWorkspaceProvider.java +++ b/designer-realize/src/main/java/com/fr/start/module/DesignerWorkspaceProvider.java @@ -1,10 +1,9 @@ package com.fr.start.module; import com.fr.design.DesignerEnvManager; -import com.fr.general.ComparatorUtils; + import com.fr.module.Activator; import com.fr.start.EnvSwitcher; -import com.fr.start.ServerStarter; /** * Created by juhaoyu on 2018/1/8. @@ -16,21 +15,11 @@ public class DesignerWorkspaceProvider extends Activator { public void start() { //检查环境 DesignerEnvManager.checkNameEnvMap(); - - String[] args = getModule().upFindSingleton(StartupArgs.class).get(); - if (args != null) { - for (String arg : args) { - if (ComparatorUtils.equals(arg, "demo")) { - DesignerEnvManager.getEnvManager().setCurrentEnv2Default(); - ServerStarter.browserDemoURL(); - break; - } - } - } - - getRoot().setSingleton(EnvSwitcher.class, new EnvSwitcher()); + + EnvSwitcher switcher = new EnvSwitcher(); //设置好环境即可,具体跟环境有关的模块会自动调用 - getRoot().getSingleton(EnvSwitcher.class).switch2LastEnv(); + switcher.switch2LastEnv(); + getRoot().setSingleton(EnvSwitcher.class, switcher); }