File tree Expand file tree Collapse file tree
main/java/org/honton/chas/process/exec/maven/plugin Expand file tree Collapse file tree Original file line number Diff line number Diff 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
Original file line number Diff line number Diff line change 77import java .util .Map ;
88import java .util .concurrent .TimeUnit ;
99import org .apache .maven .plugin .logging .Log ;
10+ import org .honton .chas .process .exec .maven .plugin .StdoutRedirector .LineWriter ;
1011
1112public 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 () {
Original file line number Diff line number Diff line change 88
99public 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}
You can’t perform that action at this time.
0 commit comments