Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: c61e85e7 by Tony Chemit at 2024-05-16T14:51:30+02:00 Le système de conservation du dernier chemin utilisé pour une sauvegarde empêche le logiciel de redémarrer si le volume utilisé n'existe plus - Closes #2884 - - - - - 0273cb26 by Tony Chemit at 2024-05-16T14:57:41+02:00 Le répertoire à utiliser pour les sauvegardes n'est pas mis à jour dans la configuration lors d'un sauvegarde pendant un nouvel import - Closes #2885 - - - - - 2 changed files: - client/configuration/src/main/java/fr/ird/observe/client/configuration/ClientConfig.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/loading/close/BackupLocalDataSourceActionStep.java Changes: ===================================== client/configuration/src/main/java/fr/ird/observe/client/configuration/ClientConfig.java ===================================== @@ -356,7 +356,7 @@ public class ClientConfig extends GeneratedClientConfig implements TripMapConfig // 1 - user data directory File dataDirectory = createDirectory(ClientConfigOption.DATA_DIRECTORY); - log.debug("user data directory : " + dataDirectory); + log.debug("user data directory : {}", dataDirectory); createParentDirectory(ClientConfigOption.DB_DIRECTORY); createParentDirectory(ClientConfigOption.INITIAL_DB_DUMP); @@ -370,14 +370,19 @@ public class ClientConfig extends GeneratedClientConfig implements TripMapConfig createDirectory(ClientConfigOption.TEMPORARY_DIRECTORY); - // 3 - backup directory + // 3 - backup / import / avdth directory - createDirectory(ClientConfigOption.BACKUP_DIRECTORY); + boolean saveConfiguration = initBackupDirectory(); + saveConfiguration |= initImportDirectory() ; + saveConfiguration |= initAvdthDirectory() ; + if (saveConfiguration) { + saveForUser(); + } // 4 - resources directory File resourcesDirectory = createDirectory(ClientConfigOption.RESOURCES_DIRECTORY); - log.debug("user resource data directory : " + resourcesDirectory); + log.debug("user resource data directory : {}", resourcesDirectory); createParentDirectory(ClientConfigOption.SWING_PREFERENCES_FILE); // 5 - resources report @@ -486,6 +491,44 @@ public class ClientConfig extends GeneratedClientConfig implements TripMapConfig return gsonSupplier == null ? gsonSupplier = new DtoGsonSupplier(true) : gsonSupplier; } + private boolean initBackupDirectory() { + String defaultDirectory = get().replaceRecursiveOptions(ClientConfigOption.BACKUP_DIRECTORY.getDefaultValue()); + String currentDirectory = getBackupDirectory().getAbsolutePath(); + if (defaultDirectory.equals(currentDirectory)) { + createDirectory(ClientConfigOption.BACKUP_DIRECTORY); + } else { + if (Files.notExists(getBackupDirectory().toPath())) { + log.warn("Setting back backup directory to {} (since previous location does not exist any longer ({}).", defaultDirectory, currentDirectory); + setBackupDirectory(new File(defaultDirectory)); + createDirectory(ClientConfigOption.BACKUP_DIRECTORY); + return true; + } + } + return false; + } + + private boolean initImportDirectory() { + String defaultDirectory = get().replaceRecursiveOptions(ClientConfigOption.IMPORT_DIRECTORY.getDefaultValue()); + String currentDirectory = getImportDirectory().getAbsolutePath(); + if (!defaultDirectory.equals(currentDirectory) && Files.notExists(getImportDirectory().toPath())) { + log.warn("Setting back import directory to {} (since previous location does not exist any longer ({}).", defaultDirectory, currentDirectory); + setImportDirectory(new File(defaultDirectory)); + return true; + } + return false; + } + + private boolean initAvdthDirectory() { + String defaultDirectory = get().replaceRecursiveOptions(ClientConfigOption.AVDTH_DIRECTORY.getDefaultValue()); + String currentDirectory = getAvdthDirectory().getAbsolutePath(); + if (!defaultDirectory.equals(currentDirectory) && Files.notExists(getImportDirectory().toPath())) { + log.warn("Setting back avdth directory to {} (since previous location does not exist any longer ({}).", defaultDirectory, currentDirectory); + setAvdthDirectory(new File(defaultDirectory)); + return true; + } + return false; + } + private void removeSnapshotFromVersion() { Version version = Objects.requireNonNull(getBuildVersion()); if (version.isSnapshot()) { @@ -510,7 +553,7 @@ public class ClientConfig extends GeneratedClientConfig implements TripMapConfig { String content = old.getProperty("serverDataSourceConfigurations"); if (content != null && Files.notExists(getServerDataSourceConfigurationsFile().toPath())) { - log.info("Migrates serverDataSourceConfigurations to: " + getServerDataSourceConfigurationsFile().toPath()); + log.info("Migrates serverDataSourceConfigurations to: {}", getServerDataSourceConfigurationsFile().toPath()); ServerDataSourceConfiguration[] data = getGsonSupplier().get().fromJson(content, ServerDataSourceConfiguration[].class); setServerDataSourceConfigurations(Arrays.asList(data)); } @@ -518,7 +561,7 @@ public class ClientConfig extends GeneratedClientConfig implements TripMapConfig { String content = old.getProperty("remoteDataSourceConfigurations"); if (content != null && Files.notExists(getRemoteDataSourceConfigurationsFile().toPath())) { - log.info("Migrates remoteDataSourceConfigurations to: " + getRemoteDataSourceConfigurationsFile().toPath()); + log.info("Migrates remoteDataSourceConfigurations to: {}", getRemoteDataSourceConfigurationsFile().toPath()); RemoteDataSourceConfiguration[] data = getGsonSupplier().get().fromJson(content, RemoteDataSourceConfiguration[].class); setRemoteDataSourceConfigurations(Arrays.asList(data)); } @@ -701,7 +744,7 @@ public class ClientConfig extends GeneratedClientConfig implements TripMapConfig Date now = new Date(); String day = String.format("%1$tF", now); feedBackDirectoryFile = getFeedBackDirectory().toPath().resolve(day).toFile(); - log.info("Create Feedback directory: " + feedBackDirectoryFile); + log.info("Create Feedback directory: {}", feedBackDirectoryFile); } return feedBackDirectoryFile; } ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/loading/close/BackupLocalDataSourceActionStep.java ===================================== @@ -64,6 +64,7 @@ public class BackupLocalDataSourceActionStep extends CloseDataSourceActionStepSu log.info(String.format("Do backup with %s in %s", localDataSource, f)); try { localDataSource.backupLocalDatabase(f); + actionContext.getConfig().updateBackupDirectory(f.toFile()); incrementsProgress(); } catch (Exception e) { log.error("Could not backup local datasource", e); View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/eac8e2e4d83d6ad8c0f025fe7... -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/eac8e2e4d83d6ad8c0f025fe7... You're receiving this email because of your account on gitlab.com.