From d8523faa15d17a70009f0391ef535c04c1c9f6bc Mon Sep 17 00:00:00 2001
From: Kai Reinhard <K.Reinhard@micromata.de>
Date: Sun, 13 Jan 2019 23:04:56 +0000
Subject: [PATCH] Demo mode...
---
borgbutler-core/src/main/java/de/micromata/borgbutler/demo/DemoRepos.java | 67 ++++++++++-----------------------
borgbutler-core/src/main/java/de/micromata/borgbutler/config/Configuration.java | 18 ++++++++-
borgbutler-core/src/main/java/de/micromata/borgbutler/config/ConfigurationHandler.java | 4 +-
borgbutler-core/src/main/java/de/micromata/borgbutler/BorgJob.java | 2
borgbutler-core/src/main/java/de/micromata/borgbutler/cache/ButlerCache.java | 7 ---
borgbutler-core/src/main/resources/demodata/repo-info.json.gz | 0
borgbutler-server/src/main/java/de/micromata/borgbutler/server/rest/ReposRest.java | 2 -
7 files changed, 40 insertions(+), 60 deletions(-)
diff --git a/borgbutler-core/src/main/java/de/micromata/borgbutler/BorgJob.java b/borgbutler-core/src/main/java/de/micromata/borgbutler/BorgJob.java
index bf3e585..5efda3d 100644
--- a/borgbutler-core/src/main/java/de/micromata/borgbutler/BorgJob.java
+++ b/borgbutler-core/src/main/java/de/micromata/borgbutler/BorgJob.java
@@ -106,7 +106,7 @@
@Override
public JobResult<String> execute() {
- if (DemoRepos.isDemo(command.getRepoConfig().getId())) {
+ if (DemoRepos.isDemo(command.getRepoConfig().getRepo())) {
return DemoRepos.execute(command);
}
return super.execute();
diff --git a/borgbutler-core/src/main/java/de/micromata/borgbutler/cache/ButlerCache.java b/borgbutler-core/src/main/java/de/micromata/borgbutler/cache/ButlerCache.java
index 0bdb267..2c45d9c 100644
--- a/borgbutler-core/src/main/java/de/micromata/borgbutler/cache/ButlerCache.java
+++ b/borgbutler-core/src/main/java/de/micromata/borgbutler/cache/ButlerCache.java
@@ -8,7 +8,6 @@
import de.micromata.borgbutler.data.ArchiveShortInfo;
import de.micromata.borgbutler.data.FileSystemFilter;
import de.micromata.borgbutler.data.Repository;
-import de.micromata.borgbutler.demo.DemoRepos;
import de.micromata.borgbutler.json.borg.BorgFilesystemItem;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.jcs.JCS;
@@ -60,9 +59,6 @@
}
}
}
- if (DemoRepos.isDemo(idOrName)) {
- return DemoRepos.getRepo(idOrName);
- }
log.warn("Repo with id or name '" + idOrName + "' not found.");
return null;
}
@@ -147,9 +143,6 @@
return repository;
}
BorgRepoConfig repoConfig = ConfigurationHandler.getConfiguration().getRepoConfig(repository.getName());
- if (repoConfig == null && DemoRepos.isDemo(idOrName)) {
- repoConfig = DemoRepos.getRepoConfig(idOrName);
- }
BorgCommands.list(repoConfig, repository);
updateArchivesCacheStatusAndShortInfos(repository);
return repository;
diff --git a/borgbutler-core/src/main/java/de/micromata/borgbutler/config/Configuration.java b/borgbutler-core/src/main/java/de/micromata/borgbutler/config/Configuration.java
index c52ae85..d06e30b 100644
--- a/borgbutler-core/src/main/java/de/micromata/borgbutler/config/Configuration.java
+++ b/borgbutler-core/src/main/java/de/micromata/borgbutler/config/Configuration.java
@@ -2,6 +2,7 @@
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
+import de.micromata.borgbutler.demo.DemoRepos;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.Setter;
@@ -45,7 +46,6 @@
@JsonIgnore
private File restoreHomeDir;
- @Getter
private List<BorgRepoConfig> repoConfigs = new ArrayList<>();
public void add(BorgRepoConfig repoConfig) {
@@ -56,7 +56,7 @@
if (idOrName == null) {
return null;
}
- for (BorgRepoConfig repoConfig : repoConfigs) {
+ for (BorgRepoConfig repoConfig : getRepoConfigs()) {
if (StringUtils.equals(idOrName, repoConfig.getRepo()) || StringUtils.equals(idOrName, repoConfig.getId())) {
return repoConfig;
}
@@ -83,4 +83,18 @@
this.maxArchiveContentCacheCapacityMb = other.maxArchiveContentCacheCapacityMb;
this.showDemoRepos = other.showDemoRepos;
}
+
+ public List<BorgRepoConfig> getRepoConfigs() {
+ if (!ConfigurationHandler.getConfiguration().isShowDemoRepos()) {
+ return repoConfigs;
+ }
+ List<BorgRepoConfig> result = new ArrayList<>();
+ result.addAll(repoConfigs);
+ DemoRepos.addDemoRepos(result);
+ return result;
+ }
+
+ List<BorgRepoConfig> _getRepoConfigs() {
+ return repoConfigs;
+ }
}
diff --git a/borgbutler-core/src/main/java/de/micromata/borgbutler/config/ConfigurationHandler.java b/borgbutler-core/src/main/java/de/micromata/borgbutler/config/ConfigurationHandler.java
index 41bb53c..baad873 100644
--- a/borgbutler-core/src/main/java/de/micromata/borgbutler/config/ConfigurationHandler.java
+++ b/borgbutler-core/src/main/java/de/micromata/borgbutler/config/ConfigurationHandler.java
@@ -48,8 +48,8 @@
}
}
this.configuration = JsonUtils.fromJson(configClazz, json);
- if (this.configuration.getRepoConfigs() != null) {
- for (BorgRepoConfig repoConfig : this.configuration.getRepoConfigs()) {
+ if (this.configuration._getRepoConfigs() != null) {
+ for (BorgRepoConfig repoConfig : this.configuration._getRepoConfigs()) {
if (StringUtils.isBlank(repoConfig.getDisplayName())) {
repoConfig.setDisplayName(repoConfig.getRepo());
}
diff --git a/borgbutler-core/src/main/java/de/micromata/borgbutler/demo/DemoRepos.java b/borgbutler-core/src/main/java/de/micromata/borgbutler/demo/DemoRepos.java
index 9d14cf4..3ed2295 100644
--- a/borgbutler-core/src/main/java/de/micromata/borgbutler/demo/DemoRepos.java
+++ b/borgbutler-core/src/main/java/de/micromata/borgbutler/demo/DemoRepos.java
@@ -4,7 +4,6 @@
import de.micromata.borgbutler.config.BorgRepoConfig;
import de.micromata.borgbutler.config.ConfigurationHandler;
import de.micromata.borgbutler.config.Definitions;
-import de.micromata.borgbutler.data.Repository;
import de.micromata.borgbutler.jobs.JobResult;
import org.apache.commons.compress.compressors.gzip.GzipCompressorInputStream;
import org.apache.commons.io.IOUtils;
@@ -12,7 +11,9 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.io.*;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.StringWriter;
import java.util.ArrayList;
import java.util.List;
@@ -21,19 +22,19 @@
private static final String DEMO_IDENTIFIER = "borgbutler-demo";
private static final String[] REPOS = {"fast", "slow", "very-slow"};
- private static List<Repository> demoRepos;
+ private static List<BorgRepoConfig> demoRepos;
/**
* If configured by the user, demo repositories are added to the given list. If not configured this method does nothing.
*
* @param repositoryList
*/
- public static void addDemoRepos(List<Repository> repositoryList) {
+ public static void addDemoRepos(List<BorgRepoConfig> repositoryList) {
if (!ConfigurationHandler.getConfiguration().isShowDemoRepos()) {
return;
}
init();
- for (Repository repo : demoRepos) {
+ for (BorgRepoConfig repo : demoRepos) {
repositoryList.add(repo);
}
}
@@ -42,33 +43,6 @@
return StringUtils.startsWith(idOrName, DEMO_IDENTIFIER);
}
- public static Repository getRepo(String idOrName) {
- if (!isDemo(idOrName)) {
- log.info("Given idOrName doesn't fit any demo repository: " + idOrName);
- return null;
- }
- init();
- for (Repository repo : demoRepos) {
- if (StringUtils.equals(idOrName, repo.getId())) {
- return repo;
- }
- }
- return null;
- }
-
- public static BorgRepoConfig getRepoConfig(String idOrName) {
- BorgRepoConfig repoConfig = new BorgRepoConfig();
- Repository repository = getRepo(idOrName);
- if (repository == null) {
- log.info("Given idOrName doesn't fit any demo repository: " + idOrName);
- return null;
- }
- repoConfig.setRepo(repository.getName())
- .setId(repository.getId())
- .setDisplayName(repository.getName());
- return repoConfig;
- }
-
public static JobResult<String> execute(BorgCommand command) {
StringBuilder sb = new StringBuilder();
if (command.getArchive() != null) {
@@ -93,19 +67,20 @@
}
private static void init() {
- demoRepos = new ArrayList<>();
- demoRepos.add(new Repository()
- .setId(DEMO_IDENTIFIER + "-fast")
- .setName(DEMO_IDENTIFIER + "-fast")
- .setDisplayName("Demo repository fast"));
- demoRepos.add(new Repository()
- .setId(DEMO_IDENTIFIER + "-slow")
- .setName(DEMO_IDENTIFIER + "-slow")
- .setDisplayName("Demo repository slow"));
- demoRepos.add(new Repository()
- .setId(DEMO_IDENTIFIER + "-very-slow")
- .setName(DEMO_IDENTIFIER + "-very-slow")
- .setDisplayName("Demo repository very-slow"));
-
+ synchronized (DEMO_IDENTIFIER) {
+ if (demoRepos != null) {
+ return;
+ }
+ demoRepos = new ArrayList<>();
+ demoRepos.add(new BorgRepoConfig()
+ .setRepo(DEMO_IDENTIFIER + "-fast")
+ .setDisplayName("Demo repository fast"));
+ demoRepos.add(new BorgRepoConfig()
+ .setRepo(DEMO_IDENTIFIER + "-slow")
+ .setDisplayName("Demo repository slow"));
+ demoRepos.add(new BorgRepoConfig()
+ .setRepo(DEMO_IDENTIFIER + "-very-slow")
+ .setDisplayName("Demo repository very-slow"));
+ }
}
}
diff --git a/borgbutler-core/src/main/resources/demodata/repo-info.json.gz b/borgbutler-core/src/main/resources/demodata/repo-info.json.gz
new file mode 100644
index 0000000..c8bba90
--- /dev/null
+++ b/borgbutler-core/src/main/resources/demodata/repo-info.json.gz
Binary files differ
diff --git a/borgbutler-server/src/main/java/de/micromata/borgbutler/server/rest/ReposRest.java b/borgbutler-server/src/main/java/de/micromata/borgbutler/server/rest/ReposRest.java
index d94bf2a..3152f1c 100644
--- a/borgbutler-server/src/main/java/de/micromata/borgbutler/server/rest/ReposRest.java
+++ b/borgbutler-server/src/main/java/de/micromata/borgbutler/server/rest/ReposRest.java
@@ -4,7 +4,6 @@
import de.micromata.borgbutler.data.Repository;
import de.micromata.borgbutler.json.JsonUtils;
import de.micromata.borgbutler.json.borg.BorgRepository;
-import de.micromata.borgbutler.demo.DemoRepos;
import org.apache.commons.collections4.CollectionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -31,7 +30,6 @@
*/
public String getList(@QueryParam("prettyPrinter") boolean prettyPrinter) {
List<Repository> repositories = ButlerCache.getInstance().getAllRepositories();
- DemoRepos.addDemoRepos(repositories);
if (CollectionUtils.isEmpty(repositories)) {
return "[]";
}
--
Gitblit v1.10.0