o Updated method 'consumeLine(String)' of the 'StreamConsumer' interface adding
'IOException' to the list of declared exceptions to allow implementors to
report any failures when consuming a line fails.
git-svn-id: https://svn.apache.org/repos/asf/maven/shared/trunk@1784357 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/maven/shared/utils/cli/CommandLineUtils.java b/src/main/java/org/apache/maven/shared/utils/cli/CommandLineUtils.java
index c39ec69..6e1bc81 100644
--- a/src/main/java/org/apache/maven/shared/utils/cli/CommandLineUtils.java
+++ b/src/main/java/org/apache/maven/shared/utils/cli/CommandLineUtils.java
@@ -52,6 +52,7 @@
private static final String LS = System.getProperty( "line.separator" );
/** {@inheritDoc} */
+ @Override
public void consumeLine( String line )
{
string.append( line ).append( LS );
diff --git a/src/main/java/org/apache/maven/shared/utils/cli/DefaultConsumer.java b/src/main/java/org/apache/maven/shared/utils/cli/DefaultConsumer.java
index 040b8ad..5104877 100644
--- a/src/main/java/org/apache/maven/shared/utils/cli/DefaultConsumer.java
+++ b/src/main/java/org/apache/maven/shared/utils/cli/DefaultConsumer.java
@@ -19,6 +19,8 @@
* under the License.
*/
+import java.io.IOException;
+
/**
* @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
* @version $Id$
@@ -26,9 +28,18 @@
public class DefaultConsumer
implements StreamConsumer
{
- /** {@inheritDoc} */
- public void consumeLine( String line )
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void consumeLine( String line ) throws IOException
{
System.out.println( line );
+ if ( System.out.checkError() )
+ {
+ throw new IOException( String.format( "Failure writing line '%s' to stdout.", line ) );
+ }
}
+
}
diff --git a/src/main/java/org/apache/maven/shared/utils/cli/StreamConsumer.java b/src/main/java/org/apache/maven/shared/utils/cli/StreamConsumer.java
index dc6802b..0cde961 100644
--- a/src/main/java/org/apache/maven/shared/utils/cli/StreamConsumer.java
+++ b/src/main/java/org/apache/maven/shared/utils/cli/StreamConsumer.java
@@ -19,6 +19,8 @@
* under the License.
*/
+import java.io.IOException;
+
/**
* Works in concert with the StreamPumper class to
* allow implementations to gain access to the lines being
@@ -35,6 +37,7 @@
/**
* Called when the StreamPumper pumps a line from the Stream.
* @param line The line to be consumed.
+ * @throws IOException if consuming {@code line} fails.
*/
- void consumeLine( String line );
+ void consumeLine( String line ) throws IOException;
}
diff --git a/src/main/java/org/apache/maven/shared/utils/cli/StreamPumper.java b/src/main/java/org/apache/maven/shared/utils/cli/StreamPumper.java
index 7fa3ae4..411d55e 100644
--- a/src/main/java/org/apache/maven/shared/utils/cli/StreamPumper.java
+++ b/src/main/java/org/apache/maven/shared/utils/cli/StreamPumper.java
@@ -145,7 +145,7 @@
return exception;
}
- private void consumeLine( String line )
+ private void consumeLine( String line ) throws IOException
{
if ( consumer != null && !isDisabled() )
{
diff --git a/src/main/java/org/apache/maven/shared/utils/cli/WriterStreamConsumer.java b/src/main/java/org/apache/maven/shared/utils/cli/WriterStreamConsumer.java
index b95a81f..f8ce0d8 100644
--- a/src/main/java/org/apache/maven/shared/utils/cli/WriterStreamConsumer.java
+++ b/src/main/java/org/apache/maven/shared/utils/cli/WriterStreamConsumer.java
@@ -19,7 +19,8 @@
* under the License.
*/
-import java.io.PrintWriter;
+import java.io.BufferedWriter;
+import java.io.IOException;
import java.io.Writer;
/**
@@ -30,22 +31,26 @@
implements StreamConsumer
{
- private final PrintWriter writer;
+ private final BufferedWriter writer;
/**
* @param writer {@link Writer}
*/
public WriterStreamConsumer( Writer writer )
{
- this.writer = new PrintWriter( writer );
+ super();
+ this.writer = new BufferedWriter( writer );
}
- /** {@inheritDoc}
+ /**
+ * {@inheritDoc}
*/
- public void consumeLine( String line )
+ @Override
+ public void consumeLine( String line ) throws IOException
{
- writer.println( line );
-
- writer.flush();
+ this.writer.append( line );
+ this.writer.newLine();
+ this.writer.flush();
}
+
}
diff --git a/src/main/java/org/apache/maven/shared/utils/cli/javatool/AbstractJavaTool.java b/src/main/java/org/apache/maven/shared/utils/cli/javatool/AbstractJavaTool.java
index 09b33f0..2282680 100644
--- a/src/main/java/org/apache/maven/shared/utils/cli/javatool/AbstractJavaTool.java
+++ b/src/main/java/org/apache/maven/shared/utils/cli/javatool/AbstractJavaTool.java
@@ -199,6 +199,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public void consumeLine( final String line )
{
getLogger().warn( line );
@@ -226,6 +227,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public void consumeLine( final String line )
{
getLogger().info( line );