This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository tutti. See http://git.codelutin.com/tutti.git commit 8b7bf6080930da65f3f7136e248006aefe5e738d Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Apr 4 10:20:22 2015 +0200 ajout de l'option qui permet de ne pas faire une sauvegarde avant d'importer ou installer une base --- .../java/fr/ifremer/tutti/TuttiConfiguration.java | 5 ++ .../fr/ifremer/tutti/TuttiConfigurationOption.java | 6 ++ .../i18n/tutti-persistence_en_GB.properties | 1 + .../i18n/tutti-persistence_fr_FR.properties | 1 + .../swing/content/config/TuttiConfigUIHandler.java | 3 + .../swing/content/db/actions/ReimportDbAction.java | 67 ++++++++++++++-------- .../content/db/actions/ReinstallDbAction.java | 67 ++++++++++++++-------- .../resources/i18n/tutti-ui-swing_en_GB.properties | 1 + .../resources/i18n/tutti-ui-swing_fr_FR.properties | 1 + 9 files changed, 104 insertions(+), 48 deletions(-) diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiConfiguration.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiConfiguration.java index 4b10a48..7e809b3 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiConfiguration.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiConfiguration.java @@ -434,6 +434,11 @@ public class TuttiConfiguration extends ApplicationConfiguration { return result; } + public boolean isImportDbSkipBackup() { + boolean result = applicationConfig.getOptionAsBoolean(TuttiConfigurationOption.IMPORT_DB_SKIP_BACKUP.getKey()); + return result; + } + @Override public String getApplicationName() { return "Allegro Campagne"; diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiConfigurationOption.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiConfigurationOption.java index 06f4747..acca259 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiConfigurationOption.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiConfigurationOption.java @@ -259,6 +259,12 @@ public enum TuttiConfigurationOption implements ConfigOptionDef { Boolean.FALSE.toString(), Boolean.class, false), + IMPORT_DB_SKIP_BACKUP( + "tutti.db.import.skipBackup", + n("tutti.config.option.db.import.skipBackup.description"), + Boolean.FALSE.toString(), + Boolean.class, + false), SAMPLE_CATEGORY_MODEL( "tutti.persistence.SampleCategoryModel", diff --git a/tutti-persistence/src/main/resources/i18n/tutti-persistence_en_GB.properties b/tutti-persistence/src/main/resources/i18n/tutti-persistence_en_GB.properties index 0cfe9dc..cbfbec1 100644 --- a/tutti-persistence/src/main/resources/i18n/tutti-persistence_en_GB.properties +++ b/tutti-persistence/src/main/resources/i18n/tutti-persistence_en_GB.properties @@ -12,6 +12,7 @@ tutti.config.option.basedir.description= tutti.config.option.cruiseId.description= tutti.config.option.csv.separator.description= tutti.config.option.data.directory.description= +tutti.config.option.db.import.skipBackup.description= tutti.config.option.export.backup.directory.description= tutti.config.option.export.countryId.description= tutti.config.option.genericFormat.import.skipBackup.description= diff --git a/tutti-persistence/src/main/resources/i18n/tutti-persistence_fr_FR.properties b/tutti-persistence/src/main/resources/i18n/tutti-persistence_fr_FR.properties index c1a6336..49dae1d 100644 --- a/tutti-persistence/src/main/resources/i18n/tutti-persistence_fr_FR.properties +++ b/tutti-persistence/src/main/resources/i18n/tutti-persistence_fr_FR.properties @@ -8,6 +8,7 @@ tutti.config.option.basedir.description=Répertoire principale tutti.config.option.cruiseId.description=Identifiant de la dernière campagne utilisée tutti.config.option.csv.separator.description=Caractère séparateur pour les import / export de fichier au format csv. tutti.config.option.data.directory.description=Répertoire de données de l'application. Vous pouvez utiliser l'expression ${tutti.data.directory} pour le référence dans d'autres propriétés de configuration (ex\: ${tutti.data.directory}/tmp). +tutti.config.option.db.import.skipBackup.description=Pour ne pas effectuer une sauvegarde avant un import de base tutti.config.option.export.backup.directory.description=Répertoire où sont enregistrées les exports génériques tutti.config.option.export.countryId.description=L'id du pays à utiliser pour les exports (il s'agit de la valeur LOCATION.ID). tutti.config.option.genericFormat.import.skipBackup.description=Pour ne pas effectuer une sauvegarde avant chaque import générique diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/config/TuttiConfigUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/config/TuttiConfigUIHandler.java index aa6f6e8..7479c04 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/config/TuttiConfigUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/config/TuttiConfigUIHandler.java @@ -146,6 +146,9 @@ public class TuttiConfigUIHandler extends AbstractTuttiUIHandler<TuttiUIContext, .addOption(TuttiConfigurationOption.GENERIC_FORMAT_IMPORT_SKIP_BACKUP) .setOptionShortLabel(t("tutti.config.option.ui.genericFormat.import.skipBackup.shortLabel")) + .addOption(TuttiConfigurationOption.IMPORT_DB_SKIP_BACKUP) + .setOptionShortLabel(t("tutti.config.option.ui.db.import.skipBackup.shortLabel")) + ; TuttiUIContext context = getContext(); diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/actions/ReimportDbAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/actions/ReimportDbAction.java index 31e8372..37ef867 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/actions/ReimportDbAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/actions/ReimportDbAction.java @@ -25,8 +25,10 @@ package fr.ifremer.tutti.ui.swing.content.db.actions; import com.google.common.base.Preconditions; import fr.ifremer.tutti.persistence.ProgressionModel; import fr.ifremer.tutti.ui.swing.RunTutti; -import fr.ifremer.tutti.ui.swing.content.actions.AbstractMainUITuttiAction; import fr.ifremer.tutti.ui.swing.content.MainUIHandler; +import fr.ifremer.tutti.ui.swing.content.actions.AbstractMainUITuttiAction; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.nuiton.jaxx.application.ApplicationIOUtil; import java.io.File; @@ -42,6 +44,9 @@ import static org.nuiton.i18n.I18n.t; */ public class ReimportDbAction extends AbstractMainUITuttiAction { + /** Logger. */ + private static final Log log = LogFactory.getLog(ReimportDbAction.class); + protected File backupFile; protected File importFile; @@ -67,30 +72,41 @@ public class ReimportDbAction extends AbstractMainUITuttiAction { if (getModel().isDbExist()) { - displayInfoMessage( - t("tutti.dbManager.title.backup.db"), - t("tutti.dbManager.action.importDb.backup.db") - ); + if (getConfig().isImportDbSkipBackup()) { - // choose backup file - backupFile = saveFile( - getConfig().getDbBackupDirectory(), - "tutti-db-" + ExportDbAction.df.format(new Date()), - "zip", - t("tutti.dbManager.title.choose.dbExportFile"), - t("tutti.dbManager.action.chooseDbExportFile"), - "^.*\\.zip", t("tutti.common.file.zip") - ); + if (log.isInfoEnabled()) { + log.info("Skip backup before import, lucky you..."); + } - if (backupFile == null) { + } else { - displayWarningMessage( + displayInfoMessage( t("tutti.dbManager.title.backup.db"), - t("tutti.dbManager.action.importdb.no.backup.db.choosen") + t("tutti.dbManager.action.importDb.backup.db") ); - doAction = false; + // choose backup file + backupFile = saveFile( + getConfig().getDbBackupDirectory(), + "tutti-db-" + ExportDbAction.df.format(new Date()), + "zip", + t("tutti.dbManager.title.choose.dbExportFile"), + t("tutti.dbManager.action.chooseDbExportFile"), + "^.*\\.zip", t("tutti.common.file.zip") + ); + + if (backupFile == null) { + + displayWarningMessage( + t("tutti.dbManager.title.backup.db"), + t("tutti.dbManager.action.importdb.no.backup.db.choosen") + ); + + doAction = false; + } + } + } if (doAction && importFile == null) { @@ -116,7 +132,7 @@ public class ReimportDbAction extends AbstractMainUITuttiAction { if (doAction) { ProgressionModel progressionModel = new ProgressionModel(); - progressionModel.setTotal(3); + progressionModel.setTotal(3 + (backupFile == null ? 0 : 1)); setProgressionModel(progressionModel); getContext().getPersistenceService().checkImportStructure(importFile); @@ -133,8 +149,8 @@ public class ReimportDbAction extends AbstractMainUITuttiAction { @Override public void doAction() throws Exception { + Preconditions.checkNotNull(importFile); - Preconditions.checkNotNull(backupFile); ProgressionModel progressionModel = getProgressionModel(); @@ -142,9 +158,13 @@ public class ReimportDbAction extends AbstractMainUITuttiAction { progressionModel.increments(t("tutti.reimport.step.closeDb", jdbcUrl)); getContext().closePersistenceService(); - // backup db - progressionModel.increments(t("tutti.reimport.step.backupDb", backupFile)); - getContext().getPersistenceService().exportDb(backupFile); + if (backupFile != null) { + + // backup db + progressionModel.increments(t("tutti.reimport.step.backupDb", backupFile)); + getContext().getPersistenceService().exportDb(backupFile); + + } // clean db context getContext().clearDbContext(); @@ -161,6 +181,7 @@ public class ReimportDbAction extends AbstractMainUITuttiAction { // restart application progressionModel.increments(t("tutti.reimport.step.reloadApplication")); RunTutti.closeTutti(getHandler(), RunTutti.RESTART_EXIT_CODE); + } } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/actions/ReinstallDbAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/actions/ReinstallDbAction.java index f71874a..2c8c0eb 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/actions/ReinstallDbAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/actions/ReinstallDbAction.java @@ -22,12 +22,13 @@ package fr.ifremer.tutti.ui.swing.content.db.actions; * #L% */ -import com.google.common.base.Preconditions; import fr.ifremer.tutti.persistence.ProgressionModel; import fr.ifremer.tutti.ui.swing.RunTutti; import fr.ifremer.tutti.ui.swing.TuttiUIContext; -import fr.ifremer.tutti.ui.swing.content.actions.AbstractMainUITuttiAction; import fr.ifremer.tutti.ui.swing.content.MainUIHandler; +import fr.ifremer.tutti.ui.swing.content.actions.AbstractMainUITuttiAction; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.nuiton.jaxx.application.ApplicationIOUtil; import java.io.File; @@ -43,6 +44,9 @@ import static org.nuiton.i18n.I18n.t; */ public class ReinstallDbAction extends AbstractMainUITuttiAction { + /** Logger. */ + private static final Log log = LogFactory.getLog(ReinstallDbAction.class); + protected File backupFile; protected String jdbcUrl; @@ -74,37 +78,48 @@ public class ReinstallDbAction extends AbstractMainUITuttiAction { if (getModel().isDbExist()) { - displayInfoMessage( - t("tutti.dbManager.title.backup.db"), - t("tutti.dbManager.action.installDb.backup.db") - ); + if (getConfig().isImportDbSkipBackup()) { - // choose backup file - backupFile = saveFile( - getConfig().getDbBackupDirectory(), - "tutti-db-" + ExportDbAction.df.format(new Date()), - "zip", - t("tutti.dbManager.title.choose.dbExportFile"), - t("tutti.dbManager.action.chooseDbExportFile"), - "^.*\\.zip", t("tutti.common.file.zip") - ); + if (log.isInfoEnabled()) { + log.info("Skip backup before import, lucky you..."); + } - if (backupFile == null) { + } else { - displayWarningMessage( + displayInfoMessage( t("tutti.dbManager.title.backup.db"), - t("tutti.dbManager.action.installDb.no.backup.db.choosen") + t("tutti.dbManager.action.installDb.backup.db") ); - doAction = false; + // choose backup file + backupFile = saveFile( + getConfig().getDbBackupDirectory(), + "tutti-db-" + ExportDbAction.df.format(new Date()), + "zip", + t("tutti.dbManager.title.choose.dbExportFile"), + t("tutti.dbManager.action.chooseDbExportFile"), + "^.*\\.zip", t("tutti.common.file.zip") + ); + + if (backupFile == null) { + + displayWarningMessage( + t("tutti.dbManager.title.backup.db"), + t("tutti.dbManager.action.installDb.no.backup.db.choosen") + ); + + doAction = false; + } + } + } } if (doAction) { ProgressionModel progressionModel = new ProgressionModel(); - progressionModel.setTotal(3); + progressionModel.setTotal(3 + (backupFile == null ? 0 : 1)); setProgressionModel(progressionModel); } return doAction; @@ -113,17 +128,19 @@ public class ReinstallDbAction extends AbstractMainUITuttiAction { @Override public void doAction() { - Preconditions.checkNotNull(backupFile); - ProgressionModel progressionModel = getProgressionModel(); // close db progressionModel.increments(t("tutti.reinstallDb.step.closeDb", jdbcUrl)); getContext().closePersistenceService(); - // backup db - progressionModel.increments(t("tutti.reinstallDb.step.backupDb", backupFile)); - getContext().getPersistenceService().exportDb(backupFile); + if (backupFile != null) { + + // backup db + progressionModel.increments(t("tutti.reinstallDb.step.backupDb", backupFile)); + getContext().getPersistenceService().exportDb(backupFile); + + } // clean db context getContext().clearDbContext(); diff --git a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties index d9daf42..6861de9 100644 --- a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties +++ b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties @@ -166,6 +166,7 @@ tutti.config.option.ui.color.speciesOrBenthosUnsortedComputedWeightInWarning.sho tutti.config.option.ui.config.file.shortLabel= tutti.config.option.ui.coordinateEditorType.shortLabel= tutti.config.option.ui.dateFormat.shortLabel= +tutti.config.option.ui.db.import.skipBackup.shortLabel= tutti.config.option.ui.fullBluetoothScan.shortLabel= tutti.config.option.ui.genericFormat.import.skipBackup.shortLabel= tutti.config.option.ui.individualObservationRowsToCreate.shortLabel= diff --git a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties index 3787664..975c698 100644 --- a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties +++ b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties @@ -148,6 +148,7 @@ tutti.config.option.ui.color.speciesOrBenthosUnsortedComputedWeightInWarning.sho tutti.config.option.ui.config.file.shortLabel=Chemin du fichier de confirmation tutti.config.option.ui.coordinateEditorType.shortLabel=Formateur de coordonnées tutti.config.option.ui.dateFormat.shortLabel=Format des dates +tutti.config.option.ui.db.import.skipBackup.shortLabel=Ne pas faire de sauvegarde avant un import de base tutti.config.option.ui.fullBluetoothScan.shortLabel=Recherche complète des périphériques bluetooth tutti.config.option.ui.genericFormat.import.skipBackup.shortLabel=Ne pas faire de sauvegarde avant un import au format générique tutti.config.option.ui.individualObservationRowsToCreate.shortLabel=Nombre max de données individuelles -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.