branch develop updated (052de92 -> 2b2853b)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository observe. See http://git.codelutin.com/observe.git from 052de92 Debut de correction des recopies de références new 2b2853b enregistrement de toutes les source de données ouvertes pour les fermer a l'arrêt de l'appli (refs #7700) The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 2b2853bcbaa5806b8a96f1b83f1be6b1e51f5647 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Mon Nov 9 11:53:31 2015 +0100 enregistrement de toutes les source de données ouvertes pour les fermer a l'arrêt de l'appli (refs #7700) Summary of changes: .../observe/ObserveSwingApplicationContext.java | 55 +++++++++++++++++++--- .../observe/ui/actions/ReloadStorageAction.java | 11 +++-- .../ird/observe/ui/storage/ObstunaAdminAction.java | 15 +++--- .../ird/observe/ui/storage/StorageUIHandler.java | 12 ++--- .../fr/ird/observe/ui/storage/StorageUIModel.java | 10 ++-- 5 files changed, 74 insertions(+), 29 deletions(-) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit 2b2853bcbaa5806b8a96f1b83f1be6b1e51f5647 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Mon Nov 9 11:53:31 2015 +0100 enregistrement de toutes les source de données ouvertes pour les fermer a l'arrêt de l'appli (refs #7700) --- .../observe/ObserveSwingApplicationContext.java | 55 +++++++++++++++++++--- .../observe/ui/actions/ReloadStorageAction.java | 11 +++-- .../ird/observe/ui/storage/ObstunaAdminAction.java | 15 +++--- .../ird/observe/ui/storage/StorageUIHandler.java | 12 ++--- .../fr/ird/observe/ui/storage/StorageUIModel.java | 10 ++-- 5 files changed, 74 insertions(+), 29 deletions(-) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ObserveSwingApplicationContext.java b/observe-application-swing/src/main/java/fr/ird/observe/ObserveSwingApplicationContext.java index 5451514..6b67185 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ObserveSwingApplicationContext.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ObserveSwingApplicationContext.java @@ -34,6 +34,7 @@ import fr.ird.observe.db.event.ObserveSwingDataSourceListenerAdapter; import fr.ird.observe.services.ObserveDataSourceConfigurationMainFactory; import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.ObserveServiceMainFactory; +import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration; import fr.ird.observe.services.configuration.ObserveDataSourceConfigurationTopiaH2; import fr.ird.observe.services.configuration.ObserveDataSourceInformation; import fr.ird.observe.services.dto.IdDtos; @@ -171,6 +172,8 @@ public class ObserveSwingApplicationContext extends DefaultApplicationContext im public static final JAXXContextEntryDef<ObserveSwingDataSource> SWING_DATA_SOURCE_ENTRY_DEF = JAXXUtil.newContextEntryDef(ObserveSwingDataSource.class); + public static final JAXXContextEntryDef<List<ObserveSwingDataSource>> SWING_DATA_SOURCE_LIST_ENTRY_DEF = + JAXXUtil.newListContextEntryDef(); public static final JAXXContextEntryDef<ValidationContext> VALIDATION_CONTEXT_ENTRY_DEF = JAXXUtil.newContextEntryDef(ValidationContext.class); @@ -223,6 +226,45 @@ public class ObserveSwingApplicationContext extends DefaultApplicationContext im } } + public final ObserveSwingDataSource newDataSource(ObserveDataSourceConfiguration configuration) { + ObserveSwingDataSource dataSource = new ObserveSwingDataSource(configuration); + + dataSource.addObserveSwingDataSourceListener(new ObserveSwingDataSourceListenerAdapter() { + @Override + public void onOpened(ObserveSwingDataSourceEvent event) { + super.onOpened(event); + ObserveSwingDataSource dataSource = event.getSource(); + getAllDataSource().add(dataSource); + + if (log.isInfoEnabled()) { + log.info("Data source opened : " + dataSource.getConfiguration() + " (" + getAllDataSource().size() + " datas sources open)"); + } + } + + @Override + public void onClosed(ObserveSwingDataSourceEvent event) { + super.onClosed(event); + ObserveSwingDataSource dataSource = event.getSource(); + getAllDataSource().remove(dataSource); + if (log.isInfoEnabled()) { + log.info("Data source closed : " + dataSource.getConfiguration() + " (" + getAllDataSource().size() + " datas sources open)"); + } + } + }); + + return dataSource; + } + + protected List<ObserveSwingDataSource> getAllDataSource() { + List<ObserveSwingDataSource> dataSources = SWING_DATA_SOURCE_LIST_ENTRY_DEF.getContextValue(this); + if (dataSources == null) { + dataSources = Lists.newLinkedList(); + SWING_DATA_SOURCE_LIST_ENTRY_DEF.setContextValue(this, dataSources); + } + return dataSources; + } + + public final DecoratorService getDecoratorService() { DecoratorService decoratorService = DECORATOR_SERVICE_ENTRY_DEF.getContextValue(this); @@ -302,7 +344,7 @@ public class ObserveSwingApplicationContext extends DefaultApplicationContext im getConfig().getModelVersion() ); - ObserveSwingDataSource result = new ObserveSwingDataSource(config); + ObserveSwingDataSource result = newDataSource(config); return result; } @@ -392,16 +434,15 @@ public class ObserveSwingApplicationContext extends DefaultApplicationContext im log.info("Closing swing application context " + this); } - // fermeture du context de données - ObserveSwingDataSource dataSource = getDataSource(); - if (getDataSource() != null && dataSource.isOpen()) { + // fermeture de touts les context de donnée ouvert + for (ObserveSwingDataSource dataSource : Lists.newArrayList(getAllDataSource())) { if (log.isInfoEnabled()) { log.info("Closing dataSource : " + dataSource.getConnection()); } dataSource.close(); - setDataSource(null); } + setDataSource(null); ObserveServiceMainFactory serviceMainFactory = ObserveServiceMainFactory.get(); if (log.isInfoEnabled()) { @@ -797,7 +838,7 @@ public class ObserveSwingApplicationContext extends DefaultApplicationContext im } - source.removeObserveSwingDataSourceListeners(); + source.removeObserveSwingDataSourceListener(this); } @@ -908,7 +949,7 @@ public class ObserveSwingApplicationContext extends DefaultApplicationContext im dataSourceConfigurationH2.getDirectory() + ')'); } - ObserveSwingDataSource dataSource = new ObserveSwingDataSource(dataSourceConfigurationH2); + ObserveSwingDataSource dataSource = get().newDataSource(dataSourceConfigurationH2); return dataSource; } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ReloadStorageAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ReloadStorageAction.java index c1ad2ac..a2c870c 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ReloadStorageAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ReloadStorageAction.java @@ -71,9 +71,10 @@ public class ReloadStorageAction extends AbstractAction { public void run() { - boolean canContinue = ObserveSwingApplicationContext.get().closeSelectedContentUI(ui); + ObserveSwingApplicationContext context = ObserveSwingApplicationContext.get(); + boolean canContinue = context.closeSelectedContentUI(ui); - ObserveSwingDataSource storage = ObserveSwingApplicationContext.get().getDataSource(); + ObserveSwingDataSource storage = context.getDataSource(); if (canContinue && storage != null) { @@ -89,7 +90,7 @@ public class ReloadStorageAction extends AbstractAction { // fermeture du storage courant storage.close(); - ObserveSwingApplicationConfig appConfig = ObserveSwingApplicationContext.get().getConfig(); + ObserveSwingApplicationConfig appConfig = context.getConfig(); if (storage.isLocal()) { @@ -105,10 +106,10 @@ public class ReloadStorageAction extends AbstractAction { // on conserve les noeuds a selectionner - ObserveSwingApplicationContext.get().setNodesToReselect(ids); + context.setNodesToReselect(ids); // attachement a l'ui - ObserveSwingApplicationContext.get().prepareMainStorage(storage); + context.prepareMainStorage(storage); // ouverture du service storage.open(); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/ObstunaAdminAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/ObstunaAdminAction.java index 64d5dc2..40394db 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/ObstunaAdminAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/ObstunaAdminAction.java @@ -24,6 +24,7 @@ package fr.ird.observe.ui.storage; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Iterables; +import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.db.ObserveSwingDataSource; import fr.ird.observe.db.constantes.DbMode; import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration; @@ -86,7 +87,7 @@ public enum ObstunaAdminAction { protected void checkImportDbVersion(StorageUIModel model, ObserveDataSourceConfiguration dataSourceConfig) throws DatabaseConnexionNotAuthorizedException, DatabaseNotFoundException, BabModelVersionException { - ObserveSwingDataSource importDataSource = new ObserveSwingDataSource(dataSourceConfig); + ObserveSwingDataSource importDataSource = ObserveSwingApplicationContext.get().newDataSource(dataSourceConfig); Preconditions.checkState(importDataSource != null, "Can't select data on a null dataSource"); @@ -111,11 +112,11 @@ public enum ObstunaAdminAction { // pas autorise a migrer automatiquement pgConfig.setCanMigrate(false); - dataSource = new ObserveSwingDataSource(pgConfig); + dataSource = ObserveSwingApplicationContext.get().newDataSource(pgConfig); } else { ObserveDataSourceConfigurationRest restConfig = model.getRestConfig(); - dataSource = new ObserveSwingDataSource(restConfig); + dataSource = ObserveSwingApplicationContext.get().newDataSource(restConfig); } // references import @@ -226,13 +227,13 @@ public enum ObstunaAdminAction { if (DbMode.USE_REMOTE.equals(model.getDbMode())) { ObserveDataSourceConfigurationTopiaPG pgConfig = model.getPgConfig(); - dataSource = new ObserveSwingDataSource(pgConfig); + dataSource = ObserveSwingApplicationContext.get().newDataSource(pgConfig); } else { ObserveDataSourceConfigurationRest restConfig = model.getRestConfig(); - dataSource = new ObserveSwingDataSource(restConfig); + dataSource = ObserveSwingApplicationContext.get().newDataSource(restConfig); } targetVersion = model.getConfig().getModelVersion(); @@ -295,11 +296,11 @@ public enum ObstunaAdminAction { // pas autorise a migrer automatiquement pgConfig.setCanMigrate(false); - dataSource = new ObserveSwingDataSource(pgConfig); + dataSource = ObserveSwingApplicationContext.get().newDataSource(pgConfig); } else { ObserveDataSourceConfigurationRest restConfig = model.getRestConfig(); - dataSource = new ObserveSwingDataSource(restConfig); + dataSource = ObserveSwingApplicationContext.get().newDataSource(restConfig); } users = model.getSecurityModel().getUsers(); 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 6170020..3fd86d7 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 @@ -112,7 +112,7 @@ public class StorageUIHandler { case USE_LOCAL: configuration = model.toH2StorageConfig(t("observe.storage.label.local")); - dataSource = new ObserveSwingDataSource(configuration); + dataSource = ObserveSwingApplicationContext.get().newDataSource(configuration); dataSource.addObserveSwingDataSourceListener( new ObserveSwingDataSourceListenerAdapter() { @@ -130,11 +130,11 @@ public class StorageUIHandler { break; case USE_REMOTE: configuration = model.toPGStorageConfig(t("observe.storage.label.remote")); - dataSource = new ObserveSwingDataSource(configuration); + dataSource = ObserveSwingApplicationContext.get().newDataSource(configuration); break; case USE_SERVER: configuration = model.toRestStorageConfig(t("observe.storage.label.server")); - dataSource = new ObserveSwingDataSource(configuration); + dataSource = ObserveSwingApplicationContext.get().newDataSource(configuration); break; } @@ -383,7 +383,7 @@ public class StorageUIHandler { localConfiguration.setCanMigrate(false); // on charge un storage sur la base locale - localDataSource = new ObserveSwingDataSource(localConfiguration); + localDataSource = ObserveSwingApplicationContext.get().newDataSource(localConfiguration); localDataSource.open(); } catch (Exception e) { @@ -1022,11 +1022,11 @@ public class StorageUIHandler { case USE_REMOTE: ObserveDataSourceConfigurationTopiaPG pgConfig = model.getPgConfig(); - dataSource = new ObserveSwingDataSource(pgConfig); + dataSource = ObserveSwingApplicationContext.get().newDataSource(pgConfig); break; case USE_SERVER: ObserveDataSourceConfigurationRest restConfig = model.getRestConfig(); - dataSource = new ObserveSwingDataSource(restConfig); + dataSource = ObserveSwingApplicationContext.get().newDataSource(restConfig); } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIModel.java index 0add006..9fe68b5 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIModel.java @@ -1551,7 +1551,7 @@ public class StorageUIModel extends WizardModel<StorageStep> { } if (configSrc != null) { - try (ObserveSwingDataSource source = new ObserveSwingDataSource(configSrc)) { + try (ObserveSwingDataSource source = ObserveSwingApplicationContext.get().newDataSource(configSrc)) { source.open(); @@ -1690,7 +1690,7 @@ public class StorageUIModel extends WizardModel<StorageStep> { if (config != null) { - ObserveSwingDataSource dataSource = new ObserveSwingDataSource(config); + ObserveSwingDataSource dataSource = ObserveSwingApplicationContext.get().newDataSource(config); try { @@ -1905,7 +1905,8 @@ public class StorageUIModel extends WizardModel<StorageStep> { dataSourceConfig.setCanMigrate(false); - importDataSource = new ObserveSwingDataSource(dataSourceConfig); + importDataSource = ObserveSwingApplicationContext.get().newDataSource(dataSourceConfig); + } break; @@ -1914,7 +1915,8 @@ public class StorageUIModel extends WizardModel<StorageStep> { // import referentiel from a server db ObserveDataSourceConfigurationRest dataSourceConfig = getCentralSourceModel().toRestStorageConfig(dbLabel); - importDataSource = new ObserveSwingDataSource(dataSourceConfig); + importDataSource = ObserveSwingApplicationContext.get().newDataSource(dataSourceConfig); + } break; default: -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
participants (1)
-
codelutin.com scm