branch develop-4.x updated (31399ec -> 89d60e4)
This is an automated email from the git hooks/post-receive script. New change to branch develop-4.x in repository tutti. See http://git.codelutin.com/tutti.git from 31399ec Augementation de la mémoire à utiliser dans les scripts de démarrage (Fixes #7902) new 35c7b9e Ajout d'une méthode pour récupérer le chemin d'un fichier par défaut de sauvegarde d'une base locale new 50c5b7e A la fermeture de l'application, on effectue une sauvegarde de la base locale new 7b65b91 Essayer de fermer le context applicatif en cas de terminaison brutale de l'application new 62432ef Utilisation de la dernière version stable d'H2 (je n'ai pas osé passé sur une 1.4.x) new 1e9e102 Faire un compactage de la base avant la fermeture new 89d60e4 Fixes #7866. Merge branch 'feature/7866_probleme_fermeture_base' into develop-4.x The 6 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 89d60e474c4b89eb269e5d507ed2416a246d4e7c Merge: 31399ec 1e9e102 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Jan 13 18:24:36 2016 +0100 Fixes #7866. Merge branch 'feature/7866_probleme_fermeture_base' into develop-4.x commit 1e9e102851ed5a56326cc26cefd93ce5991695db Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Jan 13 18:23:57 2016 +0100 Faire un compactage de la base avant la fermeture commit 62432ef52b05c46ebf1694db6c793b1284359faa Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Jan 13 17:02:16 2016 +0100 Utilisation de la dernière version stable d'H2 (je n'ai pas osé passé sur une 1.4.x) commit 7b65b9149aa5283528903416de39af4769ba804d Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Jan 13 16:30:45 2016 +0100 Essayer de fermer le context applicatif en cas de terminaison brutale de l'application commit 50c5b7e2f620bdcf732a755803c83498e6aefe6e Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Jan 13 15:53:18 2016 +0100 A la fermeture de l'application, on effectue une sauvegarde de la base locale commit 35c7b9e85062eb09c79863186c319e253e069d90 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Jan 13 15:52:49 2016 +0100 Ajout d'une méthode pour récupérer le chemin d'un fichier par défaut de sauvegarde d'une base locale Summary of changes: .../main/java/fr/ird/observe/IObserveConfig.java | 7 ++++ .../fr/ird/observe/ObserveApplicationContext.java | 4 -- .../java/fr/ird/observe/db/impl/H2DataSource.java | 16 ++++++++ .../main/java/fr/ird/observe/ObserveConfig.java | 7 ++++ .../main/java/fr/ird/observe/ObserveContext.java | 47 +++++++++++++++++++++- .../main/java/fr/ird/observe/ObserveRunner.java | 25 +++++++++--- .../java/fr/ird/observe/ui/admin/AdminUIModel.java | 3 +- .../ird/observe/ui/storage/StorageUIHandler.java | 10 ----- .../fr/ird/observe/ui/storage/StorageUIModel.java | 6 +-- pom.xml | 2 +- 10 files changed, 100 insertions(+), 27 deletions(-) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop-4.x in repository tutti. See http://git.codelutin.com/tutti.git commit 35c7b9e85062eb09c79863186c319e253e069d90 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Jan 13 15:52:49 2016 +0100 Ajout d'une méthode pour récupérer le chemin d'un fichier par défaut de sauvegarde d'une base locale --- .../src/main/java/fr/ird/observe/IObserveConfig.java | 7 +++++++ observe-swing/src/main/java/fr/ird/observe/ObserveConfig.java | 7 +++++++ .../src/main/java/fr/ird/observe/ui/admin/AdminUIModel.java | 3 +-- .../main/java/fr/ird/observe/ui/storage/StorageUIHandler.java | 10 ---------- .../main/java/fr/ird/observe/ui/storage/StorageUIModel.java | 6 ++---- 5 files changed, 17 insertions(+), 16 deletions(-) diff --git a/observe-business/src/main/java/fr/ird/observe/IObserveConfig.java b/observe-business/src/main/java/fr/ird/observe/IObserveConfig.java index 6cc673b..912f5c2 100644 --- a/observe-business/src/main/java/fr/ird/observe/IObserveConfig.java +++ b/observe-business/src/main/java/fr/ird/observe/IObserveConfig.java @@ -263,6 +263,13 @@ public interface IObserveConfig { File getLogConfigurationFile(); + /** + * + * @return un fichier de backup pour une data source locale. + * @since 4.0.6 + */ + File newLocalDataSourceBackupFile(); + boolean isDisplayMainUI(); boolean isCanUseUI(); diff --git a/observe-swing/src/main/java/fr/ird/observe/ObserveConfig.java b/observe-swing/src/main/java/fr/ird/observe/ObserveConfig.java index 0302e1a..b60fd2e 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ObserveConfig.java +++ b/observe-swing/src/main/java/fr/ird/observe/ObserveConfig.java @@ -391,6 +391,13 @@ public class ObserveConfig extends ApplicationConfig implements IObserveConfig { } @Override + public File newLocalDataSourceBackupFile() { + String filename = String.format(BACKUP_DB_PATTERN, new Date()); + File backupFile = new File(getBackupDirectory(), filename); + return backupFile; + } + + @Override public String getH2Login() { String result = getOption(H2_LOGIN.key); return result; diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/admin/AdminUIModel.java b/observe-swing/src/main/java/fr/ird/observe/ui/admin/AdminUIModel.java index 23569e8..7610334 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/admin/AdminUIModel.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/admin/AdminUIModel.java @@ -531,8 +531,7 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { if (containsOperation(AdminStep.SAVE_LOCAL)) { - File backupfile = new File(config.getBackupDirectory(), - storageHandler.getDefaultBackupFilename()); + File backupfile = config.newLocalDataSourceBackupFile(); getSaveLocalModel().setBackupFile(backupfile); getSaveLocalModel().setDoBackup(true); diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIHandler.java index e74d350..21555f6 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIHandler.java @@ -70,7 +70,6 @@ import java.beans.PropertyChangeListener; import java.io.File; import java.io.IOException; import java.sql.SQLException; -import java.util.Date; import java.util.List; import java.util.Map; import java.util.Set; @@ -597,15 +596,6 @@ public class StorageUIHandler { } /** - * @return le lastName par defaut du fichier de sauvegarde de la base locale - * (expression calculée à partir de la date courante et du pattern - * {@link ObserveConfig#BACKUP_DB_PATTERN}). - */ - public String getDefaultBackupFilename() { - return String.format(ObserveConfig.BACKUP_DB_PATTERN, new Date()); - } - - /** * Effectue une sauvegarde de la base locale vers le fichier choisi. * * @param service le service locale qui encapsule la base locale diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIModel.java b/observe-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIModel.java index 74635ff..1a79c89 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIModel.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIModel.java @@ -274,8 +274,7 @@ public class StorageUIModel extends WizardModel<StorageStep> { } setStoreRemoteConfig(config.isStoreRemoteStorage()); - setBackupFile(new File(config.getBackupDirectory(), - storageUIHandler.getDefaultBackupFilename())); + setBackupFile(config.newLocalDataSourceBackupFile()); setDumpFile(config.getBackupDirectory()); setShowMigrationProgression(config.isShowMigrationProgression()); setShowMigrationSql(config.isShowMigrationSql()); @@ -399,8 +398,7 @@ public class StorageUIModel extends WizardModel<StorageStep> { } setStoreRemoteConfig(config.isStoreRemoteStorage()); - setBackupFile(new File(config.getBackupDirectory(), - storageUIHandler.getDefaultBackupFilename())); + setBackupFile(config.newLocalDataSourceBackupFile()); setDumpFile(config.getBackupDirectory()); setShowMigrationProgression(config.isShowMigrationProgression()); setShowMigrationSql(config.isShowMigrationSql()); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop-4.x in repository tutti. See http://git.codelutin.com/tutti.git commit 50c5b7e2f620bdcf732a755803c83498e6aefe6e Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Jan 13 15:53:18 2016 +0100 A la fermeture de l'application, on effectue une sauvegarde de la base locale --- .../java/fr/ird/observe/ObserveApplicationContext.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/observe-business/src/main/java/fr/ird/observe/ObserveApplicationContext.java b/observe-business/src/main/java/fr/ird/observe/ObserveApplicationContext.java index ee0f6de..a93612d 100644 --- a/observe-business/src/main/java/fr/ird/observe/ObserveApplicationContext.java +++ b/observe-business/src/main/java/fr/ird/observe/ObserveApplicationContext.java @@ -24,6 +24,7 @@ package fr.ird.observe; import fr.ird.observe.db.DataContext; import fr.ird.observe.db.DataSource; import fr.ird.observe.db.DataSourceFactory; +import fr.ird.observe.db.impl.H2DataSource; import fr.ird.observe.entities.constants.ReferenceLocale; import fr.ird.observe.gps.GPSService; import fr.ird.observe.validation.ObserveValidator; @@ -35,6 +36,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.decorator.Decorator; +import java.io.File; import java.util.Locale; /** @@ -207,8 +209,21 @@ public class ObserveApplicationContext extends DefaultApplicationContext { } // fermeture du context de données - if (getDataSource() != null) { + DataSource dataSource = getDataSource(); + if (dataSource != null) { + setDataSource(null); + + if (dataSource.isOpen() && dataSource instanceof H2DataSource) { + + // On effectue une sauvegarde de la base locale (voir #7866) + + File backupFile = getConfig().newLocalDataSourceBackupFile(); + + log.info(String.format("Sauvegarde de la base locale : %s", backupFile)); + dataSource.storeDB(backupFile); + } + } getValidationContext().closeDataSource(); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop-4.x in repository tutti. See http://git.codelutin.com/tutti.git commit 7b65b9149aa5283528903416de39af4769ba804d Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Jan 13 16:30:45 2016 +0100 Essayer de fermer le context applicatif en cas de terminaison brutale de l'application --- .../main/java/fr/ird/observe/ObserveRunner.java | 25 +++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/observe-swing/src/main/java/fr/ird/observe/ObserveRunner.java b/observe-swing/src/main/java/fr/ird/observe/ObserveRunner.java index 5943996..236a13e 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ObserveRunner.java +++ b/observe-swing/src/main/java/fr/ird/observe/ObserveRunner.java @@ -384,13 +384,28 @@ public abstract class ObserveRunner extends ApplicationRunner { log.info("ObServe shutdown at " + new Date()); } - // on ferme le service de traduction uniquement si on quitte - // definitivement l'application - I18n.close(); + try { + + ObserveContext observeContext = ObserveContext.get(); + + if (observeContext.getDataSource()!=null) { + + // on est arrivé ici sans fermer proprement l'application + onClose(false); + } - getActionExecutor().terminatesAndWaits(); + } finally { + + // on ferme le service de traduction uniquement si on quitte + // definitivement l'application + I18n.close(); + + getActionExecutor().terminatesAndWaits(); + + Runtime.getRuntime().halt(0); + + } - Runtime.getRuntime().halt(0); } @Override -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop-4.x in repository tutti. See http://git.codelutin.com/tutti.git commit 62432ef52b05c46ebf1694db6c793b1284359faa Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Jan 13 17:02:16 2016 +0100 Utilisation de la dernière version stable d'H2 (je n'ai pas osé passé sur une 1.4.x) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 5eb1ecb..0833315 100644 --- a/pom.xml +++ b/pom.xml @@ -430,7 +430,7 @@ <artifactId>h2</artifactId> <!-- tc20150811 On ne pleut pas utiliser une version plus récente, le format n'est pas compatible --> <!-- tc20151103 On repasse sur la version de la 3.9 car les versions suivantes semblent poser un pb (see #`550) --> - <version>1.3.173</version> + <version>1.3.176</version> </dependency> <dependency> <groupId>postgresql</groupId> -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop-4.x in repository tutti. See http://git.codelutin.com/tutti.git commit 1e9e102851ed5a56326cc26cefd93ce5991695db Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Jan 13 18:23:57 2016 +0100 Faire un compactage de la base avant la fermeture --- .../fr/ird/observe/ObserveApplicationContext.java | 19 --------- .../java/fr/ird/observe/db/impl/H2DataSource.java | 16 ++++++++ .../main/java/fr/ird/observe/ObserveContext.java | 47 +++++++++++++++++++++- 3 files changed, 62 insertions(+), 20 deletions(-) diff --git a/observe-business/src/main/java/fr/ird/observe/ObserveApplicationContext.java b/observe-business/src/main/java/fr/ird/observe/ObserveApplicationContext.java index a93612d..8d5608e 100644 --- a/observe-business/src/main/java/fr/ird/observe/ObserveApplicationContext.java +++ b/observe-business/src/main/java/fr/ird/observe/ObserveApplicationContext.java @@ -24,7 +24,6 @@ package fr.ird.observe; import fr.ird.observe.db.DataContext; import fr.ird.observe.db.DataSource; import fr.ird.observe.db.DataSourceFactory; -import fr.ird.observe.db.impl.H2DataSource; import fr.ird.observe.entities.constants.ReferenceLocale; import fr.ird.observe.gps.GPSService; import fr.ird.observe.validation.ObserveValidator; @@ -36,7 +35,6 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.decorator.Decorator; -import java.io.File; import java.util.Locale; /** @@ -209,23 +207,6 @@ public class ObserveApplicationContext extends DefaultApplicationContext { } // fermeture du context de données - DataSource dataSource = getDataSource(); - if (dataSource != null) { - - setDataSource(null); - - if (dataSource.isOpen() && dataSource instanceof H2DataSource) { - - // On effectue une sauvegarde de la base locale (voir #7866) - - File backupFile = getConfig().newLocalDataSourceBackupFile(); - - log.info(String.format("Sauvegarde de la base locale : %s", backupFile)); - dataSource.storeDB(backupFile); - } - - } - getValidationContext().closeDataSource(); // fermeture des services de persistances ouverts diff --git a/observe-business/src/main/java/fr/ird/observe/db/impl/H2DataSource.java b/observe-business/src/main/java/fr/ird/observe/db/impl/H2DataSource.java index bba2e4d..de2e107 100644 --- a/observe-business/src/main/java/fr/ird/observe/db/impl/H2DataSource.java +++ b/observe-business/src/main/java/fr/ird/observe/db/impl/H2DataSource.java @@ -152,4 +152,20 @@ public class H2DataSource extends AbstractDataSource { closeTransaction(tx, txName); } } + + public void shutdown() { + + if (log.isInfoEnabled()) { + log.info("Do a shutdown compact on h2 database: "+getLabel()); + } + + + TopiaContext tx = rootCtxt.beginTransaction(); + try { + tx.executeSQL("SHUTDOWN COMPACT;"); + } finally { + tx.closeContext(); + } + + } } diff --git a/observe-swing/src/main/java/fr/ird/observe/ObserveContext.java b/observe-swing/src/main/java/fr/ird/observe/ObserveContext.java index da6a48f..2abc6a0 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ObserveContext.java +++ b/observe-swing/src/main/java/fr/ird/observe/ObserveContext.java @@ -24,15 +24,16 @@ package fr.ird.observe; import fr.ird.observe.db.DataContext; import fr.ird.observe.db.DataSource; import fr.ird.observe.db.DataSourceException; +import fr.ird.observe.db.DataSourceFactory; import fr.ird.observe.db.constants.DbMode; import fr.ird.observe.db.event.DataSourceEvent; import fr.ird.observe.db.event.DataSourceListenerAdapter; import fr.ird.observe.db.impl.H2DataSource; -import fr.ird.observe.ui.actions.ChangeStorageAction; import fr.ird.observe.ui.ObserveMainUI; import fr.ird.observe.ui.ObserveMainUIHandler; import fr.ird.observe.ui.ObserveUIMode; import fr.ird.observe.ui.UIHelper; +import fr.ird.observe.ui.actions.ChangeStorageAction; import fr.ird.observe.ui.actions.shared.AbstractUIAction; import fr.ird.observe.ui.actions.shared.CancelCreateUIAction; import fr.ird.observe.ui.actions.shared.CloseAndCreateUIAction; @@ -60,6 +61,7 @@ import javax.swing.ActionMap; import javax.swing.JOptionPane; import javax.swing.JPanel; import java.awt.Component; +import java.io.File; import java.util.Arrays; import java.util.List; @@ -580,6 +582,49 @@ public class ObserveContext extends ObserveApplicationContext { actionMap.put(actionId, action); } + /** + * close the application's context. + * + * @throws Exception if any pb while closing + */ + public void close() throws Exception { + + DataSource dataSource = getDataSource(); + if (dataSource != null) { + + setDataSource(null); + + if (dataSource.isOpen() && dataSource instanceof H2DataSource) { + + // On effectue une sauvegarde de la base locale (voir #7866) + + H2DataSource h2DataSource = (H2DataSource) dataSource; + + File backupFile = getConfig().newLocalDataSourceBackupFile(); + + log.info(String.format("Sauvegarde de la base locale : %s", backupFile)); + h2DataSource.storeDB(backupFile); + + h2DataSource.shutdown(); + + } + + } + + super.close(); + + // fermeture du context de données + getValidationContext().closeDataSource(); + + // fermeture des services de persistances ouverts + DataSourceFactory.dispose(); + + // fermeture du context principal + clear(); + + ObserveServiceHelper.close(); + } + // @SuppressWarnings({"UseOfObsoleteCollectionType"}) // protected ObjectName createMBean(DataSource source) throws MalformedObjectNameException { // Hashtable<String, String> tb = new Hashtable<String, String>(); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop-4.x in repository tutti. See http://git.codelutin.com/tutti.git commit 89d60e474c4b89eb269e5d507ed2416a246d4e7c Merge: 31399ec 1e9e102 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Jan 13 18:24:36 2016 +0100 Fixes #7866. Merge branch 'feature/7866_probleme_fermeture_base' into develop-4.x .../main/java/fr/ird/observe/IObserveConfig.java | 7 ++++ .../fr/ird/observe/ObserveApplicationContext.java | 4 -- .../java/fr/ird/observe/db/impl/H2DataSource.java | 16 ++++++++ .../main/java/fr/ird/observe/ObserveConfig.java | 7 ++++ .../main/java/fr/ird/observe/ObserveContext.java | 47 +++++++++++++++++++++- .../main/java/fr/ird/observe/ObserveRunner.java | 25 +++++++++--- .../java/fr/ird/observe/ui/admin/AdminUIModel.java | 3 +- .../ird/observe/ui/storage/StorageUIHandler.java | 10 ----- .../fr/ird/observe/ui/storage/StorageUIModel.java | 6 +-- pom.xml | 2 +- 10 files changed, 100 insertions(+), 27 deletions(-) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm