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:32 UTC
[47/50] maven git commit: Add customized listener that is aware of
ansi colorization and can, if needed,
strip out ansi sequences when stream is not a tty Minor hack when -l option is
set to force jansi to strip sequences.
Add customized listener that is aware of ansi colorization and can, if needed, strip out ansi sequences when stream is not a tty Minor hack when -l option is set to force jansi to strip sequences.
Project: http://git-wip-us.apache.org/repos/asf/maven/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/c279b0ab
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/c279b0ab
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/c279b0ab
Branch: refs/heads/slf4j-gossip
Commit: c279b0ab49cad8d37b1976e16ae498fd735b1813
Parents: 700ed37
Author: Jason Dillon <ja...@planet57.com>
Authored: Fri May 20 16:58:13 2016 -0700
Committer: Herv� Boutemy <hb...@apache.org>
Committed: Thu Jun 2 23:41:45 2016 +0200
----------------------------------------------------------------------
.../java/org/apache/maven/cli/MavenCli.java | 3 +
.../impl/gossip/ColorConsoleListener.java | 67 ++++++++++++++++++++
.../org.sonatype.gossip/config.properties | 2 +-
3 files changed, 71 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/maven/blob/c279b0ab/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
----------------------------------------------------------------------
diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
index 6ac77de..a72c254 100644
--- a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
+++ b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
@@ -466,6 +466,9 @@ public class MavenCli
File logFile = new File( cliRequest.commandLine.getOptionValue( CLIManager.LOG_FILE ) );
logFile = resolveFile( logFile, cliRequest.workingDirectory );
+ // HACK: disable any colorization when writing log file
+ System.setProperty( "jansi.strip", Boolean.TRUE.toString() );
+
// redirect stdout and stderr to file
try
{
http://git-wip-us.apache.org/repos/asf/maven/blob/c279b0ab/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
new file mode 100644
index 0000000..4f80738
--- /dev/null
+++ b/maven-embedder/src/main/java/org/apache/maven/cli/logging/impl/gossip/ColorConsoleListener.java
@@ -0,0 +1,67 @@
+package org.apache.maven.cli.logging.impl.gossip;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.io.PrintStream;
+
+import org.fusesource.jansi.AnsiConsole;
+
+import org.sonatype.gossip.Event;
+import org.sonatype.gossip.listener.ListenerSupport;
+
+/**
+ * Specialized {@link org.sonatype.gossip.listener.Listener} which is aware of ANSI streams.
+ *
+ * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
+ * @since 3.4.0
+ */
+public class ColorConsoleListener
+ extends ListenerSupport
+{
+ private PrintStream out;
+
+ private PrintStream getOut()
+ {
+ if ( out == null )
+ {
+ // 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 ) );
+ }
+ return out;
+ }
+
+ @Override
+ public void onEvent( final Event event ) throws Exception
+ {
+ assert event != null;
+
+ if ( !isLoggable( event ) )
+ {
+ return;
+ }
+
+ PrintStream out = getOut();
+ synchronized ( out )
+ {
+ out.print( render( event ) );
+ out.flush();
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/maven/blob/c279b0ab/maven-embedder/src/main/resources/META-INF/org.sonatype.gossip/config.properties
----------------------------------------------------------------------
diff --git a/maven-embedder/src/main/resources/META-INF/org.sonatype.gossip/config.properties b/maven-embedder/src/main/resources/META-INF/org.sonatype.gossip/config.properties
index acec235..587b2be 100644
--- a/maven-embedder/src/main/resources/META-INF/org.sonatype.gossip/config.properties
+++ b/maven-embedder/src/main/resources/META-INF/org.sonatype.gossip/config.properties
@@ -56,7 +56,7 @@ profile.maven-plain.trigger.default.ignoreCase=true
profile.maven-color.includes=maven-common
profile.maven-color.listeners=console
-profile.maven-color.listener.console=org.sonatype.gossip.listener.ConsoleListener
+profile.maven-color.listener.console=org.apache.maven.cli.logging.impl.gossip.ColorConsoleListener
profile.maven-color.listener.console.renderer=org.apache.maven.cli.logging.impl.gossip.ColorRenderer
profile.maven-color.listener.console.renderer.pattern=[%l] %m%n%x
profile.maven-color.triggers=default