diff --git a/src/main/java/com/drunkendev/jdbc/h2/H2DBBackup.java b/src/main/java/com/drunkendev/jdbc/h2/H2DBBackup.java index b917ef7..651c450 100644 --- a/src/main/java/com/drunkendev/jdbc/h2/H2DBBackup.java +++ b/src/main/java/com/drunkendev/jdbc/h2/H2DBBackup.java @@ -63,21 +63,22 @@ public H2DBBackup(JdbcTemplate jt, AppConfig config) { } /** - * Backs up a h2 database to the home directory. + * Backs up a h2 database to a target directory. * - * Backup file will be stored as {@code ${app.home}/backup/app-db-backup-yyyy-MM-dd_hhmm.zip} + * Backup folder will first attempt to be set to a config attribute, if + * the attribute does not exist the location will default to home dir/backup. + * File name will be {@code ${app.name}-db-backup-yyyy-MM-dd_hhmm.zip} * * @throws IOException * If the backup file could not be created. */ public void backupDatabase() throws IOException { - Path path = Paths.get(config.getHomeDir()) - .resolve("backup") + Path path = config.getPathOrDefault("backup.folder", config.getHomePath().resolve("backup")) .normalize(); Path p = path - .resolve("app-db-backup-" + df.format(LocalDateTime.now()) + ".zip") + .resolve(config.getAppName() + "-db-backup-" + df.format(LocalDateTime.now()) + ".zip") .normalize(); - LOG.debug("Backing up database to {}", p); + LOG.info("Backing up database to {}", p); Files.createDirectories(path); long cut = LocalDateTime.now().minusDays(2).toEpochSecond(ZoneOffset.UTC); diff --git a/src/main/java/com/drunkendev/web/settings/AppConfig.java b/src/main/java/com/drunkendev/web/settings/AppConfig.java index 742f00c..b61af7d 100644 --- a/src/main/java/com/drunkendev/web/settings/AppConfig.java +++ b/src/main/java/com/drunkendev/web/settings/AppConfig.java @@ -27,10 +27,13 @@ import java.nio.file.Paths; import java.util.Properties; import java.util.Set; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.InitializingBean; +import static java.util.Objects.isNull; + import static org.apache.commons.lang3.BooleanUtils.toBoolean; import static org.apache.commons.lang3.StringUtils.defaultIfBlank; import static org.apache.commons.lang3.StringUtils.defaultString; @@ -56,6 +59,7 @@ public class AppConfig implements InitializingBean { private final String configSystemEnv; private final String homeSystemProp; private final String homeSystemEnv; + private final String homeConfigProp; private Properties props; private final ClassLoader loader; @@ -83,6 +87,7 @@ public AppConfig(ClassLoader loader, String appName) { configSystemEnv = appNameUc + "_CONFIG"; homeSystemProp = appNameLc + ".home"; homeSystemEnv = appNameUc + "_HOME"; + homeConfigProp = appNameLc + ".home"; this.loader = loader == null ? AppConfig.class.getClassLoader() : loader; LOG.debug("APP NAME: " + appName); } @@ -136,6 +141,7 @@ public String getConfigFile() { * This will check int he following order for * *