From 44c44e37a95fed6397b98d9a07f82730fa5bca86 Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Sun, 29 May 2022 11:19:30 +0200 Subject: [PATCH] Fixed #707 - re-create detaults after rmigration --- .../budgetmaster/database/DatabaseService.java | 15 ++++++++++++--- .../budgetmaster/hints/HintService.java | 6 ++++++ .../migration/MigrationController.java | 6 +++++- .../deadlocker8/budgetmaster/tags/TagService.java | 8 +------- 4 files changed, 24 insertions(+), 11 deletions(-) diff --git a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseService.java b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseService.java index f870cbf22..6e2e7c1e5 100644 --- a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseService.java +++ b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseService.java @@ -11,6 +11,7 @@ import de.deadlocker8.budgetmaster.charts.ChartService; import de.deadlocker8.budgetmaster.charts.ChartType; import de.deadlocker8.budgetmaster.database.model.BackupDatabase; import de.deadlocker8.budgetmaster.database.model.v8.BackupDatabase_v8; +import de.deadlocker8.budgetmaster.hints.HintService; import de.deadlocker8.budgetmaster.icon.Icon; import de.deadlocker8.budgetmaster.icon.IconService; import de.deadlocker8.budgetmaster.images.Image; @@ -64,9 +65,12 @@ public class DatabaseService private final SettingsService settingsService; private final ImageService imageService; private final IconService iconService; + private final HintService hintService; + + private final List<Resettable> services; @Autowired - public DatabaseService(AccountService accountService, CategoryService categoryService, TransactionService transactionService, TagService tagService, TemplateService templateService, TemplateGroupService templateGroupService, ChartService chartService, SettingsService settingsService, ImageService imageService, IconService iconService) + public DatabaseService(AccountService accountService, CategoryService categoryService, TransactionService transactionService, TagService tagService, TemplateService templateService, TemplateGroupService templateGroupService, ChartService chartService, SettingsService settingsService, ImageService imageService, IconService iconService, HintService hintService) { this.accountService = accountService; this.categoryService = categoryService; @@ -78,18 +82,23 @@ public class DatabaseService this.settingsService = settingsService; this.imageService = imageService; this.iconService = iconService; + this.hintService = hintService; + this.services = List.of(transactionService, templateService, templateGroupService, categoryService, accountService, tagService, chartService, iconService, imageService, tagService, hintService); } public void reset() { - final List<Resettable> services = List.of(transactionService, templateService, templateGroupService, categoryService, accountService, tagService, chartService, iconService, imageService); - for(Resettable service : services) { service.deleteAll(); } // create defaults after deletion to avoid deletion of newly created defaults + createDefaults(); + } + + public void createDefaults() + { for(Resettable service : services) { service.createDefaults(); diff --git a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/hints/HintService.java b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/hints/HintService.java index 3085e9249..07150e5ef 100644 --- a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/hints/HintService.java +++ b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/hints/HintService.java @@ -1,15 +1,20 @@ package de.deadlocker8.budgetmaster.hints; import de.deadlocker8.budgetmaster.services.Resettable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.text.MessageFormat; import java.util.List; @Service public class HintService implements Resettable { + private static final Logger LOGGER = LoggerFactory.getLogger(HintService.class); + private final HintRepository hintRepository; @Autowired @@ -64,6 +69,7 @@ public class HintService implements Resettable final Hint existingHint = hintRepository.findByLocalizationKey(localizationKey); if(existingHint == null) { + LOGGER.debug(MessageFormat.format("Created missing hint ''{0}''", localizationKey)); hintRepository.save(new Hint(localizationKey, false)); } } diff --git a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/migration/MigrationController.java b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/migration/MigrationController.java index 4103efd70..ad871cd10 100644 --- a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/migration/MigrationController.java +++ b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/migration/MigrationController.java @@ -2,6 +2,7 @@ package de.deadlocker8.budgetmaster.migration; import de.deadlocker8.budgetmaster.authentication.UserService; import de.deadlocker8.budgetmaster.controller.BaseController; +import de.deadlocker8.budgetmaster.database.DatabaseService; import de.deadlocker8.budgetmaster.settings.SettingsService; import de.deadlocker8.budgetmaster.utils.Mappings; import de.deadlocker8.budgetmaster.utils.Strings; @@ -41,13 +42,15 @@ public class MigrationController extends BaseController private final MigrationService migrationService; private final SettingsService settingsService; private final UserService userService; + private final DatabaseService databaseService; @Autowired - public MigrationController(MigrationService migrationService, SettingsService settingsService, UserService userService) + public MigrationController(MigrationService migrationService, SettingsService settingsService, UserService userService, DatabaseService databaseService) { this.migrationService = migrationService; this.settingsService = settingsService; this.userService = userService; + this.databaseService = databaseService; } @GetMapping("/cancel") @@ -117,6 +120,7 @@ public class MigrationController extends BaseController if(migrationStatus == MigrationStatus.SUCCESS) { model.addAttribute(ModelAttributes.SUMMARY, migrationService.getSummary()); + databaseService.createDefaults(); } if(migrationStatus == MigrationStatus.ERROR) { diff --git a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/tags/TagService.java b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/tags/TagService.java index c35ef92e0..683997a3f 100644 --- a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/tags/TagService.java +++ b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/tags/TagService.java @@ -3,8 +3,6 @@ package de.deadlocker8.budgetmaster.tags; import de.deadlocker8.budgetmaster.services.AccessAllEntities; import de.deadlocker8.budgetmaster.services.Resettable; import org.padler.natorder.NaturalOrderComparator; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -16,8 +14,6 @@ import java.util.Map; @Service public class TagService implements Resettable, AccessAllEntities<Tag> { - private static final Logger LOGGER = LoggerFactory.getLogger(TagService.class); - private final TagRepository tagRepository; @Autowired @@ -34,9 +30,7 @@ public class TagService implements Resettable, AccessAllEntities<Tag> @Override public void deleteAll() { - LOGGER.info("Resetting tags..."); - tagRepository.deleteAll(); - LOGGER.info("All tags reset."); + // unused tags are deleted automatically in TagScheduler } @Override -- GitLab