@ -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 ( ) ) ;
}
}
/ * *
* 注册切换环境前后事件监听
* /