You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by hb...@apache.org on 2016/06/02 22:09:29 UTC

[44/50] maven git commit: Use ConsoleListener which now exposes simpler means to extend and wrap the stream used. Update docs.

Use ConsoleListener which now exposes simpler means to extend and wrap the stream used. Update docs.


Project: http://git-wip-us.apache.org/repos/asf/maven/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/957b32e1
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/957b32e1
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/957b32e1

Branch: refs/heads/slf4j-gossip
Commit: 957b32e1fad593ff5641ab2f1e9c52f67596a310
Parents: 8cb186a
Author: Jason Dillon <ja...@planet57.com>
Authored: Tue May 24 14:06:52 2016 -0700
Committer: Herv� Boutemy <hb...@apache.org>
Committed: Thu Jun 2 23:41:45 2016 +0200

----------------------------------------------------------------------
 .../impl/gossip/ColorConsoleListener.java       | 47 +++++++++++---------
 1 file changed, 26 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven/blob/957b32e1/maven-embedder/src/main/java/org/apache/maven/cli/logging/impl/gossip/ColorConsoleListener.java
----------------------------------------------------------------------
diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/logging/impl/gossip/ColorConsoleListener.java b/maven-embedder/src/main/java/org/apache/maven/cli/logging/impl/gossip/ColorConsoleListener.java
index da8a7ed..b9c97a9 100644
--- a/maven-embedder/src/main/java/org/apache/maven/cli/logging/impl/gossip/ColorConsoleListener.java
+++ b/maven-embedder/src/main/java/org/apache/maven/cli/logging/impl/gossip/ColorConsoleListener.java
@@ -21,10 +21,9 @@ package org.apache.maven.cli.logging.impl.gossip;
 
 import java.io.PrintStream;
 
+import com.planet57.gossip.listener.ConsoleListener;
 import org.fusesource.jansi.AnsiConsole;
-
-import com.planet57.gossip.Event;
-import com.planet57.gossip.listener.ListenerSupport;
+import org.fusesource.jansi.internal.CLibrary;
 
 /**
  * Specialized {@link com.planet57.gossip.listener.Listener} which is aware of ANSI streams.
@@ -33,35 +32,41 @@ import com.planet57.gossip.listener.ListenerSupport;
  * @since 3.4.0
  */
 public class ColorConsoleListener
-    extends ListenerSupport
+    extends ConsoleListener
 {
     private PrintStream out;
 
-    private PrintStream getOut()
+    /**
+     * Returns file descriptor identifier for the configured stream.
+     */
+    private int getFileno()
     {
-        if ( out == null )
+        switch ( getStream() )
         {
-            // wrapping has logic which can detect, to some limited degree, if ansi is supported and strip if needed
-            out = new PrintStream( AnsiConsole.wrapOutputStream( System.out ) );
+            case OUT:
+                return CLibrary.STDOUT_FILENO;
+
+            case ERR:
+                return CLibrary.STDERR_FILENO;
+
+            default:
+                throw new InternalError();
         }
-        return out;
     }
 
+    /**
+     * Returns an ANSI aware wrapped stream.
+     *
+     * Needed so that jansi (limited) logic to detect supported streams is applied and copes with
+     * redirection of stream to file to strip out ANSI sequences.
+     */
     @Override
-    public void onEvent( final Event event ) throws Exception
+    protected PrintStream getOut()
     {
-        assert event != null;
-
-        if ( !isLoggable( event ) )
-        {
-            return;
-        }
-
-        PrintStream out = getOut();
-        synchronized ( out )
+        if ( out == null )
         {
-            out.print( render( event ) );
-            out.flush();
+            out = new PrintStream( AnsiConsole.wrapOutputStream( super.getOut(), getFileno() ) );
         }
+        return out;
     }
 }