try{
eventNotificationService.notifyNamedEvent(IWorkspaceEventListener.class, IWorkspaceEventListener.EVENT_BEFORE_WORKSPACE_LOAD_ID);
}
catch(Exception e){
log.error("Error notificant event pre-càrrega del workspace: {}", e.getMessage(), e);
throw new ApplicationException(e);
}
File configurationFile = new File(workspaceFolder + File.separator + CONFIGURATION_FILE);
// Si no existeix el fitxer de configuració propi del workspace, s'inicialitza el valor de les seves preferencies per defecte
if(!configurationFile.exists()){
preferenceService.clearProperty(CoreConstants.PREFERENCES_IS_DEFAULT);
preferenceService.save(IPreferenceService.PREFERENCES_CONFIGURATION_ID, configurationFile.getAbsolutePath());
}
else{
try{
// Si es tracte d'una versió anterior, s'actualitza
if(updateWorkspacePreferences(configurationFile)){
preferenceService.clearProperty(CoreConstants.PREFERENCES_IS_DEFAULT);
preferenceService.save(IPreferenceService.PREFERENCES_CONFIGURATION_ID, configurationFile.getAbsolutePath());
}
// En cas contrari es carreguen directament les preferències del workspace
else{
preferenceService.loadPreferencesFile(IPreferenceService.PREFERENCES_CONFIGURATION_ID, configurationFile);
}
}
catch(Exception e){
log.error("Error en actualitzar les preferències del workspace: {}", e.getMessage(), e);
throw new ApplicationException(e);
}
}
if(preferenceService.getProperty("//transient/workspace/folder")!=null){
preferenceService.setProperty("//transient/workspace/folder", workspaceFolder);
}
else{
preferenceService.addProperty("//transient workspace/folder", workspaceFolder);
}
// Es carrega el contexte relatiu al workspace
ApplicationContext applicationContext = ApplicationContext.getInstance();
applicationContext.configureContext(CoreConstants.EXECUTION_CONTEXT_WORKSPACE_INITIALIZED);
try{
eventNotificationService.notifyNamedEvent(IWorkspaceEventListener.class, IWorkspaceEventListener.EVENT_WORKSPACE_LOADED_ID);
}
catch(Exception e){
log.error("Error notificant event de càrrega del workspace: {}", e.getMessage(), e);
throw new ApplicationException(e);
}
}