Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 7 additions & 6 deletions src/main/java/com/drunkendev/jdbc/h2/H2DBBackup.java
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
34 changes: 24 additions & 10 deletions src/main/java/com/drunkendev/web/settings/AppConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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;
Expand Down Expand Up @@ -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);
}
Expand Down Expand Up @@ -136,6 +141,7 @@ public String getConfigFile() {
* This will check int he following order for
*
* <ul>
* <li>{@code app.home} config file property</li>
* <li>{@code app.home} system property</li>
* <li>{@code APP_HOME} environment variable</li>
* <li>{@code user.dir} system property</li>
Expand All @@ -151,20 +157,24 @@ public String getHomeDir() {
return homeDir;
}

String path = System.getProperty(homeSystemProp);
LOG.debug("PATH: (prop:{}) {}", homeSystemProp, path);
String path = getString(homeConfigProp);
LOG.debug("PATH: (config file:{}) {}", homeConfigProp, path);
if (isBlank(path)) {
path = System.getenv(homeSystemEnv);
LOG.debug("PATH: (env:{}) {}", homeSystemEnv, path);
path = System.getProperty(homeSystemProp);
LOG.debug("PATH: (prop:{}) {}", homeSystemProp, path);
if (isBlank(path)) {
path = System.getenv("user.dir");
LOG.debug("PATH: user.dir {}", path);
path = System.getenv(homeSystemEnv);
LOG.debug("PATH: (env:{}) {}", homeSystemEnv, path);
if (isBlank(path)) {
path = System.getenv("HOME");
LOG.debug("PATH: HOME {}", path);
path = System.getenv("user.dir");
LOG.debug("PATH: user.dir {}", path);
if (isBlank(path)) {
path = Paths.get(".").normalize().toString();
LOG.debug("PATH: {}", path);
path = System.getenv("HOME");
LOG.debug("PATH: HOME {}", path);
if (isBlank(path)) {
path = Paths.get(".").normalize().toString();
LOG.debug("PATH: {}", path);
}
}
}
}
Expand All @@ -174,6 +184,10 @@ public String getHomeDir() {
return homeDir;
}

public String getAppName() {
return appNameLc;
}

public Path getHomePath() {
String v = getHomeDir();
return v == null ? null : Paths.get(v).normalize();
Expand Down