Skip to content

Commit 84e1a0d

Browse files
committed
add name to lines redirected to maven log
1 parent 7c19fb0 commit 84e1a0d

3 files changed

Lines changed: 33 additions & 27 deletions

File tree

src/it/order/verify.bsh

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import java.nio.file.Files;
77
for(;;) {
88
String line = reader.readLine();
99
if(line == null) {
10-
throw new AssertionError(expected + " not found");
10+
throw new IllegalStateException(expected + " not found");
1111
}
1212
if(line.equals(expected)) {
1313
return;
@@ -28,9 +28,9 @@ import java.nio.file.Files;
2828

2929
file = new File(basedir, "build.log" );
3030
reader = Files.newBufferedReader(file.toPath(), StandardCharsets.UTF_8);
31-
findLine(reader, "[INFO] one started");
32-
findLine(reader, "[ERROR] one again");
33-
findLine(reader, "[INFO] two started");
34-
findLine(reader, "[ERROR] two again");
31+
findLine(reader, "[INFO] [order-one] one started");
32+
findLine(reader, "[ERROR] [order-one] one again");
33+
findLine(reader, "[INFO] [order-two] two started");
34+
findLine(reader, "[ERROR] [order-two] two again");
3535

3636

src/main/java/org/honton/chas/process/exec/maven/plugin/ExecProcess.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import java.util.Map;
88
import java.util.concurrent.TimeUnit;
99
import org.apache.maven.plugin.logging.Log;
10+
import org.honton.chas.process.exec.maven.plugin.StdoutRedirector.LineWriter;
1011

1112
public class ExecProcess {
1213
private Process process;
@@ -63,8 +64,18 @@ private void redirectToLogFile(ProcessBuilder pb) throws IOException {
6364
}
6465

6566
private void redirectStream() throws IOException {
66-
new StdoutRedirector(process.getInputStream(), log, false);
67-
new StdoutRedirector(process.getErrorStream(), log, true);
67+
new StdoutRedirector(name, process.getInputStream(), new LineWriter() {
68+
@Override
69+
public void writeLine(String line) {
70+
log.info(line);
71+
}
72+
});
73+
new StdoutRedirector(name, process.getErrorStream(), new LineWriter() {
74+
@Override
75+
public void writeLine(String line) {
76+
log.error(line);
77+
}
78+
});
6879
}
6980

7081
public void destroy() {

src/main/java/org/honton/chas/process/exec/maven/plugin/StdoutRedirector.java

Lines changed: 15 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -8,22 +8,31 @@
88

99
public class StdoutRedirector extends Thread {
1010

11+
interface LineWriter {
12+
void writeLine(String line);
13+
}
14+
15+
private final String streamName;
1116
private final BufferedReader in;
12-
private final Log log;
13-
private final boolean isErr;
17+
private final LineWriter lineWriter;
1418

15-
StdoutRedirector(InputStream in, Log log, boolean isErr) {
19+
StdoutRedirector(String streamName, InputStream in, LineWriter lineWriter) {
20+
this.streamName = streamName;
1621
this.in = new BufferedReader(new InputStreamReader(in));
17-
this.log = log;
18-
this.isErr = isErr;
22+
this.lineWriter = lineWriter;
1923
setDaemon(true);
2024
start();
2125
}
2226

2327
@Override
2428
public void run() {
2529
try {
26-
while (oneLine()) {
30+
for(;;){
31+
String line = in.readLine();
32+
if (line == null) {
33+
return;
34+
}
35+
lineWriter.writeLine('[' + streamName + "] " + line);
2736
}
2837
} catch (IOException ignore) {
2938
} finally {
@@ -34,18 +43,4 @@ public void run() {
3443
}
3544
}
3645
}
37-
38-
private boolean oneLine() throws IOException {
39-
String line = in.readLine();
40-
if(line == null) {
41-
return false;
42-
}
43-
if(isErr) {
44-
log.error(line);
45-
}
46-
else {
47-
log.info(line);
48-
}
49-
return true;
50-
}
5146
}

0 commit comments

Comments
 (0)