borgbutler-core/src/main/java/de/micromata/borgbutler/BorgCommands.java
@@ -4,7 +4,6 @@ import de.micromata.borgbutler.config.Configuration; import de.micromata.borgbutler.config.ConfigurationHandler; import de.micromata.borgbutler.json.JsonUtils; import de.micromata.borgbutler.json.borg.Archive1; import de.micromata.borgbutler.json.borg.ArchiveList; import de.micromata.borgbutler.json.borg.RepoInfo; import de.micromata.borgbutler.json.borg.RepoList; @@ -45,8 +44,8 @@ * @param archive * @return */ public static ArchiveList info(BorgRepoConfig repoConfig, Archive1 archive) { String json = execute(repoConfig, "info", repoConfig.getRepo() + "::" + archive.getArchive(), "--json"); public static ArchiveList info(BorgRepoConfig repoConfig, String archive) { String json = execute(repoConfig, "info", repoConfig.getRepo() + "::" + archive, "--json"); if (json == null) { return null; } @@ -65,6 +64,17 @@ return repoList; } public static String list(BorgRepoConfig repoConfig, String archive) { String json = execute(repoConfig, "list", repoConfig.getRepo() + "::" + archive, "--json-lines"); if (json == null) { return null; } // RepoList repoList = JsonUtils.fromJson(RepoList.class, json); // repoList.setOriginalJson(json); return json; } private static String execute(BorgRepoConfig repoConfig, String command, String repoOrArchive, String... args) { CommandLine cmdLine = new CommandLine(ConfigurationHandler.getConfiguration().getBorgCommand()); cmdLine.addArgument(command); borgbutler-core/src/main/java/de/micromata/borgbutler/cache/ButlerCache.java
@@ -1,6 +1,7 @@ package de.micromata.borgbutler.cache; import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Getter; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -13,8 +14,11 @@ public static final String CACHE_DIR_NAME = ".borgbutler"; private static ButlerCache instance = new ButlerCache(); @Getter private RepoInfoCache repoInfoCache; @Getter private RepoListCache repoListCache; private ArchiveListCache archiveListCache; private List<AbstractCache> caches; @JsonIgnore @@ -24,14 +28,6 @@ return instance; } public static RepoInfoCache getRepoInfoCache() { return instance.repoInfoCache; } public static RepoListCache getRepoListCache() { return instance.repoListCache; } public void read() { for (AbstractCache cache : caches) { cache.read(); @@ -67,10 +63,9 @@ log.info("Creating cache dir: " + cacheDir.getAbsolutePath()); cacheDir.mkdir(); } repoInfoCache = new RepoInfoCache(cacheDir); repoListCache = new RepoListCache(cacheDir); caches = new ArrayList<>(); caches.add(repoInfoCache); caches.add(repoListCache); caches.add(repoInfoCache = new RepoInfoCache(cacheDir)); caches.add(repoListCache = new RepoListCache(cacheDir)); caches.add(archiveListCache = new ArchiveListCache(cacheDir)); } } borgbutler-core/src/test/java/de/micromata/borgbutler/cache/CacheTest.java
@@ -5,7 +5,6 @@ import de.micromata.borgbutler.config.Configuration; import de.micromata.borgbutler.config.ConfigurationHandler; import de.micromata.borgbutler.json.borg.Archive1; import de.micromata.borgbutler.json.borg.ArchiveList; import de.micromata.borgbutler.json.borg.RepoInfo; import de.micromata.borgbutler.json.borg.RepoList; import org.apache.commons.collections4.CollectionUtils; @@ -35,20 +34,30 @@ //butlerCache.removeAllCacheFiles(); butlerCache.read(); { RepoInfoCache repoInfoCache = ButlerCache.getRepoInfoCache(); RepoInfoCache repoInfoCache = ButlerCache.getInstance().getRepoInfoCache(); if (repoInfoCache.getElements().size() != config.getRepoConfigs().size()) { refreshRepoInfoCache(config, repoInfoCache); } assertEquals(config.getRepoConfigs().size(), repoInfoCache.getElements().size()); } { RepoListCache repoListCache = ButlerCache.getRepoListCache(); RepoListCache repoListCache = ButlerCache.getInstance().getRepoListCache(); if (repoListCache.getElements().size() != config.getRepoConfigs().size()) { refreshRepoListCache(config, repoListCache); } assertEquals(config.getRepoConfigs().size(), repoListCache.getElements().size()); } { List<BorgRepoConfig> repoConfigs = ConfigurationHandler.getConfiguration().getRepoConfigs(); Archive1 archive = null; BorgRepoConfig repoConfig = null; if (CollectionUtils.isNotEmpty(repoConfigs)) { repoConfig = repoConfigs.get(0); RepoList repoList = ButlerCache.getInstance().getRepoListCache().get(repoConfig.getRepo()); if (repoList != null && CollectionUtils.isNotEmpty(repoList.getArchives())) { archive = repoList.getArchives().get(0); } } {/* List<BorgRepoConfig> repoConfigs = ConfigurationHandler.getConfiguration().getRepoConfigs(); if (CollectionUtils.isNotEmpty(repoConfigs)) { BorgRepoConfig repoConfig = repoConfigs.get(0); @@ -56,10 +65,17 @@ if (repoList != null && CollectionUtils.isNotEmpty(repoList.getArchives())) { Archive1 archive = repoList.getArchives().get(0); if (archive != null) { ArchiveList list = BorgCommands.info(repoConfig, archive); ArchiveList list = ButlerCache.getArchiveListCache().get(archive.getArchive()); ArchiveList list = BorgCommands.info(repoConfig, archive.getArchive()); log.info(list.toString()); } } }*/ } { if (archive != null) { String json = BorgCommands.list(repoConfig, archive.getArchive()); log.info(json); } } butlerCache.save();