From 53299b4114d02190d306c921d1685ebb3e6ad7c8 Mon Sep 17 00:00:00 2001
From: Kai Reinhard <K.Reinhard@micromata.de>
Date: Sun, 13 Jan 2019 23:33:45 +0000
Subject: [PATCH] Demo mode...
---
borgbutler-core/src/main/java/de/micromata/borgbutler/jobs/AbstractCommandLineJob.java | 2 +-
borgbutler-core/src/main/java/de/micromata/borgbutler/demo/DemoRepos.java | 27 +++++++++++++++++++++------
borgbutler-core/src/main/resources/demodata/archive-info-borgbutlerdemo-2019-01-12_01-00.json.gz | 0
borgbutler-core/src/main/java/de/micromata/borgbutler/BorgCommands.java | 4 ++--
borgbutler-core/src/main/resources/demodata/archive-list-borgbutlerdemo-2019-01-12_01-00.json.gz | 0
borgbutler-core/src/main/java/de/micromata/borgbutler/BorgJob.java | 2 +-
borgbutler-core/src/main/resources/demodata/archive-list-borgbutlerdemo-2019-01-13_01-00.json.gz | 0
borgbutler-core/src/main/resources/demodata/archive-info-borgbutlerdemo-2019-01-13_01-00.json.gz | 0
8 files changed, 25 insertions(+), 10 deletions(-)
diff --git a/borgbutler-core/src/main/java/de/micromata/borgbutler/BorgCommands.java b/borgbutler-core/src/main/java/de/micromata/borgbutler/BorgCommands.java
index a5c6355..c5ce9c1 100644
--- a/borgbutler-core/src/main/java/de/micromata/borgbutler/BorgCommands.java
+++ b/borgbutler-core/src/main/java/de/micromata/borgbutler/BorgCommands.java
@@ -178,7 +178,7 @@
.setTotal(archive.getStats().getNfiles());
BorgJob<List<BorgFilesystemItem>> job = BorgQueueExecutor.getInstance().execute(new BorgJob<List<BorgFilesystemItem>>(command) {
@Override
- protected void processStdOutLine(String line, int level) {
+ public void processStdOutLine(String line, int level) {
BorgFilesystemItem item = JsonUtils.fromJson(BorgFilesystemItem.class, line);
item.setMtime(DateUtils.format(item.getMtime()));
payload.add(item);
@@ -190,7 +190,7 @@
});
job.payload = new ArrayList<>();
JobResult<String> jobResult = job.getResult();
- if (jobResult == null ||jobResult.getStatus() != JobResult.Status.OK) {
+ if (jobResult == null || jobResult.getStatus() != JobResult.Status.OK) {
return null;
}
List<BorgFilesystemItem> items = job.payload;
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 5efda3d..650533a 100644
--- a/borgbutler-core/src/main/java/de/micromata/borgbutler/BorgJob.java
+++ b/borgbutler-core/src/main/java/de/micromata/borgbutler/BorgJob.java
@@ -107,7 +107,7 @@
@Override
public JobResult<String> execute() {
if (DemoRepos.isDemo(command.getRepoConfig().getRepo())) {
- return DemoRepos.execute(command);
+ return DemoRepos.execute(this);
}
return super.execute();
}
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 3ed2295..32ee46f 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
@@ -1,6 +1,7 @@
package de.micromata.borgbutler.demo;
import de.micromata.borgbutler.BorgCommand;
+import de.micromata.borgbutler.BorgJob;
import de.micromata.borgbutler.config.BorgRepoConfig;
import de.micromata.borgbutler.config.ConfigurationHandler;
import de.micromata.borgbutler.config.Definitions;
@@ -16,6 +17,7 @@
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.List;
+import java.util.Scanner;
public class DemoRepos {
private static Logger log = LoggerFactory.getLogger(DemoRepos.class);
@@ -43,23 +45,36 @@
return StringUtils.startsWith(idOrName, DEMO_IDENTIFIER);
}
- public static JobResult<String> execute(BorgCommand command) {
+ public static JobResult<String> execute(BorgJob job) {
+ BorgCommand command = job.getCommand();
StringBuilder sb = new StringBuilder();
- if (command.getArchive() != null) {
+ boolean archive = command.getArchive() != null;
+ if (archive) {
sb.append("archive-");
} else {
sb.append("repo-");
}
sb.append(command.getCommand());
- if (command.getArchive() != null) {
+ if (archive) {
sb.append("-").append(command.getArchive());
}
sb.append(".json.gz");
String file = sb.toString();
+ log.info("Loading demo archive from '" + file + "'...");
try (InputStream inputStream = new GzipCompressorInputStream(DemoRepos.class.getResourceAsStream("/demodata/" + file))) {
- StringWriter writer = new StringWriter();
- IOUtils.copy(inputStream, writer, Definitions.STD_CHARSET);
- return new JobResult<String>().setResultObject(writer.toString()).setStatus(JobResult.Status.OK);
+ if (archive && "list".equals(command.getCommand())) {
+ try (Scanner scanner = new Scanner(inputStream)) {
+ while (scanner.hasNextLine()) {
+ String line = scanner.nextLine();
+ job.processStdOutLine(line, 0);
+ }
+ return new JobResult<String>().setStatus(JobResult.Status.OK);
+ }
+ } else {
+ StringWriter writer = new StringWriter();
+ IOUtils.copy(inputStream, writer, Definitions.STD_CHARSET);
+ return new JobResult<String>().setResultObject(writer.toString()).setStatus(JobResult.Status.OK);
+ }
} catch (IOException ex) {
log.error("Error while reading demo file '" + file + "': " + ex.getMessage() + ".");
return null;
diff --git a/borgbutler-core/src/main/java/de/micromata/borgbutler/jobs/AbstractCommandLineJob.java b/borgbutler-core/src/main/java/de/micromata/borgbutler/jobs/AbstractCommandLineJob.java
index bccf7ea..c7675e3 100644
--- a/borgbutler-core/src/main/java/de/micromata/borgbutler/jobs/AbstractCommandLineJob.java
+++ b/borgbutler-core/src/main/java/de/micromata/borgbutler/jobs/AbstractCommandLineJob.java
@@ -101,7 +101,7 @@
return result;
}
- protected void processStdOutLine(String line, int level) {
+ public void processStdOutLine(String line, int level) {
//log.info(line);
try {
outputStream.write(line.getBytes());
diff --git a/borgbutler-core/src/main/resources/demodata/archive-info-borgbutlerdemo-2019-01-12_01-00.json.gz b/borgbutler-core/src/main/resources/demodata/archive-info-borgbutlerdemo-2019-01-12_01-00.json.gz
new file mode 100644
index 0000000..769e79d
--- /dev/null
+++ b/borgbutler-core/src/main/resources/demodata/archive-info-borgbutlerdemo-2019-01-12_01-00.json.gz
Binary files differ
diff --git a/borgbutler-core/src/main/resources/demodata/archive-info-borgbutlerdemo-2019-01-13_01-00.json.gz b/borgbutler-core/src/main/resources/demodata/archive-info-borgbutlerdemo-2019-01-13_01-00.json.gz
new file mode 100644
index 0000000..69dd0f5
--- /dev/null
+++ b/borgbutler-core/src/main/resources/demodata/archive-info-borgbutlerdemo-2019-01-13_01-00.json.gz
Binary files differ
diff --git a/borgbutler-core/src/main/resources/demodata/archive-list-borgbutlerdemo-2019-01-12_01-00.json.gz b/borgbutler-core/src/main/resources/demodata/archive-list-borgbutlerdemo-2019-01-12_01-00.json.gz
new file mode 100644
index 0000000..00cad35
--- /dev/null
+++ b/borgbutler-core/src/main/resources/demodata/archive-list-borgbutlerdemo-2019-01-12_01-00.json.gz
Binary files differ
diff --git a/borgbutler-core/src/main/resources/demodata/archive-list-borgbutlerdemo-2019-01-13_01-00.json.gz b/borgbutler-core/src/main/resources/demodata/archive-list-borgbutlerdemo-2019-01-13_01-00.json.gz
new file mode 100644
index 0000000..c9321b9
--- /dev/null
+++ b/borgbutler-core/src/main/resources/demodata/archive-list-borgbutlerdemo-2019-01-13_01-00.json.gz
Binary files differ
--
Gitblit v1.10.0