From 9e49542cbb5180ef95645926bc7f64b3d5684ad0 Mon Sep 17 00:00:00 2001
From: Kai Reinhard <K.Reinhard@micromata.de>
Date: Fri, 28 Dec 2018 21:52:23 +0000
Subject: [PATCH] Job queueing...
---
borgbutler-core/src/main/java/de/micromata/borgbutler/BorgExecutorQueue.java | 37 +++++++++++++++++++++++--------------
1 files changed, 23 insertions(+), 14 deletions(-)
diff --git a/borgbutler-core/src/main/java/de/micromata/borgbutler/BorgExecutorQueue.java b/borgbutler-core/src/main/java/de/micromata/borgbutler/BorgExecutorQueue.java
index d97b295..8cdb47d 100644
--- a/borgbutler-core/src/main/java/de/micromata/borgbutler/BorgExecutorQueue.java
+++ b/borgbutler-core/src/main/java/de/micromata/borgbutler/BorgExecutorQueue.java
@@ -3,10 +3,7 @@
import de.micromata.borgbutler.config.BorgRepoConfig;
import de.micromata.borgbutler.config.ConfigurationHandler;
import de.micromata.borgbutler.config.Definitions;
-import org.apache.commons.exec.CommandLine;
-import org.apache.commons.exec.DefaultExecutor;
-import org.apache.commons.exec.ExecuteWatchdog;
-import org.apache.commons.exec.PumpStreamHandler;
+import org.apache.commons.exec.*;
import org.apache.commons.exec.environment.EnvironmentUtils;
import org.apache.commons.io.output.ByteArrayOutputStream;
import org.apache.commons.lang3.StringUtils;
@@ -42,21 +39,13 @@
public void execute(BorgCommand command) {
synchronized (this) {
- //commandQueue.add(command);
_execute(command);
}
- /*
- while (true) {
- try {
- Thread.sleep(1000);
- } catch (InterruptedException ex) {
- log.warn("Command '" + command.);
- }
- }*/
}
private void _execute(BorgCommand command) {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
+ ByteArrayOutputStream errorOutputStream = new ByteArrayOutputStream();
CommandLine cmdLine = new CommandLine(ConfigurationHandler.getConfiguration().getBorgCommand());
cmdLine.addArgument(command.getCommand());
if (command.getParams() != null) {
@@ -82,7 +71,27 @@
ExecuteWatchdog watchdog = new ExecuteWatchdog(ExecuteWatchdog.INFINITE_TIMEOUT);
executor.setWatchdog(watchdog);
// ExecuteResultHandler handler = new DefaultExecuteResultHandler();
- PumpStreamHandler streamHandler = new PumpStreamHandler(outputStream);
+ PumpStreamHandler streamHandler = new PumpStreamHandler(new LogOutputStream() {
+ @Override
+ protected void processLine(String line, int level) {
+ try {
+ outputStream.write(line.getBytes());
+ outputStream.write("\n".getBytes());
+ } catch (IOException ex) {
+ log.error(ex.getMessage(), ex);
+ }
+ }
+ }, new LogOutputStream() {
+ @Override
+ protected void processLine(String line, int logLevel) {
+ try {
+ errorOutputStream.write(line.getBytes());
+ errorOutputStream.write("\n".getBytes());
+ } catch (IOException ex) {
+ log.error(ex.getMessage(), ex);
+ }
+ }
+ });
executor.setStreamHandler(streamHandler);
String borgCall = cmdLine.getExecutable() + " " + StringUtils.join(cmdLine.getArguments(), " ");
if (StringUtils.isNotBlank(command.getDescription())) {
--
Gitblit v1.10.0