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 f870cbf229d0be9ef986d9cfbff624e18a911776..6e2e7c1e5c8b04a0743812a0f609c79fe6ae5221 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 3085e9249dac8a950e0dc1701b54db0c41337add..07150e5ef85de717019e5129ebb50eb37fec8a8d 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 4103efd708022700b7cbb5bd9a8c574429ef30c5..ad871cd10fef31d4ce4c6d94f509de9221996fc5 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 c35ef92e0af5d5eb43e4639e32e64043de2771b8..683997a3f3a9ff239a047f88c36895037dc6e948 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