This is an automated email from the git hooks/post-receive script. New commit to branch feature/8383_importer_une_sauvegarde_apres_fermeture_connexion in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 26a5ee2483d7c0252c75b7ddb5fdbe55c64f69cb Author: Samuel Maisonneuve <maisonneuve@codelutin.com> Date: Fri Aug 5 12:27:41 2016 +0200 Check if the datasource is opened and try to open it if not refs #8383 --- .../ird/observe/ui/storage/StorageUIHandler.java | 55 +++++++++++++--------- 1 file changed, 32 insertions(+), 23 deletions(-) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIHandler.java index 194711f..b8e8f52 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIHandler.java @@ -52,6 +52,7 @@ import fr.ird.observe.ui.storage.tabs.DataSelectionModel; import fr.ird.observe.ui.storage.tabs.RolesTableModel; import fr.ird.observe.ui.storage.tabs.SecurityModel; import fr.ird.observe.ui.storage.tabs.StorageTabUI; +import jaxx.runtime.JAXXContext; import jaxx.runtime.context.DefaultApplicationContext.AutoLoad; import jaxx.runtime.swing.wizard.WizardUILancher; import org.apache.commons.io.FileUtils; @@ -103,7 +104,7 @@ public class StorageUIHandler { case USE_LOCAL: configuration = model.toH2StorageConfig(t("observe.storage.label.local")); - dataSource = ObserveSwingApplicationContext.get().getDataSourcesManager().newDataSource(configuration); + dataSource = ObserveSwingApplicationContext.get().newDataSource(configuration); dataSource.addObserveSwingDataSourceListener( new ObserveSwingDataSourceListenerAdapter() { @@ -295,7 +296,7 @@ public class StorageUIHandler { } }; } - ObserveMainUI mainUI = ObserveSwingApplicationContext.get().getMainUI(); + ObserveMainUI mainUI = ObserveSwingApplicationContext.get().getObserveMainUI(); if (mainUI == null) { if (log.isWarnEnabled()) { log.warn("Launch standalone apply action " + action); @@ -305,7 +306,7 @@ public class StorageUIHandler { } else { ObserveActionExecutor executor = ObserveRunner.getActionExecutor(); - executor.addAction(t("observe.storage.action.applyAction"), action); + executor.addAction(t("observe.action.storage.applyAction"), action); } } @@ -360,16 +361,23 @@ public class StorageUIHandler { boolean localDbIsSane = true; if (destroyLocalBase || model.isDoBackup()) { if (localDataSource == null) { - try { - ObserveDataSourceConfigurationTopiaH2 localConfiguration = config.getDataSourceConfigurationH2(t("observe.storage.label.local")); + ObserveDataSourceConfigurationTopiaH2 localConfiguration = config.getDataSourceConfigurationH2(t("observe.storage.label.local")); + + // la base ne doit pas etre mise a jour dans ce cas + localConfiguration.setCanMigrate(false); - // la base ne doit pas etre mise a jour dans ce cas - localConfiguration.setCanMigrate(false); + // on charge un storage sur la base locale + localDataSource = ObserveSwingApplicationContext.get().getDataSourcesManager().newDataSource(localConfiguration); + } - // on charge un storage sur la base locale - localDataSource = ObserveSwingApplicationContext.get().getDataSourcesManager().newDataSource(localConfiguration); + // Let's check if the datasource is opened or not : + // we could have close the datasource through the ui + // If the datasource is closed, we try to open it + if (!localDataSource.isOpen()) { + try { localDataSource.open(); + } catch (Exception e) { // on a pas reussi à ouvrir la base locale // cela ne doit pas empécher de continuer @@ -476,8 +484,8 @@ public class StorageUIHandler { } -// observeContext.getDataSourcesManager().setMainDataSource(currentDataSource); - observeContext.prepareMainStorage(currentDataSource, true); + observeContext.setDataSource(currentDataSource); + observeContext.prepareMainStorage(currentDataSource); if (model.getDbMode() == DbMode.CREATE_LOCAL) { @@ -502,7 +510,7 @@ public class StorageUIHandler { } config.setLocalStorageExist(false); - observeContext.getDataSourcesManager().setMainDataSource(null); + observeContext.setDataSource(null); throw e; @@ -531,7 +539,7 @@ public class StorageUIHandler { " in " + f); } try { - SqlScriptProducerService dumpProducerService = observeContext.getMainDataSourceServicesProvider().newSqlScriptProducerService(); + SqlScriptProducerService dumpProducerService = observeContext.newService(SqlScriptProducerService.class); backupLocalDatabase(dumpProducerService, f); config.setInitialDumpExist(true); } catch (Exception e) { @@ -544,7 +552,7 @@ public class StorageUIHandler { } if (model.isStoreRemoteConfig()) { - storeRemoteConfig(model); + storeRemoteConfig(context, model); } } catch (Exception ex) { @@ -557,10 +565,11 @@ public class StorageUIHandler { * Sauvegarder dans la configuration de l'application le paramétrage de la * source de données distante donnée. * + * @param context le context applicatif * @param model le model de la source de données */ - public void storeRemoteConfig(StorageUIModel model) { - ObserveSwingApplicationConfig config = ObserveSwingApplicationContext.get().getConfig(); + public void storeRemoteConfig(JAXXContext context, StorageUIModel model) { + ObserveSwingApplicationConfig config = context.getContextValue(ObserveSwingApplicationConfig.class); // on sauvegarde dans le parametrage dans la configuration de // l'application @@ -600,8 +609,8 @@ public class StorageUIHandler { log.debug(dst); } - AddSqlScriptProducerRequest request = AddSqlScriptProducerRequest.forH2().addSchema().addReferential().addAllData(); - byte[] dataDump = dumpProducerService.produceAddSqlScript(request); + SqlScriptProducerRequest request = SqlScriptProducerRequest.forH2().addSchema().addReferential().addAllData(); + byte[] dataDump = dumpProducerService.produceSqlScript(request); try (FileOutputStream outputStream = new FileOutputStream(dst)) { @@ -627,7 +636,7 @@ public class StorageUIHandler { File dst, Set<DataReference> trips) { - SqlScriptProducerService dumpService = dataSource.newSqlScriptProducerService(); + SqlScriptProducerService dumpService = dataSource.newService(SqlScriptProducerService.class); if (trips == null) { @@ -653,8 +662,8 @@ public class StorageUIHandler { ImmutableSet<String> tripIds = ImmutableSet.copyOf(Iterables.transform(trips, DataReference.getIdFunction())); - AddSqlScriptProducerRequest request = AddSqlScriptProducerRequest.forH2().addSchema().addReferential().dataIdsToAdd(tripIds); - byte[] dump = dumpService.produceAddSqlScript(request); + SqlScriptProducerRequest request = SqlScriptProducerRequest.forH2().addSchema().addReferential().addDataIds(tripIds); + byte[] dump = dumpService.produceSqlScript(request); try (FileOutputStream fileOutputStream = new FileOutputStream(dst)) { @@ -774,11 +783,11 @@ public class StorageUIHandler { case USE_REMOTE: ObserveDataSourceConfigurationTopiaPG pgConfig = model.getPgConfig(); - dataSource = ObserveSwingApplicationContext.get().getDataSourcesManager().newDataSource(pgConfig); + dataSource = ObserveSwingApplicationContext.get().newDataSource(pgConfig); break; case USE_SERVER: ObserveDataSourceConfigurationRest restConfig = model.getRestConfig(); - dataSource = ObserveSwingApplicationContext.get().getDataSourcesManager().newDataSource(restConfig); + dataSource = ObserveSwingApplicationContext.get().newDataSource(restConfig); } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.