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/09/04 12:08:03 UTC

svn commit: r1759175 - in /maven/shared/trunk/maven-shared-utils/src: main/java/org/apache/maven/shared/utils/logging/ test/java/org/apache/maven/shared/utils/logging/

Author: hboutemy
Date: Sun Sep  4 12:08:03 2016
New Revision: 1759175

URL: http://svn.apache.org/viewvc?rev=1759175&view=rev
Log:
[MSHARED-587] extracted LoggerLevelRenderer interface from MessageBuilder

Added:
    maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/logging/LoggerLevelRenderer.java   (with props)
Modified:
    maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/logging/AnsiMessageBuilder.java
    maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/logging/MessageBuilder.java
    maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/logging/MessageUtils.java
    maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/logging/PlainMessageBuilder.java
    maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/logging/Style.java
    maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/logging/package-info.java
    maven/shared/trunk/maven-shared-utils/src/test/java/org/apache/maven/shared/utils/logging/AnsiMessageBuilderTest.java

Modified: maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/logging/AnsiMessageBuilder.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/logging/AnsiMessageBuilder.java?rev=1759175&r1=1759174&r2=1759175&view=diff
==============================================================================
--- maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/logging/AnsiMessageBuilder.java (original)
+++ maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/logging/AnsiMessageBuilder.java Sun Sep  4 12:08:03 2016
@@ -26,7 +26,7 @@ import org.fusesource.jansi.Ansi;
  * <a href="http://fusesource.github.io/jansi/">Jansi</a> with configurable styles through {@link Style}.
  */
 class AnsiMessageBuilder
-    implements MessageBuilder
+    implements MessageBuilder, LoggerLevelRenderer
 {
     private Ansi ansi;
 
@@ -50,28 +50,24 @@ class AnsiMessageBuilder
         this.ansi = ansi;
     }
 
-    public AnsiMessageBuilder debug( Object message )
+    public String debug( String level )
     {
-        Style.DEBUG.apply( ansi ).a( message ).reset();
-        return this;
+        return Style.DEBUG.apply( ansi ).a( level ).reset().toString();
     }
 
-    public AnsiMessageBuilder info( Object message )
+    public String info( String level )
     {
-        Style.INFO.apply( ansi ).a( message ).reset();
-        return this;
+        return Style.INFO.apply( ansi ).a( level ).reset().toString();
     }
 
-    public AnsiMessageBuilder warning( Object message )
+    public String warning( String level )
     {
-        Style.WARNING.apply( ansi ).a( message ).reset();
-        return this;
+        return Style.WARNING.apply( ansi ).a( level ).reset().toString();
     }
 
-    public AnsiMessageBuilder error( Object message )
+    public String error( String level )
     {
-        Style.ERROR.apply( ansi ).a( message ).reset();
-        return this;
+        return Style.ERROR.apply( ansi ).a( level ).reset().toString();
     }
 
     public AnsiMessageBuilder success( Object message )
@@ -80,6 +76,12 @@ class AnsiMessageBuilder
         return this;
     }
 
+    public AnsiMessageBuilder warning( Object message )
+    {
+        Style.WARNING.apply( ansi ).a( message ).reset();
+        return this;
+    }
+
     public AnsiMessageBuilder failure( Object message )
     {
         Style.FAILURE.apply( ansi ).a( message ).reset();

Added: maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/logging/LoggerLevelRenderer.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/logging/LoggerLevelRenderer.java?rev=1759175&view=auto
==============================================================================
--- maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/logging/LoggerLevelRenderer.java (added)
+++ maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/logging/LoggerLevelRenderer.java Sun Sep  4 12:08:03 2016
@@ -0,0 +1,53 @@
+package org.apache.maven.shared.utils.logging;
+
+/*
+ * 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.
+ */
+
+/**
+ * Logger level renderer, intended for Maven slf4j logging provider implementers to render
+ * logger level.
+ *
+ * @since 3.2.0
+ */
+public interface LoggerLevelRenderer
+{
+    /**
+     * Render DEBUG level.
+     * By default, bold cyan
+     */
+    String debug( String level );
+    
+    /**
+     * Render INFO level.
+     * By default, bold blue
+     */
+    String info( String level );
+    
+    /**
+     * Render WARNING level.
+     * By default, bold yellow
+     */
+    String warning( String level );
+    
+    /**
+     * Render ERROR level.
+     * By default, bold red
+     */
+    String error( String level );
+}

Propchange: maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/logging/LoggerLevelRenderer.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/logging/LoggerLevelRenderer.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/logging/LoggerLevelRenderer.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/logging/MessageBuilder.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/logging/MessageBuilder.java?rev=1759175&r1=1759174&r2=1759175&view=diff
==============================================================================
--- maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/logging/MessageBuilder.java (original)
+++ maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/logging/MessageBuilder.java Sun Sep  4 12:08:03 2016
@@ -22,40 +22,23 @@ package org.apache.maven.shared.utils.lo
 /**
  * Message builder that supports configurable styling.
  * @see MessageUtils
+ * @since 3.1.0
  */
 public interface MessageBuilder
 {
     /**
-     * Append message content for DEBUG level.
-     * By default, bold cyan
-     */
-    MessageBuilder debug( Object message );
-    
-    /**
-     * Append message content for INFO level.
-     * By default, bold blue
+     * Append message content in success style.
+     * By default, bold green
      */
-    MessageBuilder info( Object message );
+    MessageBuilder success( Object message );
     
     /**
-     * Append message content in warning style or WARNING level.
+     * Append message content in warning style.
      * By default, bold yellow
      */
     MessageBuilder warning( Object message );
     
     /**
-     * Append message content for ERROR level.
-     * By default, bold red
-     */
-    MessageBuilder error( Object message );
-    
-    /**
-     * Append message content in success style.
-     * By default, bold green
-     */
-    MessageBuilder success( Object message );
-    
-    /**
      * Append message content in failure style.
      * By default, bold red
      */

Modified: maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/logging/MessageUtils.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/logging/MessageUtils.java?rev=1759175&r1=1759174&r2=1759175&view=diff
==============================================================================
--- maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/logging/MessageUtils.java (original)
+++ maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/logging/MessageUtils.java Sun Sep  4 12:08:03 2016
@@ -28,6 +28,7 @@ import org.fusesource.jansi.AnsiConsole;
  * <p>
  * Internally, <a href="http://fusesource.github.io/jansi/">Jansi</a> is used to render
  * <a href="https://en.wikipedia.org/wiki/ANSI_escape_code#Colors">ANSI colors</a> on any platform.
+ * @since 3.1.0
  */
 public class MessageUtils
 {
@@ -121,6 +122,16 @@ public class MessageUtils
     }
 
     /**
+     * Create a message buffer with an internal buffer of defined size.
+     * @return a new buffer
+     */
+    @SuppressWarnings( "checkstyle:magicnumber" )
+    public static LoggerLevelRenderer logger()
+    {
+        return JANSI ? new AnsiMessageBuilder( 20 ) : new PlainMessageBuilder( 7 );
+    }
+
+    /**
      * Remove any ANSI code from a message (colors or other escape sequences).
      * @param msg message eventually containing ANSI codes
      * @return the message with ANSI codes removed

Modified: maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/logging/PlainMessageBuilder.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/logging/PlainMessageBuilder.java?rev=1759175&r1=1759174&r2=1759175&view=diff
==============================================================================
--- maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/logging/PlainMessageBuilder.java (original)
+++ maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/logging/PlainMessageBuilder.java Sun Sep  4 12:08:03 2016
@@ -23,7 +23,7 @@ package org.apache.maven.shared.utils.lo
  * Message builder implementation that just ignores styling, for Maven version earlier than 3.4.0.
  */
 class PlainMessageBuilder
-    implements MessageBuilder
+    implements MessageBuilder, LoggerLevelRenderer
 {
     private StringBuilder buffer;
 
@@ -42,24 +42,24 @@ class PlainMessageBuilder
         buffer = new StringBuilder( size );
     }
 
-    public PlainMessageBuilder debug( Object message )
+    public String debug( String level )
     {
-        return a( message );
+        return a( level ).toString();
     }
     
-    public PlainMessageBuilder info( Object message )
+    public String info( String level )
     {
-        return a( message );
+        return a( level ).toString();
     }
     
-    public PlainMessageBuilder warning( Object message )
+    public String warning( String level )
     {
-        return a( message );
+        return a( level ).toString();
     }
     
-    public PlainMessageBuilder error( Object message )
+    public String error( String level )
     {
-        return a( message );
+        return a( level ).toString();
     }
 
     public PlainMessageBuilder success( Object message )
@@ -67,6 +67,11 @@ class PlainMessageBuilder
         return a( message );
     }
 
+    public PlainMessageBuilder warning( Object message )
+    {
+        return a( message );
+    }
+    
     public PlainMessageBuilder failure( Object message )
     {
         return a( message );

Modified: maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/logging/Style.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/logging/Style.java?rev=1759175&r1=1759174&r2=1759175&view=diff
==============================================================================
--- maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/logging/Style.java (original)
+++ maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/logging/Style.java Sun Sep  4 12:08:03 2016
@@ -26,6 +26,7 @@ import java.util.Locale;
 
 /**
  * Configurable message styles.
+ * @since 3.1.0
  */
 enum Style
 {

Modified: maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/logging/package-info.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/logging/package-info.java?rev=1759175&r1=1759174&r2=1759175&view=diff
==============================================================================
--- maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/logging/package-info.java (original)
+++ maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/logging/package-info.java Sun Sep  4 12:08:03 2016
@@ -42,6 +42,7 @@
  * <code>red</code>, <code>green</code>, <code>yellow</code>, <code>blue</code>, <code>magenta</code>,
  * <code>cyan</code> or <code>white</code>, eventually with <code>bright</code> prefix</li>
  * </ul>
+ * @since 3.1.0
  */
 package org.apache.maven.shared.utils.logging;
 

Modified: maven/shared/trunk/maven-shared-utils/src/test/java/org/apache/maven/shared/utils/logging/AnsiMessageBuilderTest.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-shared-utils/src/test/java/org/apache/maven/shared/utils/logging/AnsiMessageBuilderTest.java?rev=1759175&r1=1759174&r2=1759175&view=diff
==============================================================================
--- maven/shared/trunk/maven-shared-utils/src/test/java/org/apache/maven/shared/utils/logging/AnsiMessageBuilderTest.java (original)
+++ maven/shared/trunk/maven-shared-utils/src/test/java/org/apache/maven/shared/utils/logging/AnsiMessageBuilderTest.java Sun Sep  4 12:08:03 2016
@@ -39,33 +39,33 @@ public class AnsiMessageBuilderTest
     @Test
     public void should_color_debug()
     {
-        ansiMessageBuilder.debug( "a debug message" );
+        ansiMessageBuilder.debug( "DEBUG" );
 
-        assertThat( ansiMessageBuilder.toString(), equalTo( "\u001B[1;36ma debug message\u001B[m" ) );
+        assertThat( ansiMessageBuilder.toString(), equalTo( "\u001B[1;36mDEBUG\u001B[m" ) );
     }
 
     @Test
     public void should_color_info()
     {
-        ansiMessageBuilder.info( "an info message" );
+        ansiMessageBuilder.info( "INFO" );
 
-        assertThat( ansiMessageBuilder.toString(), equalTo( "\u001B[1;34man info message\u001B[m" ) );
+        assertThat( ansiMessageBuilder.toString(), equalTo( "\u001B[1;34mINFO\u001B[m" ) );
     }
 
     @Test
     public void should_color_warning_and_reset()
     {
-        ansiMessageBuilder.warning( "a warning message" );
+        ansiMessageBuilder.warning( "WARNING" );
 
-        assertThat( ansiMessageBuilder.toString(), equalTo( "\u001B[1;33ma warning message\u001B[m" ) );
+        assertThat( ansiMessageBuilder.toString(), equalTo( "\u001B[1;33mWARNING\u001B[m" ) );
     }
 
     @Test
     public void should_color_error()
     {
-        ansiMessageBuilder.error( "an error message" );
+        ansiMessageBuilder.error( "ERROR" );
 
-        assertThat( ansiMessageBuilder.toString(), equalTo( "\u001B[1;31man error message\u001B[m" ) );
+        assertThat( ansiMessageBuilder.toString(), equalTo( "\u001B[1;31mERROR\u001B[m" ) );
     }
 
     @Test